CHAPTER 1 소개 소개: 파이썬과 침투 테스트 개발 환경 구성하기 외부 라이브러리 설치 파이썬의 두 가지 모드 파이썬 언어 변수 문자열 리스트 딕셔너리 네트워크 선택문 예외 처리 함수 반복문 파일 I/O SYS 모듈 OS 모듈 첫 번째 파이썬 프로그램 첫 번째 파이썬 프로그램을 위한 준비: 뻐꾸기의 알 첫 번째 스크립트 - 유닉스 패스워드 크래커 두 번째 프로그램: 선을 위해 악을 사용하기 두 번째 작품 - 압축파일 패스워드 크래커 요약 CHAPTER 2 침투 테스트 소개: 모리스 웜 - 오늘날에도 유효할까? 포트 스캐너 만들기 TCP 풀 커넥트 스캔 애플리케이션 배너 가져오기 쓰레드 사용하기 NMAP 포트 스캐너 통합하기 파이썬으로 SSH 봇넷 구축하기 PEXPECT로 SSH 연결하기 PXSSH로 SSH 패스워드 공격하기 취약한 개인 키를 통한 SSH 공격하기 SSH 봇넷 구축하기 FTP와 웹을 이용한 대규모 공격 파이썬으로 익명 FTP 스캐너 만들기 FTPLIB로 FTP 사용자 인증정보 공격하기 FTP 서버에 있는 웹 페이지 검색하기 웹 페이지에 악성코드 삽입하기 모든 공격 통합하기 컨피커, 노력하면 된다 메타스플로잇으로 윈도우 SMB 서비스 공격하기 메타스플로잇과 파이썬 연동하기 원격 프로세스 실행 공격하기 컨피커 최종 코드 통합하기 제로 데이 개념의 공격 코드 개발하기 스택 기반의 버퍼 오버플로우 공격 공격의 핵심 요소 추가하기 악성코드 전송하기 공격코드 모두 통합하기 요약 CHAPTER 3 포렌식 수사 소개: BTK 살인 사건의 핵심적 열쇠가 된 포렌식 수사 어제 밤에 당신이 있었던 곳은? - 레지스트리의 무선 AP 분석 WINREG로 윈도우 레지스트리 읽기 MAC 주소로 AP의 물리적 위치 파악하기 파이썬으로 휴지통에서 삭제된 아이템 복구하기 OS 모듈로 삭제된 아이템 찾기 파이썬으로 SID를 사용자 계정으로 매핑하기 메타데이터 PYPDF로 PDF 메타데이터 분석하기 EXIF 메타데이터 이해하기 BEAUTIFULSOUP으로 이미지 다운로드하기 파이썬 이미지 라이브러리로 이미지의 EXIF 메타데이터 읽어오기 파이썬으로 애플리케이션 사용흔적 수사하기 스카이프 SQLITE3 데이터베이스 이해하기 파이썬과 SQLITE3으로 스카이프 데이터베이스 쿼리 자동화하기 파이썬으로 파이어폭스 SQLITE3 데이터베이스 구문분석하기 파이썬으로 ITUNES 백업 조사하기 요약 CHAPTER 4 네트워크 트래픽 분석 소개: 오퍼레이션 오로라와 당연한 것을 놓친 이유 IP 트래픽의 목적지는? - 파이썬 방식 PYGEOIP로 IP 주소를 물리적 위치로 표시하기 DPKT로 패킷 분석하기 파이썬으로 구글 지도 만들기 어나니머스가 정말 익명인 것일까? LOIC 트래픽 분석 DPKT로 LOIC 다운로드 확인하기 IRC 명령어를 HIVE에 파싱하기 진행 중인 DDOS 공격 식별하기 무어가 미 국방부의 딜레마를 해결했던 방법 TTL 필드 이해하기 SCAPY로 TTL 필드 처리하기 스톰의 패스트 플럭스와 컨피커의 도메인 플럭스 DNS에 숨겨있는 정보 SCAPY로 DNS 트래픽 처리하기 SCAPY로 패스트 플럭스 트래픽 탐지하기 SCAPY로 도메인 플럭스 트래픽 탐지하기 케빈 미트닉과 TCP 일련 번호 예측 공격 TCP 일련번호 예측 공격 만들기 SCAPY로 SYN 플러딩 공격하기 TCP 일련번호 계산하기 TCP 연결 스푸핑하기 SCAPY로 IDS 공격하기 요약 CHAPTER 5 무선 기기 해킹 소개: 무선 보안과 아이스맨 무선 공격 환경 구축하기 SCAPY로 테스트하기 파이썬 블루투스 패키지 설치하기 WALL OF SHEEP - 무선 비밀 수동적으로 리스닝하기 파이썬 정규표현으로 신용카드 정보 스니핑하기 호텔 투숙객 스니핑하기 무선 구글 키로거 만들기 FTP 인증정보 스니핑하기 노트북 컴퓨터를 사용한 곳은? 파이썬 방식 802.11 프로브 요청 리스닝하기 숨겨진 802.11 네트워크 찾기 숨겨진 802.11 네트워크 식별하기 파이썬으로 UAV 제어하기 트래픽 캡쳐와 프로토콜 분석하기 SCAPY로 802.11 프레임 생성하기 공격 최종 단계. UAV 비상 착륙하기 FIRESHEEP 탐지하기 WORDPRESS 세션 쿠키 이해하기 WORDPRESS 쿠키 재사용 탐지하기 블루투스와 파이썬으로 스토킹하기 무선 트래픽으로 블루투스 주소 찾기 블루투스 RFCOMM 채널 스캔하기 BLUETOOTH SERVICE DISCOVERY PROTOCOL 사용하기 파이썬 OBEXFTP로 프린터 제어하기 파이썬으로 전화기 블루버그하기 요약 CHAPTER 6 정보수집 소개: 오늘날의 사회공학기법 공격 전의 정보수집 MECHANIZE 라이브러리로 인터넷 검색하기 익명유지 - 프록시, USER-AGENT, 쿠키 추가하기 파이썬 클래스에서 ANONBROWSER 최종화하기 ANONBROWSER로 웹 페이지 정보수집하기 BEAUTIFUL SOUP으로 HREF 링크 처리하기 BEAUTIFUL SOUP으로 이미지 미러링하기 연구, 조사, 발견 파이썬에서 구글 API 사용하기 파이썬으로 트윗 처리하기 트윗에서 데이터 가져오기 정규표현으로 트위터의 관심 사항 추출하기 익명의 이메일 대규모 사회공학기법 공격 SMTPLIB로 공격대상에 이메일 전송하기 SMTPLIB로 피싱 이메일 전송하기 요약 CHAPTER 7 백신 프로그램 우회 소개: 불을 지펴라! 백신 프로그램 우회하기 우회 검증하기
요약
해킹하는 방법에 대해 간결하게 정리한 책이다.
코드는 전부 파이선으로 되어 있고 코드가 많아도 100줄이 넘지 않는 듯 하다.
대부분의 예시 코드는 20줄 내외로 설명하고 있어서 이해하기에 어려움이 없다.
물론 컴퓨터 Language에 대한 기본적 이해가 없는 사람이라면 적은 양의 코드라도 어려움이 있을 듯 하다.
코드의 대부분은 파싱과 모듈 사용법으로 이루어져 있다.
파이선을 이용해서 파싱을 어떻게 하는지, 정규식( Regular Express )를 활용하는지에 대해 설명되어 있고,
네트워크 통신과 크래킹을 하기 위해 필요한 모듈들이 많이 존재 하고 있으며, 이를 어떻게 활용하는지 간단하게 설명되어 있다.
코드는 기본적으로 아래와 같은 형식으로 되어 있다.
필요 모듈 로드
; import ftplib
모듈 사용 선언
; ftp = ftplib.ftp
모듈 초기화
; ftp.ftp( host, user, pw, acct, timeout )
모듈을 활용하는 함수
; def Function
실행 아규먼트 파싱
; ./Command -a 127.0.0.1 -p 21 -u user -p passwd
메인함수
; main()
이 책을 통해서 Backtrack에 포함되어 있는 파이선 코드들이 어떻게 구성되어 있는지 이해할 수 있는 계기가 되기도 했다.
이 책에서 가장 기억에 남는 부분이 FTP공격, 블루투스 부분과 SMTP를 활용하는 부분이었다.
흥미로웠던 부분은 구글 검색 API를 활용해서 정보 수집하는 부분이었다. 생각보다 코드가 단순함에도 불구하고 정보수집이 잘되어서 흥미로웠다.
난 정규식을 일반적인 곳에만 사용했었다. 정규식을 파싱에 활용한다는 것도 색다른 방법인 것 같다.
책에서 소개된 모듈 정보다.
optparse : 커멘드라인에서 옵션을 처리하기 위한 라이브러리
python-nmap : python에서 nmap 을 사용할수 있는 라이브러리
pexpect : 프로그램 작동, 프로그램의 결과 받아서 자동화를 할수 있는 라이브러리(이책에서는 ssh 접속 자동화를 위해 사용)
pxssh : pexpect라이브러리에 있는 ssh 세션과 직접 연동할 스크립트
ftplib : ftp라이브러리
_winreg : 윈도우 레지스트리를 읽기위한 라이브러리
mechanize : 웹 자동화 라이브러리
pyPDF : PDF 문서 관리 라이브러리
exiftool : Exif 정보 라이브러리
beutifulsoup4 : html, xml 의 구문분석 라이브러리
PIL : 파이선 이미지 라이브러리
sqlite3 : sqlite3 라이브러리
pyGeoIP : GeoLiteCity 데이터베이스를 쿼리 할수 있는 라이브러리
dpkt, scapy : 패킷분석을 위한 라이브러리
python-bluez : 파이선 블루투스 라이브러리
cookielib : 쿠키를 처리할수 있는 라이브러리
smtplib : smtp 라이브러리
ctype : C스타일 코드를 작성하기 위한 ctype 라이브러리
이 책을 대여해서 보았었는데, 프랙티스를 하기 위해서 한 권정도 사서 여유있게 코드를 조금씩 따라서 작성 해 보면 도움이 많이 될 것 같다.