[해킹툴] Nmap - 대표적인 포트 스캐닝 툴
Nmap
Nmap은 대표적인 오픈소스 포스 스캐닝 툴이다. 사용자는 Nmap을 사용해서 네트워크 탐색을 진행하고 네트워크에 존재하는 호스트들의 포트에 대한 정보를 수집할 수 있다.
정보보안이나 해킹에 관심 있다면 꼭 알아둬야 하는 툴이다.
공격을 하고 싶어도 공격 대상을 모르면 허공에 삽질하는거랑 다름없다
Nmap의 기능
Nmap을 사용하면 네트워크의 호스트를 발견하고 호스트에 대한 포트 스캐닝을 진행할 수 있다. Nmap은 다양한 포트 스캐닝 기법을 지원하고 사용자가 간단하고 세세하게 포트 스캐닝을 상황에 맞춰 조절할 수 있다. 또한, Nmap이 추가적으로 제공하는 스크립트를 이용하면 포트에서 돌아가는 서버, 서비스, 프로토콜에 대한 추가적인 정보를 수집하고 취약점을 발견, 공략할 수 있다.
명령어
┌─[solo@parrot]─[~/Desktop/blog/nmap]
└──╼ $nmap -h | less
Nmap 7.94SVN ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
nmap 명령어 작성법:
nmap <스캐닝 타입> <옵션> <목표 IP>
알아두면 좋은 매개변수:
-s: 포트 스캐닝 종류를 지정하는 옵션
-p: 포트를 지정하는 옵션
-o: nmap 결과 저장 방식을 설정하는 옵션
-T: 포트 스캐닝 속도를 조절하는 옵션
포트 스캐닝
SYN 스캐닝
nmap -sS -p- -oN 10.129.230.176
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5985/tcp open wsman
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown
TCP 포트를 스캐닝할 때 제일 많이 사용되는 명령어다. 지정된 포트들에 SYN 패킷을 전송해서 스캐닝을 진행한다. 어느 TCP 포트가 열려있는지, 해당 포트에서 무슨 서비스가 돌아가는지 대략적으로 보여준다. (단, 무슨 서비스가 돌아가는지 확인하는건 서비스 스캐닝보다 정확도가 낮다.)
-sS = SYN 스캐닝
-p- = 0 ~ 65535 포트 스캔 (사실상 모든 포트를 스캔하라는 옵션)
-oN = Nmap 결과를 텍스트 형식으로 저장
UDP 스캐닝
nmap -sU -p 53,69,161,162 -T4 -oX UDP_SCAN 10.10.11.136
PORT STATE SERVICE
161/udp open snmp
UDP 포트들을 스캐닝할 때 대표적으로 사용되는 명령어다. 지정된 포트들에 UDP 패킷을 전송해서 포트 스캐닝을 진행한다. UDP 포트가 열려 있는지, 무슨 서비스가 돌아가는지 대략적으로 확인할 수 있다.
-sU = UDP 스캐닝
-p 53,69,161,162 = 53,69,161,162 포트 스캔
-T4 = 스캐닝 속도 4로 설정 (T1 ~T5까지 지정 가능)
-oX = 결과 XML 형식으로 저장
서비스 스캐닝
nmap -sC -sV -p 22,80 -oN SERVICE_SCAN 10.10.10.242
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 be:54:9c:a3:67:c3:15:c3:64:71:7f:6a:53:4a:4c:21 (RSA)
| 256 bf:8a:3f:d4:06:e9:2e:87:4e:c9:7e:ab:22:0e:c0:ee (ECDSA)
|_ 256 1a:de:a1:cc:37:ce:53:bb:1b:fb:2b:0b:ad:b3:f6:84 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Emergent Medical Idea
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
포트에서 돌아가는 서비스에 대한 정보를 수집할 수 있는 스캐닝 기법이다. 사실상 앞서 설명한 SYN, UDP 스캔은 서비스 스캐닝을 하기 전에 오픈된 포트들만 필터링하는 과정이다. 해당 결과를 보면 SSH의 버전, SSH가 사용하는 공개키와 HTTP 서버의 종류, HTTP 서버의 버전, 그리고 사용자에게 도움이 될만한 HTTP 헤더들을 보여주고 있다.
위에서 설명한 Nmap 포트 스캐닝은 아주 기본적인 포트 스캐닝 기법들이지만 동시에 제일 많이 사용하게 될 포트 스캐닝 기법들이기도 하다. 이렇게 기본적인 포트 스캐닝에 익숙해지면 --script 옵션으로 Nmap에서 제공하는 스크립트를 활용하거나 -D 옵션을 사용해 사용자 추적을 어렵게 만드는 Decoy 스캔을 수행할 수도 있다. Nmap은 정보보안이나 해킹에 관심이 있다면 꼭 기본적으로 알아야 되는 툴이기 때문에 Nmap에 꼭 익숙해지도록 하자. 정보보안, 해킹의 국영수라고 생각하면 된다
TIP
당신이 윈도우 사용자라면 Nmap이 제대로 돌아가지 않아서 욕이 나올수도 있다. 윈도우는 사용자가 네트워크 패킷을 조작할 수 없도록 제한을 둔다. 그래서 다른 운영체제의 Nmap에 비해서 아주 제한적인 포트 스캐닝만 가능하다. 만약 Nmap을 사용해 포트 스캐닝을 하고 싶다면 리눅스 가상머신을 활용하거나 그냥 스트레스 받지 말고 리눅스를 사용하도록 하자.
포트 스캐닝이란?
https://solo-infosec.tistory.com/3
포트 스캐닝 - 목표 설정을 위한 해킹의 첫 단계
해킹을 하기 전엔 무엇을 먼저 해야될까?당연히 해킹을 하기 위해선 해킹해야 될 대상이 무엇인지 파악해야 된다. 자신의 목표가 무엇인지도 모른채 해킹을 하는건 마치 장님이 지팡이 없이 목
solo-infosec.tistory.com