모의해킹 침해대응 전문가 과정

20160524 네트워크이론/정보수집단계

22Hz 2016. 5. 26. 01:55

==================================================메 모==================================================

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 서비스 선택