처음 만나는 클라우드 보안

스캐닝(Scanning) IP 스캔과 Port스캔 본문

정보보안

스캐닝(Scanning) IP 스캔과 Port스캔

영민하게 2022. 4. 29. 20:47
반응형

1. IP 스캔 - 컴퓨터 가용 여부 확인 (ex. ARP, Ping) 

2. Port 스캔 - 접근 가능 포트 확인

 

스캐닝(Scanning)

정보수집 단계에서 서비스를 제공하는 서버의 작동 여부와 (IP스캔) 제공하고 있는 서비스를 확인(Port스캔)하는 과정을 말한다. 허가 받지 않은 곳에 스캐닝은 사전 공격으로 간주 되어 정보통신망법에 위배된다. 취약점 분석 전문업체 등이 '계약서'를 통해 문서화 하고 점검하는 경우만 허용됨을 유의해야 한다.

 

1. IP 스캔

: IP주소 대역 중 켜져 있는 시스템을 파악하는 과정 // 네트워크 검색과 보안 진단에 사용되는 'nmap' 유틸리티를 사용

 

  1) ARP(Address Resolution Protocol) 이용하는 방법

 

   $ sudo nmap -sn 192.168.5.0/24 

IP주소들에 하나하나 ARP를 전송한다
현재 켜져있는 IP주소 확인이 가능하다.

2) Ping을 이용하는 방법

$ sudo nmap -sP 192.168.5.130

$ sudo nmap -sP 192.168.5.100-140 

// 범위를 지정할 때 하이픈 사용

지정된 100번부터 140번까지 ARP를 보낸다
열려있는 130번을 발견한다.
Wireshark에서 보이는 결과

 


2. TCP 포트스캔(Port scanning)

: 시스템에 열려있는 포트를 찾기 위하여 공격자는 공격대상 포트에 순차적으로 SYN패킷을 보낸다.이때 공격 대상의 반환 패킷에 따라 포트가 열려있는지, 닫혀 있는지 판별한다.

 

 1) TCP scan (Open Sacn)

$ sudo nmap -sT 192.168.5.130

완전한 3-way-Handshaking 스캐닝 기법으로, 공격 대상으로부터 ACK를 수신 받으면 포트는 열려있다. 반대로, RST/ACK가 수신되면 포트는 닫혀있다. 정확도는 높지만 공격대상에 공격자가 ACK를 보낸 로그가 남게 된다. (많이 쓰이지는 않는다.)

SYN/ACK을 보낸 패킷은 열려있음을 의미한다.

 

2) Stealth scan (Half Open Scan)

$sudo nmap -sS 192.168.5.130

3-way-Handshaking 과정에서 공격 대상으로 부터 SYN/ACK를 수신하면, 바로 RTS를 패킷을 전송하여 즉시 연결을 해제 한다. 로그가 남지 않는다. 

Open Scan과 다르게 ACK를 전송하지 않았다.
그 중 6667번이 SYN/ACK를 보내자 바로 RST로 연결을 종료시킨다.
6667번도 열린 포트로 판별됬다.

3)Version scan

$sudo nmap -sV 192.168.5.130

버전 정보를 알 수 있어 이를 통해 취약점 파악이 가능하다.

 

80에게 보낸다.
버전이 명시되어 있다.

 

4) OS Scan

$sudo nmap -O 192.168.5.130

Window는 135번, 139번, 445번 포트를 통해 파일 및 폴더를 공유하기 때문에 열린 포트들이다. Linux의 경우, PRC Blind로 111번 포트가 열린포트이다. OS Scan에선 Ping도 보내고, NTP(Nextwork TIme Protocol)등 다양한 프로토콜을 이용해서 운영체제의 정보를 알 수 있다.

공격대상 서버는 리눅스 2.6.9

5) All sacn

$ sudo nmap -A 192.168.5.130

OS scan + Version + Script = All scan

운영체제, 버전 그리고 스크립트까지 모두 읽어 시간 소요가 길다. -T4를 옵션을 추가하면 조금 빨라질 수 있다. (-T:Timer, 뒤에 숫자가 클수록 빨라진다. 0~6, 너무 빠르면 누락 발생)

All Scan 구동 모습

6) FIN scan : 000001

$ sudo nmap -sF 192.168.5.130

SYN대신 FIN패킷을 보내서 스캐닝하는 방법이다. 비정상 포트 수신이기 때문에, 미연결 상태에서 FIN을 보내면 열린 포트에선 응답이 없고, 닫힌 포트만 RST를 보냄다. => 포트 구분이 가능

 

공격자는 FIN패킷만 보낸다
21번 포트는 열려있기에 응답(RTS)가 없다.

 

7) Null scan : 000000

$ sudo nmap -sN 192.168.5.130

공격자는 TCP flag를 모두 0으로 만들어서 보낸다. TCP/IP로직에 맞지 않기 때문에 NULL을 보내면 열린 포트에선 응답이 없고, 닫힌 포트에선 RST를 보냄다. => 포트 구분 가능

공격자는 NULL 패킷을 보낸다.
FIN scan과 마찬가지로 열린 포트 21번에선 RTS응답이 없다.

 

8) X-mas scan: 111111

$ sudo nmap -sX 192.168.5.130

공격자는 TCP flag를 모두 1로 만들어서 보낸다. 당연히 TCP/IP로직에 맞지 않기 때문에, 마찬가지로 열린 포트에선 응답이 없고, 닫힌 포트에선 RST를 보냄다. => 포트 구분 가능 (=> 방화벽을 탐지하기 위한 목적으로도 사용된다.)

 

공격자는 XMAS패킷 (FIN, USG, Flag 설정) 전송
닫힌포트에선 RTS/ACK를 보낸다.

 

 

반응형
Comments