Malware

호크아이 악성코드 분석

wsoh9812 2020. 8. 5. 00:32

정적분석

샌드박스 실행

샌드박스 결과를 보면 흐름은 대충 이러하다고 추측이 가능합니다.

"자식프로세스를 생성하고 거기에 코드인젝션?이나 특정행위를 하게 한다." 정도 추측이가능합니다.

 

 

 

 

IDA로 분석 도중 AutoIt으로 만들어진 바이너리라는 것을 알게 되었습니다.

"exe2auit"을 이용해 디컴파일 해서 분석할 수 있었지만 

 

디컴파일전 먼저 IDA로 분석을 해보았습니다.

 

안티디버깅

 

CreateProcess에 bp를 걸고 자식프로세스를 생성할때 잡을려고햇는데 왜 안되지 ㅡㅡ

 

그래서 결국 분석보고서를 보고 힌트를 얻었다.

[중요] 안티후킹?(정확한 용어가 맞는지 모르겠다.)이 적용 되어있었다.

보통 프로그램이 실행이되면 ntdll, kernel.dll 등 기본적인 dll이 로딩이 되는데 이때 0x7xxxxxxx주소로 로딩이된다.

하지만 이 악성코드는 dll들을 다시한번 로딩을 시키는 것이 포인트이다.

 

 보이는가???

dll 들이 다른 주소로 매핑되는 것이!!

이것은 

"기본적으로 로드된 dll을 사용하지 않고

내가 다시 로드시켜 사용할 것이다."

라는 뜻으로 해석하면 되고

동적분석샌드박스 분석방해 할 수있다고 한다,

 

내가 BreakPoint를 건 위치
실제 CreateProcess가 호출된 위치

 

어떻게 이곳을 호출이 되었는지 호출스택을 보고 따라가보았다.

형체를 알아볼 수 없는 함수이지만 자가치환으로 코드가 생성된것 같다.

 

이제 내가어떤 함수에 bp를 걸어도 소용이 없다.....

그래서 일단

이후 76번째 줄부터 계속해서 분석하기 시작했습니다.

 

프로새스가 생성 됬으니.

[중요]생성된 프로세스 메모리에 악성행위를 하는 코드를 써주겠다 라는 추측이 가능하다.

 

먼저,

 

ntqueryinformationprocess로 'RegAsm.exe'핸들을 가지고 오는것을 볼 수 있다.

 

이제 나머지는 안봐도 비디오겟지? 메모리 할당하고 값 써주고 실행시키고...

 

 

 

 

 

 

openprocess -> ntqueryinformationprocess ->zwreadvirtualmemory ->

zwcreatesection -> ntmapviewofsection -> memcpy-> ........

 

 

(ntqueryinformationprocess은 프로세스 핸들을 입력받고 

해당 프로세스의 정보를 reutrn한다.)

 

모든 코드가 인젝연인 된걸 확인 했고,

자식 프로세스로 생성된 파일을 덤프합니다.

 

이후,

IAT가 망가져있어 복구 작업부터 시작해주었습니다.

왜 Virtual 이랑 raw랑 같게해줌녀 복구되는지 모르겟다,,.,

 

C#

 

파일을 디컴파일 해보았다.

난독화된 RegAsm.exe

육안으로 알아보기 힘든 상태여서 문자열 분석만 간단하게 진행하였다.

 

[ 추측 ]

수상한 문자열을 위와 같이 추려보았습니다.

 

 

 

'de4dot'라는 난독화된 파일을 해석해주는 파일을 찾아 난독화를 풀어 보았습니다.

 

de4dot을 이용한 난독화 해제 과정

 

하지만,,,,,, 난독화 전후랑 별로 달라진것이 없는 것 같았습니다.

 

그래서 

RegAsm.exe를 실행시켜놓고 프로세스 덤프를 했습니다.

 

이 덤프한 파일을 c# 디컴파일 해주는 디컴파일러에 올려보았고,

아래와 같은 base64로 인코딩된 문자열을 볼 수 있었습니다.

 

프로세스 dump한 파일을 디컴파일

 

Base64 디코딩 결과 2개의 바이너리 확인

 

둘다 nirsoft에서 제공하는 무료소프트웨어이다.

이 도구는 '웹 브라우저와 이메일에 저장된 계정/비밀번호정보 추출도구' 입니다.

 

 

[ 결 론 ]

결론은

nirsoft에서 제공하는 도구로 컴퓨터에 저장된 자동인증로그인? 패스워드같은 정보들을 탈취한다.

 

 

 

하,,, 근데 여기서 끝내기 많이 찝찝합니다.

악성코드의 전체적인 흐름은

' Run.exe -> RegAsm.exe -> vbc.exe(dumpBinary1.exe , dumpBinary2.exe) '

이렇게지만 RegAsm.exe를 조금더 분석해봐야합니다. 

( 코드인젝션 뿐만아니라 다른 행위도 할거같은 그런 느낌이랄까?? )

 

그리고

위에서 봣듯이 %temp%에 수상한 파일도 떨어뜨리고 해서...

 

그래서 RegAsm.exe를 좀더 분석해보기로 했습니다.

 

자식프로세스로 생성된 vbc.exe 실행 인자

"/stext"는 nirsoft에서 사용되는 인자로 '패스워드를 리스트로 저장'이라고 하네요...