이미 소장하고 있다면 판매해 보세요.
|
1장 개발 환경 구축
1.1 운영체제 요구 사항 1.2 파이썬 2.5 설치 1.2.1 윈도우에서의 파이썬 설치 1.2.2 리눅스에서의 파이썬 설치 1.3 이클립스와 PyDev 설치 1.3.1 ctypes 1.3.2 동적 라이브러리 이용 1.3.3 C 데이터 타입 1.3.4 레퍼런스를 통한 파라미터 전달 1.3.5 구조체와 유니언 정의 2장 디버거 2.1 범용 CPU 레지스터 2.2 스택 2.3 디버그 이벤트 2.4 브레이크포인트 2.4.1 소프트 브레이크포인트 2.4.2 하드웨어 브레이크포인트 2.4.3 메모리 브레이크포인트 3장 윈도우 디버거 개발 3.1 디버기 3.2 CPU 레지스터 상태 얻기 3.2.1 스레드 리스트 3.2.2 종합 3.3디버그 이벤트 핸들러 구현 3.4브레이크포인트 3.4.1 소프트 브레이크포인트 3.4.2 하드웨어 브레이크포인트 3.4.3 메모리 브레이크포인트 3.5 정리 4장 PyDbg - 순수 파이썬 윈도우 디버거 4.1 브레이크포인트 확장 4.2 접근 위반 핸들러 4.3 프로세스 스냅샷 4.3.1 프로세스 스냅샷 얻기 4.3.2 종합 5장 Immunity 디버거 5.1 Immunity 디버거 설치 5.2 Immunity 디버거 101 5.2.1 PyCommand 5.2.2 PyHooks 5.3 공격 코드 개발 5.3.1 공격 코드에서 사용할 명령 찾기 5.3.2 문자 필터링 5.3.3 윈도우의 DEP 우회 5.4 악성 코드의 안티 디버깅 루틴 무력화 5.4.1 IsDebuggerPresent 5.4.2 반복적인 프로세스 탐지 기법 우회 6장 후킹 6.1 PyDbg를 이용한 소프트 후킹 6.2 Immunity 디버거를 이용한 하드 후킹 7장 DLL과 코드 인젝션 7.1 원격 스레드 생성 7.1.1 DLL 인젝션 7.1.2 코드 인젝션 7.2 백도어 제작 7.2.1 파일 숨기기 7.2.2 백도어 코딩 7.2.3 py2exe로 컴파일하기 8장 퍼징 8.1 버그의 유형 8.1.1 버퍼 오버플로우 8.1.2 정수 오버플로우 8.1.3 포맷 스트링 공격 8.2 파일 퍼저 8.3 추가 고려 사항 8.3.1 코드 커버리지 8.3.2 자동화된 정적 분석 9장 Sulley 9.1 Sulley 설치 9.2 Sulley 프리미티브 9.2.1 문자열 9.2.2 구분자 9.2.3 정적, 랜덤 프리미티브 9.2.4 바이너리 데이터 9.2.5 정수 9.2.6 블록과 그룹 9.3 Sulley를 이용한 WarFTPD 퍼징 9.3.1 FTP 기초 9.3.2 FTP 프로토콜의 골격 생성 9.3.3 Sulley 세션 9.3.4 네트워크와 프로세스 모니터링 9.3.5 퍼징과 Sulley 웹 인터페이스 10장 윈도우 드라이버 퍼징 10.1 드라이버 통신 10.2 Immunity 디버거를 이용한 드라이버 퍼징 10.3 Driverlib - 드라이버 정적 분석 툴 10.3.1 디바이스 이름 알아내기 10.3.2 IOCTL 디스패치 루틴 찾기 10.3.3 IOCTL 코드 찾기 10.4 드라이버 퍼저 작성 11장 IDAPython - IDA Pro 스크립팅 11.1 IDAPython 설치 11.2 IDAPython 함수 11.2.1 유틸리티 함수 11.2.2 세그먼트 11.2.3 함수 11.2.4 교차 참조 11.2.5 디버거 후킹 11.3 스크립트 예제 11.3.1 위험한 함수에 대한 교차 참조 찾기 11.3.2 함수 코드 커버리지 11.3.3 스택의 크기 계산 12장 PyEmu - 스크립트 가능한 에뮬레이터 12.1 PyEmu 설치 12.2 PyEmu 개요 12.2.1 PyCPU 12.2.2 PyMemory 12.2.3 PyEmu 12.2.4 실행 12.2.5 메모리와 레지스터 변경자 12.2.6 핸들러 12.3 IDAPyEmu 12.3.1 함수 에뮬레이트 12.3.2 PEPyEmu 12.3.3 실행 파일 팩커 12.3.4 UPX 팩커 12.3.5 PEPyEmu를 이용한 UPX 언팩 |
|
나는 해킹을 목적으로 파이썬을 배웠다. 나뿐만 아니라 다른 사람들도 모두 해킹을 목적으로 파이썬을 배운다고 과감히 말할 수 있다. 나는 오랫동안 해킹과 리버스 엔지니어링에 알맞은 언어를 찾아왔다. 그런 와중에 몇 년 전 파이썬을 알게 됐고 파이썬은 곧 해킹 프로그래밍 언어 분야에서 독보적인 위치를 차지하게 됐다. 그런데 묘한 점은 다양한 해킹 작업을 수행하기 위해 파이썬을 어떻게 사용해야 하는지를 알려주는 실질적인 매뉴얼이 어디에도 없다는 점이었다. 그래서 관련 포럼에 올라온 글이나 도움말을 뒤지거나 일일이 코드를 수정해 가면서 제대로 동작하는 데 많은 시간을 투자해야 했다. 이 책은 이런 점을 채워주기 위해 파이썬을 써서 해킹과 리버스 엔지니어링을 수행하는 방법을 설명한다.
이 책을 통해 다버거, 백도어, 퍼저, 에뮬레이터, 코드 인젝션 같은 대부분의 해킹 툴이나 기술의 바탕이 되는 이론을 배우게 될 것이다. 또한 자신만의 독특한 솔루션이 필요하지 않은 경우에는 이미 제작된 파이썬 툴만으로도 충분하다는 사실을 알게 될 것이다. 그리고 파이썬 기반 툴의 사용법뿐만 아니라 파이썬으로 툴을 제작하는 방법을 배우게 될 것이다. 하지만 명심해야 할 점은 이 책이 파이썬에 대한 완벽한 레퍼런스가 아니라는 점이다. 이 책에서 다루지 않는 파이썬으로 제작된 정보 보호 툴(infosec tool)도 많이 있다. 그럼에도 불구하고 이 책은 많은 공통 기술을 다루고 있으므로 선택한 어떤 파이썬 툴이든 사용할 수 있고, 디버그할 수 있고, 기능을 확장시킬 수도 있다. 다양한 방법으로 이 책을 읽을 수 있다. 파이썬을 처음 접하거나 해킹 툴 제작을 처음 해본다면 처음부터 끝까지 순서대로 읽기를 권한다. 그러면 책 전반에 걸쳐 몇 가지 필요한 이론과 수많은 파이썬 코드, 해킹과 리버싱 작업 등을 수행하는 다양한 방법을 확실히 이해할 수 있을 것이다. 이미 파이썬에 익숙하고 cyptes 파이썬 라이브러리를 잘 알고 있다면 2장부터 읽기를 권한다. 그리고 이미 경험이 많다면 필요할 때마다 이 책의 코드를 참조하거나 특정 절을 찾아 읽자. 나는 2장에서 디버거에 대한 이론 설명을 시작으로 5장의 Immunity 디버거에 이르기까지 디버거에 많은 분량을 할당했다. 디버거는 해커에게 있어 핵심적인 툴이므로 디버거에 대해 광범위하게 설명하는 것을 주저하지 않았다. 6장과 7장에서는 프로그램 제어와 메모리 조작 같은 디버깅 개념을 추가할 수 있는 후킹과 인젝션 기술을 배운다. 이어지는 장에서는 애플리케이션 공격에 대한 주제를 다룬다. 8장에서는 퍼징을 배우고 기본적인 파일 퍼저를 작성해본다. 9장에서는 강력한 Sulley 퍼징 프레임워크를 이용해 실제 FTP 데몬에 대한 퍼징을 수행해보며, 10장에서는 윈도우 드라이버를 공격하기 위한 퍼저를 어떻게 작성하는지 배운다. 11장에서는 유명한 바이너리 정적 분석 툴인 IDA Pro에서 정적 분석 작업을 자동화하는 방법을 배운다. 끝으로 12장에서는 파이썬 기반 에뮬레이터인 PyEmu에 대해 배운다. 나는 이 책의 코드를 최대한 간결하게 만들고 해당 코드가 어떻게 동작하는지 자세히 설명하려 노력했다. 새로운 언어를 배우거나 새로운 라이브러리를 배워 코드를 실제로 작성하고 오류를 디버깅하는 데는 시간이 필요하다. 독자들이 코드를 직접 작성해보길 권한다. 이 책에서 다루는 모든 소스코드는 http://www.nostarch.com/ghpython.htm이나 http://www.acornpub.co.kr/ book/python-hacking에서 다운로드하면 된다. 자, 그럼 시작하자! --- '저자의 말' 중에서 파이썬을 이용하면 기존의 C/C++보다 원하는 것을 빠르게 개발할 수 있다. 물론 어떤 것을 개발하느냐에 따라 얘기는 달라질 수 있겠지만 매우 효율적인 프로그래밍 언어라는 점에는 누구도 이의를 제기하지 않을 것이다. 또한 파이썬은 플랫폼 독립적인 프로그래밍 언어다. 즉, 파이썬 인터프리터를 지원하는 플랫폼이라면 어느 플랫폼에서든지 파일썬으로 작성한 프로그램을 실행시킬 수 있다. 윈도우, 리눅스, 맥 OS뿐만 아니라 자바와 닷넷(.NET) 가상 머신에서도 파이썬 프로그램의 동작이 가능하다. 이처럼 파이썬은 장점이 많다. 실제로 많은 보안 업체에서 파이썬으로 각종 툴을 제작해 사용한다. 보안 분야에서는 속도와 효율성이 매우 중요한 요소이며, 이런 요구에 부합하는 것이 바로 파이썬이다. 보안 분야뿐만 아니라 상용 애플리케이션이나 오픈소스 프로젝트에서도 파이썬이 많이 사용된다. 대표적인 예로 비트토렌트(BitTorrent)를 들 수 있다. 이 책은 두껍지 않으면서도 알찬 내용으로 가득 차 있다. 시스템 레벨의 지식이 필요하긴 하지만 책의 내용을 숙지하는 것만으로도 자기 자신의 간단한 디버거, 각종 ?저, 다양한 모니터링 툴 등을 제작해 사용할 수 있다. 또한 이 책에서 사용되는 예제는 조금만 수정하면 현업에서도 충분히 사용할 만한 툴이 될 수 있다. 그만큼 책의 내용이 실질적이고 구체적이기 때문이다. 끝으로, 독자 여러분 모두가 부디 이 책을 통해 보안 취약점 발견, 디버깅, 후킹 등의 세계에 푹 빠지길 바란다. --- '옮긴이의 말' 중에서 |
|
해커와 리버스 엔지니어가 꼭 알아야 할 손쉽고 빠른 파이썬 해킹 프로그래밍. 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명하며, 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 알려준다.
파이썬은 쉽고 빠르게 작성할 수 있고 로우레벨을 지원하며 해커들을 행복하게 해주는 다양한 라이브러리를 제공한다는 장점 때문에 해커와 리버스 엔지니어, 소프트웨어 테스터들이 애용하는 프로그래밍 언어로 자리잡았다. 하지만 파이썬을 이용한 해킹 방법을 설명하는 참고서적은 드물었기에, 관련 포럼에 올라온 글이나 도움말을 뒤지거나 코드가 제대로 동작하도록 일일이 코드를 수정해가면서 확인해야만 했다. 『파이썬 해킹 프로그래밍』은 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명한다. 또한 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 배울 수 있다. - 지루하고 힘든 리버싱과 보안 분석 작업의 자동화 노하우 - 자신만의 디버거 제작 방법 - 퍼저 작성과 윈도우 드라이버 퍼징 방법 - 코드와 라이브러리 인젝션 기술, 소프트 후킹과 하드 후킹 기술 - 암호화된 웹 브라우저 세션의 보안 트래픽 스니핑 - PyDbg, Immunity 디버거, Sulley, IDAPython, PyEmu 사용법 |