반응형
리버싱
- 고급 디버깅 기술
- 조건 브레이크 포인트
- 레지스터가 특정값일때 브레이크 포인트를 거는 것.
- WinDEG
- bp 0x41424344 "j @eax=0x1234568 \;g\"
- Immunity Debugger & OllDebugger
- Shift + F2
- BreakPoint -> Conditional
- Ctrl+T 에서 Condition is TRUE
- 하드웨어 브레이크 포인트
- 특정 메모리 값을 읽거나 쓸 때 브레이크 포인트를 설정
- 메모리값 자체에 설정하는 기능
- 오른쪽 클릭 breakpoint > Hardware, on access > Dword
- IDA분석 결과 디버거에서 불러오기
- API 호출에 비해 코드내 어셈블리어로 구해 넣는 컴파일러의 최적화 기능의 경우 분석이 더 어렵다. 이에 ㅇIDA는 패턴분석을 통해 자동으로 Microsoft 심볼 서버와 연동해서 보여 준다.
- IDA 함수 매핑 정보 Export
- File > Produc file > Create MAP file 을 통해 심볼과 매핑된 소스 생성.
- 이정보를 Immuity Debugger
- 디버거 플러그인 활용
- WinDBG !exploitable 모듈
- https://msecdbg.codeplex.com
- Immunity Debugger HideDebug
- 안티디버깅을 무력화 할 수 있는 플러그인
- 명령
- !hidedebug Peb //peb를 이용해 안티 디버깅 무력화
- !hidedebug All_Debug // 지원하는 모든 안티 디버깅 무력화
- IDA Pro IDA-Sploiter
- 대표 상용 플러그인 Hex-Ray, BinDiff, BinNavi
- Immunity Debugger의 mona와 비슷한 기능 제공
- ROP 가젯 검색 및 ROP 체인 작성과 관련된 기능들을 제공
- https://thesprawl.org/projects/ida-sploiter
- >IDA설치폴더의 plugins 폴더에 복사
- Plugins 메뉴에 IDA Sploiter 추가됨.
- 실행을 위해선 디버거를 실행한뒤 멈추고 실행
- 내장 Local Win32 debugeger 선택후 pause
- View > open subviews > Modules선택
- 현재 로드된 모듈들의 SafeSEH, ASLR, DEP 정보를 포함한 다양한 정보 확인 가능
- 필터 설정으로 ROP체인을 만기위해 적절한 필터링 가능.
- 우클릭 > Modify filters
- 버그 헌팅을 위한 리버싱
- 소스가 없다면 리버싱을 해야하고, 퍼징을 통해 크래시를 찾았다고 하더라도 공격 가능성 여부를 판단해야함 > Poc
- 바이너리 코드 리뷰
- 취약 함수등 버그가 존재할 가능성이 있는 코드부터 함수를 호출하는 루틴을 분석하는 방식
- 프로그램의 모든 코드를 분석하는 방식
- 바이너리 디핑
- 패치된 파일과 패치되기 이전의 파일을 비교하여 패치된 루틴을 중점으로 분석하면 버그 찾기 가능.
- 유료 툴 BinDiff , 무료 툴 DarunGrim
- DarunGrim
- 순서
1. 원본 파이릉ㄹ IDA에서 로드한뒤 dgf 파일 생성
2. 패치 파일을 IDA에서 로드한뒤 dgf 파일 생성
3. DarunGrim 실행 후 위에서 생성한 실행 파일 전후의 dgf 파일 분석
4. 바이너리 디핑 결과를 참고하여 패치된 부분 분석
반응형
'System > Windows' 카테고리의 다른 글
Windows 7 Pro 32bit/Analysis/메모리 보호기법 해제 (0) | 2018.01.10 |
---|---|
System/Hacking/Fuzzing (0) | 2017.11.30 |
System/DllInject/레퍼런스 및 오류 (0) | 2017.11.30 |
System/Hacking/버그헌팅/기본 방법론 (0) | 2017.11.30 |
System/Hacking/ASLR/ASLR 우회 (0) | 2017.11.30 |