16 분 소요

주의 !!


해당 게시물은 공부를 하기 위해 작성된 글입니다.

아래 내용을 악의적으로 이용할 시 법적으로 처벌 받을 수 있습니다.

보안은 윤리의식도 매우 중요하답니다. 사용하기 전에 한번 더 생각 해보세요!

[2] 스캐닝 (Scanning)


  • 허가받지 않은 곳에 스캐닝을 하면 정보통신망법 위반
  • 사전 공격으로 간주 : 본격적인 공격에 앞서 준비하는 과정이라 간주
  • 취약점 분석 전문업체(라이센스가 있어야 함, 대표자의 자격 검증도 필요) 등이 ‘계약서’를 문서화 하고 점검하는 경우만 허용

1) IP Scanning

  • ip 주소 대역 중에 켜져있는 시스템을 파악하기 위함
ARP를 이용한 방법 (같은 네트워크인 경우)
$ kali : sudo nmap -sn 192.168.5.0/24
Ping을 이용하는 방법
$ kali : sudo nmap -sP 192.168.5.0/24
$ kali : sudo nmap -sP 192.168.5.100-140

2) Port Scanning

Version scan
  • 해당 포트에 열려 있는 프로토콜의 버전을 확인하는 port 스캔 (보안이 취약한 프로토콜의 정보를 습득할 때 사용)
$ kali : sudo nmap -sV 192.168.5.129
OS scan
  • 대상 PC의 OS를 파악하기 위한 스캔, 여러 방법을 통해 OS를 유추함.
$ kali : sudo nmap -O 192.168.5.129
All scan
  • 싹 다 스캔(version, os …)
$ kali : sudo nmap -A 192.168.5.129
# -T4 옵션은 제한 시간을 거는 옵션, 적당히 빠르고 적당히 정확하게 스캔
$ kali : sudo nmap -A -T4 192.168.5.129
TCP scan
  • 3 way handshaking –> target host에 로그가 남음
$ kali : sudo nmap -sT 192.168.5.129
# 특정 포트만 보려면 -p 옵션
$ kali : sudo nmap -sT 192.168.5.129 -p 22

  • 열려 있는 포트
  • S : SYN, D : SYN+ACK, S : ACK, S : RST

  • 닫혀 있는 포트
  • S : SYN, D : RST + ACK,

Stealth scan
$ kali : sudo nmap -sS 192.168.5.129
  • 3 way handshaking –> ACK를 보내지 않음 ACK 대신 RST를 보낸다

  • S : SYN, D : SYN + ACK, S : RST

  • S : SYN, D : RST + ACK

FIN scan
  • SYN 대신 FIN을 보내서 스캐닝하는 방법
  • 연결이 안되어 있는데 FIN을 보내면 열린 포트는 응답이 없음, 닫힌 포트는 RST를 보냄 —> 열린 포트와 닫힌 포트 구분 가능
$ kali : sudo nmap -sF 192.168.5.129

  • 열려있을때 : 응답 없음
  • S : FIN, D : 응답 없음

  • 닫혀있을때 ACK/RST
  • S : FIN, D: ACK / RST

NULL scan
  • TCP flags를 모두 0으로 만들어서 보냄
  • TCP 로직에 맞지 않기 때문에 FIN scan과 동일한 결과를 받을 수 있음
$ kali : sudo nmap -sN 192.168.5.129

  • 열려있을때 : 응답 없음
  • S : [none], D : 응답 없음

  • 닫혀있을때 ACK/RST
  • S : , D: ACK / RST

X-mas scan
  • TCP flags를 모두 1로 만들어서 보냄
  • TCP 로직에 맞지 않기 때문에 NULL scan과 동일한 결과를 받을 수 있음

  • 0x029 = 0000 0010 1001 => 32 + 9 => 29 (16진수는 4비트씩 끊어읽기 편함)
  • 열려있을때 : 응답없음
  • S : <FIN, PSH, URG>, D : 응답 없음

  • 닫혀있을 때 ACK/RST
  • S : <FIN, PSH, URG>, D: ACK / RST

  • 결과는 모두 같지만 안될 때 하나씩 넣어 보기 위해 구분되어 있음
  • 방화벽 유무 탐지 가능 (닫힌 포트에서도 응답이 없다는 것은 방화벽이 RST를 버리기 때문)
  • 열린 포트는 응답이 없고, 닫힌 포트는 ACK / RST로 응답
  • 방화벽을 탐지하기 위한 목적으로 사용한다. ( 방화벽이 있다면 닫힌 포트도 응답이 없음 why? 방화벽이 RST 를 버리기 때문)

댓글남기기