Top

칼리 리눅스 입문자를 위한 메타스플로잇 중심의 모의 침투 2/e [KLCP 시험 대비 입문서 겸용]

  • 지은이오동진
  • ISBN : 9788960779600
  • 30,000원
  • 2017년 04월 21일 펴냄
  • 페이퍼백 | 336쪽 | 188*235mm
  • 시리즈 : 해킹과 보안

판매처

개정판

책 소개

요약

칼리 운영체제 기반의 MSF 도구를 중심으로 모의 침투에 필요한 내용을 설명한다. MSF 모듈을 중심으로 MSF 활용 능력을 향상시키는데 역점을 두었을 뿐만 아니라 KLCP 시험 대비서로도 사용할 수 있다.

추천의 글

해킹이라는 분야에 입문한 학생들은 유튜브 동영상을 보고 호기심에 가득 차 따라 해보곤 한다. 동영상의 아래에는 항상 “저는 똑같이 했는데 잘 안돼요.”라는 댓글이 달린다.
대부분의 경우, 답은 그 물음 속에 있다. 똑같이 따라 하니까 안되는 것이다. 영상 속 시연자의 환경과 상황이 다름에도 불구하고 그 의미를 이해하지 못한 채 무턱대고 따라 하면 원리를 이해하지 못할 뿐만 아니라 오류를 해결(Trouble Shooting)할 수도 없게 된다.
칼리 리눅스와 메타스플로잇은 해킹 입문자가 흥미롭게 다가갈 수 있는 도구다. 이 책에서 설명하는 메타스플로잇 모듈 구동의 원리를 이해한 후 실습해보면 명령어 한 줄 한 줄의 의미를 이해할 수 있을 것이다. 입문자가 아무 생각 없이 명령어들을 따라 하는 경우도 있지만, 기본서 또한 독자들을 배려하지 않고 원리를 생략해 버리는 경우도 있다. 이런 면에서 이 책은 더욱 기본에 충실하고자 했다.
각 장의 중간에 있는 ‘영화와 드라마로 보는 정보보안’에 소개된 미디어들은 꼭 읽어보길 바란다. 영상 속 해킹 기법들이 실제로 가능한지 살펴보다 보면 해킹에 대한 탐구욕이 생길 것이다. 이 작품들은 공부에 지쳐 있는 당신을 고무시킬 것이라 확신한다.

공재웅(whackur.tistory.com) / 헤프(hep.re.kr) 연구원
모의 침투 운영체제 연구회(facebook.com/groups/metasploits) 운영진

해커 영화나 드라마에서는 항상 주인공의 천재적인 실력과 그런 실력을 뒷받침해주는 모의 침투 운영체제를 볼 수 있다.
이 책은 칼리 리눅스에 기반을 둔 MSF 도구를 중심으로 다양한 모의 침투 기법을 다룬다. 단순히 MSF 기능이나 일례만을 소개한 것이 아니라 MSF 도구의 응용 방법까지 설명하고 있기 때문에 이 책에서 다루지 않은 부분까지도 응용할 수 있는 요령을 터득할 수 있었다. 다시 말해서 이 책은 물고기를 직접 잡아주는 것이 아니라 물고기 잡는 방법을 알려준다. 이 책에서 소개한 MSF 도구의 객체지향적 구조를 정확히 이해하면 MSF 도구를 좀 더 유연하게 사용할 수 있다.
각 장마다 실습 환경을 제시해주는 것도 마음에 들었다. 이는 모의 침투 입문자 입장에서 내용을 이끌어 가겠다는 저자의 세심함에서 비롯된 것이 아닌가 싶다.
이 책은 어디까지나 가상 환경을 전제로 내부 전산망을 점검하기 위한 기법을 소개한 입문서일 뿐이다. 저자는 서문을 통해 다음과 같이 말한다.

‘일부 몰지각한 사람들은 모의 침투 운영체제를 점검 도구가 아닌 공격 무기로 간주하는 경향이 있다. 맥가이버 칼을 돌격 소총으로 착각하는 경우와 다를 바 없다.’

나 역시 저자의 생각과 같다. 아무쪼록 칼리 운영체제의 기능을 오판하는 일이 없었으면 좋겠다.

오병윤 / 서울성보고등학교 3학년
모의 침투 운영체제 연구회(facebook.com/groups/metasploits) 운영진

이 책의 특징

■ 모의 침투 흐름에 따라 유기적이고 총체적으로 내용을 설명한 새로운 구성 방식
■ 입문자들이 좀 더 손쉽게 MSF 환경에 익숙해지도록 다양한 기능 위주의 소개
■ 십여 년간의 풍부한 국가 기관 강의 경험을 녹여낸 직관적인 설명
■ 영화와 드라마 등을 적절하게 이용함으로써 모의 침투에 대한 관심과 흥미 유발

이 책의 대상 독자

■ 모의 침투 분야에 관심이 있는 사람
■ KLCP 시험을 준비하는 사람
■ 자체 전산망에 대한 보안 점검 항목이 필요한 사람
■ 모의 침투 운영체제 또는 MSF 과정을 강의하고자 하는 사람

이 책의 구성

제1장, ‘실습 환경 구축과 설치’에서는 VMWare Workstation 10.0 버전에서 32비트 기반의 칼리 201602 버전 설치 과정을 설명했다. 칼리 운영체제 사용 시 반드시 알아야 할 개념이 있다면 해당 설치 부분에서 자세히 설명했다. 본문 설명으로도 이해할 수 없다면 구글 웹 사이트 등을 통해 해당 개념을 보충하길 바란다.
제2장, ‘각종 설정 작업’에서는 설치 직후 필요한 설정 작업을 최대한 자세히 설명했다. 원활한 실습 진행을 위해 가장 중요한 장이기도 하다. 또한 해당 장에서 소개한 나노 편집기는 이후 다양한 설정 작업에서 자주 사용하는 기능인 만큼 가급적 빨리 익숙해지길 바란다.
제3장, ‘리눅스 배포판의 이해’에서는 커널로서, 리눅스와 운영체제로서, 리눅스와 서버로서, 데비안 운영체제와 클라이언트로서, 우분투 운영체제와 모의 침투로서 칼리 운영체제를 설명했다. 리눅스 기초가 전혀 없다면 칼리 운영체제를 이용해 다음 웹 사이트의 무료 강좌로 기본 개념을 익히기 바란다. 생활 코딩의 운영자이신 이고잉 님의 우분투 운영체제 강좌다. (goo.gl/ddsl1x)
제4장, ‘버퍼 오버플로 기법과 메타스플로잇 기초’에서는 취약점(Vulnerability) 개념과 그에 따른 익스플로잇(Exploit)과 페이로드(Payload) 개념을 설명했다. 또한 MSF 침투 도구의 근간인 버퍼 오버플로(Buffer Overflow) 개념을 1판보다 좀 더 자세히 설명했다. 해당 내용은 리버싱(Reversing) 분야에서 다루는 내용이기 때문에 개론적인 수준에서 설명한 만큼 부족한 부분이 있다면 관련 서적 등을 통해 자세한 내용을 익히길 바란다. 만약 버퍼 오버플로 개념이 너무 어렵게 느껴진다면 해당 설명은 일단 무시하고 넘어가길 바란다.
제5장, ‘MSF 보조 기능을 이용한 정보 수집’에서는 칼리 운영체제의 /auxiliary 디렉터리에 위치한 각종 정보 수집 모듈을 활용하는 방법을 설명했다. 또한 MSF 도구와 연동해 NMap을 사용하는 방법을 설명했다.
제6장, ‘MSF 보조 기능을 이용한 무차별 대입 공격’에서는 메타스플로잇터블 운영체제의 설정을 설명했고 크런치(Crunch) 도구를 이용한 무차별 대입(Brute Force) 공격에 사용할 사전(Dictionary)정보 생성 방법을 설명했다. 또한 칼리 운영체제의 /auxiliary 디렉터리에 위치한 각종 무차별 대입 공격 모듈들을 활용하는 방법과 히드라(Hydra) 도구를 이용하는 방법 등을 설명했다.
제7장, ‘윈도우 기반의 운영체제 침투’에서는 칼리 운영체제의 /exploit/windows 디렉터리에 위치한 각종 침투 모듈들을 활용해 윈도우 운영체제에 침투하기 위한 다양한 설정 구문을 설명했다.
제8장, ‘윈도우 기반의 미터프리터 방식’에서는 윈도우 운영체제 침투 이후에 사용할 수 있는 다양한 미터프리터 기능을 run 명령어 중심으로 설명했다. 미터프리터 지원 모듈들은 칼리 운영체제의 /post 디렉터리에 위치에 있다.
제9장 ‘유닉스/리눅스 기반의 운영체제 침투’에서는 칼리 운영체제의 /exploit/unix 디렉터리에 위치에 위치한 각종 침투 모듈들을 활용해 메타스플로잇터블 운영체제에 침투하기 위한 다양한 설정 구문을 설명했다.
제10장, ‘악성 코드를 이용한 침투’에서는 사회공학 개념과 PE 구조 등을 설명한 후 MSF 인터페이스 중 하나인 msfvenom 명령어를 이용해 악성 코드를 생성하는 방법과 실행 후의 결과 등을 설명했다.
제11장, ‘JtR 도구를 이용한 비밀 번호 해독’에서는 기밀성과 무결성 개념을 설명한 후 JtR(JtRJohn The Ripper) 도구의 기본 사용법을 설명했다. 또한 윈도우 운영체제 등에서 침투에 성공한 후 JtR 기능을 이용해 비밀 번호를 해독하는 과정을 설명했다
제12장, ‘각종 DBMS 서버 취약점 점검’에서는 칼리 운영체제의 /auxiliary 디렉터리에 위치한 각종 DBMS 모듈들을 활용해 MS-SQL 서버와 My-SQL 서버와 PostgreSQL 서버에서 나타날 수 있는 다양한 취약점을 설명했다.
제13장, ‘SQL 삽입 공격의 이해’에서는 2013 OWASP TOP 10에 기반해 SQL 삽입 공격 원리 등을 메타스플로잇터블 운영체제의 My-SQL 서버와 DVWA를 이용해 설명했다.
제14장, ‘XSS 공격의 이해’에서는 BeEF 도구를 이용해 XSS 공격을 수행하면서 XSS 공격의 위험성을 설명했다. 또한 MSF 도구와 BeEF 도구의 연동 방법을 설명했다.
제15장, ‘기타 웹 취약점’에서는 2013 OWASP TOP 10과 관련한 디렉터리 이동 공격과 널 바이트 삽입 공격, 파일 업로드 공격 등을 설명했다. 제16장, ‘SET 도구의 이해’에서는 SET 도구와 DNS 스푸핑 기법을 결합해 피싱 웹 사이트 기법을 설명했다. DNS 스푸핑 기법을 이해하기 위해서는 반드시 LAN 영역의 속성을 이해해야 한다.

저자/역자 소개

지은이의 말

仰不愧於天 俯不怍於人(하늘을 올려다 보아도 부끄럽지 아니하고 사람을 내려다 보아도 부끄럽지 아니하다)
- 『孟子(맹자)』의 「진심편(盡心篇)」 중에서

흔히 모의 해킹 또는 침투 테스트 등으로 부르는 모의 침투(Penetration Testing)란, 전산 시스템에서 나타날 수 있는 취약점 여부를 사전에 점검함으로써 외부의 공격 위협으로부터 전산 자원을 보호하기 위한 일련의 과정을 의미한다. 훈련이 불충분한 상태에서 실전에 참여할 경우 무수한 희생을 감수해야 하는 것과 마찬가지로 인터넷 공간을 대상으로 서비스를 개시하기 전 모의 침투 과정을 생략한다면 사소한 설정 실수만으로도 재앙적인 결과를 초래할 수 있다.
미국 전쟁 드라마 <밴드>의 1회와 2회에서는 훈련과 실전에서 강하의 차이점을 극명하게 보여주는 장면이 나온다. 1회에서는 안정적인 고도와 속도에서 진행하는 강하 훈련 장면이 나오지만, 제2회에서는 독일군의 대공포에 항공기가 피격당하면서 기내의 공수 대원들이 아비규환에 처한다. 훈련과는 완전히 다른 상황이었다. 그러나 강하 이후 공수 부대원들의 활약은 훈련 상황보다 더욱 탁월했다. 실존 인물들은 2회 시작 화면에서 전투에 투입되기 직전까지 반복적으로 기초 훈련을 했기에 가능한 일이었다고 증언한다.
2016년 한 해 동안 6,435개의 취약점이 홍수처럼 쏟아졌다. 취약점 중에는 사물 인터넷(IoT)에 대한 취약점도 있었다(cve-2016-1000245/cve-2016-1000246 등). 특히 2016년 10월 미라이 봇넷(Mirai Botnet)의 출현을 놓고 많은 사이버 보안 전문가들은 본격적인 사물 인터넷 공격 시대를 알리는 사건이라고 평했다. 소스 코드의 취약점이 더 이상 사이버 공간에 갇혀 있지 않고 현실 공간으로 기어 나오는 상황까지 온 것이다. 그러나 소스 코드의 취약점은 현실의 사물 위협에 멈추지 않고 인간에게까지 파고들 가능성이 크다.
작은 컴퓨팅 칩을 인체에 주입해 환자의 건강 상태를 원격으로 확인할 수 있는 기술은 인간의 생명까지도 앗아갈 수도 있다. 2016년 12월 미국 식품 의약국(FDA)에서 인공 심장 박동기를 비롯한 의료 기기의 사이버 보안 취약성을 가려내고 이를 완화할 방안을 담은 지침서를 발표했다는 소식은 소스 코드의 취약점이 사물 파괴는 물론 인간의 존엄성마저 위협할 수 있음을 방증한다. 실제로 미국의 전 부통령 딕 체니(Richard Bruce Cheney)는 2013년 10월 인공 심장 박동기의 무선 기능을 중지시켰는데, 그 이유는 해킹의 위협을 느꼈기 때문이라고 한다.
가까운 미래에는 방화벽 기능이 달린 방어복을 입어야 하고 모의 침투 역량에 따라 인간의 삶과 죽음이 갈릴 수도 있다. 다시 말해 모의 침투 기법의 중요성을 더욱 실감하는 날이 곧 온다는 의미다.
이처럼 모의 침투 기법은 사이버 공간과 사물 인터넷 분야는 물론 인간에게까지 적용 범위를 확대시킬 수 있다는 점에서 전산 보안 담당자라면 반드시 숙지해야 할 기본 분야가 아닐 수 없다.
일반 사용자들의 사이버 보안 의식을 점검하기 위해서도 모의 침투 기법은 필요하다.
서버 보안과 비교할 때 클라이언트 보안은 상대적으로 취약하다. 좀 더 정확히 말하면 보안 의식이 부재한 상황이다. 서버 운영체제는 전산 지식이 풍부한 관리자가 관리하지만 클라이언트 운영체제는 해당 소유자뿐만 아니라 경우에 따라서는 타인이 사용하기도 한다. 가정에서는 가족이 공동으로 사용하는 경우가 일반적이다. 보안 의식 수준이 천차만별일 수밖에 없다. 또한 서버를 운영하는 경우에는 일반적으로 방화벽 등을 구비하지만 가정에서 PC를 사용하기 위해 방화벽까지 도입하는 경우는 드물다. 보안 의식도 취약한 상황에서 보안 방비까지도 취약하다. 더구나 가정에서의 PC 사용 습관은 사무실에서도 부지불식간에 일어나곤 한다. 이런 상황을 개선하기 위해서는 수시로 모의 침투를 수행해 사용자의 보안 의식을 지속적으로 환기시킬 수밖에 없다.
마지막으로 모의 침투에 대한 학습은 전산 시스템 전반을 배우는 기회이기도 하다. 취약점을 알기 위해서는 시스템 전체의 동작 원리를 알아야 한다. 즉, 취약점 분석을 통해 각 분야에서 사용하는 시스템 구조와 동작 등을 종합적으로 익힐 수 있다. 이는 영화를 통해 음악과 미술을 동시에 접하는 것와 같다. 웹 서비스를 대상으로 모의 침투를 수행하면 웹 분야를 이해할 수 있고 데이터베이스 서비스를 대상으로 모의 침투를 수행하면 데이터베이스 분야를 이해할 수 있다.
지난 2015년 10월 이 책을 출간한 이후 약 1년 6개월이 흘렀다. 그동안 칼리 운영체제도 2.0 버전에서 2016.2 버전으로 올라갔다. 메타스플로잇 프레임워크(MSF)도 4.11.4 버전에서 4.13.14 버전으로 올라갔다. 나이를 먹으면 주름이 늘어나는 것처럼 MSF에서 제공하는 1,467개의 침투 기능(Exploits)과 840개의 보조 기능(Auxiliary)도 각각 1,613개와 915개로 늘어났다. 버전에 변화가 생기면서 이전에는 사용할 수 있었던 도구가 아예 사라진 경우도 생겼고, 기존 기능이 남아 있더라도 더 이상 사용할 수 없는 경우도 생겼다.
그러다 보니 출간한 책으로 강의하는 동안 본문의 내용 전개가 매끄럽지 않은 부분도 눈에 띄기 시작했다. 마치 5년 동안 입을 옷을 한 벌 마련했는데 생각보다 빨리 해지기 시작했다고나 할까? 그럴 때마다 헝겊을 이용해 해진 부분을 정신없이 바늘로 꿰매다 보니 어느 순간 옷이라고 부르기도 민망할 만큼 지저분한 누더기로 변해 있었다. 이에 따라 기존의 원고를 보완하기보다는 처음부터 새롭게 집필할 필요성을 느끼던 차에 오는 2017년 6월부터 KLCP(Kali Linux Certified Professional)라는 자격증 시험을 시행한다는 소식을 접했다.
MCSE(Microsoft Certified Solutions Expert)가 윈도우 운영체제의 전반적인 기능을 측정하는 자격증인 것처럼 KLCP는 칼리 운영체제의 전반적인 기능을 측정하는 자격증이다. KLCP는 점증하는 모의 침투의 중요성과 그에 따른 칼리 운영체제의 빈번한 사용 등을 고려해 준비한 자격증이다. 아직은 시행 전이라 단정하기 어렵지만, 본격적인 모의 침투를 수행하기에 앞서 칼리 운영체제의 전반적인 개념과 기본 기능 등을 평가하는 자격증으로 보인다.
이는 나로 하여금 전면 개정 작업을 결심케 한 결정적 계기였다.
아무쪼록 이전보다 더욱 정교하게 다듬어진 이 책이 모의 침투 분야에 관심이 있는 사람, KLCP 시험을 준비하는 사람, 자체 전산망에 대한 보안 점검 항목이 필요한 사람, 모의 침투 운영체제 또는 MSF 과정을 강의하고자 하는 사람 등에게 좋은 지침서가 되기를 바란다.
끝으로 일부 몰지각한 사람들은 모의 침투 운영체제를 점검 도구가 아닌 공격 무기로 간주하는 경향이 있다. 맥가이버 칼을 돌격 소총(Assault Rifle)으로 착각하는 경우와 다를 바 없다. 부디 모의 침투 운영체제라는 탁월한 점검 도구를 흉악한 공격 무기로 오용하는 어리석음을 범하지 말기 바란다.

지은이 소개

오동진

서울에서 출생해 인천대학교(구 인천전문대학) 일어과와 경희사이버대학교 정보통신학과를 졸업하고 한국외국어대학교 교육대학원에서 전산교육학 석사를 취득했다.
9년 동안 한국통신(KT)과 하이텔(HiTEL) 등에서 근무하며 다양한 정보 기술 환경을 경험했다. 정보처리산업기사와 CCNA/CCNP 같은 자격증을 취득했다.
국가공무원인재개발원과 한국지역정보개발원 등에서 정보보안기사와 모의 침투 분야 등을 강의 중이다. 지난 2016년 경찰교육원에서 우수 외래 강사로 감사장을 받기도 했다.
또한 네이버(cafe.naver.com/kalilinux)와 페이스북(facebook.com/groups/metasploits)에서 모의 침투 운영체제 연구회를 개설해 활동 중이기도 하다. 사이버 보안 중에서도 다양한 모의 침투 운영체제와 사회공학에 특히 관심이 많다.
강의가 없을 때에는 문학과 사학, 철학에 대한 책을 읽거나 국가 정보학 같은 책을 읽는다.
저서로는 에이콘출판사가 출간한 『해킹 입문자를 위한 TCP/IP 이론과 보안』(2016)과 『소켓 개발 입문자를 위한 백박스 기반의 파이썬 2.7』(2016) 등이 있다.

목차

목차
  • 1장. 실습 환경 구축과 설치
  • 2장. 각종 설정 작업
  • 3장. 리눅스 배포판의 이해
  • 4장. 4장. 버퍼 오버플로 기법과 메타스플로잇 기초
  • 5장. MSF 보조 기능을 이용한 정보 수집
  • 6장. MSF 보조 기능을 이용한 무차별 대입 공격
  • 7장. 윈도우 기반의 운영체제 침투
  • 8장. 윈도우 기반의 미터프리터 방식
  • 9장. 유닉스/리눅스 기반의 운영체제 침투
  • 10장. 악성 코드를 이용한 침투
  • 11장. JtR 도구를 이용한 비밀 번호 해독
  • 12장. 각종 DBMS 서버 취약점 점검
  • 13장. SQL 삽입 공격의 이해
  • 14장. XSS 공격의 이해
  • 15장. 기타 웹 취약점
  • 16장. SET 도구의 이해

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.32 : 밑에서 1행]
간부 후보 출신의 권혁주로 출연한
->
경찰 간부 후보생 출신의 권혁주로 출연한

[p.34 : 3행]
이는 바로 백트랙 운영체제
->
바로 백트랙 운영체제

[p.53 : 1행]
Root(루트) 계정에서
->
root(루트) 계정에서

[p.63 : 1행]
터미널 창은 리눅스 기반에서 매우 자주 사용
->
터미널 창은 리눅스 기반에서 자주 사용

[p.66 : 밑에서 4행]
예제 2-2에서 보는 바와 같이 현재 IP 주소가 192.168.10.213
->
예제 2-2에서 보는 바와 같이 IP 주소가 192.168.10.213

[p.69 : 1행]
그림 2-2에서와 같이 yes 또는 y를 입력
->
그림 2-2에서와 같이 yes를 입력

[p.83: 1행]
칼리에서 기본적으로 동작하는 IP Tables라는 소프트웨어 방화벽
->
칼리에서 기본적으로 동작하는 IPTables라는 소프트웨어 방화벽

[p.97 : 위에서 6행]
물론 8만 자로 이루어진 문장에서는
->
물론 8만 자로 이루어진 문장에서

[p.99 : 위에서 3행]
버퍼 오버플로우 기반의 공격은 이 책의 중심을 이루는 만큼
->
버퍼 오버플로우 기반의 공격은 이 책의 핵심을 이루는 만큼

[p.131 : 위에서 10행]
수동적인 정보 수집에 대한 남은 모듈들 역시도
->
수동적인 정보 수집에 대해 남은 모듈들 역시도

[p.193 : 위에서 2행]
실습 특성상 매모듈에 대한 확인이 끝날 때마다
->
실습 특성상 매 모듈에 대한 확인이 끝날 때마다

[p.196 : 밑에서 3행]
osvdb-34700/cve-2004-2687
->
osvdb-34700/cve-2007-2447

[p.204 : 표 9-2]
cve-2004-2687
->
cve-2007-2447

[p.213 : 위에서 1행]
외부에서 해당 파일을 클릭할 때까지 접속을 대기해보자는 내용
->
외부에서 해당 파일을 클릭할 때까지 접속을 대기하겠다는 내용

[p.229 : 밑에서 2행]
password.txt 파일에 저장해보자는 의미
->
password.txt 파일에 저장하겠다는 의미

[p.275 : 밑에서 1행]
각종 보안 설정을 해제해보자는 의미
->
각종 보안 설정을 해제하겠다는 의미

[p.276 : 밑에서 2행]
트래픽을 스니핑해보자는 설정
->
트래픽을 스니핑하겠다는 설정

[p.320 : 위에서 2행]
공격자를 중간 경유지로 사용해보자는 의미
->
공격자를 중간 경유지로 사용하겠다는 의미