저자 소개 ... ⅳ 옮긴이의 말 ... xii 옮긴이 소개 ... xiv 여는 글 ... xv 1장 정탐 ... 1 목표 ... 2 접근법 ... 5 정탐 방법론 ... 5 정보 수집 ... 7 풋프린팅 ... 18 검증 ... 24 핵심 기술 ... 35 정보 수집 ... 35 검색 엔진 ... 36 WHOIS ... 37 RWHOIS ... 38 도메인 네임 레지스트리와 레지스타라 ... 39 웹사이트 복사 툴 ... 40 풋프린팅 ... 40 DNS ... 41 SMTP ... 44 검증 ... 46 가상 호스팅 ... 46 IP 서브넷팅 ... 47 대륙별 인터넷 레지스트리 ... 47 오픈소스 툴 ... 50 정보 수집 툴 ... 51 웹 자원 ... 51 *nix 명령행 툴 ... 56 오픈소스 원도우 툴 ... 66 WinBiLE ... 67 풋프린팅 툴 ... 68 웹 자료 ... 68 *nix 콘솥 툴 ... 69 오픈소스 윈도우 툴 ... 72 검증 툴 ... 74 웹 자료 ... 74 *nix 콘솔 툴 ... 77 사례 연구 : 실제 툴 사용 ... 80 인터넷에 연결된 네트워크에 대한 정보 수집, 풋프린팅, 검증 ... 81 풋프린팅 ... 88 검증 ... 90 2장 열거와 스캐닝 ... 95 목표 ... 96 접근 방법 ... 97 스캐닝 ... 97 열거 ... 98 핵심 기술 ... 100 스캐닝은 어떻게 동작하는가 ... 100 포트 스캐닝 ... 101 열거 과정의 배후에서 일어나는 일 ... 103 서비스 식별 ... 104 RPC 열거 ... 104 핑거프린팅 ... 105 눈에 띄는 스캔, 스텔스 스캔, 그 중간 ... 105 타이밍 ... 106 대역폭 문제 ... 106 비정상적 패킷 생성 ... 107 오픈소스 툴 ... 107 스캐닝 ... 107 Fyodor의 nmap ... 108 netenum : ping 스윕 ... 114 unicornscan : 포트 스캔 ... 115 scanrand : 포트 스캔 ... 116 열거 ... 117 nmap : 배너 수집 ... 117 윈도우 열거 : smbgetserverinfo/smbdumpusers ... 123 사례 연구 : 실제 툴 사용 ... 129 외부 공격 ... 129 내부 공격 ... 135 스텔스 방법 ... 140 눈에 띄는 방법 - IDS 테스트 ... 143 추가 정보 ... 146 3장 데이터베이스 테스트 ... 149 목표 ... 150 예상 독자 ... 150 개요 ... 151 접근 방법 ... 152 데이터베이스 테스트 환경 ... 152 데이터베이스 침투 테스트 절차 ... 153 핵심 기술 ... 153 기본 용어 ... 154 데이터베이스 설치 ... 155 기본 사용자와 새 사용자 ... 156 역할과 권한 ... 159 기술적 세부 사항 ... 162 오픈소스 툴 ... 164 정보 수집 ... 164 풋프린팅, 스캐닝, 열거 툴 ... 165 포트를 이용해 데이터베이스 서버 찾기 ... 165 열거 툴 ... 167 인증이 필요없는 열거 ... 168 취약점 평가와 공격 툴 ... 175 네서스 검사 ... 175 네서스 데이터베이스 취약점 해석 ... 176 OScanner와 OAT ... 177 SQLAT ... 178 WHAX 툴 ... 179 사례 연구 : 실제 툴 사용 ... 180 MS SQL 평가 ... 181 오라클 평가 ... 183 추가 정보 ... 188 데이터베이스 찾기 ... 188 열거 툴 ... 188 4장 웹 서버 & 애플리케이션 테스트 ... 189 목표 ... 190 개요 ... 190 웹 서버 취약점 - 짧은 역사 ... 190 웹 애플리케이션 - 새로운 도전 ... 192 다루는 내용 ... 192 접근 방법 ... 192 접근 방법 : 웹 서버 테스트 ... 193 접근 방법 : CGI와 기본 페이지 테스트 ... 195 접근 방법 : 웹 애플리케이션 테스트 ... 196 핵심 기술 ... 197 웹 서버 공격 기본 ... 197 공격 개요 ... 197 CGI와 기본 페이지 공격 ... 202 웹 애플리케이션 평가 ... 205 정보 수집 공격 ... 205 파일 시스템과 디렉토리 순회 공격 ... 206 명령 실행 공격 ... 206 데이터베이스 요청 삽입 공격 ... 206 크로스 사이트 스크립팅 ... 207 인증과 인가 ... 208 인자 전달 공격 ... 208 오픈소스 툴 ... 209 정보 수집 툴 ... 209 스캐닝 툴 ... 218 평가 툴 ... 230 인증 ... 232 Proxy ... 241 공격 툴 ... 245 사례 연구 : 실제 툴 사용 ... 248 웹 서버 평가 ... 248 CGI와 기본 페이지 공격 ... 254 웹 애플리케이션 평가 ... 263 5장 Auditor를 이용한 무선 침투 테스트 ... 277 목표 ... 278 개요 ... 278 접근 방법 ... 279 WLAN 취약점 이해 ... 279 WLAN 취약점의 진화 ... 280 핵심 기술 ... 282 WLAN 발견 ... 282 적합한 안테나 선택 ... 284 WLAN 암호화 ... 285 WEP ... 285 WPA/WPA 2 ... 285 EAP ... 286 VPN ... 286 공격 ... 287 WEP 공격 ... 287 WPA 공격 ... 289 LEAP 공격 ... 289 VPN 공격 ... 290 오픈소스 툴 ... 291 풋프린팅 툴 ... 291 정보 수집 툴 ... 292 유즈넷 뉴스그룹 ... 292 구글 ... 293 스캐닝 툴 ... 293 Wellenreiter ... 294 Kismet ... 296 열거 툴 ... 298 취약점 평가 툴 ... 299 공격 툴 ... 301 MAC 주소 스푸핑 ... 301 Void11을 통한 인증 해제 ... 302 Aircrack 슈트를 이용한 WEP 크랙 ... 303 CoWPAtty를 이용한 WPA 크랙 ... 306 사례 연구 ... 307 사례 연구 : WEP 크랙 ... 307 사례 연구 : WPA-PSK 크랙 ... 311 추가 정보 ... 314 추가 GPSMap 맵 서버 ... 314 6장 네트워크 장비 ... 317 목표 ... 318 접근 방법 ... 318 핵심 기술 ... 319 오픈소스 툴 ... 320 풋프린팅 툴 ... 321 traceroute ... 321 DNS ... 321 nmap ... 323 ICMP ... 324 IKE-scan ... 325 스캐닝 툴 ... 326 nmap ... 326 ASS ... 329 Cisco Torch ... 331 Snmpfuzz.pl ... 332 열거 툴 ... 333 SNMP ... 333 Finger ... 334 취약점 평가 툴 ... 335 네서스 ... 335 공격 툴 ... 336 ADMsnmp ... 336 Hydra ... 337 TFTP-Bruteforce ... 339 Cisco Global Exploiter ... 339 IRPAS ... 340 Ettercap ... 343 사례 연구 : 실제 툴 적용 ... 344 무차별 공격으로 라우터 설정 파일 획득 ... 344 추가 정보 ... 353 범용/기본 벤더 비밀번호 ... 355 cge.pl 수정 ... 356 참고 자료 ... 356 소프트웨어 ... 357 7장 오픈소스 보안 툴 작성 ... 359 개요 ... 360 보안 툴을 직접 작성할 필요가 있을까? ... 360 프로그래밍 절차 ... 361 1단계 : 질문을 제대로 이해하기 ... 361 2단계 : 문제를 작고 관리 가능한 작은 문제로 분리 ... 362 3단계 : 의사코드 작성 ... 364 4단계 : 실제 코드 구현 ... 366 언어 ... 366 프로그래밍 언어 ... 367 로고 ... 367 베이직 ... 368 델파이 ... 368 C/C++ ... 369 펄 ... 369 C ... 370 파이썬 ... 370 자바 ... 371 웹 애플리케이션 언어 ... 372 PHP ... 372 ASP/ASP.NET ... 372 IDE ... 373 이클립스 ... 373 KDevelop ... 383 마이크로소프트 비주얼 스튜디오 .NET ... 388 Monodevelop ... 392 빠른 언어 습득을 위한 미니 가이드 ... 395 개요 ... 395 펄 미니 가이드 ... 395 기본 프로그램 구조, 데이터 구조, 조건문, 루프 ... 396 기본적인 파일 입출력과 서브루틴 ... 399 소켓 통신과 MySQL 사용 ... 401 웹 서비스 사용과 CGI 작성 ... 407 C 미니 가이드 ... 412 기본 프로그램 구조, 데이터 구조, 조건문, 루프 ... 412 기본 파일 입출력과 데이터베이스 ... 415 소켓에 쓰기 ... 419 결론 ... 422 유용한 기능과 코드 모음 ... 423 C 코드 ... 423 펄 코드 ... 427 7장에서 소개한 자료에 대한 링크/추가 자료 ... 428 8장 네서스 ... 429 소개 ... 430 네서스가 무엇인가? ... 430 기본 구성 요소 ... 431 클라이언트, 서버 ... 431 네서스 클라이언트 ... 433 플러그인 ... 434 지식 베이스 ... 435 네서스 실행 ... 436 Auditor에서 네서스 실행하기 ... 436 포인트 & 클릭 : Auditor에서의 네서스 실행 ... 437 네서스 시작 스크립트의 분석 ... 440 시작 스크립트 없이 네서스 실행 ... 442 윈도우에서의 네서스 실행 ... 446 네서스 유지 관리 ... 448 플러그인 업데이트 ... 448 Auditor의 플러그인 업데이트 : 방법 1 ... 449 Auditor의 플러그인 업데이트 : 방법 2 ... 451 네서스 프로그램의 업데이트 ... 456 네서스 이용 ... 457 플러그인 ... 458 환경 설정 탭 ... 459 스캔 옵션 ... 463 스캔 대상 선택 ... 465 요약 ... 466 신속한 설명 ... 467 관련 사이트 주소 ... 468 FAQ ... 468 9장 네서스 코딩 ... 471 소개 ... 472 NASL의 역사 ... 472 NASL의 목적 ... 473 간단함 & 편리함 ... 473 모듈성 & 효율성 ... 473 안전성 ... 474 NASL의 한계 ... 474 NASL 스크립트 구문 ... 475 주석문 ... 475 변수 ... 476 연산자 ... 478 제어 구조 ... 483 NASL 스크립트 작성 ... 487 개인적인 용도의 NASL 스크립트 작성 ... 488 네트워크 함수 ... 488 HTTP 함수 ... 488 패킷 처리 함수 ... 488 문자열 처리 함수 ... 489 암호화 함수 ... 489 NASL 커맨드 라인 인터프리터 ... 489 네서스 프레임워크 프로그래밍 ... 491 설명 함수 ... 491 사례 연구 : 일반적인 NASL 스크립트 ... 494 NASL 포팅 ... 498 로직 분석 ... 498 로직 식별 ... 498 의사 코드 ... 500 NASL로 포팅하기 ... 500 C/C++에서 NASL로 포팅하기 ... 501 NASL로부터 포팅하기 ... 507 스크립트의 여러 사례 ... 509 마이크로소프트 IIS HTR ISAPI 확장 버퍼 오버플로우 보안 취약점 ... 509 사례 연구 : IIS HTR ISAPI 필터 CVE-2002-0071 ... 510 마이크로소프트 IIS/Site Server codebrws.asp 임의 파일 접근 ... 514 사례 연구 : Codebrws.asp 보안 취약점 CVE-1000-0739 ... 514 마이크로소프트 SQL 서버 무작위 대입 ... 517 사례 연구 : 마이크로소프트 SQL 서버 무작위 대입(Bruteforce) ... 517 ActivePerl perllls.dll 버퍼 오버플로우 보안 취약점 ... 526 사례 연구 : ActivePerl perllls.dll 버퍼 오버플로우 ... 527 마이크로소프트 FrontPage/IIS 크로스 사이트 스크립트 shtml.dll 보안 취약점 ... 531 사례 연구 : Microsoft FrontPage XSS ... 532 요약 ... 536 신속한 설명 ... 537 관련 사이트 주소 ... 539 FAQ ... 540 10장 NASL 확장과 테스트 ... 543 소개 ... 544 인클루드 파일을 이용한 NASL 확장 ... 544 인클루드 파일 ... 544 네서스 지식 베이스를 이용한 테스트 성능 확장 ... 551 프로세스 실행과 결과 분석을 통한 테스트 성능 확장 ... 552 TRUSTED 함수로 무엇을 할 수 있는가? ... 553 TRUSTED 테스트 만들기 ... 555 요약 ... 562 11장 네서스 환경의 확장 기능 ... 563 소개 ... 564 smb_nt.inc 인클루드 파일이 제공하는 윈도우용 테스트 함수 ... 564 smb_hotfixes.inc 인클루드 파일이 제공하는 윈도우용 테스트 함수 ... 569 로컬 테스팅 인클루드 파일이 제공하는 유닉스용 테스트 함수 ... 573 요약 ... 580 12장 메타스플로이트 확장 Ⅰ ... 581 소개 ... 582 MSF 사용하기 ... 582 msfweb 인터페이스 ... 583 msfconsole 인터페이스 ... 597 msfconsole의 실행 ... 597 일반적인 msfconsole 명령 ... 598 MSF 환경 ... 599 msfconsole을 이용한 공격 ... 605 msfcli 인터페이스 ... 613 MSF 업데이트 ... 618 요약 ... 620 신속한 설명 ... 621 관련 사이트 주소 ... 621 FAQ ... 622 13장 메타스플로이트 확장 Ⅱ ... 625 소개 ... 626 메타플로이트를 이용한 공격 모듈 개발 ... 626 공격 벡터의 결정 ... 627 오프셋 계산 ... 628 제어 벡터 선택 ... 635 리턴 주소 찾기 ... 642 리턴 주소의 이용 ... 647 제외 문자 판단하기 ... 648 페이로드의 혀용 길이 계산 ... 650 Nop Sled ... 652 페이로드와 인코더의 선택 ... 654 공격 모듈을 프레임워크에 통합시키기 ... 665 프레임워크의 이해 ... 666 공격 모듈 분석 ... 668 함수 오버라이딩 ... 674 요약 ... 676 신속한 설명 ... 676 관련 사이트 주소 ... 677 FAQ ... 677 GNU General Public License ... 680 찾아보기 ... 687 부록 CD 소개 ... 714