Top

Black Hat Python 2/e [해커와 모의 침투 연구자를 위한 파이썬 프로그래밍]

  • 원서명Black Hat Python, 2nd Edition : Python Programming for Hackers and Pentesters (ISBN 9781718501126)
  • 지은이저스틴 지이츠(Justin Seits), 팀 아널드(Tim Arnold)
  • 옮긴이박재유
  • ISBN : 9791161756356
  • 28,000원
  • 2022년 04월 29일 펴냄
  • 페이퍼백 | 288쪽 | 188*235mm
  • 시리즈 : 해킹과 보안

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/black-hat-python2e

요약

다양한 해킹 도구를 사용하는 것도 좋지만, 본인이 원하는 기능을 자유자재로 구현해 낼 수 있다면 얼마나 더 편리할까? 직접 필요한 도구를 개발해 고급 보안 전문가로 발돋움할 수 있는 기회다. 2판은 1판의 내용에서 코드를 파이썬3으로 업그레이드하고 여러 최적화를 적용했다. 또한 디지털 포렌식 도구 제작 등의 새로운 내용도 추가했다. 전체적으로 멋진 공격 기법의 구현 방법을 전수하고 있기 때문에 흥미로운 부분이 많으며, 도구 개발에 필요한 프로그래밍 기술을 총체적으로 다룬다.

추천의 글

이 책은 여러분이 찾아 헤매던 내용을 담고 있다. 자세하면서도 기술적으로 정확하게 혜안을 갖게 해 줄 것이다.

— 산드라 헨리 스토커(Sandra Henry-Stocker), 「IT World」 칼럼니스트

이 책에서 다루는 내용

◆ 깃허브를 이용한 트로이 목마 지휘 통제 서버 구축
◆ 키로깅과 스크린샷 캡쳐 자동화 및 샌드박스 여부 탐지
◆ 웹 해킹 도구인 버프 스위트의 확장 기능 구현
◆ 창의적인 프로세스 처리 기법으로 윈도우 권한 상승
◆ 메모리 포렌식 기법을 공격 관점으로 활용해 가상 머신에서 비밀번호 해시를 추출한 후 취약점 정보 획득
◆ 윈도우의 COM 자동화 기법 악용
◆ 네트워크로 몰래 데이터 탈취하기

이 책의 대상 독자

독자들이 서로 다른 수준의 배경지식을 갖고 있다는 것을 염두에 뒀다. 파이썬 프로그래밍 수준이 초급에서 중급 정도라면 책의 모든 내용을 앞에서부터 순서대로 읽어가는 것이 좋다.

이 책의 구성

2장에서는 네트워크 개론을 다루고, 3장에서는 원시 소켓을 처리하는 과정을 자세히 다룬다. 4장에서는 네트워크 관련 도구에 관한 흥미로운 주제를 Scapy 도구로 배운다. 이 책의 중반부인 5장에서는 직접 웹 애플리케이션을 해킹하는 도구를 다루고, 6장에서는 유명한 Burp Suite 도구의 확장 기능을 개발하는 과정을 배울 것이다. 그리고 7장에서는 GitHub를 통해 통제소를 구축하며, 트로이 목마 악성 코드를 지휘하는 과정을 심도 있게 살펴본다. 이후 10장까지는 윈도우 운영체제에서 권한 상승을 발생시키는 기술들을 다룬다. 마지막 11장에서는 메모리 포렌식 라이브러리인 볼라틸리티를 사용해 방어적 관점의 기술을 이해할 것이다. 더 나아가 해당 도구를 공격자의 입장에서 활용하는 법도 배울 것이다.

저자/역자 소개

지은이의 말

저스틴(Justin)은 모의 침투 분야에서 오랜 경력을 쌓았다. 이 분야에 종사하려면 파이썬을 이용해 도구를 신속하게 만들 수 있어야 한다. 또한 결과물을 빠르게 획득하는 데 초점을 둔다.
팀(Tim)의 좌우명은 “잘 동작하면서도 이해하기 쉽고 빠르게 실행돼야 한다. 이것이 중요 우선순위”이다. 코드의 가독성이 좋을수록 다른 사람과 코드를 공유할 때 이해도가 높다. 이 원칙은 자신이 작성한 코드를 몇 달 후에 다시 들춰볼 때도 동일하게 적용된다. 전체에 걸쳐 전수하고 싶은 것은 ‘어떻게 코드를 작성하는가’이다. 최종 목표는 해킹이다. 또한 깔끔하고 이해하기 쉬운 코드를 만드는 방법까지 안내하고자 한다. 우리의 코딩 철학과 코드 스타일이 모두에게 도움이 되기 바란다.
이 책은 각각의 주제들에 대해 지나치게 깊이 몰두하게 만들지 않고, 설계 원리를 깨닫도록 돕고자 한다. 우선 기본적인 내용을 토대로 기초를 쌓고 해킹 도구를 개발하는 데 근간을 이루는 지식을 섭렵하기 바란다. 그래서 새로운 아이디어를 제시하고 직접 실습해 볼 수 있도록 연습 과제를 부여했다. 이를 통해 스스로의 목표를 세우고 도전을 시작할 수 있도록 독려하고자 한다. 부디 다양한 아이디어들을 탐구해 가기 바라며, 직접 도구를 개발해 완성했다는 소식을 듣는다면 무척 기쁠 것이다.

지은이 소개

저스틴 지이츠(Justin Seits)

사이버 보안 및 OSINT 분야의 유명한 기술자이자 캐나다의 보안 및 정보 기업인 Dark River Systems Inc.의 공동 설립자다. 연구 성과는 「Popular Science」, 「Motherboard」 및 「Forbes」 등에 기고됐고 해킹 도구를 개발하는 두 권의 책을 저술했다. OSINT를 교육하는 플랫폼인 Automating OSINT.com을 설립했으며 수사관들이 다양한 OSINT 기능들을 활용할 수 있도록 Hunchly 도구를 만들기도 했다. 또한 시민 저널리즘 사이트 Bellingcat의 기고가이고 국제 형사 재판소의 기술 자문위원회 위원이자 워싱턴 DC에 있는 고등 국방 연구 센터의 석학이다.

팀 아널드(Tim Arnold)

현재 파이썬 프로그래밍 전문가이자 통계학자다. 노스캐롤라이나 주립 대학에서 존경받는 국제 연사 및 교육자로 오랫동안 초기 경력을 쌓았고, 시각 장애인이 수학 논문에 쉽게 접근할 수 있도록 하는 등 소외된 집단이 교육에 접근할 수 있는 도구를 개발하는 데 많은 업적을 이뤘다. 지난 수년간 SAS Institute에서 수석 소프트웨어 개발자로 일하면서 기술서와 수학 관련 문서들을 출판하는 시스템을 설계하고 구현했다. 또한 Raleigh ISSA의 이사회 및 국제 통계 연구소 컨설턴트로 활동했다. 지금도 독립 강사로 일하면서 입문자에게는 정보 보안 및 파이썬 프로그래밍 개념을 강의하고, 이미 고급 기술을 가진 사용자에게는 역량을 향상하도록 독려하는 것을 즐긴다.

옮긴이의 말

미국 아마존 서점의 컴퓨터 해킹 및 네트워크 보안 분야에서 독보적인 순위를 자랑하던 책의 2판이 출간됐다. 이 책은 파이썬 프로그래밍 언어를 사용해 모의 침투 업무를 수행할 수 있도록 이끌어 주는 길잡이 역할을 한다. 단순히 해킹 도구의 사용법만을 다루는 다른 서적과는 다르게 자신이 직접 필요한 도구를 만드는 방법을 안내한다는 점에서 차별화된다. 또한 파이썬의 특성상 이미 잘 설계돼 있는 다양한 모듈이 많기에 이를 구체적으로 어떻게 활용할 수 있는지를 배운다면 큰 효과를 거둘 수 있다. 이론뿐만 아니라 실전 상황을 가정한 실습도 제시하고 있어 이를 해결하다 보면 고급 보안 전문가로 성장할 수 있다.
워낙 저명한 도서의 2판 번역을 맡게 돼 막중한 책임감을 갖고 책의 모든 부분을 차근차근 살펴보며 진행했다. 1판과 비교해 달라진 코드 부분이 생각보다 많았기에 예상보다 시간이 오래 소요됐다. 모든 예제를 직접 검수하고 테스트해 완성도를 높였다. 특히 오류의 가능성이 있는 코드는 저자인 팀 아널드와 소통하며 원서의 내용을 바로잡았으며, 번역서에도 반영했다. 이 책이 한국의 독자가 파이썬 해킹을 학습하는 데 도움이 된다면 나에게도 큰 기쁨이 될 것이다.

옮긴이 소개

박재유

한국항공대학교에서 컴퓨터 정보공학을 전공하고, 공군 정보통신 장교로 복무하며 정보 보안에 입문했다. 전역 후 한국정보기술연구원(KITRI)의 Best of the Best 4기 디지털 포렌식 과정을 수료하고, 한국과학기술원(KAIST) 대학원에 입학해 소프트웨어 보안을 연구했다. 석사 졸업 후 현재는 LG전자 소프트웨어 공학연구소에서 보안 기술(퍼즈 테스팅과 바이너리 취약점 분석)을 연구하고 있다. 정보처리기사, 전자계산기조직응용기사, 정보보안기사, ACE, 디지털 포렌식 전문가 2급 등을 보유하고 있다. 또한 2016년 한국정보기술연구원 주관 정보 보안 스타트업 프로젝트 그랑프리 우승, 2018년 한국 디지털 포렌식 학회 주관 챌린지에서 장려상을 수상했다. 『APT 악성코드와 메모리 분석 첼린지 풀이 사례』(비팬북스, 2016), 『VolUtility 리뷰와 첼린지 문제 풀이 사례』(비팬북스, 2016), 『리눅스 시스템의 메모리 포렌식』(브이메이커스, 2018) 등 메모리 포렌식 관련 전자책을 집필했고, 『모의 침투 입문자를 위한 파이썬 3 활용』(에이콘, 2020)을 공저로 저술했다. 번역서로는 『실전 바이너리 분석』(에이콘, 2021)이 있다.

목차

목차
  • 1장. 파이썬 환경 구축
    • 칼리 리눅스 설치
    • 파이썬3 설치
    • IDE 설치
    • 코드 작성 규약

  • 2장. 기초 네트워크 도구
    • 한 문단으로 표현한 파이썬 네트워킹
    • TCP 클라이언트
    • UDP 클라이언트
    • TCP 서버
    • 넷캣 대체하기
      • 시험해 보기
    • TCP 프록시 구현
      • 시험해 보기
    • 파라미코를 이용한 SSH
      • 시험해 보기
    • SSH 터널링
      • 시험해 보기

  • 3장. 스니핑 도구 제작
    • UDP 호스트 탐지 도구 구현
    • 윈도우 및 리눅스에서의 패킷 스니핑
      • 시험해 보기
    • IP 계층 디코딩
      • ctypes 모듈
      • struct 모듈
      • IP 디코더 구현
      • 시험해 보기
    • ICMP 디코딩
      • 시험해 보기

  • 4장. 스카피를 이용한 네트워크 장악
    • 이메일 로그인 정보 탈취
      • 시험해 보기
    • 스카피를 이용한 ARP 캐시 포이즈닝 공격
      • 시험해 보기
    • pcap 처리
      • 시험해 보기

  • 5장. 웹 해킹
    • 웹 라이브러리 사용하기
      • 파이썬2에서 사용하는 urllib2
      • 파이썬3에서 사용하는 urllib
      • requests 라이브러리
      • lxml 및 BeautifulSoup 패키지
    • 오픈 소스 웹 애플리케이션 파일 경로 파악
      • 워드프레스 프레임워크 파악하기
      • 실제 시스템 대상 실험
      • 시험해 보기
    • 디렉터리와 파일 경로 무차별 대입
      • 시험해 보기
    • HTML 인증 양식 무차별 대입
      • 시험해 보기

  • 6장. 버프 프록시 확장
    • 설정
    • 버프 퍼징
      • 시험해 보기
    • 버프에서 Bing 활용하기
      • 시험해 보기
    • 웹사이트 정보를 기반으로 비밀번호 모음집 생성
      • 시험해 보기

  • 7장. 깃허브를 이용한 지휘 통제
    • 깃허브 계정 설정
    • 모듈 제작
    • 트로이 목마 환경 설정
    • 깃허브 기반의 트로이 목마 제작
      • 파이썬 임포트 기능을 이용한 트릭
      • 시험해 보기

  • 8장. 윈도우 트로이 목마
    • 키로깅 : 키 입력 탈취의 즐거움
      • 시험해 보기
    • 스크린샷 캡처
    • 파이썬을 이용한 셸코드 실행
      • 시험해 보기
    • 샌드박스 탐지

  • 9장. 데이터 탈취의 기쁨
    • 파일 암호화 및 복호화
    • 이메일을 이용한 탈취
    • 파일 전송을 이용한 탈취
    • 웹 서버를 이용한 탈취
    • 통합 도구 구현
      • 시험해 보기

  • 10장. 윈도우 권한 상승
    • 필요한 패키지 설치
    • 취약한 블랙 햇 서비스 구축
    • 프로세스 모니터 구현
      • WMI를 이용한 프로세스 모니터링
      • 시험해 보기
    • 윈도우 토큰 권한
    • 가로채기 경쟁에서 승리하기
      • 시험해 보기
    • 코드 삽입
      • 시험해 보기

  • 11장. 공격 관점에서의 메모리 포렌식
    • 설치하기
    • 일반적인 정보 수집
    • 사용자 정보 수집
    • 취약점 정보 수집
    • volshell 인터페이스
    • 볼라틸리티 플러그인 개발
      • 시험해 보기
    • 돌격 앞으로!

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안