'프로그래밍 공부 안한게 후회될 뿐이고 ㅜ.ㅜ'에 해당되는 글 1건

  1. 2009.10.15 가짜 RAR 악성코드
0x02 analysis2009. 10. 15. 17:40

[관련링크]


이미 나온지 조금 지난 형태의 악성코드인데 저는 1달 전에 봤던것 같습니다.
처음 볼때만 해도 이건 머냐....였었는데 위 두 글을 읽고 나니 그게 그거였더라는...-_-;;
늦은감이 있지만 한번 분석해봤습니다.

처음엔 exe파일을 확장자만 바꿔 놓은게 아닌가 생각했었는데
HEX 에디터로 열어보니 PE 파일은 아니었습니다.

일단 어떻게 생겼는지 한번 보시면




이렇게 생겼습니다.

위 두 포스팅을 보시면 시작이 Rar! 로 시작하는 것과는 다른 형태를 보여주고 있었습니다.
Viruslab님께 문의한 결과 예전엔 변종일 경우에는 시작이 Rar! 로 나오지 않는 경우가 있다고 하셨습니다.

이런 형태라면 당연히 실행이 안되고 특정 DLL에 의해서 해당 rar 파일이 다운로드되고 디코딩이 됩니다.
물론 DLL에는 디코딩 로직이 들어 있을꺼구요..

결국

특정 취약점을 공격 --> DLL Injection --> 악성 DLL에 의해 rar 다운로드 
--> 악성DLL에 의해 rar 디코드 --> 진짜 악성코드(exe)

이런식으로 동작하게 됩니다.


디코딩되는 로직은 정상적인 PE 파일과 비교해보시면 간단하게 확인할 수 있습니다.

[정상 PE 파일]


[가짜 RAR 악성코드]



가짜 RAR 악성코드를 보시면 ②에서부터 PE 파일의 본체가 되고 디코딩을 담당하는 DLL 파일은 rar 파일을 처음부터 4byte씩 
읽어들여 00 00 00 00 이 나오는 곳까지 삭제해버릴 것으로 예상하고 있습니다.

그리고 ②에서 부터 이미 지정된 특정 키값을 이용해서 디코딩을 하게 될 것입니다.
그렇다면 디코딩하는 키값을 분석자가 찾을 수 있는가가 관건인데요..

③ 부분에 보시면 05 BE 8D BA 가 반복되는 것을 보실 수 있는데 정상적인 PE 파일에서는 00 00 00 00 으로 채워져 있는 부분입니다. 가짜 RAR 악성코드에서 처음부터 16바이트는 제거하고 나머지부분에 대해서 4byte씩 읽어서 05 BE 8D BA 를 뺀다고 보시면 됩니다.

즉, 05 BE 8D BA가 키값이 됩니다.

그러면 분석자는 해당 RAR 악성코드의 처음 16바이트를 제거하고 나머지부분에 대해서 05 BE 8D BA를 뺀 후 exe로 저장하면 실제 악성코드를 획득할 수 있게 됩니다.






이걸 디코딩할 수 있는 DLL이 없기 때문에 별도의 프로그램을 만들어 볼까 합니다.

일단은 제가 가지고 있는게 전부 두번째줄부터 실제 악성코드이니 첫번째줄(16바이트)은 제거하고
나머지 부분에 대해서 키값을 빼서 다른 파일로 저장하는 파일을 만들어 보고자 합니다.......만
프로그래밍은 아직 초보라 언제 완선될지 장담을 못합니다. ㅜ.ㅜ

일단 삽질 한번 해봐야할 듯 합니다.

너무 기대는 하지 말아 주세요...









Posted by demantos