svchost.exe -k netsvcs 를볼수있는데
네트워크 서비스들을 동작시켜준다
그밑에보면 services들을 보면은
내용이 등록된서비스를 동작시킵니다.
첫번쨰 automatic updates를 보면
서비스네임이랑 다보면
automatice updates인데
svchost.exe -k netsvcs 를 동작시키는데
즉 실행시킬때 같이 맞물려서 동작시킵니다.
그리고 애네들은 전부 다 windows 32에 있다는 소리입니다
악의적으로 설치한 것들이고
이렇게 다 netsvcs에서 실행되고
관련된 dll들을 볼수있습니다.
이렇게 검색으로 확인이가능하다.
svchost에서 돌아가는 것을 확인가능
여기 맨오른쪽으로 검색
이제 ida와 올리디버거를 같이사용한다.
ida에서 바로들어가면 system32t
에서 뮤텍스관련된 것들이 나온다
뮤텍스를 검사하고 루틴을 따지는데
뮤텍스가 성공적으로 맞는 경우에는 실행이되고 그렇지 않으면 중지가된다.
계속 진행을 한다.
메인에있는 401000을 갑니다.
그리고 브레이크 포인트를 겁니다.
그리고 실행을 하서보면 createmutex를 하고있고
바로 여기서 실행을 하게됩니다.
실행한 결과에따라서 결과값이 0000003C로 반환이 됬습니다.
0인지 테스트를 하게되고
0인경우에는
등록이되고 0이아닌경우에는 삭제를 합니다.
JE의 ZERO FLAG를 0으로 만들어버리고 그냥 넘어갑니다
그냥넘어가기위해서 ZERO FLAG를 0으로 만든다 원래는 같으면 점프를 하니까 그냥 점프안하게 하기위해서
test한 값이 같으면 zero flag가 1이라 점플하게됨
je는 같으면 점프하란 뜻
resourceService가 가장 주요한 동작을 하니까
저쪽으로 들어가서
00403A2C 위치로 갑니다.
주소로 와서
브레이크 포인트를 겁니다.
이부분이 중요한 부분이니까
내부로 들어갑니다.
OpenSCManager를 하고있고
GetSystemDirectory를 하고있습니다.
그뒤에
wsprintfA를 하고있습니다
단순히 문자열을 합친것
그래서 이렇게 문자열이 합해짐
그리고 쭉진행을 하면
여기서 결과를 가지고 비교해서 루틴을 나눠질텐데
여기서 루틴이 나눠집니다.
eax는 sub403100 에서 가져오게되서
밑으로 내려와서
여기서 다시 쓴건데
sub 403100을
확인을 해봅니다.
단순하게 문자열
svchost로 가서 openkey가 되는지 안되는 지확인하는 것입니다.
여기서 문자열확인가능
netsvcs호스트가 가능하다면
64to32를 세팅을 바로 진행하고
쭉 진행이 됩니다.
그래서 성공을 하느냐 못하느냐에따라서 루틴이 갈리게됩니다.
그래서 test eax, eax의 경로가 0040312A입니다.
이부분에 들어왔습니다.
eax 0으로 반환을 받았는데
RegOpenKeYExA
function이 실패를 한경우해는 nonzero 값을
0을 반환하는 경우에는 errorsuccess를 반환합니다.
점프를 하게되는데
ida에서보면 이쪽으로 점프를 하게되는 것입니다.
RegQueryValueExA를 통해서 등록하는 그런 루틴을 보이고 있습니다.
여기까지 진행할거라고 생각할 수 있습니다.
0을 반환해서 성공하게되면 오른쪽으로 access 내용 쪽으로 가게되니까 그쪽을 따라가게 된다면
64TO32.dll을 확인이가능할 것이다.
004034B9 으로 올리디버거에서 가봅시다.
여기서 access 문구까지 잘 볼수가 있다.
여기서 파일을 삭제해버리면 실패 루틴을 따라갈테니까 ida에서 확인을해보니까
이왼쪽 루틴을 따라가게될 것이다
우리가 파일을 삭제해버리니까 64to32.dll을
그래서 이 00403509로 가게됩니다.
그리고 다시 find resource를 하게됩니다.
올리로 가게되면
openservice 를 다시하고있고 closeService를 다시하고있습니다.
dll생긴것을 확인 가능하다.
그리고 쭉가보면 service를 이런식으로 세팅을 하고있습니다.
service_auto_start등
svchost.exe -k netsvcs 와관련된 것들이 있습니다.
이름을 64to32로하고 그런것들이 들어가 있습니다.
이 4036BA 루틴을 한번 따라가보게되면
4036BA는 서비스를 열고서 서비스쪽에서 실행될것이라고
서비스를 열고서 서비스쪽에서 실행될것이라고 볼 수 있습니다.
확인가능
여기서 CreateThread를 하고 끝나게되는데
ida에서 보면startaddress 즉 저번에봐썯ㄴ 내용을 볼수있다
파일을 찾는 내용 등
여러가지를 하고있어서 잘모르겠어서
sub_402100으로 들어갑니다.
이 명령어 주소로 한번 올리디버거로 찾아가 봅시다.
쓰레드로 실행된 루틴이 이거인데
결국에 실행은 안되고 멈추게 됩니다.
그래도 보게되면
file을 찾게되고
파일을 찾기만하지 추가적인 동작들은 확인이 불가능하고
파일을 카피하고 옮기고 그런 내용들이 존재해 있다는 것을 알수 있습니다.
이프로그램의 주요목적인 드롭은 성공이 한것입니다.
서비스에 자동 실행같은것도 있고 여러가지를 해봤습니다.
'악성코드 및 포렌식' 카테고리의 다른 글
cuckoo 설정파일 (0) | 2021.03.28 |
---|---|
샌디박싱과 쿠쿠박스 (0) | 2021.03.28 |
트로이 목마 악성코드 분석 - 3 (0) | 2021.03.28 |
트로이 목마 악성코드 분석 - 2 (0) | 2021.03.28 |
트로이 목마 악성코드 분석 - 1 (0) | 2021.03.28 |