틀린 부분이 있다면 언제든지 댓글 남겨주세요!
한글 악성파일 분석 -Process Monitor, HWPScan2, SSivew, HxD, Ollydbg
> 포스트 스크립트 형식의 악성 한글 파일로 추측되며, eps 영역에 암호화 한 악성 쉘코드를 삽입해 익스플로러를 자식 프로세스로 실행하는 동작을 한다.
1. 행위 분석
해시값: 5d9e5c7b1b71af3c5f058f8521d383dbee88c99ebe8d509ebc8aeb52d4b6267b
악성 한글 파일을 열어 조판 부호를 체크하면 숨겨진 악성 포스트 스크립트를 볼 수 있다.
아주 작아서 잘 안보이지만 [그림] 앞에 작은 점이 있다.
프로세스 모니터 프로그램을 통해 실행 프로세스를 수집하고 트리구조로 확인해보면 한글 파일로 인해 실행된 프로그램들을 확인할 수 있다.
gbb, gswin32, gswin32c, gsdll 와 같은 실행파일은 한글 내에서 포스트 스크립트 쉘을 실행시키기 위해 실행된다.
해당 프로그램 자체가 악성 행위를 하는 것은 아니지만 악성 행위를 하는 파일로 연결되게 한다.
https://www.ghostscript.com/download/gsdnld.htmlgithub.com/ArtifexSoftware/ghostpdl-downloads/releases/tag/gs926 이 사이트에서 프로그램을 다운받아 설치 후 위의 경로로 가면 확인할 수 있다.
내 가상환경은 32bit 운영체제 이므로 gs926aw32.exe를 다운받아 설치했다.
취약점 코드가 암호화되어있기 때문에 HwpScan2의 취약점 검사에서 나오지 않는다.
2. 디버깅 할 파일 생성
복호화 시켜 저정한 파일을 notepad++로 열어서 확인한 결과이다.
위의 코드에서 100이 복호화 키이며 exec는 실행시키라는 뜻이다. 이 부분을 print로 바꿔 어떤 동작이 일어나는지 확인해본다.
위에서 다운받은 고스트 스크립트 쉘에서 디컴프레스한 파일을 실행시키면 결과가 출력된다. 출력된 내용을 복사해서 새 파일로 만든다.
이때 한줄로 저장되므로 바꾸기 기능을 통해 개행문자를 넣어준다.
그러면 이와 같이 쉘코드의 위치를 찾을 수 있다.
쉘코드가 909090..으로 시작되고 있는데 0x90=NOP명령어 바이트 코드로 아무런 동작을 하지 않는 명령어이다.
주로 악성 쉘코드의 시작 주소를 알기 어렵게 하기 위해 넣는다. 이 곳이 정확한 쉘코드의 시작점이 아니어도 nop 명령어를 지나다보면 실제 쉘코드 영역을 만날 수 있다.
쉘코드 부분을 복사하여 Hex에디터에 복사해 쉘코드 파일을 만들어준다.
디버깅을 하기 위해 쉘코드를 exe파일로 바꾸는 방법은 REMnux내의 스크립트를 이용하는 등 여러가지가 있지만 사이트를 이용하여 간단하게 바꾼다.
아래의 사이트에 쉘코드 데이터를 넣고 submit버튼을 클릭하면 exe파일로 나온다.
sandsprite.com/sc2exe/shellcode_2_exe.php
http://sandsprite.com/sc2exe/shellcode_2_exe.php
A video trainer is now available showing how to use this tool Note: I highly recommend starting analysis with Bytes Only option and scdbg tool DetectType option will auto-detect HTML,JS,Perl,Bash,MZ,SWF,Java & Low Entropy Beta Support for ActionScript form
sandsprite.com
3. 디버깅
exe파일을 Ollydbg 를 통해 열어준다.
시작부분인 \x90이 보인다.
401030주소에서 ESI에 저장된 값을 1byte씩 읽어와 AL로 XOR연산한다.
401037주소에서 XOR연산하는 부분이 모든 연산이 끝날때까지 반복되도록 루틴이 구성되어 있다.
이부분이 바로 복호화 루틴이다.
이렇게 하나하나 보려면 시간이 너무 오래 걸리기 때문에 행위 분석시 쉘코드의 자식 프로세스로 익스플로러가 실행됐던 것을 참고하여 CreateProcessA 함수를 찾아가본다. 이곳에 breakpoint(F2)를 걸고 사용자 코드 전까지 실행(alt+F9)한다.
현재 실행되고 있는 프로세스를 확인해보면 쉘코드 자식프로세스로 익스플로러가 멈춰진채 실행된 것을 확인할 수 있다.
'Project > 문서형 악성코드' 카테고리의 다른 글
OLE 구조 -Header (0) | 2020.10.25 |
---|---|
HWP 파일 구조 분석 (2) | 2020.09.27 |
댓글