nmap에 간단한 설명
포트를 점검해보자 nmap / ctf 풀이 영상에서의 nmap 활용
포트 (port)는 논리적인 접속 장소라는 뜻으로 운영하는 서비스들의 데이터 연결 통로의 존재이다. 어느 한 서버에 웹 서버(포트:80번) 와 이메일 서버 (포트:25번)를 동시 실행중이라고 예를 들어
adm1n1.tistory.com
공유한 위에 게시물에서 nmap에 옵션중에 스크립트를 이용한 스캔이 있다는것을 알수 있다.
nmap에 자체적으로 포트 스캔뿐만이 아니라 취약점에 대한 스캔도 한다는 것이다 .
이것을 우리는 nmap NSE (nmap Script Engine) 이라고 불린다.
공유한 링크에는 -A 로 다른 옵션들과 함께 퉁 쳤지만
사실 스크립트 스캔 기능 옵션은 -sC 가 있다.해당 옵션은 --script=default 와 같은 의미로 디폴트 스크립를 실행시킨다.
그 외에는 ' --script= 스크립트 이름 ' 이런식으로 한가지 스크립트만 스캔을 할수도 있다.
그리고 오픈소스에 특성 답게 우리가 직접 스크립트를 짤 수도 있고 수정을 할수 있다.
해당 스크립트는 Lua 라는 언어로 작성되며 확장자명은 .nse이다 ( 파이썬이랑 비슷한 느낌을 가진 언어이다.)
그리고 스크립트의 위치는 /usr/share/nmap/scripts에 위치해 있다.
해당 스크립트들은 크게 4가지로 나눠진다 .
모듈 불러오기 : c 언어에서 #include< .... , 파이썬에서 import 같은 곳이다
The Head Section: 해당 스크립트의 설명문 같은 곳
The rule section : 조건들을 작성하는 곳
The action section: 조건이 맞다면 실행을 하는 곳
그러면 간단한 lua 프로그래밍을 해볼것이다
바로 nse로 사용하기 위해서 작성한 스크립트는 /usr/share/nmap/scripts에 저장을 할 것이다.
local shortport= require "shortport" local http = require "http" --the head section -- description=[[ Show test ]] categories={"safe"} -- The Rule Section -- portrule= function(host,port) return port.protocol =="tcp" and port.number==80 and port.state=="open" end --the action section -- action =function(host,port) return "hello world!!!!" end |
해당 스크립트는 스캔하는 ip에 80 포트가 있으면 hello world!!!를 출력한다.
그리고 바로 사용하는 것이 아닌 업데이트를 해줘야 한다
nmap --script-updatedb
만약에 스크립트에 버그가 나면
이런식으로 업데이트가 안되고 오류가 났음을 알려준다.
이제 --script 옵션으로 원하는 스크립트를 지정을 해서 nmap을 실행을 시킬수 있다.
그렇다면 버전 정보를 통한 취약점 분석 nse를 다운을 받아 보고 실행을 해보자
https://github.com/scipag/vulscan
GitHub - scipag/vulscan: Advanced vulnerability scanning with Nmap NSE
Advanced vulnerability scanning with Nmap NSE. Contribute to scipag/vulscan development by creating an account on GitHub.
github.com
nmap을 통해 알아낸 버전 정보를 토대로 관련 취약점을 결과로 나타내는 스크립트를 실행 해보자
먼저 스크립트를 바로 넣을 수 있도록 스크립트 저장 위치에 간 후 깃 클론으로 가져온다
-sV 옵션은 반드시 써줘야 한다
해당 실습 ip는 워낙에 취약한 웹서버라 취약점이 너무 많아서 터미널창이 모든 내용을 볼수는 없었다.
다-oA 옵션을 이용해서 실행 결과문을 저장하는 습관을 갖도록 하자..
일부나마 내용을 좀 보자면 각종 취약점 사이트에서 갖고 있는 취약점 데이터베이스들을 통합하여서
결과물들을 나타내었다.
지금까지 nmap 돌린것중 가장 오래 걸렸던 결과물인것 같다..
'보안 > 칼리 리눅스' 카테고리의 다른 글
자동 취약점 분석 Nikto 와 tomcat 실습 (0) | 2023.10.25 |
---|---|
Nessus 와 Metasploitable로 실습! / VNC 인증 정보 디폴트 취약점 (0) | 2023.10.22 |
포트를 점검해보자 nmap / ctf 풀이 영상에서의 nmap 활용 (0) | 2023.09.19 |
다양한 버전의 언어들로 구성된 툴을 사용할땐 가상환경을 만들어 사용하자 - virtualenv (0) | 2023.09.05 |
웹사이트 crawl러 httrack (0) | 2023.09.02 |