project/windows zero-day hunting

Tip

윈도우 퍼징 관련 프로젝트를 진행하면서 사용한 팁 아닌 팁들을 적어두었다.

Immunity debugger

중요한 mona.py 를 사용하기 위해 Immunity debugger 폴더 C:\Program Files (x86)\Immunity Inc\Immunity Debugger (경로는 환경마다 차이가 날 수 있다.) 안 PyCommands 폴더 안에 mona.py를 저장한다.

파일 여는법 + 인자 주는 법

opne으로 실행파일 열으면서 가장 밑 Arguments에 인자로 줄 파일 경로를 적어서 실행을 할 수 있다.

 

보호 기법 확인

!mona modules로 이미지 베이스 확인 및 보호 기법 확인 가능

 

Gadget

!mona findwild -s "pop r32#ret" -m kernel32.dll pop ret 가젯 찾는 명령어 다음과 같이 출력해준다.

 

ROP gadget

!mona rop로 가젯을 얻을 수 있다.

이때!mona config -set workingfolder 경로로 경로를 설정해주면 해당 경로에 저장이 되지만 그렇지 않을 경우 C:\Users\user\AppData\Local\VirtualStore\Program Files (x86)\Immunity Inc\Immunity Debugger에 저장이 된다.

위와 같이 저장된다.

 

Stack Pivoting

!mona stackpivot -distance 크기 Stack Pivoing에 사용할 가젯을 찾는 명령어. 크기 부분에 필요한 크기를 넣어 줌으로 찾는 시간을 단축시킬 수 있다.

위와 같이 저장된다.

 

Pattern

!mona pattern_create 크기로 무작위 패턴을 만들 수 있다.

!mona pattern_offset data로 offset도 구할 수 있다.

 

Windbg

Setting

위와 같이 bat파일, 실행파일, Crash파일을 폴더 안에 두고 bat파일에 windbg 실행파일 경로 crash파일 경로를 설정해두고 배치파일을 실행하면서 진행하면 편하다.

 

위와 같이 환경을 설정할 경우 File - Save Workspace로 저장하여 windbg를 종료해도 같은 환경에서 진행 가능하다.

 

특정 문자열 찾기

s -a 0x00000000 L?0xffffffff 문자열로 저장된 특정 문자열을 찾을 수 있음. 주로 파일 데이터 부분이 저장된 지 확인할 때 사용한다.

 

Reference

'project > windows zero-day hunting' 카테고리의 다른 글

JP2 File format  (0) 2020.02.26