악성코드 분석 2 - 통신 포트를 찾는 과정

악성코드 및 포렌식|2021. 2. 3. 09:39

 

 

sysanalyzer로 나올떄 뭐 나오는게 없고

포트는나옵니다

 

메모리포렌식으로해도 별로 나오는게없습니다

 

통신포트가 안나오고그러면 동적분석이아니라 정적분석으로라도 진행해야합니다.

 

 

 

 

 

악성코드 분석 2

 

 

OEP를 찾아라

- PEID에서 프로그램 정보가 unknown이므로 별도 OEP가 있을것으로 생각된다.

 

- OLLY에서 1 step씩 실행하면 401000에서 push ebp, 하단에 시스템 함수를

호출하는 부분이 나오므로 OEP401000

 

악성코드는 어떤 동작을 수행하는가?

- 원격으로 명령을 실행하기 위해 cmd.exe를 실행하는 것으로 추측

 

- OEP 실행전의 arg1~3cmd.exe 실행 뒤 인자(dir, ipconfig )를 위한 변수이다.

 

 

 

======================

 

ida 시작

 

 

 

ida로 정적분석을하기위해 text -> 1337을

 

검색을해봐도 뭐가 따로 나오지않습니다.

 

 

근데이제 1337 을 16진수로 바꾸게되면

 

539가 나오게됩니다.

 

 

text 539로 검색을하면

 

 

정적분석(IDA)로 악성코드의 통신 port를 찾아라

 

- 통신을 위해서는 socket - bind - listen - accept 단계를 거쳐야 한다. socket

port를 지정하는 절차는 bind에서 수행되므로 string 검색을 통해 bind를 찾아간다.

 

 

 

 

1대1 통신은 반드시 소켓을 열고진행이 떄문에 bind 통신 포트지정

listen은 대기 accept단계를 거치기떄문

 

 

- bind error 문자열의 바로 전 단계가 socketbind 하는 단계일 것으로 추측 가능

통신포트가 실패

 

 

 

 

 

 

 

 

 

- mov esi, 539h : 539h(1337) esi에 넣고 bind 함수를 호출하므로 통신 port

1337일 것이다.

539h는 10진수로 1337이다

 

 

 

push 메모리에 데이타를 올리기 떄문에

 

push 539h 는 메모리에다가 539h를 올린다.

 

call은 실행하는 함수기때문에

 

 call bind는 bind를 실행을 합니다.

 

 

통신을 위해서는 socket - bind - listen - accept 단계대로 진행하는것을 이용해서

 

통신포트도알아내고 구조를 대충은 알아봤습니다.

 

 

 

 

 

 

댓글()