본문 바로가기

Learning/└◆Security Section

[정보수집]스캐닝 (nmap,nessus)

 

 

스캐닝(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))

() 개인적으로 진단

 

[참고] 국내외 상용 스캐닝 도구의 비교

국내는 시스템 진단 툴 위주, 국외는 네트워크 스캐닝 툴 위주

ISSnetRecon이 세계 시장의 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

 

 

 

 

(2) TCP Open Scan

공격자는 TCP SYN 패킷 전송- 포트 Open : SYN/ACK 패킷 회신후 ACK 전송- 포트 Close: RST/ACK 패킷 회신

 

 

 

 

# nmap -sT -p 22 192.168.20.200

 

 

 

 

 

(3) TCP Half Open Scan(Stealth Scan)

공격자는 TCP SYN 패킷 전송- 포트 Open : SYN/ACK 패킷 회신 후 RST 패킷 전송- 포트 Close: RST/ACK 패킷 회신

 

# nmap -sS -p 23 192.168.20.200

 

 

 

[참고] 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 패킷 회신

방화벽으로 필터되어 있을 때 사용. 3가지 전부 같은 반응

포트가 열려있으면 응답 없음

포트가 닫혀있으면 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_FIN_Scan.txt

nmap_NULL_Scan.txt

nmap_Xmas_Scan.txt


 

[실습] 인터넷을 활용하여 nmap 사용하는 방법에 대해서 정리

(linux200) # yum -y install nmap-frontend

 # xnmap & (GUI버전)

(windows) zenmap 실행

 

(KaliLinux) # zenmap &

 


[!]

nmap 을 사용하는 이유

보안장비가 있으면 중간에서 필터링 하는 동작들이 있다.

필터링이 안될 만한 내용으로 전송해야한다.(다양한 방법으로 포트의 여부를 확인)

 

 

 

5. 운영체제 스캐닝

 

배너 그래빙(Banner Grabbing)

telnet 명령어를 사용하여 원격지의 시스템에 로그인을 시도하면 나타나는 안내문

운영체제 버전과 커널 버전을 확인

배너 그래빙은 21, 23, 25, 110, 143 포트에서도 가능

 

# nmap -sV 192.168.20.200

PORT    STATE SERVICE  VERSION
21/tcp  open  ftp           vsftpd 2.0.5
22/tcp  open  ssh          OpenSSH 4.3 (protocol 2.0)
23/tcp  open  telnet       BSD-derived telnetd
25/tcp  open  smtp        Sendmail 8.13.8/8.13.8
53/tcp  open  domain
80/tcp  open  http         Apache httpd 2.2.3 ((CentOS))
110/tcp open  pop3        Dovecot pop3d
111/tcp open  rpcbind    2 (rpc #100000)
143/tcp open  imap        Dovecot imapd
443/tcp open  ssl/http    Apache httpd 2.2.3 ((CentOS))
993/tcp open  ssl/imap   Dovecot imapd
995/tcp open  ssl/pop3   Dovecot pop3d
Service Info: Host: mail.example.com; OS: Unix

 

(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 (# yum -y install lynx)

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

-> 대표적인 Text-based Web Browser : curl, lynx

 

배너를 수집하는 방법들  배너그래빙

 

 

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프로그램설치하기.txt

취약점 분석 도구(종합툴 성격)

  1. Nessus

  2. Nexpos

  3. OpenVAS

  스캐닝 프로그램 이용

 

Nesus ex)