트로이 목마 악성코드 분석 - 3

악성코드 및 포렌식|2021. 3. 28. 16:19

ida로 언패킹된것을 열고  LockResource를 누르고

더블클릭을 하면

 

 

넘어오는데 reference로 간다

 

 

 

findresource를 하는 부분이있고

 

 

그밑으로 sizeofresource랑

 

loadresource가 있습니다.

 

 

 

 

 

 

 

 

그래프 참조를 이용해서

 

참고를하자

 

 

 

winmain으로부터 어떤흐름을 가지고 저 함수로 들어왔는지 파악할 수있다

winmain()           

             sub_ 4032F0이라는 

                     -sub_403050 : FindResource

 

 

그래서 g를 눌러서 4032F0으로 가서 구조를 봅니다.

 

OpenSCManagerA 서비스를 등록하기위해 권한을 얻는 함수

 

 

GetSystemDirectory에 64to32.dll을 설치한 것을 확인할 수 있었다.

 

 

 

그리고 밑에는 분기점이있는데

 

서비스를 등록하는 방법을 달리해서 만들어 놓은 것이다.

 

 

 

왼쪽에서는  64to32dll의 이름을 정의하고

 

서비스를 바로 만듭니다. 바로등록하고

 

create service를 하고

 

좀내려보면

 

 

 

401230을 콜하는 것을 알 수있습니다.

 

 

 

마우스 스크롤만 위로 올리면 그냥 내용이 보이긴 한다

그래도 혹시 그냥 들어가봅니다.

 

 

 

 

 

 

 

 

레지스트리를 등록하거나 그러하게 관련된 내용들이 들어있습니다.

 

 

 

레지스트리를 modified하는 애들이다

 

 

 

 

 

여기서 403050 즉

find resource 애들이 들어가 있습니다.

 

 

 

sub_4032A0은

 

직접적으로 서비스를 등록하고 실행하고 닫고 그런 행동을 하는 곳이라 생각됩니다.

 

 

 

이런식으로 합니다.

 

 

 

 

 

 

아까의  다른 오른쪽 분기를 보게된다면

access를 하고있습니다

access는 

파일이 있는 없는지 확인하는 함수

 

 

 

 

 

 

 

 

내려가보면 이렇게되고

 

왼쪽은 레지스트리 키를 닫고 파일을 옮기고 있습니다.

 

401EC0을 먼저들어가게되고

오른쪽은 dll을  ecx에 넣게된다.

 

 

401EC0

401EC0에서

GETickCount 를하고 %08X를 하고있고

 

wsprintA를 해서 특정 문자열을 생성하는거같은데

다시나오면

 

 

 

이거뒤에

 

 

 

find resource를 할 인자들을 결정 하고있는거 같습니다.

 

 

find resource를 통해서 openservice를 하고있고

 

지나오면

 

 

 

402032A0의 이런 기능들이들어가있습니다.

 

Openstart service 라고 생각하면 될거같습니다.

 

 

 

 

 

changeserviceconfigA를 하는 것도 알수있었고

 

어떤 내용인지 

 

 

이내용에 대해서 보려면

 

 

 

 

 

저 svchost.exe -k netsvcs 는  

 

 

 

일반적인 서비스 프로세스 이고 애가 하는 역할은 

 

네트워크에관련된 서비스 들을 실행하게해주는 기능을 담담하고있다.

 

 

 

 

 

 

 

 

64to32라는 이것을 통해서 저것만등록해서실행시키고있는데

 

 이서비스가 시작이되면 위에내용을 재시작하고

 

네트워크에 관련된 서비스로 올리기위한 작업들이 뒤에 수행되고 있다.

 

시스템을 잘 이해하고 있는 사람이 많들었다고 생각한다.

 

 

 

 

이쪽에서는 서비스를 등록하고

 

 

 

 

 

service를 통해 많은 것을 하고 있는 것같다.

 

 

 

 

dll이 생성하는 것을 알수있고

 

서비스를 등록하는것도볼 수 있다.

 

 

여러가지 루틴으로 갈리긴했는데 아마 이유가 있을테니까 이것을 동적으로 따라가 봅니다.

 

 

 

 

 

이제 마지막

 

winMain을 살펴보면

 

 

 

 

 

여기서 가장중요한 3개를 하고있는데 그중에서 AntivirusDetect는

 

 

 

v3tray ayagent,   nsavsvc.npc,v3sp등등

 

 

 

 

실행중인지확인하고 

 

백신을 죽이고 삭제한다.

 

 

 

 

 

 

 

 

레지스트리 관련된api들을 호출하는 역할 들만 하고있고

 

 

 

 

resourceservice 는 리소스 서비스 관련된 내용을 아까 지켜봤고

 

createThread를 하고있습니다.

createThread 에대한 내용은 offset StartAddress에서 확인을 할 수 잇습니다.

 

 

 

 

GetProcAddress를 하고나서

GetlogicaldriveString 드라이브 이름을 얻고

 

 

 

 

시스템디렉토리를 얻은다음에 getdriveType을 하게됩니다.

 

 

 

그래서 여기를 나와서

 

createThread를 하게되면

 

 

그뒤에 WaitForSingleObject를 한뒤에

 

closeHandle 종료되게 됩니다.

 

 

 

중간에 뮤텍스 생성하는 영역들도 볼수있었다.

 

 

 

그리고 실행결과에 따라서 루틴이 갈린다.

 

 

 

그래서 루틴이 갈리는 것을 봐서

 

system32t 가 뮤텍스관련된 것이라고 생각할 수 있었다.

 

 

 

댓글()