책소개
윈도우 리버싱 가이드. 윈도우 구조를 먼저 이해한 뒤, 실습을 통해 '리버싱'을 익히도록 안내한다. 부팅에서부터 모든 시스템 자원이 세팅되는 단계까지 체계적으로 정리되어 있어 기초실력부터 단단하게 다질 수 있다. 또한 단순 이론만 가르쳐주는 방식이 아니라 실제로 디버깅 환경을 구축해보고 내부 구조를 살펴보는 방식을 취하고 있다. 윈도우 시스템의 구조에 대한 이해를 바탕으로 어떻게 해킹이나 장애를 진단하고 해결해가는지를 직접 실습하며 익힐 수 있다.
목차
1부. 윈도우 구조: MBR에서 로그온까지1장. 부팅의 시작: MBR (실습) 1.1 실습 준비 1.2 MBR 영역 코드 분석 1.3 MBR 영역 실시간 분석 1.4 부트 섹터 2장 Windbg 준비 (실습) 2.1 실습 준비 2.2 심볼 설정 2.3 커널 디버깅 3장 시스템 시작: 커널 생성 (Ntos****.exe) 3.1 System과 Idle 4장 커널과 유저의 소통: 시스템 프로세스 4.1 서브시스템(Subsystem) 4.2 세션 관리자 Smss.exe 4.3 서브시스템 관리자 Csrss.exe 4.3.1 LPC 4.4 로그인 관리자 Winlogon.exe 4.4.1 새로운 세션 0 관리자 Wininit.exe 4.5 보안 관리자 - Lsass.exe 4.6 서비스 관리자 Services.exe 4.6.1 서비스 계정 4.7 유저 초기화 - Userinit.exe 4.8 아직 끝나지 않은 부팅 - 자동 실행 5장 커널 진입: Ntdll.dll6장 운영: 성능/관리 (실습) 6.1 실습 준비 6.2 성능 6.2.1 성능 모니터링 6.2.2 Xperf 6.2.3 네트워크 6.3 관리 6.3.1 WMI 6.4 덤프 분석 2부 윈도우 내부 동작 이해7장 프로세스, 스레드(실습) 7.1 EPROCESS, KPROCESS 8장 레지스터 9장 어셈블리 (실습)9.1 실습 준비 9.2 MOV 명령 9.3 CMP 명령 9.4 ADD/SUB 명령 9.5 PUSH/POP 명령 9.6 INC/DEC 명령 9.7 NOT/AND/OR/XOR 명령 9.8 DIV/IDIV 명령 9.9 CALL/JMP/RET 명령 10장 스택 10.1 함수 호출 규약 11장 스레드 스케줄링 12장 퀀텀 13장 디스패칭 13.1 Interrupt Dispatching 13.2 System Service Dispatching 13.3 Exception Dispatching 13.3.1 1st Chance, 2nd Chance 확인/분석 13.3.2 KiDebugRoutine 14장 메모리 관리 14.1 메모리 풀 14.2 힙 14.3 페이지 테이블 엔트리(PTE) 14.4 데스크탑 힙(Desktop heap) 15장 I/O Request 15.1 드라이버, 디바이스, 파일 개체 3부 윈도우 역분석: 해킹과 장애16장 인지의 중요성 16.1 해킹 진행 절차 16.1.1 정보 수집 단계 16.1.2 취약점 확인(공격) 단계 17장 역분석의 묘미: 프로그램 역분석 (실습) 17.1 기계어를 분석한다 17.2 디어셈블러(디버거) 17.3 디컴파일러 17.3.1 C/C++ 17.3.2 .NET (C#) 17.3.3 그외 17.4 분석 준비 ? PE 구조 (실습) 17.4.1 실습 준비 17.4.2 PE 구조(Header) 17.4.2.1 DOS Header 17.4.2.2 NT Header 17.4.2.3 IMAGE_OPTIONAL_HEADER32 17.4.2.4 Section Header 17.4.2.5 IAT(Import Address Table), EAT(Export Address Table) 17.5 프로그램 정적 분석 17.5.1 PEiD 17.5.2 Strings 17.5.3 Virustotal 17.6 프로그램 동적 분석 18장 증거 확보/분석을 위한 데이터 수집(실습) 18.1 실습 준비 18.2 휘발성 데이터 18.2.1 시스템 이름 18.2.2 시스템 시간 18.3.3 디스크 정보 수집 18.2.4 로그인 유저 18.2.5 사용 중인 프로세스 리스트 18.2.6 사용 중인 서비스 리스트 18.2.7 사용중인 핸들 18.2.8 사용 중인 Dll 18.2.9 변조된 시스템 파일 18.2.10 숨김 파일 18.2.11 최근에 접근한 파일 18.2.12 네트워크 인터페이스 정보 18.2.13 네트워크 사용 정보 18.2.14 네트워크 공유 리스트 18.2.15 메모리 18.2.15.1 메모리와 프로그램(실행 파일) 분석의 차이와 이유 18.2.15.2 프로세스별 메모리 덤프 생성 18.2.15.3 전체 메모리 덤프 생성 18.2.16 클립보드 및 명령 사용 내역 18.3 비휘발성 데이터 18.3.1 이벤트 로그 18.3.2 레지스트리 18.3.3 디스크 데이터 18.3.4 MBR 영역 18.4 수집 방법 18.4.1 로컬 수집 18.4.2 원격 수집 18.4.2.1 Psexec 18.4.2.2 Netcat 18.4.2.3 FSP와 FRUC 18.5 MPSReport - 종합 로그 수집 도구 19장 분석 19.1 로그 분석 19.1.1 분석을 위한 준비 19.1.2 tr 19.1.3 awk 19.1.4 uniq 19.1.5 sort 19.2 메모리 분석 19.2.1 Volatility 19.3 레지스트리 분석 19.3.1 키, 값 19.3.2 하이브 19.3.3 Regripper 19.3.3.1 System 19.3.3.2 Software 19.3.3.3 Security 19.3.3.4 Sam 19.3.4 삭제된 레지스트리 확인 19.4 패킷 분석 19.4.1 TCP/IP 4계층 19.4.2 패킷 분석 19.4.3 패킷 수집 19.4.3.1 Tcpdump 19.4.3.2 Tshark 19.4.4 패킷 통계(세션) 19.4.4.1 Argus 19.5 파일 분석 19.5.1 파일 헤더 19.5.2 Autopsy 19.5.3 삭제 파일 19.5.4 파일 복구 19.5.5 파일 복구 방지 20장 증명할 수 있는 근거: 무결성 20.1 Fciv 20.2 FileVerifier++ 21장 난 네가 한 일을 알고 있다: 사용자 추적 21.1 실행 프로그램 - Userassist Keys 21.2 실행 프로그램 - MUICache 21.3 열어본 문서와 입력 실행 ? MRUList, RunMRU 21.4 인터넷 흔적 - Typedurls 21.5 메일 추적 - Exchange 22장 보초를 세우다: 감시 22.1 시스템 감시 - 파일 22.2 시스템 감시 - 로그 22.3 네트워크 감시 22.3.1 Windows에서 스구일 클라이언트 실행하기 22.3.2 IP 역추적 22.3.3 IP 확인 22.3.4 Nmap 22.3.4.1 오픈 포트 스캔 22.3.4.2 차단 포트 스캔형(스텔스 스캔) 22.3.4.3 스캔 부가 옵션 4부 끝나지 않는 이슈: 보안과 운영23장 후킹 23.1 유저 모드 후킹 23.1.1 SetWindowsHookEx 23.1.2 CreateRemoteThread 23.2 커널 모드 후킹 23.2.1 IRP 후킹 23.2.2 SSDT 후킹 23.3 루트킷 탐지 23.3.1 HookShark 23.3.2 GMER 86923.3.3 Kaspersky TDSSKiller 23.3.4 Avast Anti-Rootkit 23.3.5 Sophos Anti-Rootkit 24장 안티 디버깅: 프로그램 보호 24.1 디버거 탐지 24.1.1 INT3 (예외 처리) 24.1.2 GetTickCount (시간차) 24.1.3 BeingDebugged (프로세스 정보) 24.1.4 CheckRemoteDebuggerPresent (API) 24.1.5 HardwareBreakpoint (브레이크 포인트) 24.1.6 FindWindow (프로세스 확인) 24.2 프로세스(프로그램) 보호 24.2.1 스레드 ID 24.2.2 스택 영역 24.2.3 DKOM 24.3 패킹?프로그램 암호화 24.3.1 패커 분석 24.3.2 패킹 도구-더미다 24.3.3 JunkCode 25장 네트워크 보호 25.1 ACL 기본 25.1.1 일반형(Standard) Access-list 25.1.2 확장형(Extended) Access-List 25.1.3 왜 인바운드(Inbound)를 차단할까? 25.1.4 Established를 통한 인바운드 트래픽 필터링 설정 25.2 DDoS 보호 설정 25.2.1 사설, 내부 네트워크, Broadcast Spoofing 필터링 구성 25.2.2 RPF(Reverse Path Forwarding)를 이용한 Source IP Spoofing 필터링 25.2.3 TCP Syn Flooding 필터링 25.2.4 Rate limit 설정을 통한 필터링 25.3 논리적 격리 VLAN 25.4 IP 숨기기, 속이기 26장 IP 기반 로그인 보안 프로세스 구성과 개발 (실습) 26.1 현재 로그인 보안 프로세스 26.2 우리가 알아야 할 것 26.3 어떻게 통제할 것인가? 26.4 실습 준비 26.5 실전 개발?웹 부분 26.5.1 10초 이내 로그인 방지 26.5.2 블록(차단) IP 확인 26.5.3 1시간 이내 로그인 성공 계정 보호, 공격 IP 설정 26.6 실전 개발 - 저장 프로시저 부분 27장 NoSQL?!: 부하 분산 (실습) 27.1 실습 준비 27.2 SqlCacheDependency를 이용한 ASP 캐시 28장 유용한 도구들 28.1 Paros 28.2 CooxieBar 28.3 Cppcheck 28.4 DumpbinGUI 28.5 Fiddler2 28.6 Websecurify 28.7 Gflags