본문 바로가기
웹 모의해킹/정보 수집

Nmap NSE

by Nighthom 2023. 1. 16.

목차

    1. 개요

    Nmap NSE(Nmap Script Engine) Nmap으로 포트스캔을 해서 얻은 열린 포트들을 대상으로 실행되는 스크립트를 의미한다.

     

    프로그래밍 언어는 Lua를 사용하고 있고, https://nmap.org/nsedoc/lib/nmap.html에서 무슨 라이브러리들이 존재하는지 알아볼 수 있다. 

    2. Nmap NSE의 구성

    Nmap NSE는 다음과 같은 구성요소를 가진다.

    구성 설명
    description 현재 소스 코드에 대한 설명
    author 제작자
    license 라이선스 정보
    categories 현재 소스코드가 어떤 카테고리인지에 대한 정보. vulns, safe, discovery 등등... 여러 카테고리를 이용할 수 있다
    portrule action에 해당하는 함수가 실행될 조건을 지정한다. (필수)
    action 실제 실행될 함수. portrule에 해당하는 포트를 대상으로 스크립트를 실행한다. 해당 함수의 반환 값은 Nmap 스캔 결과에 출력된다. (필수)

     

    3. Hello World!

    다음의 간단한 소스 코드로, NSE가 어떤 구성요소를 가지고 어떤 방식으로 동작하는지에 대해서 알아보자.

    그림 1 Nmap NSE Hello World 코드

    portrule에 정의된 함수를 토대로 해당 host/port의 정보를 필터링할 수 있다. 해당 함수의 값이 True가 되면 action 함수를 실행하고, 그렇지 않다면 action함수를 실행하지 않는 간단한 방식으로 동작한다.

     

    이 프로그램에서는 해당 portprotocolTCP이고, 80번 포트이고, stateopen이면 action 함수를 실행한다. 해당 함수의 반환 값은 Nmap의 결과값에 출력한다.

    그림 2 nmap NSE 실행 결과

    action 함수의 반환 값이 portrule 함수의 조건에 해당하는 포트 아래에 출력되는 것을 볼 수 있다.

    '웹 모의해킹 > 정보 수집' 카테고리의 다른 글

    Nmap 관련 정리  (0) 2023.01.16
    쇼단(Shodan)을 활용한 정보 수집  (0) 2023.01.16
    구글을 활용한 OSINT 정보 수집  (0) 2023.01.16
    도메인 정보 수집  (0) 2023.01.15

    댓글