Top

Black Hat Python [해커와 모의 침투 테스터를 위한 공격용 파이썬 프로그래밍]

  • 원서명Black Hat Python (ISBN 9781593275907)
  • 지은이저스틴 지이츠(Justin Seitz)
  • 옮긴이민병호
  • ISBN : 9788960776982
  • 25,000원
  • 2015년 04월 30일 펴냄
  • 페이퍼백 | 248쪽 | 188*235mm
  • 시리즈 : 해킹과 보안

책 소개

요약

남이 만든 도구만 쓰는 스크립트 키디를 넘어서, 필요한 도구는 직접 개발할 수 있는 고급 보안 전문가로 발돋움 해보자! 『Black Hat Python』은 베스트셀러 『파이썬 해킹 프로그래밍』(원서명: Gray Hat Python)(에이콘출판, 2010) 저자의 차기작으로, ‘제대로’ 동작하는 공격 도구를 적시에 ‘즉석으로’ 제작하는 방법을 다룬 책이다. 책의 처음부터 끝까지 멋진 공격 아이디어들이 계속 쏟아지기 때문에 기술적으로도 흥미로운 부분이 많으며, 공격 도구 개발에 필요한 프로그래밍 기술을 압축적으로 다루므로 정말 재미있게 읽을 수 있다.

추천의 글

경우에 따라 프로그래밍 언어 선택에 대한 대화가 종교 전쟁처럼 보이는 요즘에도 파이썬은 여전히 정보 보안 분야에서 널리 쓰이는 언어다. 수많은 퍼저(fuzzer)와 프록시, 심지어 몇몇 익스플로잇 코드에 이르기까지 온갖 도구가 파이썬으로 제작됐다. 캔버스(CANVAS) 같은 익스플로잇 프레임워크뿐만 아니라 약간은 덜 유명한 파이에뮤(PyEmu)와 설리(Sulley)도 파이썬으로 개발됐다.

나는 거의 모든 퍼저와 익스플로잇을 파이썬으로 제작했다. 크리스 발라섹(Chris Valasek)과 내가 최근에 수행한 자동차 해킹 연구 결과에는 파이썬을 사용해 자동차 네트워크에 CAN 메시지를 삽입할 수 있는 라이브러리도 포함돼 있다!

정보 보안 업무에 입문하고자 한다면 이미 수많은 리버스 엔지니어링과 익스플로잇 제작 라이브러리가 존재하는 파이썬을 선택하는 편이 좋다. 이제 메타스플로잇 개발자들만 정신을 차리고 루비에서 파이썬으로 넘어온다면 정보 보안 커뮤니티는 대통합의 길에 접어들 것이다.

이 책에서 저스틴은 이제 막 경력을 시작하는 진취적인 젊은 해커에게 필요한 다양한 주제를 다룬다. 네트워크 패킷을 분석하고 작성하는 방법과 네트워크 스니핑 방법뿐만 아니라 웹 애플리케이션 감사와 공격에 필요한 거의 모든 내용을 설명한다. 또한, 윈도우 시스템을 공격할 때 필요한 부분을 파이썬으로 어떻게 개발할 수 있는지 설명하는 데에도 상당한 공을 들인다. 전체적으로 『Black Hat Python』은 매우 유쾌하게 읽은 책이었다. 이 책을 읽는다고 나 같은 슈퍼 해커가 될 수는 없겠지만 분명히 제대로 된 길에 들어설 수 있을 것이다. 스크립트 키디와 전문가의 차이는 단순히 다른 누군가가 만든 도구를 사용하느냐, 혹은 자신이 사용할 도구를 직접 개발하느냐의 차이에 있다는 점을 명심하자.

- 찰리 밀러 / 미주리 주 세인트 루이스에서

이 책에서 다루는 내용

■ 깃허브를 이용한 트로이 목마의 커맨드 앤 컨트롤 구현
■ 키로깅과 스크린샷 수집 등 일반적인 악성코드 기능의 자동화와 샌드박스 탐지
■ 창의적인 프로세스 제어에 기반한 윈도우 권한 상승
■ 메모리 포렌식 기술을 악용한 암호 해시 탈취와 가상 머신으로의 셸코드 삽입
■ 유명한 웹 해킹 도구인 버프 스위트의 확장
■ 윈도우 COM 자동화를 악용한 맨 인 더 브라우저 공격
■ 가장 교활한 방법으로 네트워크에서 데이터 빼내기

저자/역자 소개

저자 서문

파이썬 해커. 나를 설명할 수 있는 두 단어다. 난 운 좋게도 이뮤니티(Immunity)에서 파이썬으로 코딩하는 법을 제대로 아는 사람들과 일하는 행운을 누린다. 난 아직 그 단계에 이르지 못했다. 난 모의 침투 업무를 수행하며 많은 시간을 보내는데, 이를 제대로 완수하려면 실행과 결과 생성에 집중된(미적 완성도, 최적화, 심지어 안정성도 필요치 않다) 파이썬 도구를 재빨리 개발할 수 있는 능력이 필요하다. 이게 바로 내가 코딩하는 방식이며 이 책 전체에서 이를 확인할 수 있는데, 이는 내가 스스로 강력한 모의 해커라고 느끼게 해주는 이유 중 하나이기도 하다. 이런 철학과 스타일이 여러분에게도 도움이 되길 바란다.

책을 읽다 보면 한 가지 주제를 매우 깊게 파지 않는다는 사실도 알게 될 것이다. 이는 의도된 것으로 이 책은 여러분이 기본적인 내용을 이해할 수 있도록 약간의 양념만 추가한 최소한의 내용을 제공한다. 책에서는 이를 염두에 두고 여러분이 자신만의 방향을 잡을 수 있도록 다양한 아이디어와 연습문제를 제공한다. 책에서 소개하는 아이디어를 직접 탐험해보고, 직접 구현한 결과나 도구 제작 경험, 스스로 해결한 연습문제에 대한 피드백을 주면 좋겠다.

여타 기술 서적과 마찬가지로 다양한 수준의 파이썬(또는 정보 보안 일반) 기술을 지닌 각양각색의 독자가 이 책을 읽고 느끼는 방식은 다를 것이다. 어떤 이는 당장 직면한 컨설팅 업무에 적용할 수 있는 단원만 단순히 가져다 쓸 수도 있지만, 어떤 독자는 앞표지부터 뒤표지까지 전부 샅샅이 읽을 수도 있다. 초중급 파이썬 프로그래머라면 책을 처음부터 끝까지 순서대로 읽기를 권장한다. 이 과정을 통해 훌륭한 빌딩 블록을 배울 수 있을 것이다.
책의 도입부인 2장에서는 네트워킹의 기본사항을 다룬 다음, 3장에서 천천히 로(raw) 소켓으로 내용을 확장한다. 4장에서는 스카피(Scapy)를 사용해 좀 더 흥미로운 네트워킹 도구 제작을 살펴본다. 책의 다음 부분에서는 웹 애플리케이션 해킹과 관한 내용을 다룬다. 5장에서는 여러분만의 도구를 제작하는 내용을 다루고, 6장에서는 유명한 버프 스위트(Burp Suite)를 어떻게 확장할 수 있는지 알아본다. 책의 나머지 부분에서는 트로이 목마와 관련된 다양한 내용을 설명한다. 깃허브(GitHub) 커맨드 앤 컨트롤을 다룬 7장을 시작으로 10장에 이르기까지 몇 가지의 윈도우 권한 상승 기법을 다룬다. 마지막 장에서는 공격용 메모리 포렌식 기술을 자동화하는 데 유용한 발러틸러티(Volatility)를 알아본다.

코드 샘플은 최대한 짧고 간결하게 유지하려고 노력했으며 이는 책 내용에도 똑같이 적용된다. 상대적으로 파이썬에 익숙하지 않은 독자라면 뼛속에 새긴다는 기분으로 예제 코드의 모든 줄을 집중해서 살펴보기 바란다. 이 책에 담긴 모든 소스 코드 예제는 http://nostarch.com/blackhatpython/에서 내려받을 수 있다. 에이콘출판사의 도서정보 페이지인 http://www.acornpub.co.kr/book/Black-Hat-Python에서도 예제 코드를 내려받을 수 있다.

저자 소개

저스틴 지이츠(Justin Seitz)

이뮤니티(Immunity) 사의 수석 보안 연구가로 주로 버그 헌팅, 리버스 엔지니어링, 익스플로잇 제작, 파이썬 코딩 등의 업무를 수행하고 있다. 또 보안 분석의 관점에서 파이썬을 다룬 최초의 도서인 『파이썬 해킹 프로그래밍』(에이콘출판, 2010)의 저자다.

옮긴이의 말

『파이썬 해킹 프로그래밍』(원서명: Gray Hat Python)(에이콘출판, 2010)의 저자가 새 책을 낸다는 소식에 기뻤다. 제목이 『Black Hat Python』이라는 사실을 알았을 때는 흥분을 감출 수 없었다. 다른 이들도 많이 기다렸던지 신간이 출간되자마자 아마존 해킹 분야에서 1위에 올랐다(나도 바로 한 권 구매했다). 이 글을 쓰는 2015년 4월 현재에도 바이러스 분야에서는 자격증 책 몇 권과 (아마도 제목 때문에) 분야가 잘못 분류된 코딩 인터뷰 책에 이어 4위를 기록 중이며, 해킹 분야에서는 독보적인 1위를 차지하고 있다.

다양한 설명이 가능하겠지만 내가 생각하는 이 책의 분명한 강점은 세 가지다. 우선 해커들이 가장 많이 사용하는 언어인 파이썬은 스크립트 언어기 때문에 다양한 모듈을 갖다 붙이는 방식으로 새로운 작업 흐름이나 프로그램을 쉽게 작성할 수 있다. 이 책에서는 쉽게 모듈화할 수 있는 공격용 도구를 파이썬으로 구현한다. 모의 침투나 취약점 점검 업무 시 ‘제대로’ 동작하는 도구를 ‘즉석으로’ 만드는 방법을 설명하기 때문에 고급 예외 처리처럼 (상용 소프트웨어가 아닌 공격용 도구 제작 관점에서 볼 때) 다소 불필요한 주제는 과감하게 다루지는 않는다. 한마디로, 공격용 파이썬 프로그래밍을 제대로 다룬 책이라 할 수 있다.
두 번째로 이 책은 처음부터 끝까지 양질의 트릭으로 가득 차 있다. 인터넷에서 엄청난 양의 정보를 구할 수 있고 블랙햇, HITB, CCC 등 유명 해커 컨퍼런스의 발표도 어렵지 않게 볼 수 있지만, 사실 발표자의 비기는 발표 현장 혹은 커피 브레이크나 파티 때 나누는 대화를 통해 얻을 수 있는 경우가 많다. 이 책은 기본적으로 이런 수준의 멋진 팁만 집중해서 다룬다. 본문만으로는 230여 쪽이 좀 넘는 책에 얼마나 다양한 내용을 담을 수 있겠냐는 의구심이 든다면, 일단 읽어보자(말 그대로 230쪽 정도밖에 안 되는 책이지 않은가?). 보안 전문가라 하더라도 이 책을 읽다 보면 해킹 기술에 대한 사고의 폭을 넓힐 수 있으리라 확신한다.
끝으로, 이 책은 참 재미있다. 해킹 도구 사용법을 설명하는 쉬운 책이 아니라 도구를 구현하는 프로그래밍 책임에도 불구하고 독자가 재미를 잃지 않도록 이론과 실제, 그리고 데모를 잘 배치해뒀다. 책에서 제시하는 과제마저도 흥미로우며 이를 해결하다 보면 자신이 보유한 보안과 프로그래밍 기술에 깊이를 더할 수 있다.
책의 다양한 공격 시나리오를 직접 구현하고 테스트해봄으로써, 남이 만든 도구만 쓰는 스크립트 키디에서 벗어나 필요한 도구는 직접 개발하는 고급 보안 전문가로 발돋움해보자.

옮긴이 소개

민병호

서울대학교 컴퓨터공학부에서 학사와 석사학위를 마치고 정보 보안 연구원으로 활동했으며, 현재는 유학길에 올라 박사 과정을 밟고 있다. 10여 권의 IT와 보안 전문서를 번역했다.

목차

목차
  • 1장 파이썬 환경 구축
    • 칼리 리눅스 설치
    • 윙IDE

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

  • 3장 네트워크: 로 소켓과 스니핑
    • UDP 호스트 발견 도구 구현
    • 윈도우와 리눅스에서의 패킷 스니핑
      • 시험해보기
    • IP 계층 디코딩
      • 시험해보기
    • ICMP 디코딩
      • 시험해보기

  • 4장 스카피를 이용한 네트워크 장악
    • 이메일 로그인 정보 훔치기
      • 시험해보기
    • 스카피를 이용한 ARP 캐시 오염
      • 시험해보기
    • PCAP 처리
      • 시험해보기

  • 5장 웹 해킹
    • 웹의 소켓 라이브러리: urllib2
    • 설치된 오픈소스 웹 앱 매핑하기
      • 시험해보기
    • 디렉토리와 파일 위치 브루트포스
      • 시험해보기
    • HTML 폼 인증 브루트포스
      • 시험해보기

  • 6장 버프 프록시 확장
    • 설정
    • 버프 퍼징
      • 시험해보기
    • 버프에서 빙 활용하기
      • 시험해보기
    • 웹사이트 콘텐트를 이용한 암호 목록 구축
      • 시험해보기

  • 7장 깃허브 커맨드 앤 컨트롤
    • 깃허브 계정 설정
    • 모듈 만들기
    • 트로이 목마 설정
    • 깃허브 기반의 트로이 목마 제작하기
      • 파이썬 임포트 기능을 이용한 트릭
      • 실험해보기

  • 8장 일반적인 트로이 목마 기능(윈도우용)
    • 키 입력도 수집하고 재미도 챙기는 키로깅 구현
      • 시험해보기
    • 스크린샷 수집
    • 파이썬을 이용한 셸코드 실행
      • 시험해보기
  • 샌드박스 탐지

  • 9장 인터넷 익스플로러 활용
    • (일종의) 맨 인 더 브라우저
      • 서버 제작
      • 시험해보기
    • IE COM 자동화를 이용한 정보 유출
      • 시험해보기

  • 10장 윈도우 권한 상승
    • 필요한 패키지 설치하기
    • 프로세스 모니터 구현
      • WMI를 이용한 프로세스 모니터링
      • 시험해보기
    • 윈도우 토큰 권한
    • 약점 공격하기
      • 시험해보기
    • 코드 인젝션
      • 시험해보기

  • 11장 공격용 포렌식 작업 자동화
    • 설치
    • 프로필
    • 암호 해시 추출
    • 직접적 코드 인젝션

도서 오류 신고

도서 오류 신고

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

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

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