Top

엔맵 네트워크 스캐닝 [네트워크 발견과 보안 스캐닝을 위한 Nmap 공식 가이드]

  • 원서명Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning (ISBN 9780979958717)
  • 지은이고든 ‘표도르’ 라이언
  • 옮긴이김경곤, 김기남, 장세원
  • ISBN : 9788960771062
  • 35,000원
  • 2009년 11월 16일 펴냄
  • 페이퍼백 | 680쪽 | 188*250mm
  • 시리즈 : 네트워크 프로그래밍, 해킹과 보안

책 소개

네트워크 발견과 보안 스캐닝에 대한 공식 엔맵 프로젝트 가이드

오픈소스인 엔맵 네트워크 스캐너는 네트워크 발견, 관리, 인벤토리, 보안 감사 용도로 수백만 명이 사용해왔다. 엔맵은 로우 IP 패킷을 새로운 방법으로 사용해 어느 호스트가 네트워크상에서 이용 가능한지와 해당 호스트에서 제공하는 서비스(애플리케이션 이름과 버전), 운영체제 종류, 패킷 필터나 방화벽의 종류가 무엇인지 식별한다. 엔맵은 리눅스 저널과 인포 월드에서 ‘올해의 정보 보안 제품’으로 평가받았다. 또한 매트릭스 리로디드, 다이 하드 4, 본 얼티메이텀 등 7개 영화에서 해커가 사용하는 툴로 소개됐다. 엔맵은 아미가(Amiga) 등 주요 컴퓨터 운영체제에서 실행되며, 전통적인 커맨드라인 인터페이스와 젠맵(Zenmap) GUI도 들어있다.


[ 소개 ]

『엔맵 네트워크 스캐닝』은 엔맵 보안 스캐너의 공식 가이드다. 초보자를 위한 포트 스캐닝의 기초 설명에서 고급 해커들이 사용하는 상세한 로우레벨 패킷 조작 방법에 이르기까지, 이 책은 모든 수준의 보안 전문가와 네트워크 전문가에게 적합하다. 70여 쪽에 이르는 레퍼런스 가이드(reference guide)는 엔맵의 모든 특성과 옵션을 문서화하고, 특성들을 실제 생활에 어떻게 적용해 문제를 빠르게 해결할 수 있는지 설명한다. 이 책에서 다루는 내용은 다음과 같다.

▶ 방화벽과 침입탐지 시스템 탐지와 무력화
▶ 엔맵 성능 최적화
▶ 엔맵 스크립팅 엔진으로 하는 네트워킹 작업 자동화

책에 대한 추가 정보는 http://nmap.org/book에서 찾아보자.


[ 이 책의 대상 독자 ]

초보자를 위한 포트 스캐닝 기초에서부터 고급 해커가 사용하는 패킷 변조 기술 등 엔맵(Nmap) 제작자와 공헌자가 직접 저술한 이 책은 모든 수준의 보안과 네트워킹 전문가들에게 필요한 책이다. 엔맵에서 사용할 수 있는 모든 옵션의 기능을 단순히 열거하지 않는 데 그치지 않고, 침투 테스트나 네트워크 목록을 얻거나, 비인증 무선 액세스 포인트나 열린 프록시를 찾는 데 활용할 수 있으며, 네트워크 웜과 바이러스 발생을 억제시키는 등 실제 네트워크상에서 생기는 문제를 해결하기 위해 엔맵 스캐닝을 어떻게 사용해야 하는지 설명한다. 네트워크상의 실제 통신을 이해할 수 있도록 예제와 도표를 삽입했다. 엔맵을 최대한 활용하고자 하는 독자라면 누구나, 특히 보안 감사(security auditor)와 시스템 관리자, 네트워크 관리자에게 꼭 필요한 책이다.


[ 이 책의 구성 ]

초보자를 위한 포트 스캐닝 기초에서 고급 해커에 의해 사용되는 패킷 변조의 종류에 이르기까지 무료 엔맵 보안 스캐너를 설명하는 이 책은 모든 수준의 엔맵 사용자(혹은 미래의 사용자)에게 도움이 될 것이다.

엔맵에 대한 가장 기본적인 내용을 담은 1장에서 예제를 사용해 엔맵의 개요를 설명한다. 2장에서는 엔맵을 얻고, 편집하고, 설치하는 방법을 설명한다. 3장에서 5장은 침투 테스트를 할 때 사용하는 특성들을 순서대로 설명했다. 먼저 네트워크상에서 사용 가능한 호스트를 식별하는 역할을 하는 호스트 발견(핑 스캐닝)에 대한 설명하고 포트 스캐닝을 깊이 있게 다룬다. 5장에서는 모든 엔맵 스캐닝 기술을 예제와 함께 자세히 설명한다. 거대한 네트워크를 스캐닝하는 작업은 시간이 오래 걸리기도 한다. 따라서 6장에서는 성능 최적화와 관련한 내용을 다뤘다. 7장은 엔맵이 단순히 포트 번호에 기반해 추측하기보다는 정확하게 무엇이 실행되는지를 식별하기 위해 포트에 질의하는 환경인 서비스와 애플리케이션 버전 탐지를 설명한다. 8장은 엔맵의 가장 사랑받는 특성 중 하나인 원격 운영체제 탐지를 다룬다. 9장은 엔맵의 최근 특성 중 하나인 엔맵 스크립팅 엔진을 설명한다. NSE는 대상 시스템에 대해 효율적으로 실행되는 간단한 스크립트를 사용해 사용자와 개발자들이 엔맵을 쉽게 확장할 수 있다. 내가 가장 좋아하는 10장은 방화벽과 침입 탐지 시스템을 탐지하고 무력화하는 방법을 설명한다. 11장은 엔맵 스캔을 방어하는 내용을 설명한다. 12장은 젠맵(Zenmap) 멀티 플랫폼 엔맵 GUI와 결과 뷰어를 완벽하게 정리한다. 13장과 14장에서는 출력 형태와 데이터 파일을 다룬다. 마지막이며 가장 긴 15장은 엔맵 레퍼런스 가이드로서 특정 엔맵 옵션을 쉽게 찾아볼 수 있는 핵심 내용이다.

책 전반에 걸쳐 열려있는 특정 단일 TCP 포트를 찾기 위해 네트워크를 스캐닝하거나, 네트워크에서 스캐닝함으로써 무선 액세스 포인트를 조사하는 등의 일반적인 작업을 수행하는 방법을 세세하게 설명했다. 먼저 각 문제를 서술한 후 효과적인 해결책을 제공한다. 각 장의 마지막 절에서는 해결책을 더 깊이 있게 다루고 이와 유사한 문제점에 관한 다른 해결책이나 통찰을 제공한다.

저자/역자 소개

[ 한국어판 특별 서문 ]

한국 독자들에게

『엔맵 네트워크 스캐닝』 책을 구입해주신 데 대해 감사 드리며, 이 책으로 엔맵을 더 잘 활용할 수 있기를 바랍니다. 엔맵 스캐닝 도구가 여러분이 원하는 바를 충족시켜줄 거라 믿습니다.

엔맵은 12년 전 미국에서 개발됐지만 지금은 전 세계 사용자와 개발자 커뮤니티에서 토론될 정도로 많이 성장했습니다. 인터넷에는 국가라는 제약이 없습니다. 한국 독자들도 엔맵 개발자 메일링 리스트(http://nmap-dev.org)에 가입하셔서 엔맵 프로젝트에 더 많이 동참해주시기를 바랍니다.

저는 특히 한국 시장에 관심이 많습니다. 한국은 매우 발전적인 보안 커뮤니티를 갖고 있습니다. 블랙 햇(Black Hat)과 데프콘(Defcon) 컨퍼런스에서 매년 많은 한국인을 만납니다. 특히 캡처 더 플래그(Capture the Flag) 경기에서 경쟁자로 만난 한국인들은 매우 열정이 넘치더군요.

이 책을 한국에서 번역할 수 있게 도와준 에이콘 출판사에 감사 드립니다.

즐거운 해킹하세요.

표도르(Fyodor)


[ 저자 서문 ]

1997년 9월 1일 나는 프락(Phrack) 잡지의 51번째 이슈에 엔맵(Nmap)이라는 이름의 보안 스캐너를 공개했다. 내 목표는 조각난 필드의 특정 대상 포트를 스캐닝하는 스캐너를 만드는 것으로, 일관성 있는 인터페이스를 갖고 모든 실질적인 포트 스캐닝 기술을 효율적으로 실행할 수 있는 하나의 강력하고 융통성 있는 무료 통합 도구로 만드는 것이었다. 엔맵은 3개 파일(거의 2,000줄의 코드)로 구성됐고, 처음에는 리눅스 운영체제만 지원했다. 또한 단순히 나의 목표였지만 다른 사람들에게도 유용하기를 바라는 마음에서 대중에게 엔맵을 공개했다.

이런 겸허한 시작에서 출발해 오픈소스의 힘을 얻은 엔맵은 전 세계적으로 수백만이 사용하는, 세계에서 가장 인기 있는 네트워크 보안 스캐너로 성장했다. 수년 동안 엔맵은 원격 운영체제 탐지, 버전/서비스 탐지, IP ID Idle 스캐닝, 엔맵 스크립팅 엔진, 빠른 멀티프로브 핑 스캐닝 같은 고급 기능을 계속 추가했다. 이제 엔맵은 주요 유닉스 모두와 윈도우, 맥 OS 플랫폼을 지원한다. 그리고 콘솔과 그래픽 버전 둘 다 사용 가능하다. 리눅스 저널, 정보세상(Info World), LinuxQuestions.Org, 코드토커 다이제스트(Codetalker Digest) 같은 출판사들은 엔맵을 ‘올해의 보안 도구’로 선정했다. 엔맵은 심지어 매트릭스 리로디드, 본 얼티메이텀, 다이하드 4 같은 여러 영화에도 등장했다.

엔맵(네트워크 매퍼)은 네트워크 탐색과 보안 감사를 위해 활용할 수 있는 무료 오픈소스 유틸리티다. 많은 시스템과 네트워크 관리자는 엔맵이 네트워크 목록과 서비스 업그레이드 스케줄 관리, 호스트나 서비스 가동 시간 모니터링 같은 여러 작업에도 유용하다는 점을 알아냈다. 엔맵은 네트워크에서 사용 가능한 호스트, 해당 호스트가 제공하는 서비스(애플리케이션 이름과 버전), 대상 시스템에서 돌아가는 운영체제 종류와 버전, 사용된 패킷 필터/방화벽 종류 등 대상 시스템의 다양한 특성을 식별하는 데 사용할 수 있다. 엔맵은 방대한 네트워크를 빠르고 효율적으로 스캔하기 위해 설계됐지만 단일 호스트 대상으로도 잘 작동한다.

엔맵은 아주 강력한 반면, 복잡하다. 100개 이상의 커맨드라인 옵션이 네트워킹 구루들에게는 쓸모가 있겠지만 초보자를 당황하게 할 수도 있다. 일부 엔맵 옵션은 문서화되지도 않았다. 이 책은 엔맵의 모든 특성을 정리했고, 더 중요하게는 그런 특성을 사용하는 가장 효율적인 방법을 알려준다. 엔맵이 계속 발전함에 따라 이 책을 완성하는 데만도 거의 4년이 걸렸다.

이 책을 엔맵 사용자와 개발자 공동체에 바친다. 여러분의 열정과 아이디어, 패치, 특성 요구, 플레임 워(Flame war), 버그 리포트, 한밤중에 불현듯 떠오른 아이디어들로 인해 엔맵을 지금의 모습으로 만들 수 있었다.


[ 저자 소개 ]

고든 ‘표도르’ 라이언
고든 라이언(닉네임은 표도르(Fyodor)로 알려졌다)은 1997년에 엔맵을 발표했고 지속적으로 수정과 개발 중이다. 그는 또한 Insecure.Org, Nmap.Org, SecList.org, SecTools.Org 보안 사이트를 운영하며, 운영체제 탐지와 숨김 포트 스캐닝에 관한 다양한 문서를 작성했다. 그는 허니넷(Honeynet) 프로젝트의 설립 멤버이자 보안 컨퍼런스에서 유명한 발표자이기도 하다. 또한 그는 『Know Your Enemy: Honeynet』과 『Stealing the Network: How to Own a Continent』의 공동 저자이기도 하다. 고든은 1981년 이래로 보안, 개인 정보, 자유로운 발표를 권장하는 CPSR(Computer Professional for Social Responsibility)의 회장으로 재임 중이다.


[ 옮긴이의 말 ]

이 책에 흥미를 가진 독자라면 적어도 정보 보안에 관심이 있거나 시스템과 네트워크에 관심이 있는 독자일 가능성이 높다. 엔맵이라는 도구는 너무나도 잘 알려진 네트워크 탐험 도구다. 큰 바다에서 길을 찾거나 원하는 목적지를 찾는 과정에서 항해 지도나 나침반이 필수이듯이 네트워크라는 큰 바다를 탐험할 때 엔맵은 반드시 갖고 있어야 하는 필수 장비다.

한국에서 구글 검색을 사용하든, 페이스북을 사용하든 해당 시스템은 태평양 건너편에 존재한다. 여러분이 인터넷 익스플로러에서 www.google.com이나 www.facebook.com을 입력하면 패킷이라는 조각이 여러분의 컴퓨터에서 출발한다. 패킷의 긴 항해는 여러분이 살고 있는 도시를 빠져 나와 태평양을 열심히 건너 미국에 도착한다. 미국에 도착한 패킷은 다시 www.google.com이 있는 서버로 달려간다. 그 후 해당 서버를 찾은 후 다시 반대로 긴 항해를 한 뒤 여러분의 화면에 결과를 보여준다. 이렇듯 간단한 것 같지만, 실제 네트워크상에서 수많은 작업이 이뤄져 결국 여러분 모니터 화면에 뜨게 되는 것이다.

이렇듯 네트워크 세상은 여러분이 상상하고 있는 것보다 훨씬 더 심오하고 복잡하다. 매트릭스의 대사처럼 엔맵을 이용하면 네트워크상에서 ‘상상하는 것 이상을 보게 될’ 것이다.

나도 보안 컨설팅 업무를 할 때 계약한 고객사 네트워크 구조를 파악하기 위해 엔맵을 제일 먼저 꺼내 사용했다. 그러나 엔맵의 기본적인 기능과 일부 확장된 기능만을 이용했을 뿐이다. 이 책은 엔맵을 직접 개발한 저자가 쓴 만큼 엔맵에 대해 아주 상세하고 자세한 설명을 담고 있다. 역자가 이 책을 미리 봤더라면 아마도 다양한 공격 루트를 발견할 수 있었을 것이고, 고객사에 제출한 보고서의 퀄리티도 훨씬 더 높아졌을 거라고 생각한다.

『엔맵 네트워크 스캐닝』이라는 이 책은 총 15장으로 구성돼 있는데, 초보자를 위한 엔맵 설치부터 기본적인 스캐닝 기능을 초반에 설명한다. 중반에는 포트 스캐닝의 알고리즘과 최적화 방법을 설명하고, 서비스와 애플리케이션, 운영체제 탐지 같은 중요한 기능들을 자세히 설명한다. 또한 엔맵을 여러분이 원하는 대로 확장할 수 있는 엔맵 스크립팅 엔진을 설명하고, 후반부에는 엔맵의 결과로부터 생성되는 산출물과 포맷을 설명한다. 마지막으로 엔맵 레퍼런스 가이드 부분에서는 누구나 손쉽게 엔맵의 주요 기능들을 살펴볼 수 있다.

여러분이 보안 컨설턴트라면 이 책을 통해 업무 효율을 확실히 업그레이드할 수 있을 것이다. 여러분이 네트워크 관리자거나 보안 담당자라면 여러분이 속해있는 조직의 시스템 보안을 조기에 찾아 보완하는 데 이 책은 상당한 도움이 될 것이다.


[ 옮긴이 소개 ]

김경곤
현재 세계적인 글로벌 컨설팅 펌인 삼일PwC에서 시니어 컨설턴트로 일하고 있으며, 주 업무는 IT 위험 관리, 내부 감사(ITGC), 정보 보안이다. 또한 기업, 정부기관 등 80여개의 큰 사이트에 대한 모의해킹과 보안 컨설팅을 수행했으며, 삼성SDS, 금융권, 대기업, 학교를 비롯한 여러 기관에서 보안/해킹 강의를 했다. 숭실대학교 컴퓨터학부를 졸업하고, A3 Security Consulting과 SK 인포섹에서 보안 컨설턴트로 일한 경험이 있다.
제1회 해킹방어대회에서 대상을 수상해 정보통신부 장관상을 수여받았으며, 2007년도 세계해킹컨퍼런스인 데프콘에 아시아에서 유일하게 한국 팀 멤버로 참여하기도 했다. 그 외 EBS와 중앙일보에서 보안 컨설턴트에 대해 인터뷰를 하기도 했다.
저서로는 『정보보안 개론과 실습: 인터넷 해킹과 보안』(2005)이 있다.
역서로는 『와이어샤크를 활용한 실전 패킷 분석』(2007, 에이콘출판사), 『웹 해킹 & 보안 완벽 가이드』(2008, 에이콘출판사), 『윈도우 시스템 관리자를 위한 커맨드라인 활용 가이드』(2009, 에이콘출판사)가 있다.

김기남
The University of Melbourne에서 MEd(Master of Education, 영어교육학 석사)를 취득했으며, 8년간 일선 학교에서 영어 교사로 근무하고 있다. 『윈도우 시스템 관리자를 위한 커맨드라인 활용 가이드』(2009, 에이콘출판사)를 번역한 바 있다.

장세원
서울대학교 치과대학을 졸업하고 현재 분당에서 치과 개업 중이며, 국내에서 유명한 보안 관련 그룹에 소속돼 10여 년간 수많은 보안 기술 문서를 연구하고 번역한 경험이 있다.
역서로 『예지성 높은 치주외과치료』(퀸테센스 출판), 『[신판] 현대의 임상 보철』(퀸테센스 출판), 『前齒部 審美修復-자연치 편』(퀸테센스 출판), 『前齒部 審美修復-Implant 편』(퀸테센스 출판) 등 여러 권의 치과 관련 서적이 있다.

목차

목차
  • 1장 엔맵 네트워킹 스캐닝 시작
  • 1.1 소개
  • 1.2 엔맵 개요와 예제
    • 1.2.1 아바타 온라인
    • 1.2.2 인류 구하기
    • 1.2.3 이상한 나라의 MadHat
  • 1.3 엔맵 스캔의 단계
  • 1.4 법적 이슈
    • 1.4.1 권한을 받지 않은 포트 스캐닝이 범죄인가?
    • 1.4.2 포트 스캐닝이 대상 컴퓨터나 네트워크 기능을 멈추게 할 수 있는가?
    • 1.4.3 엔맵 저작권
  • 1.5 엔맵의 역사와 미래
  • 2장 엔맵 얻기, 컴파일, 설치, 제거
  • 2.1 소개
    • 2.1.1 엔맵의 존재 여부 검사
    • 2.1.2 커맨드라인과 그래픽 인터페이스
    • 2.1.3 엔맵 다운로드
    • 2.1.4 엔맵 다운로드의 무결성 검증
    • 2.1.5 엔맵을 Subversion(SVN) 저장소에서 얻기
  • 2.2 소스코드로부터 유닉스 컴파일과 설치
    • 2.2.1 디렉티브(지시문) 구성
    • 2.2.2 컴파일 오류에 맞닥뜨리면
  • 2.3 리눅스 배포판
    • 2.3.1 RPM 기반 배포판(레드 햇, 맨드레이크, 수세, 페도라)
    • 2.3.2 Yum에 의한 레드햇, 페도라, 맨드레이크, 옐로우 독 리눅스 업데이트
    • 2.3.3 데비안 리눅스와 우분투 배포판 계열
    • 2.3.4 다른 리눅스 배포판
  • 2.4 윈도우
    • 2.4.1 윈도우 2000 의존성 프로그램
    • 2.4.2 윈도우 자동 설치 프로그램
    • 2.4.3 커맨드라인 Zip 바이너리
    • 2.4.4 소스코드 컴파일
    • 2.4.5 윈도우에서 엔맵 실행
  • 2.5 썬 솔라리스
  • 2.6 애플 맥 OS X
    • 2.6.1 실행 가능한 인스톨러
    • 2.6.2 소스코드 컴파일
    • 2.6.3 제3자 패키지
    • 2.6.4 맥 OS X에서 엔맵 실행
  • 2.7 Free BSD / Open BSD / Net BSD
    • 2.7.1 Open BSD 바이너리 패키지와 소스 포트 사용법
    • 2.7.2 Free BSD 바이너리 패키지와 소스 포트 사용법
    • 2.7.3 Net BSD 바이너리 패키지 사용법
  • 2.8 아미가, HP-UX, IRIX, 기타 플랫폼들
  • 2.9 엔맵 제거
  • 3장 호스트 발견(핑 스캐닝)
  • 3.1 소개
  • 3.2 대상 호스트와 네트워크 목록 나열
    • 3.2.1 목록으로부터 입력(-iL)
    • 3.2.2 대상을 임의대로 선택(-iR <numtargets>)
    • 3.2.3 대상 제외시키기(--exclude, --excludefile <filename>)
    • 3.2.4 실제 예
  • 3.3 대상 조직의 IP 주소 찾기
    • 3.3.1 DNS 속임수
    • 3.3.2 IP 레지스트리에 대한 Whois 질의
    • 3.3.3 인터넷 라우팅 정보
  • 3.4 DNS 해석
  • 3.5 호스트 발견 컨트롤
    • 3.5.1 목록 스캔(-sL)
    • 3.5.2 핑 스캔(-sP)
    • 3.5.3 핑을 사용 불가능하게 하기(-PN)
  • 3.6 호스트 발견 기술
    • 3.6.1 TCP SYN 핑(-PS<port list>)
    • 3.6.2 TCP ACK 핑(-PA<port list>)
    • 3.6.3 UDP 핑(-PU<port list>)
    • 3.6.4 ICMP 핑 종류(-PE, -PP, ?PM)
    • 3.6.5 IP 프로토콜 핑(-PO<protocol list>)
    • 3.6.6 ARP 스캔(-PR)
    • 3.6.7 기본 조합
  • 3.7 종합 정리: 호스트 발견 전략
    • 3.7.1 관련 옵션
    • 3.7.2 핑 옵션 선택과 결합
  • 3.8 호스트 발견 코드 알고리즘
  • 4장 포트 스캐닝 개요
  • 4.1 포트 스캐닝 소개
    • 4.1.1 포트란 정확히 무엇인가?
    • 4.1.2 가장 인기 있는 포트는 무엇인가?
    • 4.1.3 포트 스캐닝이란
    • 4.1.4 포트를 스캔하는 이유
  • 4.2 빠른 포트 스캐닝 지침서
  • 4.3 커맨드라인 플래그
    • 4.3.1 스캔 기술 선택
    • 4.3.2 스캔할 포트 선택
    • 4.3.3 시간 관련 옵션
    • 4.3.4 출력 형식과 다양한 옵션
    • 4.3.5 방화벽과 IDS 침입 옵션
    • 4.3.6 대상 지정하기
    • 4.3.7 기타 옵션
  • 4.4 IPv6 스캐닝(-6)
  • 4.5 해결책: 특정 열린 TCP 포트를 위한 거대 네트워크 스캔
    • 4.5.1 문제
    • 4.5.2 해결책
    • 4.5.3 토론
    • 4.5.4 추가 사항
  • 5장 포트 스캐닝 기술과 알고리즘
  • 5.1 소개
  • 5.2 TCP SYN(스텔스) 스캔
  • 5.3 TCP 연결 스캔(-sT)
  • 5.4 UDP 스캔(-sU)
    • 5.4.1 필터된 UDP 포트에서 열린 포트를 확인
    • 5.4.2 UDP 스캔 속도 올리기
  • 5.5. TCP FIN, NULL, Xmas 스캔(-sF, -sN, -sX)
  • 5.6 --scanflags로 스캔 유형 커스텀
    • 5.6.1 커스텀 SYN/FIN 스캔
    • 5.6.2 PSH 스캔
  • 5.7 TCP ACK 스캔(-sA)
  • 5.8 TCP 윈도우 스캔(-sW)
  • 5.9 TCP Maimon 스캔(-sM)
  • 5.10 TCP Idle 스캔(-sI)
    • 5.10.1 Idle 스캔 단계
    • 5.10.2 작동하는 Idle 스캔 좀비 호스트 찾기
    • 5.10.3 5.10.3. Idle 스캔 수행하기
    • 5.10.4 Idle 스캔 실행 알고리즘
  • 5.11 IP 프로토콜 스캔(-sO)
  • 5.12 TCP FTP 바운스 스캔(-b)
  • 5.13 스캔 코드와 알고리즘
    • 5.13.1 네트워크 조건 모니터링
    • 5.13.2 호스트와 포트 병행화
    • 5.13.3 왕복 시간 측정
    • 5.13.4 혼잡 제어
    • 5.13.5 타이밍 프로브
    • 5.13.6 추측된 인접 시간
    • 5.13.7 적응 재전송
    • 5.13.8 스캔 지연
  • 6장 엔맵 성능 최적화
  • 6.1 소개
  • 6.2 스캔 시간 축소 기술
    • 6.2.1 중요하지 않은 테스트 생략
    • 6.2.2 타이밍 매개변수 최적화
    • 6.2.3 UDP 스캔 분리와 최적화
    • 6.2.4 엔맵 업그레이드하기
    • 6.2.5 엔맵 인스턴스 병행 실행
    • 6.2.6 선호하는 네트워크 위치에서 스캔
    • 6.2.7 사용 가능한 대역폭과 CPU 시간 증가
  • 6.3 장시간이 소요되는 스캔을 위한 대처 전략
    • 6.3.1 다단계 접근법 사용하기
    • 6.3.2 스캔 시간 추정과 계획
  • 6.4 포트 선택을 위한 데이터와 전략
  • 6.5 로우레벨 타이밍 제어
  • 6.6 타이밍 템플릿(-T)
  • 6.7 46시간만에 676,352개의 IP 주소 스캔
  • 7장 서비스와 애플리케이션 버전 탐지
  • 7.1 소개
  • 7.2 사용법과 예제
  • 7.3 기술적 설명
    • 7.3.1 치트와 폴백
    • 7.3.2 프로브 선택과 래리티
  • 7.4 기술적 데모
  • 7.5 포스트 프로세서
    • 7.5.1 7.5.1. 엔맵 스크립팅 엔진 통합
    • 7.5.2 RPC 그라인딩
    • 7.5.3 SSL 포스트 프로세서
  • 7.6 nmap-service-probes 파일 포맷
    • 7.6.1 Exclude 지시자
    • 7.6.2 Probe 지시자
    • 7.6.3 match 지시자
    • 7.6.4 softmatch 지시자
    • 7.6.5 ports와 sslports 지시자
    • 7.6.6 totalwaitms 지시자
    • 7.6.7 rarity 지시자
    • 7.6.8 fallback 지시자
    • 7.6.9 모두 한 번에 담기
  • 7.7 커뮤니티 배포
    • 7.7.1 서비스 핑거프린터 보내기
    • 7.7.2 데이터베이스 수정 전달
    • 7.7.3 새로운 프로브 전송
  • 7.8 해결책: Insecure나 비표준 애플리케이션 버전에 동작하는 모든 서버를 찾아라
    • 7.8.1 문제 상황
    • 7.8.2 해결 방안
    • 7.8.3 토론
  • 7.9 해결 방안: 오픈 프록시 탐지 같은 커스텀 요구를 맞추기 위해 버전 탐지 해킹
    • 7.9.1 문제 상황
    • 7.9.2 해결 방안
    • 7.9.3 토론
  • 8장 원격 운영체제 탐지
  • 8.1 소개
    • 8.1.1 운영체제 탐지 이유
  • 8.2 사용법과 예
  • 8.3 엔맵이 지원하는 TCP/IP 핑거프린팅 방법
    • 8.3.1 프로브의 전달
    • 8.3.2 응답 테스트
  • 8.4 엔맵이 사용하지 않는 핑거프린팅 방법
    • 8.4.1 수동적 핑거프린팅
    • 8.4.2 익스플로잇 연대기
    • 8.4.3 재전달 시간
    • 8.4.4 IP 단편화
    • 8.4.5 열린 포트 패턴
  • 8.5 엔맵 핑거프린트의 이해
    • 8.5.1 조건 핑거프린팅 포맷 디코딩
    • 8.5.2 참조 핑거프린트 포맷 디코딩
  • 8.6 운영체제 매치 알고리즘
  • 8.7 잘못 인식한 것과 인식되지 않은 호스트들 다루기
    • 8.7.1 엔맵의 추측이 틀릴 때
    • 8.7.2 엔맵이 매치하는 것이 없이 핑거프린트를 출력할 때
    • 8.7.3 nmap-os-db 데이터베이스 직접 수정
  • 8.8 해결책: 엔터프라이즈 네트워크에서 악의의 무선접속장치 탐지
    • 8.8.1 문제 상황
    • 8.8.2 해결책
    • 8.8.3 WAP의 특징
  • 9장 엔맵 스크립팅 엔진
  • 9.1 소개
  • 9.2 사용법과 예제
    • 9.2.1 스크립트 카테고리
    • 9.2.2 커맨드라인 인자
    • 9.2.3 스크립트에 인자 사용
    • 9.2.4 예제
  • 9.3 스크립트 형식
    • 9.3.1 description 필드
    • 9.3.2 categories 필드
    • 9.3.3 author 필드
    • 9.3.4 license 필드
    • 9.3.5 runlevel 필드
    • 9.3.6 포트와 호스트 규칙
    • 9.3.7 액션
  • 9.4 스크립트 언어
    • 9.4.1 Lua 기반 언어
  • 9.5 NSE 스크립트
  • 9.6 NSE 라이브러리
    • 9.6.1 모든 라이브러리 목록
    • 9.6.2 Nselib에 C 모듈 추가하기
  • 9.7 엔맵 API
    • 9.7.1 스크립트로 전달되는 정보
    • 9.7.2 네트워크 I/O API
    • 9.7.3 스레드 뮤텍스
    • 9.7.4 예외 처리
    • 9.7.5 레지스트리
  • 9.8 스크립트 작성 튜토리얼
    • 9.8.1 헤더
    • 9.8.2 규칙
    • 9.8.3 메커니즘
  • 9.9 스크립트 문서 작성(NSEDoc)
    • 9.9.1 NSE 문서화 태그
  • 9.10 NSE를 이용한 버전 탐지
  • 9.11 스크립트 예제: finger.nse
  • 9.12 구현 상세 사항
    • 9.12.1 초기화 단계
    • 9.12.2 대상과 스크립트의 매칭
    • 9.12.3 스크립트 실행
  • 10장 방화벽과 침입 탐지 시스템 탐지와 무력화
  • 10.1 소개
  • 10.2 왜 윤리 의식을 가진 전문가(white hat)가 이런 짓을 해야 하는가?
  • 10.3 방화벽 규칙 이해
    • 10.3.1 표준 SYN 스캔
    • 10.3.2 ACK 스캔
    • 10.3.3 IP ID 트릭
    • 10.3.4 UDP 버전 스캐닝
  • 10.4 방화벽 규칙 우회
    • 10.4.1 이색적인 스캔 플래그
    • 10.4.2 소스 포트 조작
    • 10.4.3 IPv6 공격
    • 10.4.4 IP ID Idle 스캐닝
    • 10.4.5 다중 핑 프로브
    • 10.4.6 단편화
    • 10.4.7 프록시
    • 10.4.8 MAC 주소 속이기
    • 10.4.9 소스 라우팅
    • 10.4.10 FTP 바운스 스캔
    • 10.4.11 다른 경로를 얻어라
    • 10.4.12 방화벽 무력화의 실제 예제
  • 10.5 침입 탐지 시스템 무력화
    • 10.5.1 침입 탐지 시스템의 탐지
    • 10.5.2 침입 탐지 시스템 회피
    • 10.5.3 침입 탐지 시스템 현혹시키기
    • 10.5.4 reactive 시스템에 대한 DoS 공격
    • 10.5.5 침입 탐지 시스템 익스플로잇
    • 10.5.6 침입 탐지 시스템 무시
  • 10.6 방화벽과 침입 탐지 시스템에 의한 패킷 위조 탐지
    • 10.6.1 TTL의 일관성 찾기
    • 10.6.2 IP ID와 일련번호의 일관성 찾기
    • 10.6.3 위조 TCP 체크섬 트릭
    • 10.6.4 라운드 트립 시간
    • 10.6.5 패킷 헤더와 내용의 세밀한 분석
    • 10.6.6 비정상적인 네트워크 균일성
  • 11장 엔맵 방어
  • 11.1 소개
  • 11.2 능동적인 스캔, 포트의 닫기와 막기, 취약점 수정
  • 11.3 방화벽으로 엔맵을 막거나 느리게 하기
  • 11.4 엔맵 스캔 탐지
  • 11.5 영리한 속임수
    • 11.5.1 불분명한 포트에 서비스 숨기기
    • 11.5.2 포트 노킹
    • 11.5.3 허니팟과 허니넷
    • 11.5.4 운영체제 속이기
    • 11.5.5 타르 피트
    • 11.5.6 포트 스캔 탐지 반응
    • 11.5.7 군비 경쟁의 증가
  • 12장 젠맵 그래픽 유저 인터페이스 사용자 가이드
  • 12.1 소개
    • 12.1.1 엔맵 GUI의 필요성
  • 12.2 스캐닝
    • 12.2.1 프로파일
    • 12.2.2 스캔 결과 모으기
  • 12.3 스캔 결과 해석하기
    • 12.3.1 스캔 결과 탭
    • 12.3.2 호스트별로 정렬하기
    • 12.3.3 서비스별로 정렬하기
  • 12.4 스캔 결과 저장과 불러오기
    • 12.4.1 최근 스캔 데이터베이스
  • 12.5 네트워크 토폴로지 활용하기
    • 12.5.1 토폴로지 탭 개요
    • 12.5.2 범례
    • 12.5.3 컨트롤
    • 12.5.4 키보드 단축키
    • 12.5.5 호스트 뷰어
  • 12.6 엔맵 명령 마법사
  • 12.7 프로파일 편집기
    • 12.7.1 새 프로파일 만들기
    • 12.7.2 프로파일 수정하기
    • 12.7.3 기존 프로파일로 새 프로파일 만들기
  • 12.8 저장된 결과 검색하기
  • 12.9 결과 비교하기
    • 12.9.1 그림으로 비교
    • 12.9.2 텍스트로 비교
  • 12.10 젠맵에서 쓰이는 파일
    • 12.10.1 nmap 실행 파일
    • 12.10.2 시스템 설정 파일
    • 12.10.3 사용자별 설정 파일
    • 12.10.4 산출물 파일
  • 12.11 zenmap.conf의 내용
    • 12.11.1 zenmap.conf의 섹션
  • 12.12 커맨드라인 옵션
    • 12.12.1 요약 정리
    • 12.12.2 옵션 요약
    • 12.12.3 오류 산출물
  • 12.13 젠맵의 역사
  • 13장 엔맵 산출물의 포맷
  • 13.1 소개
  • 13.2 커맨드라인 플래그
    • 13.2.1 산출물 유형 제어
    • 13.2.2 산출물의 상세도 조절하기
    • 13.2.3 디버깅 활성화
    • 13.2.4 오류 처리와 경고 메시지
    • 13.2.5 패킷 추적 활성화
    • 13.2.6 중단된 스캐닝을 이어서 계속 수행
  • 13.3 인터랙티브 산출물
  • 13.4 정규 산출물(-oN)
  • 13.5 $crlpT kIddI3 0uTPut(-oS)
  • 13.6 XML 산출물(-oX)
    • 13.6.1 XML 산출물 사용
  • 13.7 XML 산출물을 펄로 조작
  • 13.8 데이터베이스로 산출물 저장
  • 13.9 HTML 보고서 생성하기
    • 13.9.1 영구 HTML 보고서로 저장
  • 13.10 그렙 가능한 산출물(-oG)
    • 13.10.1 그렙 가능한 산출물 필드
    • 13.10.2 커맨드라인에서 그렙 가능한 산출물 파싱
  • 14장 엔맵 데이터 파일 이해와 커스터마이징
  • 14.1 소개
  • 14.2 잘 알려진 포트 목록: nmap-services
  • 14.3 버전 스캐닝 데이터베이스: nmap-service-probes
  • 14.4 SunRPC 번호: nmap-rpc
  • 14.5 엔맵 운영체제 탐지 데이터베이스: nmap-os-db
  • 14.6 MAC 주소 벤더 프리픽스: nmap-mac-prefixes
  • 14.7 IP 프로토콜 번호 목록: nmap-protocols
  • 14.8 스크립팅 관련 파일
  • 14.9 커스텀 데이터 파일 사용
  • 15장 엔맵 레퍼런스 가이드
  • 15.1 설명
  • 15.2 옵션 개요
  • 15.3 대상 명세
  • 15.4 호스트 발견
  • 15.5 포트 스캐닝 기초
  • 15.6 포트 스캐닝 기술
  • 15.7 포트 지정과 스캔 순서
  • 15.8 서비스 탐지와 버전 탐지
  • 15.9 운영체제 탐지
  • 15.10 엔맵 스크립팅 엔진(NSE)
  • 15.11 시간과 성능
  • 15.12 방화벽/IDS 회피와 스푸핑
  • 15.13 출력
  • 15.14 다양한 옵션
  • 15.15 실행 시의 상호 작용
  • 15.16 활용 예
  • 15.17 버그
  • 15.18 저자
  • 15.19 법적 고지
    • 15.19.1 엔맵 저작권과 특허
    • 15.19.2 이 엔맵 가이드를 위한 Creative Commons License
    • 15.19.3 소스코드 가용성과 공공 기여
    • 15.19.4 보증을 하지 않음
    • 15.19.5 부적절한 이용
    • 15.19.6 써드파티 소프트웨어
    • 15.19.7 미국 수출 통제 분류
  • 부록 A 엔맵 XML 출력 문서 유형 정의
  • A.1 목적

관련 블로그 글

좀비 호스트를 찾아라! 네트워크 스캐너 엔맵(Nmap)!
사용자 삽입 이미지
엔맵 네트워크 스캐닝
네트워크 발견과 보안 스캐닝을 위한 Nmap 공식 가이드
고든 '표도르' 라이언 지음 | 김경곤 김기남 장세원 옮김
680쪽 | 35,000원 | 2009년 11월 16일 출간예정 | 해킹과 보안 시리즈 22
YES24, 교보문고, 강컴, 알라딘, 인터파크

사용자 삽입 이미지

트리니티와 함께 위기에 빠진 시온을 구하라. 엔맵!!

자, 1초 드립니다. 무슨 영화의 한 장면인지 한번 맞춰보세요. 1초 이상의 시간을 드리는 건 독자 여러분을 무시하는 듯하여!
또옥~딱, 아... 네. 빙고. 우리의 명민한 에이콘 독자라면 0.1초에 모두 맞추셨을 거라 믿습니다. :)

1999년 전세계에 네오와 트리니티, 가상 세계 열풍을 몰고온 '매트릭스'의 두 번째 이야기, 2003년 개봉한 <매트릭스 리로디드>의 한 장면입니다. 우리가 살고 있는 이 세계가 사실은 무언가의 프로그래밍에 의해 정교하게 움직이는 가짜라는 잔혹한 현실.

해방된 인간이 살고 있는 진짜 세계 시온이 2십5만 개의 센티널에 의해 공격을 받고 있습니다. 트리니티는 5분 이내로 28개 도시 블록의 비상전원시스템을 차단해야 합니다. 이전 팀은 시도 중에 모두 목숨을 잃었습니다. 우선 수많은 네트워크에 설치된 방화벽과 침입 탐지 시스템을 무찔러야 합니다. 트리니티는 오토바이를 타고 사투 끝에 컴퓨터실로 접근하는 데 성공합니다.

사용자 삽입 이미지

네트워크는 사설 1.0.0.0/8 네트워크 주소공간을 사용한다는 사실을 알아낸 트리니티. 네트워크 주소로 핑(ping)을 날려 수십 개의 장치로부터 반응을 얻어냅니다. 그리고 여기서 드디어 엔맵(Nmap)이 등장합니다.
터미널에는 엔맵 베타 버전 2.54BETA25가 깔려있군요. 2001년 버전이긴 하지만 트리니티가 새 버전을 설치할 여유는 없습니다. 어서 서둘러야 해요.

nmap -v -sS -O 10.2.1.3

TCP SYN 스캔과 10.2.1.3에 대한 운영체제 탐지 작업에 대한 명령을 실행합니다. 호스트는 그녀 예상대로 보안에 취약합니다. 같은 명령을 10.2.2.2에 대해서도 실행해봅니다. 이번에는 대상 운영체제가 인식되지 않습니다(쯔즛. 늘 새 버전으로 업데이트하면 찾아낼 수 있었을 텐데 말입니다). 하지만 포트 22는 열립니다. 이것은 관리 서비스를 암호화한 보안 셸(Secure Shell)입니다. 2001년 당시 많은 SSH 서버는 여러 가지로 취약점이 많았습니다. 트리니티는 대상 박스의 루트 암호를 Z10N10101 암호로 바꾸기 위해 가능한 코드 조합을 모두 사용합니다. 그리고 로그인해서 21에서 48 블록까지 28개도시의 비상 백업 전원을 모두 차단하라는 명령을 내립니다.

사용자 삽입 이미지

미션 성공! 이제 도시의 불빛은 하나둘 꺼져갑니다. 우리의 시온은.........  이후 자세한 이야기는 영화를 참조하시구요.

이 장면은 여기 유튜브 링크에서 생생하게 보실 수 있습니다. 퍼오자니 저작권 ㅎㄷㄷ스러워서...
 
매트릭스와 엔맵

그 이후 수많은 본빠를 양산해낸 또다른 트릴로지 본 시리즈 중에서 <본 얼티메이텀>에 엔맵은 또 다른 모습을 선보입니다. <매트릭스 리로디드>에서 기본적인 커맨드라인 방식을 선보였지만, <본 얼티메이텀>에서는 궁극의 GUI 버전인 젠맵(Zenmap)이 쓰인 것이지요. 어느쪽이 폭풍 간지인지는 여러분의 취향입니다.

사용자 삽입 이미지

사용자 삽입 이미지

저도 매트릭스 팬이었지만 그 영화에서 쓰인 툴이 무엇인지는 신경조차 쓰지 않았던 반면, 수많은 엔맵 사용자들은 헐리웃 영화에 속속 모습을 드러내는 엔맵에 환호성을 지릅니다. 엔맵이 무비 스타로 등극하고 최고의 네트워크 탐지 스캐너로 이름을 날리기 시작한 때였으니까요. 엔맵은 이후 <다이하드4> 등 7개 영화에 출연하며 승승장구합니다. 출연료를 받았는지는 알 수 없습니다만, 엔맵이 성공가도를 달리는 계기가 됐다는 데는 이견의 여지가 없겠군요. 엔맵 공식 사이트에 Movies featuring Nmap(http://nmap.org/movies.html)이라는 페이지를 운영할 정도니까요. 재미있는 이야기가 많으니 한번 살펴보세요.

창시자 고든 라이언(Gordon Lyon a.k.a Fyodor)은 유닉스 머신용으로 네트워크 매퍼(Network Mapper) 엔맵(Nmap)을 개발해 오픈소스로 전환한 후 수백만 명의 개발자의 열화와 같은 성원으로 지금은 주요 운영체제에서는 모두 사용할 수 있습니다. 심지어 게임기 OS인 아미가(Amiga)에서도 돌아갈 정도니까요.

엔맵의 공식 사이트 nmap.org에서는 오픈소스 프로젝트 엔맵에 대한 전세계 개발자들의 열정을 담아 시시각각 새로운 기능을 업데이트하고 있습니다. 독일과 브라질에 이어 세계에서 세 번째로 출간된 에이콘출판사의 번역서는 엔맵 도서 정보사이트에도 자랑스레 그 이름을 올려놓았습니다.

이 사이트의 인기는 저희도 이미 확인한 바 있는 게, 한달 전쯤 고든이 사이트에 올려놓은 책 출간 소식을 본 독자가 "엔맵 사이트에서 봤는데, 한국어판 책 언제 나오나요?"라고 문의 전화도 걸어주신 적이 있어 저희도 그 인기에 깜짝 놀랐답니다. 성(Lyon)을 한국어로 어떻게 표기할지 물어보니 사자(Lion) 발음과 같다하던 고든은, 계약 초기부터 자신의 책에 대한 뜨거운 관심과 기쁨을 표현했습니다. 아마 고든 사이트에 '에이콘출판사의 번역서 잘 읽었어요!'라며 인사를 건넨다면 정말 반갑게 맞아줄 겁니다. 아니면 저희에게 신고해주세요!^^

사용자 삽입 이미지

엔맵은 네트워크 탐색, 관리, 인벤토리, 보안 감사용도로 수백만 명이 사용해온 보안 툴입니다. 로우 IP 패킷을 사용해 네트워크상에서 이용가능한 호스트, 해당 호스트가 제공하는 서비스 이름과 버전, 서버의 운영체제 종류와 버전, 패킷 필터나 방화벽 종류까지 모든 것을 알아냅니다. 또한 각종 옵션을 사용해 방화벽과 침입탐지시스템을 탐색해내고 무력화시킬 수도 있습니다.

엔맵 네트워크 스캐너』는 엔맵의 창시자가 저술한 지상 유일 최고의 엔맵 공식 가이드입니다. 초보자를 위한 포트 스캐닝의 기초 설명에서 고급 해커들이 사용하는 상세한 로우레벨 패킷 조작 방법에 이르기까지, 모든 수준의 보안 전문가와 네트워크 전문가가 꼭 읽어야 할 책이지요.

이 책에서는 각종 사례를 들어 포트 스캔에 대해 설명합니다. 호텔에서 열리는 컨퍼런스에 참가한 어느 날, 고든은 누군가 자신의 노트북은 스캔하는 낌새를 알아챕니다. 잠자는 호랑이의 콧털을 건드린 셈이죠. 그는 엔맵을 이용해 다시 역스캔하여 해당 IP를 탐지해냈다는 이야기도 나옵니다. 게다가 유명한 잡지 플레이보이 서버를 스캔해 취약한 포트를 찾아내 로그인한 후 공짜로 이미지를 내려받아 저장했다는 무용담은 단지 웃거나 부러워할 수만은 없는 이야기인 것 같군요.

하지만 꼭 명심해야 할 것이 있습니다.

포트 스캔은 법적으로는 문제가 없지만 상대의 허락없이 사용했다간 정말 큰 코 다칠 수 있으니 절대 주의하셔야 합니다. 국가에 따라 범법 여부 범위가 다르며 포트 스캔으로 인해 시스템이 다운된 경우 해당 기업에서 소송을 걸어오면 형사/민사상의 책임 여부를 절대 피할 수 없다고 합니다. 한 마디로 모든 걸 잃을 수도 있다는 이야기죠.

그러니 반드시 시스템에 대한 스캔을 실시할 경우라면 반드시 대상 시스템이나 기업의 관리자에게 허락을 받아야 합니다. 아시죠. 이 책의 저자나 역자, 출판사는 그 이후의 여하한 상황에 대한 책임은 없다는 말씀.

그동안 이 책을 번역하시느라 고생하신 역자 김경곤님, 김기남님, 장세원님과 좋은 책 만드느라 늘 애쓰시는 편집자 박창기님께 진심으로 감사하다는 말씀 전합니다. 와이어샤크를 활용한 실전 패킷 분석, 웹 해킹 & 보안 완벽 가이드, 윈도우 시스템 관리자를 위한 커맨드라인 활용 가이드에 이어 벌써 4권의 책을 번역해주신 김경곤님 앞으로도 좋은 책 많이 소개해주시기 바랍니다.

취약한 컴퓨터를 찾아 좀비 호스트로 활용한 디도스(DDoS)공격을 막는 방법을 찾고 계시다면, 어서 엔맵으로 여러분의 사이트에 널려있는 취약점을 찾아 방어하십시오. 게다가 무료니까요!

엔맵의 무궁무진한 활용법은 모두 이 책을 손에 쥔 당신의 것입니다.

엔맵 네트워크 스캐너』는 YES24, 교보문고, 강컴, 알라딘, 인터파크와 전국 주요 서점에서 11월 16일에 만나실 수 있습니다.

Happy Hacking!!!

CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

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

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

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