악성코드 분석 2 - 통신 포트를 찾는 과정
sysanalyzer로 나올떄 뭐 나오는게 없고
포트는나옵니다
메모리포렌식으로해도 별로 나오는게없습니다
통신포트가 안나오고그러면 동적분석이아니라 정적분석으로라도 진행해야합니다.
■악성코드 분석 2
▲ OEP를 찾아라
- PEID에서 프로그램 정보가 unknown이므로 별도 OEP가 있을것으로 생각된다.
- OLLY에서 1 step씩 실행하면 401000에서 push ebp, 하단에 시스템 함수를
호출하는 부분이 나오므로 OEP는 401000
▲ 악성코드는 어떤 동작을 수행하는가?
- 원격으로 명령을 실행하기 위해 cmd.exe를 실행하는 것으로 추측
- OEP 실행전의 arg1~3은 cmd.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 문자열의 바로 전 단계가 socket을 bind 하는 단계일 것으로 추측 가능
통신포트가 실패
- mov esi, 539h : 539h(1337)를 esi에 넣고 bind 함수를 호출하므로 통신 port는
1337일 것이다.
539h는 10진수로 1337이다
push 메모리에 데이타를 올리기 떄문에
push 539h 는 메모리에다가 539h를 올린다.
call은 실행하는 함수기때문에
call bind는 bind를 실행을 합니다.
통신을 위해서는 socket - bind - listen - accept 단계대로 진행하는것을 이용해서
통신포트도알아내고 구조를 대충은 알아봤습니다.
'악성코드 및 포렌식' 카테고리의 다른 글
악성코드 분석 4 - dropper (0) | 2021.02.03 |
---|---|
악성코드 분석 3 - packing (0) | 2021.02.03 |
악성코드 분석 1 - http cashe control attack (0) | 2021.02.02 |
악성코드 분석 시작 (0) | 2021.02.02 |
네트워크 포렌식 CTF 3, 5 (0) | 2021.02.02 |