Hongfluenza

포트 스캐닝(Port Scanning) 본문

STUDY/NETWORK

포트 스캐닝(Port Scanning)

Hongfluenza 2019. 7. 15. 02:03

1> 포트 스캔(Port Scan)

1.1> 포트(port)?

 

- 사전적 의미 : 모뎀과 컴퓨터 사이에 데이터를 주고받을 수 있는 통로

- 프로그래밍에 의해 만들어진 네트워크 프로그램이 외부와 통신을 위해 약속한 통로인 소프트웨어적인 측면

- 포트의 필요성 ? : 외부와 데이터를 교환하는 프로그램은 특정 포트를 이용해 데이터를 교환한다.

 

 

1.2> 스캔(scan)?

 

- 서비스를 제공하는 서버의 작동여부와 제공하고 있는 서비스를 확인하는 것

- 질의(Request)를 보내면 응답(Response)을 받는 구조인 네트워크의 특성을 이용함
     → 이 과정을 통해 네트워크 상의 다른 단말기의 정보를 얻어옴

1. ping을 통해 희생자의 PC로 보냄
2. 희생자 PC가 살아있나 확인할 수 있다
3. 열려있는 포트, 제공하는 서비스, 동작중인 데몬 버전, 운영체제 버전, 취약점 등 다양한 정보를 얻을 수 있음.

 

 

1.3> 포트스캔(Port Scan)?

 

- 정의 : 운영중인 서버에서 어떠한 포트가 열려있는지 닫혀있는지를 조사하는 것

- 목적

1. 자신의 서버의 네트워크 서비스들을 점검하기 위해 사용

2. 해커가 해킹을 하기 위해 정보 수집단계에서 타겟 서버의 정보를 수집하기 위해 사용

→ 알고자하는 패킷에 특정한 패킷을 보냈을 때 돌아오는 응답에 따라 포트가 열려있는지 닫혀있는지 판단

- 유형 : TCP SYN(Half-Open)스캔[스텔스 스캔], TCP Open(Connenction) 스캔, TCP FIN/NULL/Xmas스캔[스텔스 스캔], TCP ACK스캔, UDP 스캔, Decoy 스캔

 

- 주로 nmap을 사용

- nmap [scan_type] [options] (target)

- scan_type 문법

1. -sS : TCP SYN(Half-Open) Scan
2. -sT : TCP Connenct(Open) Scan
3. -sU : UDP Scan
4. -sF : TCP FIN Scan
5. -sX : TCP Xmas Scan
6. -sN : TCP NULL Scan
7. -sA : TCP Ack Scan
8. -sP : Ping(icmp/icmp echo) Scan
9. -D : Decoy Scan

 

- 잘 알려진 포트

1. 포트 80(HTTP) : 우리가 발견한 열린 포트의 14% 이상을 차지
2. 포트 23(Telnet) : 텔넷은 암호화가 되지 않아 보안이 불안정하나 계속 존재함
3. 포트 443(HTTPS) : SSL 암호화된 웹서버는 이 포트를 기본적으로 사용
4. 포트 21(FTP) : 텔넷처럼, FTP는 없어져야 하는 보안이 불안한 프로토콜임
5. 포트 22(SSH) : 텔넷을 대체하는 암호화된 프로토콜. 보통 보안 셸로 알려짐
6. 포트 25(SMTP) : 표준 메일 전송 프로토콜(보안X)
7. 포트 3389(ms-term-server) : 마이크로소프트 터미널 서비스 관리 포트
8. 포트 110(POP3) : 이메일 추출을 위한 오피스 프로토콜 버전3(보안X)
9. 포트 445(마이크로소프트-DS) : (파일/프린터 공유 같은)마이크로소프트 윈도우 서비스에 있는 IP에 대한 SMB 통신을 위한 포트
10. 포트 143(IMAP) : 인터넷 메시지 접근 프로토콜 버전 2. 보안이 안 된 이멩리 추출 프로토콜
11. 포트 53(도메인) : 도메인 네임 시스템DNS, 호스트/도메인명과 IP주소 사이의 대화를 위한 보안이 안된 시스템
12. 포트 3306(MySQL) : MySQL 데이터베이스와 통신을 위한 포트
13. 포트 8080(HTTP-proxy) : 일반적인 웹서버를 위한 HTTP 프록시나 다른 포트로써 흔하게 사용되는 포트
14. 포트 995(POP3S) : 보안을 위해 추가된 SSL이 있는 POP3
15. 포트 5900(VNC) : 그래픽 데스크탑 공유 시스템(보안X)

 

2> TCP Open(Connection) 스캔

- #nmap -sT [Target IP]

- TCP를 이용한 가장 기본적인 스캔

- Open 예상되는 포트는 SYN패킷을 보내면 포트가 열린 경우, 서버에서 SYN+ACK패킷이 돌아오고 공격자는 ACK패킷을 보낸다

- 포트가 닫힌 경우 RST+ACK패킷이 돌아오고 공격자는 아무 패킷도 보내지 않는다

- 필터된 포트에는 SYN 신호만 간다.

- 3-way-handshaking의 정상 포트스캔 과정으로 ACK를 받는 경우 로그기록이 남는다.

- 방화벽이 존재시, DROP(해당 패킷 폐기) / REJECT(해당 패킷 폐기 후 ICMP 메시지 전송) 두 가지 방법이 존재

 

 

3> Stealth 스캔

- 방화벽으로 차단한 영역을 검사하거나, IPS/IDS에서 탐지가 안 되도록 진행할 때 유용함
- Open 포트로 FIN 패킷을 보내면 이 패킷을 무시하고, Closed 포트로 보내면 RST 패킷이 온다.
- 주로 UNIX계열의 OS에서 사용이 가능하고, 루트 권한이 필요
- TCP Half(SYN) Open 스캔, FIN 스캔, NULL 스캔, Xmax 스캔이 대표적인 예 

 

3.1> TCP Half(SYN) Open 스캔

- #nmap -sS [Target IP]

- FULL TCP 접속을 하지 않으므로 half-open 스캐닝이라 한다.

- SYN패킷을 보냈을 때 SYN+ACK 응답이 오면 그 포트는 listening 상태
- SYN패킷을 보냈을 때 RST 응답이 오면 non-listen 상태임을 나타냄

- TCP Half 스캔은 하나의 패킷을 보냈을 때 SYN+ACK 응답을 받으면 그 즉시 RST 패킷을 보내 접속을 끊는다. 이렇게 하면 접속이 이루어지지 않은 상태에서 접속을 끊었기 때문에 로그를 남기지 않는 경우가 대부분이다.

- custom SYN packet을 만들기 위해서는 루트 권한이 필요하다.

- 이 방식을 사용하기 위해서는 connenct() 함수를 이용할 수 없고, 포트 스캐너는 이 스캔 작업을 위해 TCP 패킷을 직접 생성한다.

 

 

3.2> FIN 스캔

 

- nmap -sF [Target IP]

- TCP Header의 제어비트를 비정상적으로 설정해서 스캔하는 방식
- 공격자는 FIN 패킷을 보내 열린 포트를 알아낸다.
- RST 패킷이 돌아온 경우 : closed라 간주
- 재전송하여도 응답이 없는 경우 : open | filtered라 간주
- ICMP 도달 불가능 오류메시지가 반환되는 경우는 filtered라 간주 

 

 

3.3> X-mas 스캔

 

- nmap -sX [Target IP]

- 공격자는 FIN, PSH, URG 패킷을 보낸다.
- RST 패킷이 돌아온 경우의 포트 상태 : closed
- 재전송하여도 응답이 없는 경우 : open | filtered

 

 

3.4> NULL 스캔

- nmap -sN [Target IP]
- 공격자가 null 패킷을 보냈을 때, RST 패킷이 돌아온 경우의 포트 상태 : closed
- 재전송하여도 응답이 없는 경우 : open | filtered
- ICMP 도달 불가능 오류메시지가 반환되는 경우 : filtered

 

4> UDP 스캔

- nmap -sU [Target IP]

- UDP 프로토콜은 TCP와 다르게 핸드쉐이킹 과정이 존재하지 않고, 따라서 일반적으로는 포트가 열려 있다고 하더라도 서버에서 아무런 응답을 하지 않을 수도 있다.

- UDP 통신은 일방향이기 때문에 신뢰성이 떨어질 수 있다.

- 공격자가 UDP 패킷을 보냈을 때, 그 결과가 열린 포트이면 아무런 응답이 오지 않으며, 닫힌 포트이면 ICMP Unreachable 메시지가 온다.

 

 

 

...더보기

출처

https://cornswrold.tistory.com/41

 

[정보보안기사] 포트스캐닝(Port Scanning)

포트스캐닝(Port Scanning) 어떤 포트가 열려 있는지 확인하는 것으로 침입 전 취약점을 분석하기 위한 사전작업 중 하나 nmap을 주로 사용 nmap [scan_type] [options] (target) scan_type 문법 -sS : TCP SYN(Ha..

cornswrold.tistory.com

https://websecurity.tistory.com/121

 

포트 스캔 TCP/TCP half-open/UDP/스텔스(Stealth) 스캔, 스캔 도구 Nmap

포트 스캔 [정의] 포트 스캔(port scan)은 운영 중인 서버에서 열려 있는 포트를 검색하는 것을 의미한다. [목적] 자신의 서버의 네트워크 서비스들을 점검하기 위해 사용하거나 해커가 해킹을 하기 위해 정보 수..

websecurity.tistory.com

https://kimhyun2017.tistory.com/208

 

33일차]Port Scanning => TCP Open Scan, Stealth Scan(Half Open Scan, XMAS, NULL, FIN), UDP Scan

NMAP?? NetworkMap(네트워크지도)의 약어로 네트워크에 연결되어있는 호스트의 정보를 파악하는 도구이다. 다음과 같은 정보를 얻을 수 있다. - 네트워크에 연결되어있는 호스트들의 IP와 OS 종류 - 서버의 열린..

kimhyun2017.tistory.com

https://isstory83.tistory.com/14

 

[네트워크] 포트스캔의 이해와 구현

포트란? 사전적 의미 - 모뎀과 컴퓨터 사이에 데이털르 주고 받을 수 있는 통로 프로그래밍에 의해 만들어진 네트워크 프로그램이 외부와 통신을 위해 약속한 통로인 소프트웨어적인 측면 포트의 필요성 - 외부와..

isstory83.tistory.com

 

'STUDY > NETWORK' 카테고리의 다른 글

ARP Redirect 실습  (0) 2019.07.18
스니핑(Sniffing)  (0) 2019.07.17
Tracert  (1) 2019.07.11
Ping  (0) 2019.07.11
UTP 케이블의 정의와 종류  (0) 2019.07.03