기초 정적분석
공통 DLL
Kernel32.dll
- 메모리, 파일, 하드웨어 접근과 조작과 같은 핵심 기능을 담은빈번히 공통으로 사용되는 DLL
Advapi32.dll
- 이 DLL을 이용하면 서비스 관리자나 레지스트리 같은 추가 핵심 윈도우 컴포넌트에 접근할 수 있다
User32.dll
- 버튼, 스크롤바, 사용자 행위 제어와 반응 컴포넌트 등 모든 사용자 인터페이스 컴포넌트
Gdi32.dll
- 그래픽관련 함수
Ntdll.dll
- 윈도우 커널 인터페이스, 이건 뭐라 설명하기가 힘들다
WSock32.dll
- 네트워크관련 작업을 수행한다
Wininet
- FTP, HTTP, NTP 같은 프로토콜을 구현한 상위수준의 네트워크 함수를 담고있다
- 윈도우가 업데이트되면서 업데이트한 신규 함수가 기존 함수와 같은 이름일 경우 Ex접미사를 붙인다
- 문자열을 인자로 전달받는 대다수 함수는 함수명 뒤에 A나 W를 붙인다.
<PE 파일 헤더>
.text
- CPU가 실행하는 명령어를 담고 있다.
.rdata
- 임포트와 엑스포트 정보
.data
- 프로그램의 전역 데이터 저장
.rsrc
- 이미지 메뉴 아이콘 문자열 등 같은 실행파일의 일부로 간주되지 않는 리소스
.reloc
- 라이브러리 파일의 재배치 정보
임포트
- 악성코드가 사용하는 다른 라이브러리 함수
익스포트
- 다른 프로그램이나 라이브러리가 호출할 수 있는 악성코드 내의 함수
Time Date Stamp
- 다른 프로그램이나 라이브러리가 호출할 수 있는 악성코드 내의 함수
섹션
- 파일 내의섹션명과 디스크와 메모리크기
서브시스템
- 프로그램이 커맨드라인 기반인지 GUI 애플리케이션인지 알려줌
<기초 정적 분석 실습>
https://github.com/mandiant/capa-testfiles
파일은 여기서 줏엇습니다
이 외계인 책 맞음
Lab01-01.exe 와 Lab01-01.dll
1. 바이러스토탈에 업로드하고 보고서 관찰, 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가
<dll 파일을 올렸을 때>
70 개의 엔진 중 38개가 악성코드라고 진단
<exe 파일을 올렷을 때>
71 개중 54개의 엔진이 악성코드로 진단 했다
공통적으로 트로잔이라는 문구가 공통적으로 많이 보인다
2. 이 파일은 언제 컴파일 됬는가?
NT 헤더 부분을 보면 Time Data Stamp를 보면 알 수 잇따
2010/12/19 16:16:38 UTC가 dll이 만들어진 시간
2010/12/19 16:16:19 UTC 가 exe가 만들어진 시간
3. 이 파일이 패킹되거나 난독화된 징후가 있는가?
pe 분석 프로그램을 통한 결과, 패킹되있지는 않은 듯
<dll>
<exe>
그리고 임포트 함수목록에서 많은 함수들이 보이기 때문에 패킹되있지 않다고 판단
4. 임포트를 보고 악성코드의 행위를 알아낼 수 있는가?
<dll 파일>
dll파일의 임포트 목록, inet_addr, 소켓관련 함수들을 보니 소켓을 열어서 뭘 하든가 그런거 아닐까 추측해봅니다
exe 파일의 임포트 목록, 커널32.dll 에서의 임포트 목록을 보면 파일을 만들고 읽는... 그런(맞나?) 함수들이 보인다
특이 한점은 FindNextFile 등 find file 함수들인데 검색해보니 파일탐색기로 무슨 파일을 찾는 그런 함수라카다
5. 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트기반의 증거가 존재하는가
exe 파일의 문자열 목록 중 중간에 보면 kerne132.dll 이라는 파일이 보인다
밑에는 system32 안에 kerne132.dll 이라는 파일이 보이는데 앞에 create 파일같은걸 보면 system32 폴더 내에
kerne132.dll 파일을 만드는 그런 악성코드가 아닐까 추측해본다
6. 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가
<dll 파일>
dll 파일에 문자열들을 출력해보니 127.26.152.13 이라는 ip가 보인다 매우매우 수상
<exe파일>
참조 목록과 함수 등 뭐가 주르륵 나온다 마지막에 WARNING_THIS_WILL_DESTROY_YOUR_MACHINE 이라는
문구가 보인다. 나는 악성파일이라고 광고중
7. 이 파일의 목적은 무엇이라고 판단했는가?
실행되면 프로세스를 만들고 같이 있는 dll 파일을 통해 백도어를 만들고 소켓 통신을 통해 위에 나온 ip로 통신한다던가
뭐 그런거 아닐까 생각해봅니다