(혼자 공부하며 참고하기 위해 본문 내용을 그대로 가져왔습니다. 문제시 삭제 조치 하겠습니다.)


#PlugX Malware


보통의 경우 최초 드럽퍼가 실행되면 exe, dll, data 파일(확장자는 제작자 마음) 이렇게 3종류의 파일이 특정 폴더에 설치가 된다. 최초 드럽퍼가 어떻게 실행되는 지 확인하지 못 했지만, 방법이야 다양하니 생략,,


예)

C:\Program Files\Common Files\Nv.exe

C:\Program Files\Common Files\NvSmartMax.dll

C:\Program Files\Common Files\NvSmart.mp3


같은 폴더에 나란히 3가지 파일이 설치되면 먼저 exe파일이 실행되고 DLL이 로드되며 해당 DLL이 다시 남은 data 파일(위의 NvSmart.mp3)을 로드하는 방식이다. 설치를 위해 각각의 파일이 반드시 존재해야하는 것이다.


그런데 3가지 파일이 반드시 필요한 이유가 더 있다. 자세히 살펴보면...


일단 DLL 파일의 Main코드를 살펴보면 다음과 같은 코드들을 볼 수 있다.






처음부터 '20120101'을 현재 실행되고 있는 PC의 System시간과 비교한다. 이 부분은 상기 언급한 반드시 필요한 부분에 포함되지 않지만, 굳이 비교하는 이유가 궁금해서.. 이유가 뭘까.





위 그림을 보면 Module EP를 찾아서 EP의 Page를 R/W하게 변경한다. 그리고 다음과 같이 하드 코딩된 주소(_DataLoad_Routine_)와 EP의 거리를 계산해서 Module EP부분에 덮어쓴다. 해당 어셈코드는 "E8 A6 18 00 00"에서 "E8 8A F8 8F 0F"로 변경되면서 점프되는 곳이 _DataLoad_Routine_ 주소로 바뀌는 것이다.



[DLL Main 코드에 삽입된 EP 수정코드]


어쨌건 정리하면, exe는 쓰고자하는 DLL을 import하고..




DLL이 로드되면 DLL Main코드가 실행되면서 exe의 EP가 수정되며(exe 시작전) 다시 DLL의 특정 주소로 점프가 된다(exe 시작 직후). exe는 dll 실행히켜주고 dll은 exe 수정해주고 다시 exe는 dll을 통해 data 파일을 호출하는...완벽한 호흡을 자랑한다..;;


그리고 첨부해서.. exe 원래 EP 코드를 보면 CRTStartup 보다 먼저 어떤 Call이 실행 되는 것을 볼 수 있다. 그래서 exe를 그냥 메인코드 먼저 디버깅하거나 IDA같은 Disassembler로만 보면 놓치는게 있을 수도..



출처 : 출처 : http://arisri.tistory.com/entry/%EC%95%85%EC%84%B1%EC%BD%94%EB%93%9C-PlugX-Dropper%EC%9D%98-%EC%84%A4%EC%B9%98-%EB%B0%A9%EC%8B%9D

'Analysis > Theory' 카테고리의 다른 글

Ollydbg_Back To User Mode  (0) 2019.01.06
Themida 단순 Unpack  (0) 2019.01.06
중복 실행 방지 코드_CreateMutex( )  (0) 2019.01.06
프로세스와 스레드(Process & Thread)  (0) 2019.01.06

1. Overview



1.1 Origin of name


VirusTotal Software Engineer인 Victor M. Alvarez의 트윗에 따르면 YARA의 Full name은 다음과 같다.


"YARA is an ancronym for:

YARA: Another Recursive Ancronym, or Yet Another Ridiculous Acronym. Pick your choice."


Yet Another Recursive Acronym 또는 Yet Another Ridiculous Acronym 이다[1][2].



2. About YARA



2.1 Features of yara


yara의 특징은 다음과 같다[3].


º 텍스트 기반 또는 바이너리 패턴을 기반으로 Malware 변종(malware families)에 대한 탐지를 제공

º 16진수 문자열, 텍스트 문자열, 정규 표현식 (Regular Expression) 을 지원

º PE, ELF 분석을 처리하는 모듈과 함께 오픈 소스 Cuckoo 샌드박스를 지원



Rules을 작성하는 기준에 대한 가이드는 다음과 같다[4].


º Rules에 Hit 되는 기준은 악성코드의 동작에 필요한 부분이여아 함

º 작성한 Rules는 기준 악성코드와 변종 악성코드 패밀리를 구별할 수 있을정도로 충분해야함

º 작성한 Rules는 다른 악성코드들 사이에서 일반적으로 통해야 한다(common across).




2.2 Get rules from external sources


YaraRules Github에서는 다양한 Rule set을 제공한다. rules는 Anti-Debug 및 Anti-Visualization techniques, 악성 문서, 패커 등을 탐지하기위한 규칙이 있다[5].

또한 VirusTotal, ThreatConnect 등과 같은 위협 정보 공유 플랫폼(Threat Intelligence sharing platforms)들이 YARA를 지원한다. 이를 통해 수집한 위협 정보를 기반으로 Rules를 작성할 수 있다[6][7].


VirusTotal의 경우 개인 API로 자신의 Rules를 입력하고 Hit 되는 샘플이 업로드 될 때 notice 해준다.

[그림 1]은 위협 정보 공유 플랫폼에서 지원하는 YARA 화면이다.


[그림 1] VirusTotal and ThreatConnect



2.3 Automatically generate rules

yara rules를 작성하는 일을 자동화 해주는 경우는 다음과 같다.


º Joe Sandbox[8]
- https://www.joesandbox.com/yaraspaged/
- Joe Sandbox에서는 동적 분석 결과를 바탕으로 Windows용 Signature를 제작할 수 있음
- 무료 온라인 샌드박스 (VirusTotal, Hybrid-Analysis, Malwr 등)과 호환

º Hyara[9]
- https://github.com/hy00un/Hyara
- 정적 분석 단계에서의 YARA 제작의 편의성을 극대화한 강력한 IDA Plug-in

(Hyara 관련 내용은 본 블로그의 Make yara rule with Hyara (IDA plug-in) 게시글 참고)






2.4 Make yara rules

자세한 문법은 YARA documentation 를 참조


2.4.1 Strings 문법

º wide : Unicode와 같은 2바이트 문자를 한 글자로 검색할 때 사용
º ascii : ascii 문자열 형식 검색 (wide와 함께 사용할 경우  순서 상관없음)
º nocase : 대/소문자 구분하지 않음
º fullword : 문자열을 하나의 문자열로 취급 (?)

<코드 분석 이후 yara 제작과 함께 상세한 내용 작성 예정>
<yara import 추가>
<yara 문법 추가>


N. Conclusions



암호화, 패킹, 다형성 등 우회가 비교적 쉬운 시그니처 기반 탐지에 대한 문제점들이 제시되고 있지만 여전히 YARA는 강력한 시그니처 기반 탐지 도구이다. 탐지 방안에 있어서 단독으로 사용하기는 무리가 있지만 다양한 탐지 도구들과 함께 병행하면 문제가 없다고 생각하며, 자동화 도구를 활용하여 높은 능률을 보장 받을 수 있다고 생각한다.

N. Related Reports



(1) https://github.com/VirusTotal/yara

(2) https://yara.readthedocs.io/en/v3.8.1/

(3) https://yararules.com/

(4) https://github.com/Yara-Rules/rules

(5) https://twitter.com/yararules



N. References



[1] https://twitter.com/plusvic/status/778983467627479040

[2] https://github.com/VirusTotal/yara/issues/58

[3] https://yara.readthedocs.io/en/v3.5.0/index.html

[4] https://securityintelligence.com/signature-based-detection-with-yara/

[5] https://github.com/Yara-Rules/rules

[6] https://www.virustotal.com/

[7] https://threatconnect.com/

[8] https://www.joesecurity.org/blog/8938263704094453988

[9] https://github.com/hy00un/Hyara

1. Overview



'''

박혜윤_이력서(181119)열심히하겠습니다.exe

이미지 무단사용관련 내용확인(박혜윤작가).exe

'''


파일명으로 유포된 GandCrab v5.0.4 랜섬웨어 악성코드이다.



2. File Info



SHA-256 : cf0ea1584d93d65c00012664eb39f2b003e41b60885759d6219b2d29a02ddcc3

<분석 완료 후 내용 추가 예정>


3. Detailed analysis


<분석 완료 후 내용 추가 예정>


N. Used Automated Malware Analysis Tools list



[1] VirusTotal, Available : https://www.virustotal.com/

[2] Hybrid-analysis, Available : https://www.hybrid-analysis.com/

[3] Intezer analyze, Available : https://analyze.intezer.com/


N. Related Report



[1] http://blog.alyac.co.kr/1989

[2] https://www.boannews.com/media/view.asp?idx=74745

'Analysis > Malware Analysis' 카테고리의 다른 글

[hwp] 한미우호협회 사칭 악성코드 분석  (0) 2020.12.20

+ Recent posts