본문 바로가기

보안/칼리 리눅스

포트를 점검해보자 nmap / ctf 풀이 영상에서의 nmap 활용

포트 (port)는 논리적인 접속 장소라는 뜻으로 운영하는 서비스들의 데이터 연결 통로의 존재이다.

어느 한 서버에 웹 서버(포트:80번) 와 이메일 서버 (포트:25번)를 동시 실행중이라고 예를 들어보자

클라이언트는 해당 서버로 웹 페이지 데이터 또는 이메일 데이터를 요청하거나 받을 텐데

서버는 클라이언트가 어떤 포트를 통해 데이터 요청하는지에 따라 데이터를 주고 받는 것이다.

 

 보통 포트들은 약속해 둔 포트번호 와 역할이 있긴 하다

번호 프로토콜 설명
80 HTTP 웹 서버 접속
443 HTTPS  보안 웹 서버 접속(SSL)
110 POP3 메일 읽기
25 SMTP 메일 서버간 메일 전송
22 SSH 컴퓨터 원격 로그인 접속
53 DNS DNS 질의
123 NTP 시간 동기화
20 FTP 데이터 전송
21 FTP FTP 제어

하지만 사용자의 설정에 따라 포트 번호는 언제든 바뀔수 있고 추가될수도 있다.

 

이런 포트들이 관리가 잘되야하는 이유는

개발자들이 열어놓은 불필요한 서비스 포트를 통해 침해사고가 일어나곤 하기 때문이다.

 

이런 포트 점검은 보통 nmap을 통해서 많이 점검을 한다

 

tcp port 점검

nmap -sT 192.168.180.149

장점 : 빠름

단점: 디테일이 떨어짐 (unkown 포트이름이라고 뜨는게 있음 )

 

서비스 버전 정보까지 확인

nmap -sV 192.168.180.149

장점: -sT 옵션에서 안나온 정보들 디테일하게 확인 가능

단점: -sT에 비하면 느림

 

특정 포트만 지정

nmap -sV 192.168.180.149 -p1-1000

80은 http 이런것처럼 저장 되어있는 포트들을 점검을 하지 모든 숫자들의 포트를 확인 하는 것이 아니기 때문에

nmap 툴 내에서 등록되지 않은 포트 번호들은 결과물로 안나올수도 있음

실제로 이런식으로 포트를 숨겨놓은 CTF 문제들도 많이 있음

해당 예시는 1에서부터 1000까지 포트 번호를 확인 하는 예시이다.

 

 

상단노출되는 포트 대표적인거

 nmap -sT 192.168.180.149 -top-port 5

 

방화벽에 따라 오탐이 뜰수도 있는 옵션  (물론 다른 옵션들도 그럴수 있음)

 

nmap 스크립트 이용 여부

nmap -A 192.168.180.149 -p21,80

버전 정보, os 정보 ( -O 옵션) , 스크립트 진단을 실시 한다. 여기서 스크립트 진단이란 해당 포트에 버전을 조사하고 그 버전에 맞는

스크립트를 실행을 시켜서 취약점 까지 조사를 하는 것이다.

 

해당 예시는 모든 포트를 검색하면 오래 걸릴것 같아서 21번80번 포트만 검색했다

 

우회 기법1

nmap -T4 192.168.180.149 -p80

보통 ips,ids 같은 방화벽은 반복적인 공격이지 않는 이상 nmap 같은 스캔이 감지가 되면 무조건 차단 하기보단

딜레이를 발생시키게 한다. 생각보다 '차단'을 하는 것은 굉장히 많은 것을 고려하고 실행을 해야기에 무조건 차단은 쉽지 않다 .

옵션을 통해 딜레이(혹은 시간차) 를 줘서 블루팀에서 눈치를 채지 못하도록 하는 것이다.

-T 옵션은 0~5까지 설정을 할 수 있다.  보통 디폴트 값은 -T3  옵션이다.

숫자가 높을수록 빠르게 우회를 한다

t2 랑 t4 의 결과물 속도가 다른것을 확인 할수 있다.

 

진행사항 확인 1

 

실제 모의해킹 환경에서는 때에 따라 결과물이 나오는데 굉장히 오래 걸릴 수 있다.

그럴 때 내가 블루팀에 의해 차단 혹은 딜레이 되는지 확인 할때 쓰는 기능이라고 볼수 있다.

 

엔터키

스캔중 엔터를 누를 때마다  퍼센테이지로 진행 사항을 알 수 있다.

 

진행사항 확인2

-dd

디버그 옵션으로 현 상황을 알수 있다

 

진행사항확인3

--packet-trace

좀더 패킷 단위에서 확인을 할수 있다

 

 

 


어느 한 CTF 풀이 문제이다 해당 영상에서 사실상 nmap 하나로 문제해결에 큰 역활을 했던  문제이다.

 

 

해당 영상에 나온 nmap 명령문들을 그대로 블로그에 적어볼까 한다

 

nmap -p- --max-retries 1 -Pn -n --open --min-rate 3000 -T4 -oA ~/agentt/recon/tcpAll 10.10.36.133

-p- --max-retries:  모든 포트를 한번씩 두들긴다

-Pn : ping scan을 하지 말 것

-n :DNS resolution 하지 말 것

--open: open 된 포트만 보여 달라

--min-rate 3000 :초당 패킷을  3000만 줘서 그보다 느리지 않도록 빨리 결과물이 나오도록 할 것 

-T4 : 우회 겸 최대한 빨리 결과물

-oA (저장 위치): 3개의 파일 형태(.nmap, .xml, .gnmap)로 명령어 결과물 저장

 

nmap -p 80 -sV -sC -Pn -n --open --min-rate 3000 -oA ~/agentt/recon/tcp80Detailed 10.10.36.133

-sV: open 된 포트의 서비스 정보와 버전 정보

-sC:  nmap에 기본 스크립트 이용

 

 

반응형