๊ฐ์
ํฌํธ ์ค์บ(port scan)์ ์ด์ ์ค์ธ ์๋ฒ์์ ์ด๋ ค ์๋ TCP/UDP ํฌํธ๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ค์ต ์ฌ์ ์ค๋น
Windows ํ๊ฒฝ์ ์์ด์ด์คํฌ์ ํ์ด์ฌ์ ์ค๋นํ๋ค. ํฌํธ ์ค์บ๋ ๋๊ตฌ์ธ nmap์ด ์ค์น๋ผ ์์ด์ผ ํ๋ค.
์์ด์ด์คํฌ ์ธํ
์์ด์ด์คํฌ๋ฅผ ์คํ์ํค๊ณ "Adapter for loopback traffic capture"๋ฅผ ๋๋ฌ ๋ก์ปฌ ๋ด์์ ์ผ์ด๋๋ ํธ๋ํฝ๋ค์ ๋ชจ๋ํฐ๋งํ๋ค.
๋ค์ ์๋์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด ๊ฐ๊ฐ TCP, UDP ์๋ฒ๋ฅผ ์ด์ด์ค๋ค.
tcp_server.py
import socket
def start_tcp_server(host, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1) # ์ต๋ 1๊ฐ์ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ํ์ฉ
print(f"TCP ์๋ฒ๊ฐ {host}:{port}์์ ์คํ ์ค์
๋๋ค.")
while True:
client_socket, client_address = server_socket.accept()
print(f"{client_address}์์ ์ฐ๊ฒฐ๋จ.")
# ํด๋ผ์ด์ธํธ์ ํต์ ํ๋ ค๋ฉด client_socket์ ์ฌ์ฉํฉ๋๋ค.
client_socket.close()
if __name__ == '__main__':
host = '0.0.0.0' # ์๋ฒ ํธ์คํธ ์ฃผ์
port = 12345 # ์๋ฒ ํฌํธ ๋ฒํธ
start_tcp_server(host, port)
udp_server.py
import socket
def start_udp_server(host, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((host, port))
print(f"UDP ์๋ฒ๊ฐ {host}:{port}์์ ์คํ ์ค์
๋๋ค.")
while True:
data, client_address = server_socket.recvfrom(1024)
print(f"{client_address}์์ ๋ฉ์์ง ์์ : {data.decode()}")
# ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ ๋ณด๋ด๋ ค๋ฉด server_socket.sendto()๋ฅผ ์ฌ์ฉํฉ๋๋ค.
if __name__ == '__main__':
host = '0.0.0.0' # ์๋ฒ ํธ์คํธ ์ฃผ์
port = 12345 # ์๋ฒ ํฌํธ ๋ฒํธ
start_udp_server(host, port)
Open Scan
- TCP Open
- ํฌํธ๊ฐ ์ด๋ ค ์์ ๊ฒฝ์ฐ SYN+ACK์ด ์จ๋ค.
- ํฌํธ๊ฐ ๋ซํ ์์ ๊ฒฝ์ฐ RST๊ฐ ์จ๋ค.
- 3-way handshake(SYN, SYN+ACK, ACK)๊ฐ ์ฑ๋ฆฝ๋๋ฏ๋ก ๋ก๊ทธ๊ฐ ๋จ๊ธฐ๊ฒ ๋๋ค.
์ฌ๋ก 1) ํฌํธ๊ฐ ์ด๋ ค ์์ ๊ฒฝ์ฐ
> nmap -sT -p 12345 172.30.1.44
PORT STATE SERVICE
12345/tcp open netbus
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
์ฌ๋ก 2) ํฌํธ๊ฐ ๋ซํ ์์ ๊ฒฝ์ฐ
> nmap -sT -p 12345 172.30.1.44
PORT STATE SERVICE
12345/tcp filtered netbus
Nmap done: 1 IP address (1 host up) scanned in 2.27 seconds
- UDP Open
- ํฌํธ๊ฐ ์ด๋ ค ์์ ๊ฒฝ์ฐ์ IDS/IPS, ๋ฐฉํ๋ฒฝ ๋ฑ์ ํํฐ๊ฐ ๋ ๊ฒฝ์ฐ์๋ ์๋ต์ด ์ค์ง ์๋๋ค.
- ํฌํธ๊ฐ ๋ซํ ์์ ๊ฒฝ์ฐ์๋ ICMP Unreachable ํจํท์ ์์ ๋ฐ๋๋ค.
์ฌ๋ก 1) ํฌํธ๊ฐ ์ด๋ ค ์์ ๊ฒฝ์ฐ
> nmap -sU -p 12345 172.30.1.44
PORT STATE SERVICE
12345/udp open|filtered italk
Nmap done: 1 IP address (1 host up) scanned in 2.28 seconds
์ฌ๋ก 2) ํฌํธ๊ฐ ๋ซํ ์์ ๊ฒฝ์ฐ
> nmap -sU -p 12345 172.30.1.44
PORT STATE SERVICE
12345/udp closed italk
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
3. Stealth Scan
์ธ์ ์ ์์ ํ ์ฑ๋ฆฝํ์ง ์๊ณ ๊ณต๊ฒฉ ๋์ ์์คํ ์ ํฌํธ ํ์ฑํ ์ฌ๋ถ๋ฅผ ์์๋ด๊ธฐ ๋๋ฌธ์ ๋์ ์์คํ ์ ๋ก๊ทธ๊ฐ ๋จ์ง ์๋๋ค.
โป Windows๋ Stealth Scan(SYN ์ค์บ ์ ์ธ)์ ์๋ํ๋ฉด ๋ฌด์กฐ๊ฑด ์๋ต์ด RST๊ฐ ์ค๋ฏ๋ก ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋์ ์์คํ ์ด Windows ์์คํ ์ธ ๊ฒ์ผ๋ก ํ๋จํ ์ ์๋ค.
์ ์ฌ์ง์ Open Scan์ ์๋ํ์์ ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ๋๋ค๋ ๋ก๊ทธ๊ฐ ๋จ์ ๊ฒ์ด๋ค.
Stealth Scan์ ์๋ํ๋ฉด ์ด๋ฒ์ ์ ์ฌ์ง์ฒ๋ผ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ๋ก๊ทธ๊ฐ ๋จ์ง ์๊ฒ ๋๋ค.
- TCP FIN ์ค์บ
- FIN ํ๋๊ทธ๋ฅผ ์ค์ ํ์ฌ ๋ณด๋ธ๋ค. ์๋ต์ด ์์ผ๋ฉด ์ด๋ ค ์๋ ๊ฒ์ผ๋ก ํ๋จํ๋ค.
- RST ํจํท์ด ๋๋์์ค๋ฉด ๋ซํ ์๋ ๊ฒ์ด๋ค.
> nmap -sF -p 12345 172.30.1.44
- TCP ACK ์ค์บ
- ํฌํธ์ ์คํ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๊ฒ์ด ์๋, ๋ฐฉํ๋ฒฝ ์ ์ฑ ์ ํ ์คํธํ๊ธฐ ์ํ ์ค์บ
- ๋์ ๋ฐฉํ๋ฒฝ์ด ์ํ ๊ธฐ๋ฐ(Stateful)์ธ์ง ์ฌ๋ถ, ๋์ ํฌํธ๊ฐ ๋ฐฉํ๋ฒฝ์์ ํํฐ๋ง๋๋์ง ์ฌ๋ถ
> nmap -sA -p 12345 172.30.1.44
- NULL ์ค์บ
- NULL ํ๋๊ทธ(๋ชจ๋ ํ๋๊ทธ๊ฐ 0)๋ฅผ ์ค์ ํ์ฌ ๋ณด๋ธ๋ค. ์๋ต์ด ์์ผ๋ฉด ์ด๋ ค ์๋ ๊ฒ์ผ๋ก ํ๋จํ๋ค.
- RST ํจํท์ด ๋๋์์ค๋ฉด ๋ซํ ์๋ ๊ฒ์ด๋ค.
> nmap -sN -p 12345 172.30.1.44
- Xmas ์ค์บ
- ์ฌ๋ฌ ํ๋๊ทธ๋ฅผ ๋์์ ์ค์ ํ์ฌ ํ๊บผ๋ฒ์ ๋ณด๋ธ๋ค. ์๋ต์ด ์์ผ๋ฉด ์ด๋ ค ์๋ ๊ฒ์ผ๋ก ํ๋จํ๋ค.
- RST ํจํท์ด ๋๋์ ์ค๋ฉด ๋ซํ ์๋ ๊ฒ์ด๋ค.
- ๋ง์น ํฌ๋ฆฌ์ค๋ง์ค ํธ๋ฆฌ ์ฅ์์ฒ๋ผ ๋ฐ์ง์ด๋ ๊ฒ์ด ์ด๋ฆ์ด ์ ๋์ด๋ค.
> nmap -sX -p 12345 172.30.1.44
- SYN ์ค์บ
- Open ์ค์บ๊ณผ ๋๋นํ์ฌ Half-Open ์ค์บ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- SYN์ ๋ณด๋ด SYN+ACK์ด ์ค๋ฉด ์ด๋ฆฐ ๊ฒ์ผ๋ก ํ๋จํ๊ณ , RST ํจํท์ ๋ณด๋ด ์ ์์ ๋์ด๋ฒ๋ฆฐ๋ค.
- nmap์ ์๋ฌด๋ฐ ์ค์บ ์ต์ ์ ์ฃผ์ง ์์ผ๋ฉด SYN ์ค์บ์ด ๊ธฐ๋ณธ ์ต์ ์ด ๋๋ค.
> nmap -sS -p 12345 172.30.1.44
PORT STATE SERVICE
12345/tcp open netbus
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
์ฐธ๊ณ :
https://itwiki.kr/w/%ED%8F%AC%ED%8A%B8_%EC%8A%A4%EC%BA%94
IT์ํค
IT์ ๊ดํ ๋ชจ๋ ์ง์. ํจ๊ป ๋ง๋ค์ด๊ฐ๋ ๊นจ๋ํ ์ํค
itwiki.kr
Port scanning | Hands-On Penetration Testing with Kali NetHunter
After live systems have been identified, it's time to check for any open ports on the target.
www.prod.packt.com
'๐์ ๋ณด๋ณด์ > ๋คํธ์ํฌ ๋ณด์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋คํธ์ํฌ ๋ณด์ - ์ด๋ฉ์ผ SPF(Sender Policy Framework) ๊ฒ์ฆ ์คํจ ์ฌ๋ก (0) | 2023.10.13 |
---|---|
๋คํธ์ํฌ ๋ณด์ - FTP ํจ์๋ธ ๋ชจ๋(PASV EPSV) (0) | 2023.10.12 |
๋คํธ์ํฌ ๋ณด์ - ๋ฌด์ ๋คํธ์ํฌ ๊ด๋ จ CheatSheet (0) | 2023.06.14 |
๋คํธ์ํฌ ๋ณด์ - ์ธก๋ฉด ์ด๋(Lateral Movement) (0) | 2023.05.14 |
๋คํธ์ํฌ ๋ณด์ - FTP ์ ๊ทผ ์ ์ด ์ค์ (/etc/ftpusers) (0) | 2023.04.17 |