Scan
-- 주요 포트와 서비스
포트번호
----------
|
서비스
----------
|
서비스 내용
----------------------------------------------------------------
|
21
|
FTP
|
File Transfer Protocol
FTP 연결시 인증과 컨트롤을 위한 포트
|
23
|
Telnet
|
Telnet 서비스로서 원격지의 서버의 실행 창을 얻어냄
|
25
|
SMTP
|
Simple Message Transfer Protocol
메일을 보낼 때 사용하는 서비스
|
53
|
DNS
|
Domain Name Service
이름을 해석하는 데 사용하는 서비스
|
69
|
TFTP
|
Trivial File Transfer Protocol
인증이 존재하지 않는 단순한 파일 전송에 사용되는 서비스
|
80
|
HTTP
|
Hyper Text Transfer Protocol
웹 서비스
|
110
|
POP3
|
Post Office Protocol
메일 서버로 전송된 메일을 읽을 때 사용하는 서비스
|
111
|
RPC
|
Sun의 Remote Procedure Call
원격에서 서버의 프로세스를 실행할 수 있게 한 서비스
|
138
|
NetBIOS
|
Network Basic Input Output Service
윈도우에서 파일을 공유하기 위한 서비스
|
143
|
IMAP
|
Internet Message Access Protocol
Pop3와 기본적으로 같으나, 메일을 읽고 난 후에도 메일은 서버에 남는 것이 다른 서비스
|
161
|
SNMP
|
Simple Network Management Protocol
네트워크 관리와 모니터링을 위한 서비스
|
-- 스캔이란 ?
* 스캔의 개념
- 스캔은 서비스를 제공하는 서버의 작동 여부와 제공하고 있는 서비스를 확인하기 위한 것. TCP 기반의 프로토콜은 기본적으로 질의(Request)를 보내면 응답(Response)을 보낸다.
- 스캐닝은 이러한 기본적인 매커니즘에 기본 하는 것으로, 열려있는 포트, 제공하는 서비스, 동작중인 데몬의 버전, 운영체제의 버전, 취약점 등 다양한 정보를 얻어 내는 것이 가능.
* Ping & ICMP Scan
- Ping은 네트워크와 시스템이 정상적으로 작동하는 확인하기 위한 간단한 유틸리티로 개발되었다. ICMP(Internet Control Messaging Protocol)를 사용한다.
- 각각의 네트워크는 고유한 Ping 이 존재하며, 일반적으로 알려진 Ping은 TCP/IP 네트워크에서의 Ping을 말함
-- ICMP scan
* ICMP 스캔
- ICMP를 이용한 스캔 방법으로는 다음의 네 가지를 생각 할 수 있다.
> Echo Request (Type 8)과 Echo Reply(Type 0)을 이용한 방법
> Information Request(Type 15)와 Information Reply(Type 16)을 이용한 방법
> ICMP Address Mask Request (Type 17)와 ICMP Address Mask Reply(Type 18)을 이용한 방법
* Ping을 이용한 Scan
(1). 전송 패킷의 길이
(2). 응답 패킷의 길이
(3). 응답시간
(4). 라우터를 지날 때 마다 최초 값으로 부터 1씩 줄어 든다.
- 리눅스 (64), Window(128), 솔라리스(255), ....
(5). 질의한 패킷의 개수
(6). 응답 패킷의 개수
-- ICMP Type
0
|
Echo Reply
|
17
|
Address Mask Request
|
1
|
Unassigned
|
18
|
Address Mask Reply
|
2
|
Unassigned
|
19
|
Reserved (for Security)
|
3
|
Destination Unreachable
|
20-29
|
Reserved (for Robustness Experiment)
|
4
|
Source Quench
|
30
|
Traceroute
|
5
|
Redirect
|
31
|
Datagram Conversion Error
|
6
|
Alternate Host Address
|
32
|
Mobile Host Redirect
|
7
|
Unassigned
|
33
|
IPv6 Where-Are-You
|
8
|
Echo
|
34
|
IPv6 I-Am-Here
|
9
|
Router Advertisement
|
35
|
Mobile Registration Request
|
10
|
Router Solicitation
|
36
|
Mobile Registration Reply
|
11
|
Time Exceeded
|
37
|
Domain Name Request
|
12
|
Parameter Problem
|
38
|
Domain Name Reply
|
13
|
Timestamp
|
39
|
SKIP
|
14
|
Timestamp Reply
|
40
|
Photuris
|
15
|
Information Request
|
41
|
ICMP message utilized by experimental mobility protocols such as Seamoby
|
16
|
Information Reply
|
-- ICMP scan 방식
* Timestamp Request(Type 13), TimeStamp Reply(Type 14)
- Timestamp Request는 원격지 시스템의 현재 시간을 알아 보기 위한 패킷임.
- Timestamp 패킷은 송신자가 패킷을 받은 시간(Originate Timestamp)과 수신자가 패킷을 받은 시간(Receive Timestamp), 송신가자 수신자에게 전송하는 동안 걸린 시간(Transmit Timestamp)으로 공격대상의 현재 시스템 시간을 알 수 있다.
- 하지만 Timestamp Request 패킷에 Reply 패킷을 돌려보내오는 시스템이 시간만을 알려준다고 생각할 수는 없다. 상대 시스템이 Reply 패킷이 돌아온 다는 것은 상대 시스템이 활성화 되어 있음을 말하는 것이다.
- 시간은 Recever time - Sender Time을 ms 단위로 표시
* Information Request(Type 15), Information Reply(Type 16)
- information Request와 Reply 패킷은 메인 프레임의 터미널과 같이 부팅할 때 자신의 디스크가 없는 시스템에 스스로 설정할 수 있도록 하는 패킷으로, 자신의 네트워크를 찾기 위해 개발 되었다.
- 기본 목적은 RARP, Bootp, DHCP 와 같은 프로토콜과 같으나 다른 프로토콜을 이용한 방법에 비해 원시적이라고 할 수 있다.
- Timestamp 패킷과 마찬가지로 죽어있는 시스템이 Reply 패킷을 보내오지는 않는다.
* ICMP Address Mask Request(Type 17), ICMP Address Mask Reply(Type 18)
- ICMP Address Mask Request와 Reply 패킷은 Information Request 패킷과 같이 터미널이 부팅될 때 자신이 속해 있는 네트워크의 서브넷 마스크를 알기 위해서 보내는 프로토콜이다.
- 위의 두 가지 방법과 마찬가지로 Reply 패킷을 돌려보내오는지 확인함으로써, 상대 시스템의 활성화 여부를 확인한다.
TCP scan
* TCP나 UDP를 이용한 Scan은 호스트를 대상으로 하는 것이 아니라 포트를 대상으로 한다.
* TCP Open Scan
- 포트가 열려있을 경우, 세션이 성립되며, 포트가 닫혀 있을 경우에는 RST+ACK 패킷을 받게 된다.
> SYN : 3 handshaking 때 서버에 접속을 하겠다는 신호
> ACK : 보낸 신호를 정상적으로 잘 받았다는 응답 신호
* TCP Open Scan - Reverse Ident
- 세션 수립 후 데몬의 프로세스의 소유자를 확인하기 위해 113번 포트를 통해 통신 하는 것
* Stealth Scan - TCP Half Open
- 3W HS 과정에서 RST 패킷을 이용 포트를 확인하고 connect는 생성하지 않음
- 세션을 확정하지 않기 때문에 로그정보를 남기지 않는다.
- 일반적인 stealth Scan은 로그를 남기지 않는 것 뿐 아니라 자신을 숨기는 모든 scan을 통칭함.
- 열린 포트에 FIN 패킷을 보내면 응답하지 않지만(응답 할 것이 없다.) 닫힌 포트는 RST 패킷을 응답한다.
- 이외 flag를 모두 비운 null 패킷이나 모두 채운 xmas 패킷도 동일하게 반응함.
* Stealth Scan - ACK 패킷을 이용한 scan
- 모든 포트에 ACK 패킷 전송
열린 포트 : TTL은 64 이하, Rwin size는 0 보다 큰 RSST 패킷 응답
닫힌 포트 : TTL은 큰 값(OS에 따라 다름), Rwin size는 0인 RST 패킷
- 현재 까지 매우 유용한 방법
- 공격의 차단을 피하거나, 탐지를 회피하기 위해 특정한 시간 간격으로 스캔 패킷을 보내는 기법
Paranoid : 5분이나 10분 간격
Sneaky : WAN에서는 15초 단위로, LAN에서는 5초 단위
Polite : 0.4초 단위
Normal : 정상
Aggressive : 호스트 타임 아웃 : 5분, 패킷 당 1.25초 까지 응답을 기다린다.
Insane : 호스트 타임 아웃 : 75초, 패킷 당 0.3초까지 응답을 기다린다.
-- UDP scan
* UDP는 3W HS하지 않음으로 열린 포트의 경우 응답이 없지만 닫힌 경우 ICMP unreachable 패킷을 반송함
-- 다양한 스캐너 설치
* 스캐너 : fping, hping3, sing, nmap
* OS 지원(리눅스 yum)
nmap
|
fping
|
sing
|
hping3
| |
Fedora
|
지원
|
지원
|
지원
|
지원
|
CentOS
|
Install
|
미지원
|
미지원
|
미지원
|
Sulinux
|
Install
|
미지원
|
미지원
|
미지원
|
Win
|
지원
|
?
|
?
|
?
|
* Fedora는 yum을 이용 설치하고 나머지 리눅스는 직접 컴파일 한다.
- hping은 ping of death 공격에 이용한다.
-- fping
* http://www.fping.com/
* fping을 이용한 시스템 스캔
#fping -h
#fping ip ip ip ...
#fping -g ip/netmask
ex)
#fping 1.1.1.2 1.1.1.3 1.1.1.4
#fping -g 1.1.1.0/24
-- sing
* http://sourceforge.net/project/sing/files/
* ICMP를 이용 다양한 정보 scan
# sing -h
# sing IP -c [패킷수] -[tstamp, info, maks]
ex)
# sing -c 1 -tstamp 192.168.10.1
주의) 실습 전 각 리눅스 시스템 간에 시간을 일치 시킨다.
# rdate -s time.bora.net
-- nmap
* www.nmap.org
* 다양한 방법으로 scan을 제공한다.
#nmap [-옵션]
ex)
#nmap -sS 192.168.10.1
> TCP 하프 연결을 이용해서 Stealth 모드로 스캔한다.
#nmap -sU 192.168.10.1
> UDP 스캔
#nmap -sP -PO -PS 192.168.10.0/24
> C 클래스 전체에 Ping Sweeping(ICMP ping 금지, TCP SYN 사용)
댓글 없음:
댓글 쓰기