개발/보안

Port Scan

SiJun-Park 2024. 10. 2. 01:09

■환경

●희생자-1

IP : 192.168.0.29

OS : Windows 10

●희생자-2 (FIN, X-mas, NULL scan하기 위함)

IP : 127.0.0.1

OS : Kali Linux

●공격자

IP : 10.0.2.15

OS : Kali Linux


Window OS일 경우 못하는 실습을 하기 위해서 apache2를 실행해줍니다.

●Nmap port Scanning 실습 준비로는

1.희생자 PC IP를 확인을 합니다.

2.공격자 PC에서 Wireshark를 실행합니다.

3. eth0 패킷 캡쳐를 시작합니다. (FIN, X-mas, NULL scan을 할 때에는 Loopback을 선택합니다

■내용 및 결과

●TCP Open Scan

1. 공격자 PC에서 희생자 PC로 Port Scan을 합니다

이 방법은 3-way Hand Shake를 이용하는 방식으로 Port를 검색하며, 완전한 세션을 맺기 때문에 로그를 남깁니다.

-OPEN Port

Open 포트에서는 SYN가 전송이 되면 SYN + ACK 응답이 전달이 되고, 받았다는 ACK가 전송이

되는 것을 확인이 가능이 합니다. 즉 열린 포트로 인식이 됩니다.

완전한 세션이 맺어지는 것이 확인이 가능합니다.

-Close Port

Close 포트에서는 SYN이 전송이 되지만 SYN에 대한 응답은 없고, RST ,ACK가 전송이 됩니다 그 러면 이 패킷은 닫힌 포트로 인식이 됩니다

●TCP Half Open Scan

1.공격자 PC에서 희생자 PC로 Port Scan을 합니다

TCP Open Scan과는 반대로 로그를 남기지 않는 것이 특징입니다.

-Open Port

Open 포트에서는 SYN을 보내면 그에 대답을 하여 SYN,ACK를 보냅니다. 그러면 열린 포트로 인 식을 합니다. 그런데 마지막에 RST를 보내어 로그를 삭제를 합니다.

그래서 와이어 샤크로 확인 해본 결과 RST가 전송이 되는 것이 확인이 가능 합니다.

-Close Port

요청을 보냈지만 응답을 하지 못하고 RST , ACK를 보내는 것이 확인이 가능 합니다. 즉 닫힌 포 트로 인식을 하게 됩니다.

●FIN Scan

1. 공격자 PC에서 희생자 PC로 Port Scan을 합니다.

열린 포트이면 아무런 응답이 오지 않으며, 닫힌 포트이면 RST 응답이 전송이 된다

-Open Port

FIN 패킷을 전송을 하여 아무런 응답이 오지 않은 것을 확인이 가능합니다. 즉 열린 포트라는 것 을 알 수 있습니다.

-Close Port

FIN을 보내면 RST,ACK가 전송이 되어 닫힌 포트인 것이 확인이 가능합니다.

●X-mas Scan

1. 공격자 PC에서 희생자 PC로 Port Scan을 합니다.

열린 포트이면 아무런 응답이 오지 않으며, 닫힌 포트이면 RST 응답이 전송 됨

-Open Port

FIN,PSH,URG 패킷을 전송을 해서 열린 포트면 아무런 응답이 오지 않는 것을 확인이 가능합니다. 즉 열린 포트라는 것을 확인이 가능 합니다.

-Close Port

FIN,PSH,URG 패킷을 전송을 하면 RST,ACK가 전송이 되는 것을 확인이 가능 합니다

●NULL Scan

1. 공격자 PC에서 희생자 PC로 Port Scan을 합니다.

열린 포트이면 아무런 응답이 오지 않으며, 닫힌 포트이면 RST 응답이 전송이 됩니다.

-Open Port

NULL 패킷을 전송을 한 결과 아무런 응답이 오지 않는 것을 보아 열린 포트라는 것이 확인이 가 능 합니다.

-Close Port

NULL 패킷을 전송을 한 결과 RST,ACK가 응답이 오는 것을 보니 닫힌 포트라는 것이 확인이 가 능 합니다.

●옵션을 사용하여 지정 포트와 OS 판별

1. 공격자 PC에서 희생자 PC로 Port Scan을 합니다.

여기서 -sS은 TCP Half Scan을 말하고, O는 OS판별을 말합니다.

결과적으로 희생자 IP에 대한 정보를 획득이 가능 합니다.