[SK shieldus Rookies 19기][시스템/네트워크 보안 기술] 4일차

부재중입니다·2024년 4월 2일

방화벽(Firewall)

IP 주소와 Port 번호를 기반으로 필터링 정책(방화벽 룰 셋)에 따라 패킷 필터링을 수행하는 보안 장비

  • 접근 제어(Access Control) / 패킷 필터링
    NAT
  • 액세스 기록 기능
  • 사용자 인증
  • 암호화 + 터널링

방화벽 한계

  • 내부 네트워크에 존재하는 악의적인 공격은 막을 수 없음
  • 방화벽을 경유하지 않는 공격을 막을 수 없음
  • 방화벽에 방어 규칙에 포함되지 않는 공격을 막을 수 없음
  • 데이터에 실려 있는 악성 코드나 바이러스를 막을 수 없음 ⇒ 메일에 첨부된 악성 코드를 막을 수 없음
  • DoS와 DDoS 공격을 막을 수 없음 ⇐ 정상적인 서비스 포트를 이용한 공격이므로

iptables

Iptables is a powerful Linux utility that allows system administrators to configure the kernel’s built-in firewall.

규칙 조회

$ 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

캡쳐 필터(capture filter)

  • 패킷이 캡쳐될 때 지정
  • 지정된 표현식에 포함/제외된 패킷만 캡처

시작 화면의 Capture 란에서 설정이 가능

캡쳐 옵션 창에서 설정이 가능

주소 기반의 트래픽 수집

#1 특정 IP 주소에서 오는 또는 주소로 가는 트래픽을 수집

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

#2 IP 주소 범위에서 오는 또는 범위로 가능 트래픽 수집

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

#3 브로드캐스트 또는 멀티캐스트 트래픽 수집

ip broadcast
ip multicast

#4 MAC 주소 기반의 트래픽 수집

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

#5 특정 애플리케이션에 대한 트래픽 수집

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 로 가는 트래픽

디스플레이 필터(display filter)

  • 원하지 않는 패킷을 숨김
  • 지정된 표현식을 기반으로 원하는 패킷만 보기

연산자

연산자 		영어표기		예
  ==		  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"

#1 단순 IP 주소의 호스트에서 또는 호스트로 전달된 트래픽 필터링

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

#2 주소 범위에서 또는 범위로 전달된 트래픽 필터링

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 을 제외한 트래픽

#3 IP 서브넷에서 또는 서브넷으로 전달된 트래픽 필터링

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

캡처 필터 vs 디스플레이 필더

캡처 필터 				디스플레이 필터
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

Conversation Filter

관심 있는 데이터를 빠르게 분석 가능

실습

kali 가상머신에서 wireshark를 실행하고, bee.box (접속 후 로그인), google.com, naver.com으로 접속한 후 패킷 캡처를 종료 후
(1) bee.box로 연결 요청한 트래픽(SYN 플래그가 설정된 트래픽)을 확인하는 필터

(2) bee.box 사이트로 POST 요청한 트래픽을 확인하는 필터

(3) bee.box 사이트로 로그인할 때 사용한 요청 파라미터 정보를 확인

#1 Name Resolution 설정


(1) bee.box로 연결 요청한 트래픽(SYN 플래그가 설정된 트래픽)을 확인하는 필터


(2) bee.box 사이트로 POST 요청한 트래픽을 확인하는 필터

(3) bee.box 사이트로 로그인할 때 사용한 요청 파라미터 정보를 확인

패킷 디테일 창에서 확인

Follow HTTP Stream 한 결과에서 확인

TCPdump TShark - 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

포트 스캐닝

실제 공격 방법을 결정하거나 공격에 이용될 수 있는 네트워크 구조, 시스템이 제공하는 서비스 등의 정보를 얻기 위해 수행되는 방법

  • 제공 서비스 종류
  • 시스템 운영체제의 커널 버전의 종류
  • 시스템 플랫폼 형태
  • 우회 가능 네트워크 구조
  • 공격 대상 보안 장비 사용 현황

nmap (network mapper)

  • 스캔 도구
  • 운영체제 종류 및 사용 서비스에 대한 정보 스캔 도구
            Port Scan 
                |
   +------------+------------+ 
   |                         | 
Open Scan              Stealth Scan    
   |                         |
   +-- TCP Scan              +-- FIN Scan
   +-- UDP Scan              +-- XMAX Scan
                             +-- NULL Scan 
   
스캔 방법에 따른 nmap 옵션	설명
--------------------------	----------------------------------
	-sT			connect() 함수를 이용한 Open Scan		⇒ TCP Open Scan
	-sS			세션을 성립시키지 않고 TCP SYN 스캔		⇒ TCP Half-Open Scan
	-sF			FIN 패킷을 이용한 스캔			⇒ FIN Scan
	-sN			Null 패킷을 이용한 스캔			⇒ NULL Scan
	-sX			XMAS 패킷을 이용한 스캔			⇒ XMAX Scan
	-sU			UDP 포트 스캔					⇒ UDP Scan
	-sA			ACK 패킷에 대한 TTL 값을 분석		

TCP Full Open Scan

Target 서버에 해당 포트가 열려 있는 경우

Attacker                 Target		  $ nmap -sT TARGET_IP [ -p 포트번호 ] 
            SYN
   ---------------------->			. 포트가 열려 있는 경우 SYN/ACK 패킷을 수신
          SYN/ACK 				. SYN/ACK에 ACK 패킷을 전송함으로써 연결을 완료
   <----------------------			. 스캔하고자 하는 포트에 접속을 시도해 완전한 TCP 연결을 맺어 
            ACK				  신뢰성 있는 결과를 얻음
   ---------------------->			. 속도가 느리고 로그를 남기므로 탐지가 가능하다는 단점이 있음

Target 서버에 해당 포트가 닫혀 있는 경우

Attacker                 Target		
            SYN
   ---------------------->			
          RST/ACK 				
   <----------------------			

Target 서버에 차단정책으로 차단되어 있는 경우

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

beebox 가상머신에 8080 포트로 연결(SYN) 요청이 들어오면 해당 패킷을 DROP하도록 iptables에 추가

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     
    


kali 가상머신에서 beebox 가상머신으로 포트 스캔
$ 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

TCP Half Open Scan

Target 서버에 해당 포트가 열려 있는 경우

Attacker                 Target		  $ nmap -sS TARGET_IP [ -p 포트번호 ] 
            SYN
   ---------------------->			. 세션에 대한 로그가 남는 TCP Full Open Scan을 보완하기 위한 기법
          SYN/ACK 				. 공격 대상으로부터 SYN/ACK 패킷을 받으면 공격자는 RST 패킷을 보내서 
   <----------------------			  연결을 끊음
            RST				. 세션을 완전히 연결하지 않음
   ---------------------->			. 로그가 남지 않아 추적이 불가능하도록 하는 기법

Target 서버에 해당 포트가 닫혀 있는 경우

Attacker                 Target		
            SYN
   ---------------------->			
          RST/ACK 				
   <----------------------			

Target 서버에 차단정책으로 차단되어 있는 경우

Attacker                 Target		
            SYN
   ---------------------->		

kali 가상머신에서 beebox 가상머신으로 포트 스캐닝

$ 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

열려 있는 포트

Steath Scan

  • 3 Way Handshaking 연결 기법을 이용하지 않는 것
  • TCP 헤더를 조작해서 특수한 형태의 패킷을 만들어 스캔 대상의 시스템에 보내, 그 응답으로 포트 활성화 여부를 알아내는 기법
  • 세션을 성립하지 않고 공격 대상 시스템 포트 활성화 여부를 알아내기 때문에 공격 대상 시스템에 로그를 남기지 않음
  • 공격 대상의 시스템 관리는 어떤 IP를 가진 공격자가 시스템을 스캔했는지 확인할 수 없음

FIN Scan

Target 서버에 해당 포트가 열려 있는 경우

Attacker                 Target		  $ nmap -sF TARGET_IP [ -p 포트번호 ] 
            FIN
   ---------------------->			. TCP 헤더에 FIN 플래그를 설정해서 공격 대상에게 메시지를 전송
						. 포트가 열려 있는 경우, 응답이 없음

Target 서버에 해당 포트가 닫혀 있는 경우

Attacker                 Target		
            FIN
   ---------------------->			
          RST/ACK 				
   <----------------------			

####Target 서버에 차단정책으로 차단되어 있는 경우

Attacker                 Target		
            FIN
   ---------------------->		

Xmax Scan

Target 서버에 해당 포트가 열려 있는 경우

Attacker                 Target		  $ nmap -sX TARGET_IP [ -p 포트번호 ] 
         UGR,PSH,FIN
   ---------------------->			. TCP 헤더에 UGR, PSH, FIN 플래그를 동시에 설정해서 전송
						. 포트가 열려 있는 경우, 응답이 없음

Target 서버에 해당 포트가 닫혀 있는 경우

Attacker                 Target		
         UGR,PSH,FIN
   ---------------------->			
          RST/ACK 				
   <----------------------			

Target 서버에 차단정책으로 차단되어 있는 경우

Attacker                 Target		
         UGR,PSH,FIN
   ---------------------->		

Null Scan

Target 서버에 해당 포트가 열려 있는 경우

Attacker                 Target		  $ nmap -sN TARGET_IP [ -p 포트번호 ] 
             null
   ---------------------->			. TCP 헤더에 플래그를 설정핮디 않고 전송
						. 포트가 열려 있는 경우, 응답이 없음

Target 서버에 해당 포트가 닫혀 있는 경우

Attacker                 Target		
             null
   ---------------------->			
          RST/ACK 				
   <----------------------			

Target 서버에 차단정책으로 차단되어 있는 경우

Attacker                 Target		
             null
   ---------------------->		

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

$ 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

XMAS 스캔 실습

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 Scan

  • UDP는 3-Way Handshaking과 같은 절차가 없음
  • UDP 패킷을 전송 시 열려 있는 포트로부터 특정 UDP 응답값으로 수신
  • 수신측의 포트가 닫혀 있는 경우 ICMP Port Unreachable 에러 메시지를 통해 포트 활성 유무를 확인
  • namp -sU [대상서버IP]

열린 포트인 경우

Attacker                 Target		
             UDP
   ---------------------->			
             UDP 				
   <----------------------		

닫힌 포트인 경우

Attacker                 Target		
             UDP
   ---------------------->			
       ICMP Unreachable
   <----------------------		

차단된 포트인 경우

Attacker                 Target		
             UDP
   ---------------------->			

0개의 댓글