스캐닝(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
(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 사용하는 방법에 대해서 정리
(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
-
Nexpos
-
OpenVAS
스캐닝 프로그램 이용
Nesus ex)
'Learning > └◆Security Section' 카테고리의 다른 글
[메타스플로잇]Metasploit_MySQL, tikiwiki (0) | 2016.12.09 |
---|---|
[정보수집]구글링 (0) | 2016.12.08 |
[정보수집]정보수집단계 (0) | 2016.12.07 |
[네트워크 이론] 전송계층(Transport Layer) (0) | 2016.12.04 |