20160524 네트워크이론/정보수집단계
==================================================메 모==================================================
ICMP
http://blog.naver.com/wun2003/220190667344
nmap
* http://namjmnam.blog.me/20205975010
http://blog.naver.com/wun2003/220190158303
** http://blog.naver.com/carmine1025/220548478362
http://artology.tistory.com/31
================================================강의/실습================================================
DNS Spoofing
사용시스템
- windows 2008(웹클라이언트) : 192.168.20.201
- Kali Linux : 192.168.20.50
- firewall (방화벽/라우터): 192.168.20.100
DNS Spoofing을 하기 위한 기능
(ㄱ) Arp spoofing + IP forwarding
(ㄴ) Fake WEB
(ㄷ) Fake DNS (DNS Spoofing)
DNS Spoofing 동작원리
(Kali Linux)
DNS Spoofing을 하기 위한 기능
(ㄱ) Arp spoofing + IP forwarding
(ㄴ) Fake WEB
(ㄷ) Fake DNS (DNS Spoofing)
1. 웹서버 설정
CentOS) /etc/httpd/conf/httpd.conf
/var/www/html/index.html
# service httpd restart
Debian) /etc/apache2/apache2.conf
/var/www/html/index.html
# service apache2 restart
# cd /etc/apache2
# ls
apache2.conf
KaliLinux 1.X) # cd /var/www
KaliLinux 2.X) # cd /var/www/html
# cd /var/www/html
# ls
index.html
# echo "Fake Web Site" > /var/www/html/index.html
# service apache2 restart
# pgrep -lf apache (# service apache2 status)
# firefox http://192.168.20.50
DNS Spoofing을 하기 위한 기능
(ㄱ) Arp spoofing + IP forwarding
(ㄴ) Fake WEB
(ㄷ) Fake DNS (DNS Spoofing)
2. ARP Spoofing & dns_spoof plugin load
# cd /etc/ettercap
# ls
etter.conf etter.dns etter.mdns etter.nbns
# vi etter.dns
..... (중략) .....
###############################################
# one day we will have our ettercap.org domain
#
www.ettercap.org A 127.0.0.1
www.ettercap-project.org A 127.0.0.1
ettercap.sourceforge.net A 216.136.171.201
www.ettercap.org PTR ::1
###############################################
# (1) Sfecific Configuration
# - DNS Spoofing Test
www.daum.net A 192.168.20.50
*.daum.net A 192.168.20.50
www.daum.net PTR 192.168.20.50
###############################################
# some MX examples
#
alor.org MX 127.0.0.1
naga.org MX 127.0.0.1
example.org MX 127.0.0.2
microsoft.com MX 2001:db8::1ce:c01d:bee3
..... (중략) .....
- (주의) ettercap 툴을 완전히 종료한 후 다시 실행하고 설정을 한다.
ettercap 툴이 변경된 /etc/ettercap/etter.dns 파일을 다시 읽어 들이도록 한다.
# ettercap -G
Sniff > Unfied sniffing > eth1
Hosts > Scan for host
Hosts > Host list
192.168.20.100 선택 -> Add to Target 1
192.168.20.201 선택 -> Add to Target 2
Mitm > Arp poisoning > Optional parameter
Sniff remote connection
Plugins > Manage the plugins > dns_spoof 더블클릭
Start > Start sniffing
(window2008)
c:> ipconfig /flushdns
http://www.daum.net
-> 192.168.20.50 내용이 보인다.
■ TCP/IP Model
---------------------------
Application Layer(DNS, HTTP, SNMP, SMTP, ...)
-> DNS spoofing, DHCP spoofing, ... + dictionary attack
---------------------------
Transport Layer(TCP/UDP) -> TCP Syn Flooding, UDP Flooding
---------------------------
Internet Layer(ICMP/IGMP, IP(IPv4/IPv6), ARP/RARP) -> ARP Spoofing, IP Spoofing, hping3 CMD
---------------------------
Network Interface Layer(Ethernet)
---------------------------
C:\Users\soldeskN\Desktop\JS\Security과정공유디렉토리(part1)\04_과정진행\02_2.1_모의해킹_침해대응_개요\02_정보수집단계\01_정보수집.hwp
정보 수집(Data Gathering)
정보 검색이란?
● 자신이 원하는 정보(자료)를 여러가지 검색도구를 사용하여 찾아내어 활용하는 과정이다.
정보 수집 방법의 종류
● 인터넷 검색엔진을 통한 정보 수집(EX: 구글링, 구글핵, 구글해킹)
● DNS 서버, whois DB를 사용하는 경우(EX: nslookup CMD)
● 스캐닝(Scanning)(EX: nmap CMD)
● 취약점 스캐닝(EX: nessus, nexpos, OpenVas)
● 전문 취약점 스캐닝(EX: nikto, sqlmap)
인터넷 검색엔진(Search Engine)이란?
● 1993년 이후 비약적인 발전
● 전문인 뿐만 아니라 일반인에게도 친숙한 정보 제공 수단
정보를 검색할 수 있는 전문 사이트
■ Securecast
● http://securecast.co.kr
● 1999년 부터 축적되어온 정보보호 관련 데이터 베이스 서비스
● 국내 최초/최대의 유료 컨텐츠 제공 서비스
● 웹, 전세계 취약점, 웜바이러스, 홈페이지 위변조 정보, 악성코드 유포지 정보, 위협 예보 및 경보등 정보보호 Portal의 기능을 갖춘 강력한 서비스
■ MAPP(Microsft Active Protection Program)
● http://www.microsoft.com/security/msrc/default.aspx
● 2009년 부터 국내에 도입된 마이크로소프트 관련 제로데이 취약점을 신속히 패치 하기 위한 커뮤니티
● 국내에서는 2009년 Nowcom이 최초 가입되어 현재 다수의 가입기관이 활동 중임
■ Milw0rm
● http://www.milw0rm.com
● (최근에 사이트가 변경됨: 1337day.com)
● 취약성 코드(Exploit) 직접적으로 게제하는 사이트로서 최신의 취약성을 이용한 공격들과 실제 해킹 소스 코드들이 공개되는 곳이다.
■ Explit DB
● http://www.exploit-db.com
● Milw0rm을 대신하는 악성코드 데이터 베이스
■ Security Focus
● http://www.securityfocus.com
● 보안에 관련된 newspaper, magazine, on-line article을 대상으로 광범위한 망라적인 주제 브라우징이 가능
● 보안 관련 포탈 사이트
■ Packetstorm
● http://packetstormsecurity.org
● 보안 관련된 프로그램, 패치 정보 최근 이슈에 관한 정보 제공
● 운영체제별 취약성 정보 및 보안 경고(Security Alert) 정보 제공
■ Krcert
● http://www.krcert.or.kr/index.jsp
● 인터넷 보안취약성에 대한 연구
● 컴퓨터 보안사고 관리
● Securly Alert 출간
● 네트워크 및 시스템 관련 장기 프롲\
■ zone–h
● http://www.zone-h.org
● 해커그룹에 의한 전세계 홈페이지 해킹 통계 및 미러 페이지를 볼수 있는 곳
● 운영체제 별 전세계 해킹 취약 요소원에 대한 비율도 게재
■ OWASP
● http://www.owasp.org/index.php/Main_Page
● 매년 웹 공격에 관한 통계와 신기술들을 규격화 하여 10대 취약점을 발표하고 관리하는 사용자들의 모임
● 중요한 웹 공격에 대한 자료 및 웹 서버 코딩 가이드 제공
● Webgoat라는 모의 해킹용 테스트 베드 프로그램 제공
■ Metasploit
● http://www.metasploit.com
● 무료 모의 해킹 테스트(Penetration Tools)로 사용되며 python을 이용한 전세계 사용자들의 스크립트 툴킷으로 애용되는 툴을 배포 및 공동 연구
■ CodeBreakers
● http://www.codebreakers-journal.com
● Anti-debugging 등의 최신 해킹 기술 기고 및 다양한 해킹 관련 정보들을 제공
[실습] 아래 사이트에서 적당한 코드를 찾아 자신의 시스템을 공격한다.
http://www.exploit-db.com
http://www.1337day.com
http://www.shell-storm.org
http://www.smashthestack.org
■ CentOS 5.9/5.10
테스트를 위한 컴파일러(EX: gcc) 설치
# yum -y install gcc
# mkdir -p /test
# cd /test
# vi test.c
#include <stdio.h>
main()
{
printf("hello\n");
}
# gcc -o test test.c
# ./test
■ 'Zero Day Attack(0 Day Attack)' - Bash Sehll Bug
검색 사이트 : http://www.exploit-db.com
검색 내용 : Bash shell bug
테스트 시스템 : centos
-> "배시셀 버그 조사 보고서" 작성
-------------------------------------------
제목: 배시쉘 버그 조사 보고서
작성자: 홍길동 컨설턴트
이메일:
작성일:
조사 내용:
참고 사이트:
-------------------------------------------
C:\Users\soldeskN\Desktop\JS\Security과정공유디렉토리(part1)\04_과정진행\02_2.1_모의해킹_침해대응_개요\02_정보수집단계\02_스캐닝.hwp
스캐닝(SCAN)
1. 풋 프린팅
정보 수집 = 풋프린팅(footprinting)
풋프린팅(Footprinting)
● 공격 대상의 정보를 모으는 방법(기술적인 해킹 공격, 신문, 게시판, 구글링등)
● 풋 프린팅에는 매우 다양한 기법이 있으며, 매우 넓은 범위가 포함된다.
사회공학(Social Engineering, SET)
● 기술적인 해킹에 의한 방법이 아닌, 개인적인 인간관계, 업무적 관계 등을 이용한 방법(EX: 훔쳐보기등)
● 비 기술적인 경로를 이용해서 정보를 모으는 방법
2. 스캐닝(Scanning)
스캔(Scan)
● 서비스를 제공하는 서버의 작동 여부와 제공하고 있는 서비스를 확인
● TCP 기반의 프로토콜의 질의(Request)/응답(Response) 메커니즘 사용
● 열려 있는 포트, 제공하는 서비스, 동작중인 데몬의 버전, 운영체제의 버전, 취약점 등 다양한 정보 획득 가능
● 일반적으로 nmap(Port Scanning, Host Sweeping), nessus(취약점 진단 도구), nexpose 등을 사용
ping & ICMP Scan
● ping은 네트워크와 시스템이 정상적으로 작동하는지 확인하는 유틸러티
● ICMP(Internet Control Messaging Protocol)를 사용
Service Scan
● 특정 애플리케이션이 동작하는 경우 반드시 구동되는 포트가 있다는 것에 기인하여 확인
● telnet 유틸러티 사용(EX: telnet 192.168.20.200 443)
3. 스캐닝 도구
스캔 범위에 의한 스캐닝 도구의 종류
● 시스템 진단 도구- 진단 대상 시스템에 설치되어 시스템의 내부 보안 취약점 진단- 단순 패스워드, 패치 현황, 중요 파일 변조 여부, 백도어, 루트킷(Rootkit) 설치여부 체크
● 네트워크 스캐닝 도구- 네트워크 상의 특정 시스템에 설치/시스템 원격 진단- 주요 네트워크 서비스들에 대한 정보 수집, 해킹 가능여부 및 취약점 점검, 백도어 설치 여부 체크
● 전문 스캐닝 도구- 데이터 베이스 스캐닝 도구- 방화벽 룰셋(Ruleset) 테스트 도구- 웹 서버 취약점 진단 도구- 소스 코드 취약점 진단 도구
진단순서(EX: 모의해킹, 모의진단)
(ㄱ) 시스템 진단 도구(각 서버에 script 실행)
(ㄴ) 네트워크 스캐닝 도구(취약점 통합 진단 도구(nussus))
(ㄷ) 전문 스캐닝 도구(취약점 개별 진단 도구(DB, WEB))
(ㄹ) 개인적으로 진단
[참고] 국내외 상용 스캐닝 도구의 비교
● 국내는 시스템 진단 툴 위주, 국외는 네트워크 스캐닝 툴 위주
● ISS와 netRecon이 세계 시장의 50 ~ 60% 차지
● 최근 스캐닝 툴에 대한 관심이 높아지면서 외국에서 많은 사용제품이 출시되고 있음.
4. nmap(Network MAPper) CMD
(1) nmap 툴의 기본 기능
● Host Sweep : alive 시스템 확인(EX: IP Scanning)
● Port Scan : alive 시스템의 port(서비스) 정보 확인(EX: Port Scanning)
(2) nmap 명령어의 주요 옵션
옵션
설명
-sT
TCP Open Scan
-sS
TCP Half Open Scan(세션을 성립시키지 않는 SYN 스캔)
-sF
TCP FIN Scan(FIN 패킷을 이용한 스캔)
-sN
TCP NULL Scan(NULL 패킷을 이용한 스캔)
-sX
TCP Xmas 스캔(FIN, PSH, URG 패킷을 이용한 스캔)
-sP
ping 이용한 호스트 활성화 여부 확인
-sU
UDP Port Scan
-O
대상 호스트의 운영체제 판별
-sV
서비스 버전 확인
-F
Fast Scan
칼리리눅스에서는
프로그램 > Kalilinux > Information Gathering > Network Scanners > Nmap
를 선택하거나 혹인 nmap 명령어를 사용하면 된다.
(1) UDP Open Scan
● 공격자는 UDP 패킷을 전송- 포트 Open : 응답 없음- 포트 Close: ICMP Unreachable 회신
Port Open
Port Close
공격자 피해자
| |
| UDP 패킷 |
|---------------> |
| |
| 응답 X |
|<--------------- |
| |
| |
공격자 피해자
| |
| UDP 패킷 |
|---------------> |
| |
|ICMP Unreachable |
|<--------------- |
| |
| |
# nmap -sU -p 53 192.168.20.200
[실습] UDP Open Scan 패킷을 분석
(2) TCP Open Scan
● 공격자는 TCP SYN 패킷 전송- 포트 Open : SYN/ACK 패킷 회신후 ACK 전송- 포트 Close: RST/ACK 패킷 회신
Port Open
Port Close
공격자 피해자
| |
| SYN |
|---------------> |
| SYN/ACK |
|<--------------- |
| ACK |
|---------------> |
| |
공격자 피해자
| |
| SYN |
|---------------> |
| |
| RST/ACK |
|<--------------- |
| |
| |
# nmap -sT -p 22 192.168.20.200
[실습] TCP Open Scan 패킷 분석
(3) TCP Half Open Scan(Stealth Scan)
● 공격자는 TCP SYN 패킷 전송- 포트 Open : SYN/ACK 패킷 회신 후 RST 패킷 전송- 포트 Close: RST/ACK 패킷 회신
Port Open
Port Close
공격자 피해자
| |
| SYN |
|---------------> |
| SYN/ACK |
|<--------------- |
| RST |
|---------------> |
| |
공격자 피해자
| |
| SYN |
|---------------> |
| |
| RST/ACK |
|<--------------- |
| |
| |
# nmap -sS -p 23 192.168.20.200
[실습] TCP Half Open Scan 패킷 분석
[참고] Stealth Scan 이란?
● 스캔하는 대상에 단순히 로그를 남기지 않는다.
● 공격 대상을 속이고 자신의 위치 또한 숨기는 스캔이다.(EX: TCP Half Open Scan, FIN Scan, Xmas Scan, NULL Scan)
(4) FIN, Xmas, NULL Scan
● 공격자가 FIN Scan인 경우 : TCP FIN 패킷 전송 Xmas Scan인 경우: TCP FIN/PSH/URG 패킷 전송 NULL Scan인 경우: TCP NULL 패킷 전송- 포트 Open : 응답없음- 포트 Close: RST 패킷 회신
Port Open
Port Close
공격자 피해자
| FIN |
| NULL |
| Xmas |
|---------------> |
| |
| 응답 없음 |
| |
공격자 피해자
| FIN |
| NULL |
| Xmas |
|---------------> |
| RST 패킷 |
|<-------------- |
| |
FIN Scan 인 경우) # nmap -sF -p 21 192.168.20.200
Xmas Scan인 경우) # nmap -sX -p 21 192.168.20.200
NULL Scan인 경우) # nmap -sN -p 21 192.168.20.200
[실습] TCP FIN SCAN 패킷 분석
[실습] TCP NULL SCAN 패킷 분석
[실습] TCP Xmas SCAN 패킷 분석
[실습] 인터넷을 활용하여 nmap 사용하는 방법에 대해서 정리
(linux200) # yum -y install nmap-frontend
# xnmap &
(windows) zenmap 실행
(KaliLinux) # zenmap &
● 인터넷을 활용하여 nmap 명령어 사용법을 정리한다.
5. 운영체제 스캐닝
● 배너 그래빙(Banner Grabbing)
● telnet 명령어를 사용하여 원격지의 시스템에 로그인을 시도하면 나타나는 안내문
● 운영체제 버전과 커널 버전을 확인
● 배너 그래빙은 21, 23, 25, 110, 143 포트에서도 가능
(linux200)
# telnet localhost 23
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
linux200.example.com (Linux release 2.6.18-348.el5 #1 SMP Tue Jan 8 17:57:28 EST 2013) (3)
login:
<CTRL + ]>
telnet> quit
# telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 (vsFTPd 2.0.5)
quit
# telnet localhost 25
rying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.example.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 15 Jul 2014 09:28:06 +0900
quit
# lynx -head http://localhost
HTTP/1.1 200 OK
Date: Wed, 16 Jul 2014 07:02:33 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Mon, 14 Jul 2014 10:40:47 GMT
ETag: "62237b-43-ec8109c0"
Accept-Ranges: bytes
Content-Length: 67
Connection: close
Content-Type: text/html; charset=UTF-8
Q
6. 포트 스캔을 통한 보안 장비 설치 여부 확인
방화벽(침입 차단 시스템)
● Checkpoint(Firewall-1) : 256,257,258
● 어울림(Secureworks) : 3346,2890
● CISCO PIX : 530,540
● Astaro : 1235,1236
IDS(침입탐지 시스템)
● Checkpoint(VPN Swite) : 300,301
● 인젠(NeoWatcher) : 1887
● Snort : 2350
[실습] Nessus을 통한 시스템 취약점 분석하기
● 취약점 분석 도구(종합툴 성격)
취약점 분석 도구: Nessus
사용시스템
- windows 7(nessus 프로그램 설치 - Server/Client)
- linux252(centos) Linux Redhat 계열
- KaliLinux(Debian) Linux Debian 계열
- Oracle Solaris(Unix) Unix 계열
- win2008(windows 2008) Windows Server 계열
------ windows 7 -------------------------------- --- target host ----
nessus client ---> nessus server --- 취약점 스캐닝 ---> linux server
(Web 브라우저) (nessusd) ---> windows server
---> unix server
취약점 분석 툴
- 취약점 분석 툴 - 종합(EX: Nessus, Nexpos, OpenVAS)
- 취약점 분석 툴 - 각 서비스 점검 전문툴(EX: Nikto)
(windows 7)
1. 선수 작업
웹브라우저 설치
http://www.mozilla.or.kr/ko/firefox/new/
firefox(mozilla) 웹 브라우저 실행
2. Nessus 설치 작업
Nessus 프로그램 다운로드
http://www.nessus.org
http://www.tenable.com/products/nessus
http://www.tenable.com/products/nessus/select-your-operating-system
Nessus Home <----- 다운로드
Nessus
Nessus Enterprise(On Premise)
Nessus Enterprise(Cloud)
Nessus-5.2.7-x64.msi 파일을 다운로드 하고 설치 한다.
(windows 7 64bit OS 용)
설치가 된 이후에 다음과 같은 웹 화면이 자동으로 뜬다.
http://localhost:8834/WelcomeToNessus-Install/welcome
https://localhost:8834/register/
ID/PASS: administrator/soldesk1.
Activate Code 받는 사이트
http://www.tenable.com/products/nessus/nessus-plugins/obtain-an-activation-code
자신의 받은 메일을 확인한다.
Activate Code : 6F5A-B683-087C-42E7-0392
Download plugin
Nessus Client ---> Nessus Server ---> Target System Check
(웹브라우저) (nessusd)
plugin 다운로드 완료 후 로그인한다.
administrator/soldesk1.
(window7 네트워크 설정을 임시적으로 변경)
IP/Netmask : 172.16.Y.2XX/255.255.0.0 (Y : 강의장 번호, 2XX : 자리번호)
Gateway : 172.16.0.1
DNS : 168.126.63.1
자리배치도(10강의장)
----------------------------------------
200 201 202 203 204 205 206 207
208 209 210 211 212 213 214
215 216 217 218 219 220
221 222 223 224 225 226 227
----------------------------------------
자리배치도(1강의장)
----------------------------------------
200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215
216 217 218 219 220 221 222 223
224 225 226 227 228 229
----------------------------------------
NAT -> Bridge(VMware > VM > Settings > Network Adapter > NAT -> Brdige)
(Target System)
windows 계열(windows 7) : 172.16.Y.X
리눅스 계열(linux252) : 172.16.9.252 (CentOS 5.10)
유닉스 계열(solaris254) : 172.16.9.254 (Oracle Solaris 10 x86)
(windows 7(Test Machine) -> windows 7(base Machine)
c:> ping 172.16.10.X
(windows 7(Test Machine) -> linux252)
c:> ping 172.16.9.252
(windows 7(Test Machine) -> solaris254)
c:> ping 172.16.9.254
Start > all programs > Tenable Network Security > nessus web client
administrator/soldesk1.
Policies > (+) New Policy > Advanced Scan
Scans > (+) New Scan > Advanced Scan
(windows 7 Target System) 172.16.10.X
Windows Credentials : soldesk/soldesklove
(linux252 Target System) 172.16.9.252
SSH Setting : root/centos
(solaris254 Target System) 172.16.9.254
SSH Setting : root/knit
Upload or Report > Export(HTML) > Custom, Host
[문제] plugins 다운로드 하는 중에 네트워크 에러 때문에 에러 생김.
[해결]
cmd.exe (관리자 권한으로 실행)
C:\> cd C:\Program Files\Tenable\Nessus
C:\Program Files\Tenable\Nessus> nessuscli update --plugins-only
[문제] administrator 암호를 분실한 경우
[해결]
cmd.exe (관리자 권한으로 실행)
C:\Program Files\Tenable\Nessus\nessuscli lsuser /* 사용자 목록 확인 */
C:\Program Files\Tenable\Nessus\nessuscli chpasswd /* administrator 암호 변경 */
C:\Program Files\Tenable\Nessus\nessuscli adduser /* 사용자 추가 */
(서비스 중지)
<CTRL + SHIFT + ESC>
=> "서비스"탭
=> 오른쪽 하단 서비스
=> Tenable nessus 서비스 선택