포트 스캔

타겟의 어느 포트의 서비스를 운영하는지 파악하기 위해 수행

타겟이 특정 서비스를 운영 중이라면 해당 서비스와 관련된 프로그램의 취약점으로 공격 가능


준비 환경

1. CentOS - 타겟, NAT, 192.168.1.100/24

2. Kali Linux - 해커, NAT, 192.168.1.77/24

데비안 계열인 Kali Linux 네트워크 설정법

/etc/network/interfaces 파일 수정

auto eth0

iface eth0 inet static

address 192.168.1.77

netmast 255.255.255.0

gateway 192.168.1.2

dns-nameservers 8.8.8.8


service networking restart

/etc/init.d/networking restart



수동 스캔

telnet [타겟 IP] [포트 번호]

텔넷으로 직접 타겟 IP와 포트 번호로 접근하여 확인



nmap 스캔 툴 이용

Kail Linux에서 CentOS로 포트 스캔하는 과정을 WireShark로 캡쳐 / 22번 포트만 열려 있는 상태


TCP Open Scan

nmap -sT -p [포트번호]-[포트번호] [타겟IP]

nmap -sT -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 TCP Open Scan 명령어

TCP 프로토콜의 3 Way-Handshake 과정

열려있는 포트에 TCP SYN 패킷을 보내면 SYN+ACK가 서버로부터 전달

닫혀있는 포트에 SYN 패킷을 보내면 RST+ACK가 서버로부터 전달, 이를 이용해서 확인하고 싶은 서비스의 포트로 SYN를 보내서 확인 가능

Open Scan의 경우 3 Way Handshake 과정을 전부 수행하기 때문에 타겟에게 해커의 정보가 남게된다


CentOS(192.168.1.100)의 22번 포트를 스캔

TCP의 3-Way HandShake 과정을 모두 거친 것을 확인할 수 있으며

마지막에 Kali(192.168.1.77)가 CentOS(192.168.1.100)에게 응답을 보냄으로써 타겟에게 접근 정보를 남기게 된다



CentOS(192.168.1.100)의 23번 포트를 스캔

TCP의 3-Way HandShake 과정이 실패한 것을 확인할 수 있으며 23번 포트는 닫혔다는 것을 확인할 수 있다



TCP Half Scan

nmap -sS -p [포트번호]-[포트번호] [타겟IP]

nmap -sS -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 TCP Half Scan 명령어

Half Scan의 경우 3 Way-handshake 과정을 전부 수행하지않고 중간에 확인만하고 중단하기 때문에 타겟에게 해커의 정보가 남지 않는다


CentOS(192.168.1.100)의 22번 포트를 스캔

TCP의 3-Way HandShake 과정을 모두 거친 것이 아니라 ACK 패킷을 보내지 않음으로써 일방적으로 끊은 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

TCP의 3-Way HandShake 과정이 실패한 것을 확인할 수 있으며 23번 포트는 닫혔다는 것을 확인할 수 있다


FIN Scan

nmap -sF -p [포트번호]-[포트번호] [타겟IP]

nmap -sF -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 FIN Scan 명령어

열려있는 포트는 FIN 패킷을 받았을 때 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 FIN 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 FIN 패킷을 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



X-max Scan

nmap -sX -p [포트번호]-[포트번호] [타겟IP]

nmap -sX -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 X-mas Scan 명령어

FIN+PSH+URG 플래그를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 FIN+PSH+URG 플래그를 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 FIN+PSH+URG 플래그를 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



NULL Scan

nmap -sN -p [포트번호]-[포트번호] [타겟IP]

namp -sN -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 NULL Scan 명령어

아무 플래그도 사용하지 않으며 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 플래그 없이 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 플래그 없이 패킷을 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



UDP Scan

nmap -sU -p [포트번호]-[포트번호] [타겟IP]

namp -sU -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 UDP Scan 명령어

UDP를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 ICMP Port Unreachable 패킷으로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 UDP 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 UDP 패킷을 보낸 결과, Destination unreachable 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다




Decoy Scan

nmap -sT -p [포트번호]-[포트번호] -D [임의 IP],[임의 IP],.. [타겟IP]

nmap -sT -p 1-100 -D 1.1.1.1, 2.2.2.2 192.168.1.100

스캔할 때 설정한 IP를 출발지 IP로 설정해서 실제 해커의 IP와 섞어서 보내는 공격


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 X-mas Scan과 동일하게 FIN+PSH+URG 플래그를 보내지만 Kali Linux를 포함하여

설정한 IP주소(1.1.1.1, 2.2.2.2)도 포함하여 패킷을 보냈고 응답이 없는 것으로 보아 22번 포트는 열려 있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 X-mas Scan과 동일하게 FIN+PSH+URG 플래그를 설정한 IP주소(1.1.1.1, 2.2.2.2)를 포함하여 보낸 결과,

RST, ACK 응답을 보냈고 23번 포트가 닫혀 있다는 것을 확인할 수 있다




IDLE Scan

nmap -sI [도메인] -p [포트번호]-[포트번호] [타겟IP]

다른 IP로 위장해서 스캔 공격



'IT > Network' 카테고리의 다른 글

네트워크 보안  (0) 2018.10.23

+ Recent posts