[2024.09.19]
[정적 분석 도구]
> GUI 버전
1) OllyDBG
2) IDA Pro
3) PEiD
4) PEView
5) PEstudio
6) HxD
7) WinMD5
8) Resource Hacker
9) Dependency Walker
> Text 버전
10) UPX
11) Strings
12) hashdeep
[동적 분석 도구]
1) Process Explorer
2) Process Monitor
3) Wireshark
[정적 분석 순서]
01. 자동화 분석
> 분석 도구: virustotal.com
> 분석 결과:
*실습 때는 윈도우 xp를 사용하여 접속이 불가했기 때문에
윈도우 7이랑 호환해서 실습을 진행하면 좋을 것 같다
02. 해시 값 확인
> 분석 도구: hashcalc, WinMD5
> 분석 결과:
여기에서 Lab01-01을 선택해 준다
그렇게 되면 Lab01-01에 대한 해시 값이 분석되어 확인할 수 있다
03. 패킹 유무 확인
> 분석 도구: PEiD, exeinfope, pestudio
이번에는 차례대로 Lab01-01, Lab01-01.dll, Lab01-02를 분석하려고 한다
Lab01-01, Lab01-01.dll는 언패킹 상태기 때문에 EP Section이 .text로 표시된다
반면에 Lab01-02의 경우 upx1으로 나와 있으며,
해당 섹션은 패킹이 되어 있는 상태를 뜻한다
04. PS 구조 확인
> 분석 도구: PEview
> 분석 결과:
PEview를 통해 구조를 확인할 수 있다
헤더가 3개이기 때문에 오른쪽의 결과에도 3개로 나타난다
05. DDL, API 정보 확인
> 분석 도구: Dependency Walker, Resource Hacker
06. 파일 상세 분석
> 분석 도구: pestudio
07. 문자열 정보 검색
> 분석 도구: strings, ollydbg
> 분석 결과:
IDA도 사용 가능하지만 ollydbg에 비해서는 사용률이 떨어진다고 보면 된다
다음은 명령 프롬프트를 이용하기 위해 Chapter_1L 파일을 따로 복사 후 지정하기 쉬운 경로에 두고,
그 파일 안에 strings를 복사하여 넣어 준다
악성코드 분석 디렉터리로 들어가서 Chapter_1L 파일이 있는지 확인하고,
존재한다면 해당 디렉터리로 또 다시 이동한다
strings를 이용하여 Lab01-01.exe 파일을 실행하면 문자열 정보를 확인할 수 있다
처음에는 잘 사용하지 않는 문자열이 나오기도 하지만,
뒤에서는 kernel132.dll이라는 중요한 문자열이 확인되기도 한다
마지막으로 ollydbg에서도 Lab01-01 파일을 열어 함수를 확인했다
strings에 비해서는 사용하는 함수만 나와 있는 것을 볼 수 있다
[악성코드 주요 API]
01. 패킹 관련 API
> LoadLibrary
> GetProcessAddress
02. 파일 관련 API
> MoveFile
> GetFileSize
> SetFileAttributes
> GetSystemDirectory
> FindNextFile
> FindClose
> GetTempPath
> CrateFile
> WriteFile
> CreateFileMapping
> MapViewOffice
> UnMapViewOffice
> CopyFile
> ReadFile
03. 리소스 관련 API
> FindResource
> SizeofResource
> LoadResource
> LockResource
04. DDL 인젝션 관련 API
> CreateRemoteThread
> GetProcessAddress
> LoadLibrary
> OpenProcess
> VirtualAlloc
> WriteProcessMemory
강의 소감
이번 강의에서는 분석 도구와 분석 순서 및 함수 API에 대해서 알아봤다
Windows 7에에서는 사용이 불가능한 프로그램들이 많이 있어
이번 시간에는 Windows xp를 설치해서 사용했다
7보다 사용이 가능한 프로그램도 많지만, 7에서 사용할 수 있는 프로그램도 존재하기 때문에
이 부분은 호환이 필요할 것 같다
그래서 앞으로의 실습에서는 7과 xp를 둘 다 사용하게 될 것 같고,
마지막으로 앞으로 사용할 함수에 대해서 배웠다
아직 함수에 대해 잘 알지 못하기 때문에 함수에 익숙해지려는 공부를 해야 되겠다