IP 주소와 Port 번호를 기반으로 필터링 정책(방화벽 룰 셋)에 따라 패킷 필터링을 수행하는 보안 장비
▫ 접근 제어(Access Control) / 패킷 필터링
▫ NAT
▫ 액세스 기록 기능
▫ 사용자 인증
▫ 암호화 + 터널링
내부 네트워크에 존재하는 악의적인 공격은 막을 수 없음
방화벽을 경유하지 않는 공격을 막을 수 없음
방화벽에 방어 규칙에 포함되지 않는 공격을 막을 수 없음
데이터에 실려 있는 악성 코드나 바이러스를 막을 수 없음
→ 메일에 첨부된 악성 코드를 막을 수 없음
DoS와 DDoS 공격을 막을 수 없음
→ 정상적인 서비스 포트를 이용한 공격이기 때문
Iptables is a powerful Linux utility that allows system administrators to configure the kernel’s built-in firewall.
# iptables COMMAND <chain> -p <protocol> -s <source> -d <destination> -j <actioN>
~~~~~~~ ~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
| | 프로토콜 출발지 IP 목적지 IP 조건(chain, protocol, source, dest)을 만족하는
| | 패킷의 처리 방법
| +-- 관련된 규칙(rule)의 모음 ACCEPT : 트래픽을 허용
| INPUT : imcoming traffic DROP : 트래픽을 차단
| OUTPUT : outgoing traffic
| FORWARD : 다른 네트워크로 라우팅되는 트래픽
|
+-- -A : 규칙 추가
-L : 규칙 조회
-D : 규칙 삭제
# iptables-save : 규칙을 파일로 저장
# iptables-restore : 규칙 파일을 규칙에 적용
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- kali.linux anywhere tcp flags:RST/RST
$ sudo iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
368 15164 DROP tcp -- any any kali.linux anywhere tcp flags:RST/RST
┌──(kali㉿kali)-[~]
└─$ sudo iptables -A OUTPUT -d "192.168.40.130" -j DROP
┌──(kali㉿kali)-[~]
└─$ curl http://bee.box → bee.box로 접속되지 않는 것을 확인
# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
~~~~~~~~~~~~~~
특정 네트워크 ID로부터 온 패킷을 허용
# iptables -A INPUT 2 -s 192.168.1.0/24 -j ACCEPT
~
인바운드 두번째 규칙으로 추가
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
~~~~~~~~~~~~~~~~~
TCP 프로토콜의 22번 포트(SSH)의 접속을 허용
┌──(kali㉿kali)-[~]
└─$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- kali.linux anywhere tcp flags:RST/RST
DROP all -- anywhere bee.box
┌──(kali㉿kali)-[~]
└─$ sudo iptables -D OUTPUT 2 → 삭제할 체인과 규칙 번호 입력
┌──(kali㉿kali)-[~]
└─$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- kali.linux anywhere tcp flags:RST/RST
┌──(kali㉿kali)-[~]
└─$ sudo iptables-save > ./iptables.rules
┌──(kali㉿kali)-[~]
└─$ cat ./iptables.rules
# Generated by iptables-save v1.8.9 (nf_tables) on Mon Mar 25 20:44:19 2024
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -s 192.168.40.129/32 -p tcp -m tcp --tcp-flags RST RST -j DROP
COMMIT
# Completed on Mon Mar 25 20:44:19 2024
┌──(kali㉿kali)-[~]
└─$ sudo iptables-restore < ./iptables.rules
kali 가상머신에서 진행해도 무관
https://drive.google.com/file/d/1_5ayAtNWDMQLg9jsKJLEJoTLKZfqooa4/view?usp=drive_link
패킷이 캡쳐될 때 지정
지정된 표현식에 포함/제외된 패킷만 캡처
host 10.3.1.1
not host 10.3.1.1
src host 10.3.1.1
dst host 10.3.1.1
host 10.3.1.1 or host 10.3.1.2
host www.test.com
net 10.3.0.0/16
net 10.3.0.0 mask 255.255.0.0
ipv6 net 2406:da00:ff00::/64
src net 10.3.0.0/16
dst net 10.3.0.0/16
not dst net 10.3.0.0/16
ip broadcast
ip multicast
ether host AA:BB:CC:DD:EE:FF
ether src AA:BB:CC:DD:EE:FF
ether dst AA:BB:CC:DD:EE:FF
not ether host AA:BB:CC:DD:EE:FF
port 53
not port 53
port 80
udp port 67
tcp port 21
portrange 1-80
tcp portrange 1-80
port 20 or port 21
host 10.3.1.1 and port 80
host 10.3.1.1 and not port 80
udp src port 68 and udp dst port 67 ⇐ udp 68 에서 udp 67 로 가는 트래픽
원하지 않는 패킷을 숨김
지정된 표현식을 기반으로 원하는 패킷만 보기
연산자 | 영어 표기 | 예 |
---|---|---|
== | eq | ip.src == 10.2.2.2 |
!= | ne | tcp.srcport != 80 |
> | gt | frame.time_relavive > 1 |
< | lt | tcp.window_size < 1400 |
>= | ge | dns.count.answers >= 10 |
<= | le | ip.ttl <= 10 |
contains | http container "GET" |
ip.addr == 10.3.1.1
!ip.addr == 10.3.1.1
ip.src == 10.3.1.1
ip.dst == 10.3.1.1
ip.host == www.test.com
ip.addr > 10.3.0.1 && ip.addr < 10.3.0.5
(ip.addr >= 10.3.0.1 && ip.addr <= 10.3.0.6) && !ip.addr == 10.3.0.3
→ 10.3.0.1 ~ 10.3.0.6 범위의 트래픽 중 10.3.0.3 을 제외한 트래픽
ip.addr == 10.3.0.0/16
ip.addr == 10.3.0.0/16 && !ip.addr = 10.3.0.3
!ip.addr == 10.3.0.0/16 && !ip.addr = 10.2.0.0/16
캡처 필터 | 디스플레이 필터 |
---|---|
host 172.16.1.1 | ip.host == 172.16.1.1 |
src host 172.16.1.1 | ip.src == 172.16.1.1 |
dst host 172.16.1.1 | ip.dst == 172.16.1.1 |
port 8080 | tcp.port == 8080 |
!port 8080 | tcp.port != 8080 |
관심 있는 데이터를 빠르게 분석 가능
kali 가상머신에서 wireshark를 실행하고 bee.box (접속 후 로그인), google.com, naver.com으로 접속하고나서 패킷 캡처를 종료한 후
⑴ bee.box로 연결 요청한 트래픽(SYN 플래그가 설정된 트래픽)을 확인하는 필터
⑵ bee.box 사이트로 POST 요청한 트래픽을 확인하는 필터
⑶ bee.box 사이트로 로그인할 때 사용한 요청 파라미터 정보를 확인
⑴ TCP SYN 플래그가 설정된 트래픽을 필터링
→ SYN 트래픽과 SYN, ACK 트래픽이 함께 출력
⑵ TCP SYN 플래그는 설정되어 있고, ACK 플래그는 설정되지 않은 트래픽을 필터링
⑶ tcp 플래그 확인
Analyze > Apply as Filter > Selected 클릭
⑷ tcp.flags.str 필터 항목을 이용해 ⑵와 동일 결과가 필터링 되도록 수정하고 동시에 &&로 호스트 명이 bee.box인 트래픽으로 제한하도록 필터링
왼쪽 하단의 패킷 디테일 창에서 확인
Follow HTTP Stream한 결과에서 확인
Analyze > Follow > HTTP Stream 클릭
CLI 기반 패킷 수집·분석 도구
$ tshark -h
TShark (Wireshark) 4.2.0 (Git v4.2.0 packaged as 4.2.0-1)
Dump and analyze network traffic.
See https://www.wireshark.org for more information.
Usage: tshark [options] ...
Capture interface:
-i <interface>, --interface <interface>
name or idx of interface (def: first non-loopback)
-f <capture filter> packet filter in libpcap filter syntax
-s <snaplen>, --snapshot-length <snaplen>
packet snapshot length (def: appropriate maximum)
-p, --no-promiscuous-mode
don't capture in promiscuous mode
-I, --monitor-mode capture in monitor mode, if available
-B <buffer size>, --buffer-size <buffer size>
size of kernel buffer (def: 2MB)
... 생략 ...
$ tshark -D
1. eth0
2. any
3. lo (Loopback)
4. bluetooth0
5. bluetooth-monitor
6. nflog
7. nfqueue
8. dbus-system
9. dbus-session
10. ciscodump (Cisco remote capture)
11. dpauxmon (DisplayPort AUX channel monitor capture)
12. randpkt (Random packet generator)
13. sdjournal (systemd Journal Export)
14. sshdump (SSH remote capture)
15. udpdump (UDP Listener remote capture)
16. wifidump (Wi-Fi remote capture)
$ tshark -i 1 # 1번 NIC의 트래픽을 캡쳐
Capturing on 'eth0'
1 0.000000000 kali.linux → bee.box TCP 74 50962 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=495650891 TSecr=0 WS=128
2 0.001559399 bee.box → Broadcast ARP 60 Who has 192.168.40.129? Tell 192.168.40.130
3 0.001579685 kali.linux → bee.box ARP 42 192.168.40.129 is at 00:0c:29:ca:54:d8
4 0.001700100 bee.box → kali.linux TCP 74 80 → 50962 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM TSval=71649699 TSecr=495650891 WS=64
5 0.001740862 kali.linux → bee.box TCP 66 50962 → 80 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=495650892 TSecr=71649699
6 0.002120977 kali.linux → bee.box HTTP 572 GET /bWAPP/login.php HTTP/1.1
7 0.002282784 bee.box → kali.linux TCP 66 80 → 50962 [ACK] Seq=1 Ack=507 Win=6912 Len=0 TSval=71649700 TSecr=495650893
8 0.003608975 bee.box → kali.linux TCP 2962 HTTP/1.1 200 OK [TCP segment of a reassembled PDU]
9 0.003656759 kali.linux → bee.box TCP 66 50962 → 80 [ACK] Seq=507 Ack=2897 Win=63488 Len=0 TSval=495650894 TSecr=71649700
10 0.003815021 bee.box → kali.linux HTTP 1604 HTTP/1.1 200 OK (text/html)
$ tshark -i 1 -w tshark.pcapng # 캡쳐한 트래픽을 파일에 저장
Capturing on 'eth0'
52 ^C
$ tshark -r tshark.pcapng # 캡쳐 파일의 내용 확인
1 0.000000000 kali.linux → bee.box TCP 74 57766 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=495875753 TSecr=0 WS=128
2 0.000249041 bee.box → kali.linux TCP 74 80 → 57766 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM TSval=71705918 TSecr=495875753 WS=64
3 0.000290779 kali.linux → bee.box TCP 66 57766 → 80 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=495875753 TSecr=71705918
4 0.002774296 kali.linux → bee.box HTTP 572 GET /bWAPP/login.php HTTP/1.1
5 0.003096659 bee.box → kali.linux TCP 66 80 → 57766 [ACK] Seq=1 Ack=507 Win=6912 Len=0 TSval=71705919 TSecr=495875756
6 0.004841479 bee.box → kali.linux HTTP 4500 HTTP/1.1 200 OK (text/html)
7 0.004979293 kali.linux → bee.box TCP 66 57766 → 80 [ACK] Seq=507 Ack=4436 Win=62080 Len=0 TSval=495875758 TSecr=71705919
8 0.009162178 kali.linux → bee.box TCP 66 57766 → 80 [FIN, ACK] Seq=507 Ack=4436 Win=64128 Len=0 TSval=495875762 TSecr=71705919
9 0.009477852 bee.box → kali.linux TCP 66 80 → 57766 [ACK] Seq=4436 Ack=508 Win=6912 Len=0 TSval=71705920 TSecr=495875762
$ tshark -i 1 -a files:3 -b duration:10 -w tshark_files.pcapng
~~~~~~~~~~ ~~~~~~~~~~~~~~
| |
| +-- 10초 후 다음 파일을 생성
+-- 3개 파일 수집 후 자동 정지
Capturing on 'eth0'
1928
$ ls -l tshark_files*
-rw------- 1 kali kali 170304 Mar 26 01:57 tshark_files_00001_20240326015704.pcapng
-rw------- 1 kali kali 2188976 Mar 26 01:57 tshark_files_00002_20240326015714.pcapng
-rw------- 1 kali kali 1610200 Mar 26 01:57 tshark_files_00003_20240326015724.pcapng
~~ 10초 간격으로 생성된 것을 확인
$ tshark -i 1 -f "tcp port 443" -w tshark_tcp_port_443.pcapng
Capturing on 'eth0'
693 ^C
$ ls -l tshark_tcp_port_443.pcapng
-rw------- 1 kali kali 1647544 Mar 26 02:01 tshark_tcp_port_443.pcapng
$ tshark -i 1 -f "tcp port 443 and host 192.168.40.1" -w tshark_tcp_port_443.pcapng
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 패킷 필터
$ tshark -r tshark.pcapng -Y "http.request.method == GET"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 디스플레이 필터
4 0.002774296 kali.linux → bee.box HTTP 572 GET /bWAPP/login.php HTTP/1.1
$ tshark -i 1 -qz hosts # 접속한 호스트 목록 확인
Capturing on 'eth0'
^C1140 packets captured
# TShark hosts output
#
# Host data gathered from the temporary capture file
61.247.194.89 s1.e.navercdn.com
192.168.40.129 kali.linux
61.247.194.151 s2.e.navercdn.com
142.250.76.130 adservice.google.com
183.111.26.166 ntm.pstatic.net.static.gscdn.net
61.247.194.143 s2.e.navercdn.com
110.93.154.77 shopsquare.naver.com.nheos.com
117.52.137.162 lcs.naver.com.nheos.com
61.247.194.92 s1.e.navercdn.com
61.247.194.154 s2.e.navercdn.com
$ tshark -r tshark.pcapng -qz hosts
# TShark hosts output
#
# Host data gathered from tshark.pcapng
192.168.40.129 kali.linux
192.168.40.130 bee.box
실제 공격 방법을 결정하거나 공격에 이용될 수 있는 네트워크 구조, 시스템이 제공하는 서비스 등의 정보를 얻기 위해 수행되는 방법
▫ 제공 서비스 종류
▫ 시스템 운영체제의 커널 버전의 종류
▫ 시스템 플랫폼 형태
▫ 우회 가능 네트워크 구조
▫ 공격 대상 보안 장비 사용 현황
운영체제 종류 및 사용 서비스에 대한 정보 스캔 도구
Port Scan
|
+------------+------------+
| |
Open Scan Stealth Scan
| |
+-- TCP Scan +-- FIN Scan
+-- UDP Scan +-- XMAX Scan
+-- NULL Scan
Attacker Target $ nmap -sT TARGET_IP [ -p 포트번호 ]
SYN
----------------------> - 포트가 열려 있는 경우 SYN/ACK 패킷 수신
SYN/ACK - SYN/ACK에 ACK 패킷을 전송함으로써 연결 완료
<---------------------- - 스캔하고자 하는 포트에 접속을 시도해 완전한
TCP 연결을 맺어 신뢰성 있는 결과를 얻음
ACK
----------------------> - 속도가 느리고 로그를 남기므로
탐지가 가능하다는 단점이 있음
Attacker Target
SYN
---------------------->
RST/ACK
<----------------------
Attacker Target
SYN
---------------------->
$ nmap -sT bee.box
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 02:57 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.0025s latency).
Not shown: 983 closed tcp ports (conn-refused)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
666/tcp open doom
3306/tcp open mysql
5901/tcp open vnc-1
6001/tcp open X11:1
8080/tcp open http-proxy
8443/tcp open https-alt
9080/tcp open glrpc
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
bee@bee-box:~$ sudo iptables -A INPUT -p tcp --tcp-flags SYN SYN --dport 8080 -j DROP
bee@bee-box:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp dpt:webcache flags:SYN/SYN
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
$ nmap -sT bee.box
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 03:14 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.00053s latency).
Not shown: 983 closed tcp ports (conn-refused)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
666/tcp open doom
3306/tcp open mysql
5901/tcp open vnc-1
6001/tcp open X11:1
8080/tcp filtered http-proxy
8443/tcp open https-alt
9080/tcp open glrpc
Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds
Attacker Target $ nmap -sS TARGET_IP [ -p 포트번호 ]
SYN
----------------------> - 세션에 대한 로그가 남는
TCP Full Open Scan을 보완하기 위한 기법
- 공격 대상으로부터 SYN/ACK 패킷을 받으면
SYN/ACK 공격자는 RST 패킷을 보내서 연결을 끊음
<----------------------
RST - 세션을 완전히 연결하지 않음
----------------------> - 로그가 남지 않아 추적이 불가능하게 만듦
Attacker Target
SYN
---------------------->
RST/ACK
<----------------------
Attacker Target
SYN
---------------------->
$ sudo nmap -sS bee.box
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 03:44 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.010s latency).
Not shown: 983 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
666/tcp open doom
3306/tcp open mysql
5901/tcp open vnc-1
6001/tcp open X11:1
8080/tcp filtered http-proxy
8443/tcp open https-alt
9080/tcp open glrpc
MAC Address: 00:0C:29:3E:BA:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.45 seconds
3 Way Handshaking 연결 기법을 이용하지 않는 것
TCP 헤더를 조작해서 특수한 형태의 패킷을 만들어 스캔 대상의 시스템에 보내, 그 응답으로 포트 활성화 여부를 알아내는 기법
세션을 성립하지 않고 공격 대상 시스템 포트 활성화 여부를 알아내기 때문에 공격 대상 시스템에 로그를 남기지 않음
공격 대상의 시스템 관리는 어떤 IP를 가진 공격자가 시스템을 스캔했는지 확인할 수 없음
Attacker Target $ nmap -sF TARGET_IP [ -p 포트번호 ]
FIN
----------------------> - TCP 헤더에 FIN 플래그를 설정해서
공격 대상에게 메시지를 전송
- 포트가 열려 있는 경우, 응답이 없음
Attacker Target
FIN
---------------------->
RST/ACK
<----------------------
Attacker Target
FIN
---------------------->
$ sudo nmap -sF bee.box
[sudo] password for kali:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 04:00 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.00043s latency).
Not shown: 983 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
25/tcp open|filtered smtp
80/tcp open|filtered http
139/tcp open|filtered netbios-ssn
443/tcp open|filtered https
445/tcp open|filtered microsoft-ds
512/tcp open|filtered exec
513/tcp open|filtered login
514/tcp open|filtered shell
666/tcp open|filtered doom
3306/tcp open|filtered mysql
5901/tcp open|filtered vnc-1
6001/tcp open|filtered X11:1
8080/tcp open|filtered http-proxy
8443/tcp open|filtered https-alt
9080/tcp open|filtered glrpc
MAC Address: 00:0C:29:3E:BA:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.47 seconds
Attacker Target $ nmap -sX TARGET_IP [ -p 포트번호 ]
UGR,PSH,FIN
----------------------> - TCP 헤더에 UGR, PSH, FIN 플래그를
동시에 설정해서 전송
- 포트가 열려 있는 경우, 응답이 없음
Attacker Target
UGR,PSH,FIN
---------------------->
RST/ACK
<----------------------
Attacker Target
UGR,PSH,FIN
---------------------->
$ sudo nmap -sX bee.box
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 04:02 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.017s latency).
Not shown: 983 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
25/tcp open|filtered smtp
80/tcp open|filtered http
139/tcp open|filtered netbios-ssn
443/tcp open|filtered https
445/tcp open|filtered microsoft-ds
512/tcp open|filtered exec
513/tcp open|filtered login
514/tcp open|filtered shell
666/tcp open|filtered doom
3306/tcp open|filtered mysql
5901/tcp open|filtered vnc-1
6001/tcp open|filtered X11:1
8080/tcp open|filtered http-proxy
8443/tcp open|filtered https-alt
9080/tcp open|filtered glrpc
MAC Address: 00:0C:29:3E:BA:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.48 seconds
Attacker Target $ nmap -sN TARGET_IP [ -p 포트번호 ]
null
----------------------> - TCP 헤더에 플래그 설정 없이 전송
- 포트가 열려 있는 경우, 응답이 없음
Attacker Target
null
---------------------->
RST/ACK
<----------------------
Attacker Target
null
---------------------->
$ sudo nmap -sN bee.box
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 04:08 EDT
Nmap scan report for bee.box (192.168.40.130)
Host is up (0.010s latency).
Not shown: 983 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
25/tcp open|filtered smtp
80/tcp open|filtered http
139/tcp open|filtered netbios-ssn
443/tcp open|filtered https
445/tcp open|filtered microsoft-ds
512/tcp open|filtered exec
513/tcp open|filtered login
514/tcp open|filtered shell
666/tcp open|filtered doom
3306/tcp open|filtered mysql
5901/tcp open|filtered vnc-1
6001/tcp open|filtered X11:1
8080/tcp open|filtered http-proxy
8443/tcp open|filtered https-alt
9080/tcp open|filtered glrpc
MAC Address: 00:0C:29:3E:BA:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.46 seconds
UDP는 3-Way Handshaking과 같은 절차가 없음
UDP 패킷을 전송 시 열려 있는 포트로부터 특정 UDP 응답값으로 수신
수신측의 포트가 닫혀 있는 경우 ICMP Port Unreachable 에러 메시지를 통해 포트 활성 유무를 확인
namp -sU [대상서버IP]
Attacker Target
UDP
---------------------->
UDP
<----------------------
Attacker Target
UDP
---------------------->
ICMP Unreachable
<----------------------
Attacker Target
UDP
---------------------->