HWP 쉘코드 찾기
가장 간단한 방법으로 HWP의 쉘코드를 찾는 방법을 기록한다.
여기서는 누리랩에서 만든 HwpSacn이라는 툴을 이용한다.
1. HwpSacn으로 HWP을 열고 취약점 검사 버튼을 누르면 취약점이 존재하는 섹션은 알수가 있다.
2. 취약점이 존재하는 섹션을 덤프를 떠야 하는데 한글은 데이터가 압축되어 있어 정확한 데이터를 얻기 힘들지만 HwpSacn 툴은 압축을 해제한 데이터 덤프도 제공하고 있다.
취약점 색션 우클릭 > Save a Hex (Decompress)..
3. 해당 덤프를 올리로 실행시켜 쉘코드를 찾는다.
올리디버거로 아무 EXE를 실행한다. (예. 나 같은 경우는 올리에서 쓰는 loaddll.exe를 많이 씀) 그이후 memory map창을 열고 덤프 파일을 로드 시킨다.
memory map 단축키 : Alt + M
덤프 로드 : memory map 우클릭 > Load dumped memory > 덤프파일 선택 > Allocate
4. CPU창에 화면을 덤프를 로드한 위치로 이동하고 쉘코드를 찾기 위해 Binary string 검색을 한다.
CPU창 우클릭 > Search for Binary string
쉘코드를 찾기 위해 다음 바이너리를 검색한다.
64 8b 64
64 a1 30
64 8b 15 30
64 8b 35 30
55 8b ec 83 c4
55 8b ec 81 ec
55 8b ec e8
55 8b ec e9
위 내용이 없을 경우 90 90 90 90 을 검색한다 .
쉘코드가 찾아 지면 해당위치로 EIP를 이동한 후 분석을 실행한다.