나만의 해킹 랩 만들기

가상 환경을 이용한 실전 해킹 연습

언제나 테스트해 볼 수 있는 해킹 공격 실험실 ‘해킹 랩’을 구축해 보자!

해킹을 알려주는 책은 많지만 해킹을 시도하기 위한 환경 구축을 언급하는 책은 많지 않다. 해킹 관련 책을 통해 공격에 흥미를 느낀 사람들이 실제 해킹을 시도하다가 범법자가 된다면 그 또한 안타까운 일이 아닐 수 없다. 이 책에서는 건전하게 해킹 실험을 해볼 수 있는 환경을 구축한다.

이 책에서는 물리적인 환경에 구애받지 않고 해킹 실습을 할 수 있는 환경, 즉 '해킹 랩'을 만들어낸다. 보안에 대한 이해를 하는 데 있어 가장 좋은 것은 공격을 배우는 것이다. ‘해킹 랩’을 통한 공격 실습은 가상 환경에서 이루어지므로 언제나 안심하고 실습할 수 있다.

 

★ 이 책에서 다루는 내용 ★

  • 보안 기초 이해
  • 이동 가능한 해킹 랩 구축
  • 윈도우의 기본 조작 방법 습득
  • 프로그램 집중 관리
  • C 언어와 파이썬 등의 프로그래밍 환경 구축
  • OS(윈도우 및 칼리 리눅스)와 네트워크 지식 습득
  • 가상 환경을 통한 안전한 해킹 실습
  • 다양한 공격 방법 습득

IPUSIRON (입실론)

1979년 후쿠시마현 출신. 2001년 『해커 교과서』(국내 미출간) 출간. 업무용 응용 프로그램 등의 설계, 개발, 스마트폰용 앱이나 웹 응용 프로그램의 검사, 디버그, 기계 경비, 방재 설비 설치에 종사. 현재 정보 보안과 물리 보안을 통합적인 관점에서 연구하며 집필 중심으로 활동 중. 주요 저서로는 『암호 기술의 모든 것』, 『해커 학교』, 『해커 학교 개인정보 조사 교과서』, 『해커 학교 자물쇠 열기 교과서』가 있다.

양현

경희대학교 지리학과를 졸업하고 웹 개발자로 근무하다 보안 업무에 뛰어들었다. SK인포섹에서 소스 취약점 분석, 모의해킹, 서버 취약점 분석 업무로 본격적인 보안 실무 경험을 쌓고, NHN JAPAN을 거쳐 현재 DMM.com 그룹 전사 보안을 담당하고 있다. 번역한 책으로는 『하이퍼레저 패브릭 철저 입문』 『정보보안 콘테스트를 위한 CTF 문제집』 『블록체인 구조와 이론』 『CTF 정보보안 콘테스트 챌린지 북』 『알기 쉽게 설명한 VMware NSX』 『리눅스 서버 보안』 『취약점 진단 스타트 가이드』가 있다.

김민호

현재 일본 DMM.com의 보안 부서에서 근무하고 있다. 보안 이벤트 분석 및 패킷 포렌직을 주요 업무로 하고 있으며 주기적으로 회사 내에서 보안 강의를 진행하고 있다. 번역한 책으로는 『웹 애플리케이션 보안 완벽 가이드』 『CTF 정보보안 콘테스트 챌린지 북』 『취약점 진단 스타트 가이드』가 있다.

  • [1부] 해킹 랩 구축
    •  
  • ▣ 01장: 해킹 랩에서 할 수 있는 것
    • 1-1 해킹 랩이란
    • 1-2 이 책을 읽기 전에
      • 이 책으로 할 수 있는 것
      • 대상 독자
      • 필요한 배경 지식
    • 1-3 해킹 랩의 변천
      • 인터넷 보급(1995년~)
      • 조립 PC의 보급(1998년~)
      • 상시 접속 보급(2000년~)
      • 무선랜, 가상 환경 보급(2005년~)
      • 스마트폰 보급(2010년~)
      • 클라우드 스토리지 보급(2014년~)
    • 1-4 왜 해킹 랩을 만드는가?
      • 이 책의 목표
    • 1-5 이 책이 목표로 하는 해킹 랩의 구성 예
      • 주 PC가 노트북인 경우
      • 주 PC가 데스크톱인 경우
      • 이 책의 네트워크 구성 예
    •  
  • ▣ 02장: 가상 환경을 통한 해킹 랩 구축
    • 2-1 가상 환경이란?
      • 가상화란?
      • 가상화 소프트웨어와 가상 머신
      • 왜 가상 머신을 사용하는가?
      • 가상화 소프트웨어의 종류
      • 호스트와 게스트의 관계
    • 2-2 버추얼박스 설치
    • 2-3 버추얼박스 기본 설정
      • ‘기본 가상 머신 폴더’ 변경
      • 버추얼박스 확장팩 설치
    • 2-4 버추얼박스에 칼리 리눅스 설치
      • 리눅스란
      • 리눅스 배포판이란?
      • 칼리 리눅스란?
      • 칼리 가상 이미지 내려받기
      • 칼리 가상 이미지 설치
    • 2-5 칼리 리눅스 시작
      • 칼리 시작 및 종료
    • 2-6 칼리 리눅스 맞춤 설정
      • 해상도 변경
      • 화면 잠금 해제
      • 한국어 표시
      • 한국어 입력기 설치
      • 한글화하기
      • 시간대 설정
      • 네트워크 설정
      • 패키지 업데이트
      • root 계정의 패스워드 변경
      • 사용자 추가
      • SSH 환경 구축
      • 자동 대기모드 기능 비활성화
      • 숨겨진 파일 표시
      • 터미널 사용자화
      • 터미널 바로 가기 키 설정
      • 터미널 확장
      • 테마 변경
    • 2-7 파일 검색
      • [파일]의 검색 기능
      • locate 명령
      • find 명령
    • 2-8 칼리에서 패키지 설치
      • 데비안 패키지를 관리하는 dpkg
      • dpkg를 조작하는 APT
      • apt 설정 파일
      • apt 명령의 대표적인 사용법
      • dpkg 명령과 apt 명령의 사용처
      • 소스 코드에서 빌드하는 방법
    • 2-9 언제 어디서나 확인할 것
      • man 명령 활용
      • 섹션 번호
      • man 한국어
      • man2html 설치
    • 2-10 별칭 활용
      • 별칭 등록 방법
      • 자신만의 명령을 별칭에 추가
    •  
  • ▣ 03장: 호스트 운영체제 기본 설정
    • 3-1 파일 확장자 표시
    • 3-2 파일 및 폴더의 숨김 설정 해제
    • 3-3 제어판을 바로 열 수 있게 설정
    • 3-4 시작 메뉴의 주요 링크를 사용자화
    • 3-5 메인 PC의 폴더 구성 고려
      • 설치 폴더 생성
      • 시스템과 데이터용 파티션 분리
    • 3-6 호스트 운영체제와 게스트 운영체제 간 파일 교환
      • 파일 서버 이용
      • FTP 서비스 사용
      • 윈도우 파일 공유 기능 사용
      • 버추얼박스의 파일 공유 기능 사용
      • 버추얼박스의 드래그 앤드 드롭 기능 사용
      • 정리
    • 3-7 버추얼박스 파일 공유 기능 사용
      • 호스트 운영체제 설정
      • 게스트 운영체제에 게스트 확장 설치
      • 게스트 운영체제에서 공유 폴더에 접근
      • 마운트 위치 변경
      • 공유 폴더에 접근 가능한 사용자 설정
      • 버추얼박스의 드래그 앤드 드롭 기능 사용
    • 3-8 호스트 운영체제의 공유 설정 변경
    • 3-9 윈도우 업데이트 관리
      • 윈도우 업데이트 방침
    • 3-10 바이러스 및 위협 방지 설정 변경
      • 실시간 보호 끄기
      • 보호 기록에서 복구
      • 백신 검사에서 제외
    • 3-11 자동 실행 설정 확인
      • 자동 실행 악용
      • 자동 실행 알림 설정
      • 자동 실행 끄기
    • 3-12 공유 폴더에 ‘Thumbs.db’ 파일 생성 중지
    • 3-13 마우스 오른쪽 버튼 클릭 메뉴 맞춤 설정
      • 보내기 메뉴에 추가
      • 오른쪽 버튼 클릭 메뉴에 항목 추가
      • 폴더에서 오른쪽 버튼을 클릭했을 때의 메뉴 표시
    • 3-14 저장소 센스를 이용해 불필요한 파일 삭제
    • 3-15 런처 설치
      • Wox
    • 3-16 Git
      • Git이란?
      • 해킹 랩 관점에서 보는 Git의 유용성
      • 개인 저장소에 프로그램 자산을 관리
      • Git 폴더 구성 예
    • 3-17 클라우드 저장소 활용
      • 대표적인 클라우드 저장소 서비스
      • 원드라이브와 드롭박스의 파일 복원 차이
      • 동기화 폴더를 사용하지 않는 경우
      • 카메라 업로드 기능
    • 3-18 Prefetch 기능 활성화
    • 3-19 파이썬 설치
      • 파이썬 2와 파이썬 3의 혼합 환경 구축
      • 실행 환경 분리
    • 3-20 BIOS(UEFI) 화면 표시
      • 바이오스와 UEFI
      • UEFI와 기존 바이오스를 구별하는 방법
      • 기존 바이오스 설정 화면 진입
      • 바이오스(UEFI) 설정 화면 진입
    •  
  • ▣ [2부] 해킹 실습
    •  
  • ▣ 04장: 윈도우 해킹
    • 4-1 윈도우7 해킹
      • 윈도우7 입수 방법
      • 테스트용 윈도우7 가상 머신 구축
      • 윈도우7 초기 설정
      • Netcat을 이용한 셸 기본 연습
      • Metasploit Framework 시작
      • IEUser 권한의 ‘evil.exe’
      • SYSTEM 권한 세션 은폐
    • 4-2 윈도우10 해킹
      • iso 파일로 가상 머신 구축
      • 윈도우10 ISO 파일 준비
      • 새 가상 머신 만들기
      • 가상 머신에 윈도우10 설치
      • 윈도우10 초기 설정
      • 윈도우10을 메타스플로잇으로 공격
      • 백신 우회
      • 페이로드를 다른 파일에 넣기
      • 사용자를 속이기 위한 다양한 테크닉
      • 키 로거로 정보 취득
    •  
  • ▣ 05장: Metasploitable 해킹
    • 5-1 Metasploitable로 리눅스 해킹 체험
      • 버추얼박스에 Metasploitable 가상 머신 구축
      • Metasploitable 초기 설정
    • 5-2 Metasploitable 공격
      • Metasploitable에 각종 공격 실행
    • 5-3 대표적인 로그 파일
    • 5-4 Netcat을 사용한 각종 통신
      • 파일 전송
      • 네트워크를 통한 로깅
    •  
  • ▣ 06장: 네트워크 해킹
    • 6-1 유선 네트워크 해킹
      • 와이어샤크를 이용한 패킷 캡처
      • tshark로 패킷 캡처
      • MAC 주소에 대해서
      • ARP 구조
      • 스위칭 허브의 학습 기능
      • 캡처 방법
      • ARP 스푸핑
      • arpspoof를 이용한 액티브 캡처
      • MITMf로 중간자 공격
      • BeEF를 통한 공격의 다양화
    • 6-2 무선 네트워크 해킹
      • 무선 네트워크 어댑터 모드의 종류
      • Monitor 모드가 가능한 무선 네트워크 어댑터 구매
      • 칼리에 무선 네트워크 어댑터 인식
      • GUI에서 AP 검색
      • 표준 AP 검색
      • 무선 네트워크 어댑터를 Monitor 모드로 사용하는 방법
      • airodump-ng로 AP 검색
      • WiFi 접속
      • WEP 분석
      • WPA의 해독
      • MAC 주소 변경
      • 칼리에서 무선 네트워크 패킷 캡처
      • 윈도우에서 무선 네트워크 패킷 캡처
      • WiFi Pumpkin을 통한 함정 AP 설치
    •  
  • ▣ 07장: 학습용 응용 프로그램을 통한 웹 해킹
    • 7-1 DVWA를 이용한 웹 응용 프로그램 해킹 체험
      • DVWA 설치
      • SQL 인젝션
      • 블라인드 SQL 인젝션
    • 7-2 bWAPP bee-box로 웹 응용 프로그램 해킹 체험
      • bWAPP bee-box 설치 및 설정
      • PHP 코드 인젝션
      • SSI 인젝션을 통한 셸 탈취
      • 인증 페이지에 사전 대입 공격
      • File Inclusion을 이용한 셸 탈취
      • Shellshock
      • 원격 버퍼 오버플로
    •  
  • ▣ 08장: 로그인 인증 해킹
    • 8-1 고정 키 기능을 악용한 로그인 화면 해제
      • 고정 키 기능을 이용한 로그인 화면 우회
      • 원상 복구
    • 8-2 레지스트리 변경을 통한 백도어 구현
      • 레지스트리 변경을 통한 백도어 설치
    •  
  • [3부] 해킹 랩 확장하기
    •  
  • ▣ 09장: 물리 장치 추가
    • 9-1 해킹 랩에 라즈베리 파이 추가
      • 해킹 랩에서의 활용 예
      • 라즈베리 파이에 칼리 설치하기
      • 칼리 파이를 운용하기 위한 기본 설정
      • 브리지 모드(Bridge mode)로 패킷 캡처
    • 9-2 NAS 추천
      • NAS의 하드웨어 고장으로부터 데이터 복구하기
      • NAS 공유 디렉터리에 접속
      • 공유 디렉터리에 네트워크 드라이브 할당하기
    •  
  • ▣ 10장: 네트워크 환경 확장
    • 10-1 원격 데스크톱을 통한 원격 조작
      • RDP 활용 예
      • RDP 접속 환경 구축
      • 칼리 가상 머신에 VRDP 접속
    • 10-2 외부에서 해킹 랩에 원격 접속
      • 원격 접속을 가능하게 하는 방법
      • 크롬 원격 데스크톱 설치
    • 10-3 해킹 랩에 현실적으로 접근하기
      • 실습과 현실의 차이
      • 좀 더 현실적인 환경 구축하기 1
      • 좀 더 현실적인 환경 구축하기 2
    •  
  • ▣ 11장: 해킹 랩에 도움이 되는 기술
    • 11-1 가상 머신 정지 중 네트워크 변경하기
    • 11-2 윈도우 자동 로그인
      • 사용자 계정 메뉴를 사용하는 방법
      • Sysinternals를 이용하는 방법
      • 레지스트리로 설정하는 방법
    • 11-3 빠른 DNS 서버로 변경하기
    • 11-4 vhd 파일을 드라이브화해 읽기
    • 11-5 버추얼박스의 스냅숏과 복제
      • 버추얼박스 백업
      • 가상 머신에서 스냅숏을 생성하는 방법
      • 스냅숏 복원
      • 스냅숏의 계층 구조 이해
      • 복제 활용
    • 11-6 파일 종류 특정하기
      • 바이너리 편집기로 조사
      • file 명령으로 조사하기
    • 11-7 바이너리 파일 문자열 조사
      • strings 명령으로 조사
      • od 명령으로 조사
      • Bintext 명령으로 조사
    •  
  • [부록]
    •  
  • ▣ 부록 A: 리눅스 및 윈도우 명령어 빠른 참조
      1. 리눅스 명령어 빠른 참조
      • 기본 명령
      • 해킹 관련
      1. 윈도우 명령어의 빠른 참조
      • 기본 명령
      1. 윈도우 실행 창에서 빠르게 내부 프로그램 실행
      1. 환경 변수를 사용해 폴더에 접근하기
      1. nano 명령표
      1. vi 명령표
      1. gdb 명령표
    •  
  • ▣ 부록 B: 안드로이드 해킹
      1. 안드로이드 해킹 환경 구축
      • 가상 머신에 Android-x86 설치
      • Android-x86 초기 설정
      1. 안드로이드 원격 조작
      • 안드로이드 원격 조작하기
    •  
  • ▣ 부록 C: 해킹 랩에 도움이 되는 테크닉 +α
      1. Hyper-V 와 버추얼박스
      • Hyper-V를 사용할 수 있는 조건
      • 하드웨어 호환성 확인
      • Hyper-V 기능 활성화
      1. Vagrant를 이용한 칼리 가상 머신 구축
      • Vagrant란?
      • 베이그런트 설치
      • 첫 베이그런트
      • 칼리 박스 만들기
      • 베이그런트 공유 디렉터리
      • 베이그런트 네트워크 설정
      • 박스에 대한 명령
      • 베이그런트 플로그인 추가
      • 프로비저닝으로 자동화
      • 베이그런트 업데이트