서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
엔맵 네트워크 스캐닝
저자 : 고든 표도르 라이언
출판사 : 에이콘출판
출판년 : 2009
정가 : 35000, ISBN : 9788960771062
책소개
네트워크 발견과 보안 스캐닝에 대한 공식 엔맵 프로젝트 가이드
오픈소스인 엔맵 네트워크 스캐너는 네트워크 발견, 관리, 인벤토리, 보안 감사 용도로 수백만 명이 사용해왔다. 엔맵은 로우 IP 패킷을 새로운 방법으로 사용해 어느 호스트가 네트워크상에서 이용 가능한지, 해당 호스트에서 제공하는 애플리케이션의 이름과 버전, 운영체제 종류, 패킷 필터나 방화벽의 종류가 무엇인지를 식별할 수 있으며, 리눅스 저널과 인포 월드에서 '올해의 정보 보안 제품'으로 평가받았다. 또한 매트릭스 리로디드, 다이 하드 4, 본 얼티메이텀 등 7개 영화에서 해커가 사용하는 툴로 소개되기도 하였다.
엔맵은 아미가(Amiga) 등 주요 컴퓨터 운영체제에서 실행되며, 전통적인 커맨드라인 인터페이스와 젠맵(Zenmap) GUI도 들어있는 툴로, 이 책은 엔맵 보안 스캐너의 공식 가이드다. 초보자를 위한 포트 스캐닝의 기초 설명에서 고급 해커들이 사용하는 상세한 로우레벨 패킷 조작 방법에 이르기까지, 이 책은 모든 수준의 보안 전문가와 네트워크 전문가에게 적합하다. 70여 쪽에 이르는 레퍼런스 가이드(reference guide)는 엔맵의 모든 특성과 옵션을 문서화하고, 특성들을 실제 생활에 어떻게 적용해 문제를 빠르게 해결할 수 있는지 설명한다.
목차
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 목적
A.2 전체 DTD