Top

파이썬을 활용한 공격적 & 방어적 해킹 프로그래밍 (세트) [창의적이고 새로운 관점을 제시하는 해킹과 방어 기법]

  • 지은이저스틴 지이츠(Justin Seitz)
  • 옮긴이민병호, 윤근용
  • ISBN : 9788960777064
  • 46,800원
  • 2015년 05월 11일 펴냄
  • 페이퍼백 | 528쪽 | 188*245mm
  • 시리즈 : 해킹과 보안

책 소개

세트 구성: 전2권

1) 『Black Hat Python: 해커와 모의 침투 테스터를 위한 공격용 파이썬 프로그래밍』
2) 『파이썬 해킹 프로그래밍: 프로그래머라면 누구나 할 수 있는』

『Black Hat Python: 해커와 모의 침투 테스터를 위한 공격용 파이썬 프로그래밍』 소개

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

추천의 글

경우에 따라 프로그래밍 언어 선택에 대한 대화가 종교 전쟁처럼 보이는 요즘에도 파이썬은 여전히 정보 보안 분야에서 널리 쓰이는 언어다. 수많은 퍼저(fuzzer)와 프록시, 심지어 몇몇 익스플로잇 코드에 이르기까지 온갖 도구가 파이썬으로 제작됐다. 캔버스(CANVAS) 같은 익스플로잇 프레임워크뿐만 아니라 약간은 덜 유명한 파이에뮤(PyEmu)와 설리(Sulley)도 파이썬으로 개발됐다.
나는 거의 모든 퍼저와 익스플로잇을 파이썬으로 제작했다. 크리스 발라섹(Chris Valasek)과 내가 최근에 수행한 자동차 해킹 연구 결과에는 파이썬을 사용해 자동차 네트워크에 CAN 메시지를 삽입할 수 있는 라이브러리도 포함돼 있다!
정보 보안 업무에 입문하고자 한다면 이미 수많은 리버스 엔지니어링과 익스플로잇 제작 라이브러리가 존재하는 파이썬을 선택하는 편이 좋다. 이제 메타스플로잇 개발자들만 정신을 차리고 루비에서 파이썬으로 넘어온다면 정보 보안 커뮤니티는 대통합의 길에 접어들 것이다.
이 책에서 저스틴은 이제 막 경력을 시작하는 진취적인 젊은 해커에게 필요한 다양한 주제를 다룬다. 네트워크 패킷을 분석하고 작성하는 방법과 네트워크 스니핑 방법뿐만 아니라 웹 애플리케이션 감사와 공격에 필요한 거의 모든 내용을 설명한다. 또한, 윈도우 시스템을 공격할 때 필요한 부분을 파이썬으로 어떻게 개발할 수 있는지 설명하는 데에도 상당한 공을 들인다. 전체적으로 『Black Hat Python』은 매우 유쾌하게 읽은 책이었다. 이 책을 읽는다고 나 같은 슈퍼 해커가 될 수는 없겠지만 분명히 제대로 된 길에 들어설 수 있을 것이다. 스크립트 키디와 전문가의 차이는 단순히 다른 누군가가 만든 도구를 사용하느냐, 혹은 자신이 사용할 도구를 직접 개발하느냐의 차이에 있다는 점을 명심하자.
- 찰리 밀러 / 미주리 주 세인트 루이스에서

이 책에서 다루는 내용

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

『파이썬 해킹 프로그래밍: 프로그래머라면 누구나 할 수 있는』 소개

해커와 리버스 엔지니어가 꼭 알아야 할 손쉽고 빠른 파이썬 해킹 프로그래밍. 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명하며, 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 알려준다.

파이썬은 쉽고 빠르게 작성할 수 있고 로우레벨을 지원하며 해커들을 행복하게 해주는 다양한 라이브러리를 제공한다는 장점 때문에 해커와 리버스 엔지니어, 소프트웨어 테스터들이 애용하는 프로그래밍 언어로 자리잡았다. 하지만 파이썬을 이용한 해킹 방법을 설명하는 참고서적은 드물었기에, 관련 포럼에 올라온 글이나 도움말을 뒤지거나 코드가 제대로 동작하도록 일일이 코드를 수정해가면서 확인해야만 했다.

『파이썬 해킹 프로그래밍』은 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명한다. 또한 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 배울 수 있다.

추천의 글

Immunity 사에서 가장 자주 듣는 말은 “아직도 다 안 됐어?”란 말이다. 이 말은 사실 “나는 Immunity 디버거용 ELF 임포터 작업을 하고 있는데, 넌 아직 다 못 했어?”라거나 “방금 인터넷 익스플로러 버그를 또 찾아냈는데, 넌 아직도 공격 코드 작성 못 했어?”라는 의미다.

이처럼 신속한 개발과 수정 작업을 원한다면 차기 보안 프로젝트에서는 반드시 파이썬을 선택하라. 파이썬은 이 같은 요구를 완벽히 충족시켜 줄 것이다.

공구 상가 거리를 거쳐 사우스 비치(South Beach)에 있는 이곳 에이스 하드웨어(Ace Hardware)까지 걸어 내려오는 길은 정말 현기증이 날 지경이다. 그 거리에는 갖가지 물건들을 깔끔하게 진열한 50여 개의 작은 상점들이 있다. 각 상점의 물건은 모두 비슷해 보이긴 하지만 이웃 상점과 비교해보면 모두 매우 중요한 차이점이 있다. 각 공구의 사용 용도를 아는 것만으로는 충분하지 않다. 이는 보안 툴을 만들 때도 마찬가지다. 웹이나 자체 애플리케이션을 개발할 때 경우에 따라 필요한 ‘망치’가 다르다. SQL API를 후킹하는 도구를 후다닥 만들어낼 수 있으면 시간을 많이 절약할 수 있다. 하지만 이것이 툴을 평가하기 위한 요소는 아니다. 일단 SQL API를 후킹할 수 있게 되면 비정상적인 SQL 질의를 탐지할 수 있는 툴을 쉽게 만들 수 있다. 그리고 그 툴을 이용해 공격자가 악용하는 취약점을 빠르게 고칠 수 있다.

보안 연구자들이 한 팀을 이뤄 일하기가 매우 힘들다는 사실은 누구나 알고 있다. 대부분 보안 연구자들은 어떤 문제에 직면하면 먼저 문제를 공격하는 데 사용할 라이브러리를 개발하려고 한다. SSL 데몬에 어떤 보안 취약점이 있다고 하자. 그러면 보안 연구자는 SSL 라이브러리가 매우 다루기 힘들다는 이유로 처음부터 SSL 클라이언트를 개발하려고 할 것이다.

여러분은 무슨 수를 쓰든 이를 피해야 한다. SSL 라이브러리는 보안 연구자의 말처럼 그렇게 다루기 힘든 것이 아니며 특정 보안 연구자의 특정한 스타일대로 작성되지 않은 것뿐이다. 코드 블록을 파헤쳐 문제점을 발견하고 수정할 수 있느냐가 핵심이며, 가능하다면 SSL 라이브러리에 대한 공격 코드를 늦지 않게 작성할 수 있다. 그리고 일이 제대로 진행되려면 보안 연구자들이 팀을 이뤄 일하는 것이 중요하다. 보안 담당자에게 있어 파이썬을 사용할 줄 아는 것이 루비(Ruby)를 사용할 줄 아는 것보다 더 효과적이다. 파이썬을 사용하는 사람들은 기존의 소스코드를 다시 작성하지 않고 서로 협업을 할 수 있기 때문이다. 그렇지 않다면 초유기체적으로 일을 수행해야만 한다. 즉, 부엌에 있는 개미의 수와 문어의 수가 같다고 하더라도 서로 협업하는 개미들을 잡는 것이 문어를 잡는 것보다 훨씬 까다로운 것과 같은 이치다.

이 부분에 있어 이 책은 분명 도움이 될 것이다. 아마 대부분은 필요한 작업을 수행하기 위한 툴들을 이미 갖고 있을 것이다. 이미 비주얼 스튜디오가 있을 테고 그것을 이용해 디버거를 수행할 수 있으며, 더군다나 자신만의 특별한 디버거를 작성할 필요가 없다고 말할 것이다. 또는 WinDbg의 플러그인 인터페이스를 이용하면 된다고 말할 수도 있다. 물론 전부 옳은 말이다. WinDbg는 플러그인 인터페이스를 제공하며, WinDbg API를 이용해 유용한 기능을 만들어낼 수 있다. 하지만 WinDbg를 이용해 5,000명의 다른 사람과 연결해 결과를 서로 관련시킬 수 있다면 더욱 훌륭할 것이라고 아쉬워할 것이다. 반면에 파이썬을 이용하면 XML-RPC 클라이언트와 서버를 만들어내는 것이 약 100라인의 코드만으로 해결된다.

해킹은 리버스 엔지니어링이 아니므로 애플리케이션의 원래 소스코드를 알아내는 것이 목적은 아니다. 프로그램이나 시스템을 개발한 사람보다 더 많이 알아내는 것이 목적이다. 프로그램의 형태에 상관없이 일단 그 프로그램을 이해했다면 흥미진진한 공격 코드를 프로그램에 침투시킬 수 있다. 이는 여러분이 시각화, 원격 동기화, 그래프 이론, 선형 방정식 해법, 통계 분석 기술 등에 대한 전문가가 된다는 의미다. Immunity에서는 파이썬을 표준으로 사용하므로 그래프 알고리즘이나 필요한 툴을 작성할 때 항상 파이썬이 사용된다.

6장에서는 파이어폭스(Firefox)에서 사용자 이름과 비밀번호를 가로채기 위해 어떻게 하면 후킹을 빨리 할 수 있는지 설명한다. 악성 코드 제작자들도 이와 같은 목적을 달성하려고 하이레벨 언어를 사용해 동일한 작업을 수행한다(http://philosecurity.org/2009/01/12/interview-with-an-adware-author). 다른 한편으로는 소프트웨어 검증 툴을 15분 안에 재빨리 만들어낼 수도 있다. 소프트웨어 회사들은 보안상의 이유로 소프트웨어 내부 정보를 보호하기 위해 많은 투자를 한다. 하지만 실제적으로는 복사 방지와 디지털 저작권 관리DRM에 국한돼 있다.

이 책을 통해 여러분은 다른 애플리케이션을 주무를 수 있는 소프트웨어 툴을 빠르게 만들어낼 수 있는 능력을 기르게 될 것이다. 미래의 보안 툴은 빠르게 구현돼야 하고, 빠르게 수정돼야 하며, 빠르게 결합될 수 있어야 한다. 이제 유일하게 남은 질문은 이것이다. “아직도 안 됐어?”

- 데이브 에이텔(Dave Aitel) / 플로리다 주, 마이애미 비치에서

이 책에서 다루는 내용

■ 지루하고 힘든 리버싱과 보안 분석 작업의 자동화 노하우
■ 자신만의 디버거 제작 방법
■ 퍼저 작성과 윈도우 드라이버 퍼징 방법
■ 코드와 라이브러리 인젝션 기술, 소프트 후킹과 하드 후킹 기술
■ 암호화된 웹 브라우저 세션의 보안 트래픽 스니핑
■ PyDbg, Immunity 디버거, Sulley, IDAPython, PyEmu 사용법

저자/역자 소개

저자 소개

저스틴 지이츠(Justin Seitz)

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

옮긴이 소개

민병호

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

윤근용

시스템 프로그래머로서 시스템에 대한 다양한 분야에 관심이 많으며 특히 보안 분야에 대한 관심이 높아 다년간 보안 업무에 종사하고 있다. 바이러스 보안 업체를 거쳐 현재는 NHN에서 보안 관련 프로젝트를 수행 중이다. 에이콘출판사에서 펴낸 『웹 애플리케이션 해킹 대작전』, 『실전 해킹 절대 내공』, 『루트킷』, 『리버싱』을 번역했다.

목차

목차
  • 『Black Hat Python: 해커와 모의 침투 테스터를 위한 공격용 파이썬 프로그래밍』
  • 1장 파이썬 환경 구축
  • 2장 네트워크: 기초
  • 3장 네트워크: 로 소켓과 스니핑
  • 4장 스카피를 이용한 네트워크 장악
  • 5장 웹 해킹
  • 6장 버프 프록시 확장
  • 7장 깃허브 커맨드 앤 컨트롤
  • 8장 일반적인 트로이 목마 기능(윈도우용)
  • 9장 인터넷 익스플로러 활용
  • 10장 윈도우 권한 상승
  • 11장 공격용 포렌식 작업 자동화

  • 『파이썬 해킹 프로그래밍: 프로그래머라면 누구나 할 수 있는』
  • 1장 개발 환경 구축
  • 2장 디버거
  • 3장 윈도우 디버거 개발
  • 4장 PyDbg - 순수 파이썬 윈도우 디버거
  • 5장 Immunity 디버거
  • 6장 후킹
  • 7장 DLL과 코드 인젝션
  • 8장 퍼징
  • 9장 Sulley
  • 10장 윈도우 드라이버 퍼징
  • 11장 IDAPython - IDA Pro 스크립팅
  • 12장 PyEmu - 스크립트 가능한 에뮬레이터

도서 오류 신고

도서 오류 신고

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

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

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