본문 바로가기
Hack/WebHack

2. nmap_2(NSE)

by Choraengyi 2017. 1. 31.
728x90

#명령어 사용 및 연습시 확실히 허가된 테스트 환경에서 진행해야 하고, 허가받지 않은 곳에서 하여 피해 발생시 온전히 자신의 책임입니다. 


 

NSE 는 Nmap Scripting Engine 의 약자로서, nmap 을 제대로 활용할 수 있는 훌륭한 기능입니다.

 

Lua 프로그래밍 언어로 이루어진 스크립트를 사용하여 미리만들어진 스크립트를 사용하거나, 사용자가 정의 하여서 사용할 수 가 있는데 Lua 프로그래밍 언어에 대한 메뉴얼은 아래 URL을 참고하면 됩니다.

 

http://www.lua.org/manual/5.2/

 

 미리 공식화 되어 명시되어있는 스크립트는 사용해도 무방하지만, 3자가 만든 신뢰할 수 없는 스크립트를 실행하면 큰 피해를 입을 수 가 있습니다.

 

 NSE 는

 

Network discovery

도메인을 기반으로 네트워크 정보 발견

 

More sophisticated version detection

기존 수천개의 서로 다른 서비스를 인식할 수 있는 nmap 버전 탐지 시스템이 까다로워 하거나, 발견하지 못하는 것들을 가능하게 하는 정교한 버전 탐지

 

Vulnerability detection

취약점을 발견하는 것은 매우 중요, 취약점 탐지를 가능하게 하는 많은 스크립트 들이 이미 작성되어 있기 때문에 취약점 탐지에 용이

 

Backdoor detection

기존 nmap 에서도 백도어나 웜을 감지할 수 있지만 NSE는 더 복잡한 백도어와 웜을 감지

 

Vulnerability exploitation

취약점 발견 뿐만아니라 취약점 공격도 가능_ 침투 테스트

 

 

NSE Script Categories

 

스크립트의 유용한 사용을 위하여 카테고리가 지정되어 있습니다.

 

auth

타겟에서 인증 자격 증명 또는 인증 자격 우회를 처리하게 됩니다.

 

broadcast

로컬 네트워크에서 브로드캐스팅 결과로 나오지 않은 호스트를 탐색합니다.

 

brute

무차별 대입 공격을해 원격 서버의 인증 자격 증명을 추측합니다.

 

discovery

public registries, SNMP-enabled device, directory service 와 같은 것을 쿼리하여 네트워크에 대한 더많은 것을 탐색합니다.

 

dos

dos 공격에 대한 취약성 테스트를 위해 수행되는 카테고리입니다.

 

exploit

취약점을 exploit 하는 것을 목표로 합니다.

 

external

third-party database 또는 other network resource 로 데이터를 보낼 수 있습니다.

 

fuzzer

패킷의 예기치 못하거나 랜덤한 필드를 서버소프트웨어로 보냅니다. 소프트웨어의 취약점과 미발견 버그를 찾는데 유용합니다. 느린프로세스와 대역폭으 많이 사용합니다.(ex. DNS서버에 폭격을 가하는 dns-fuzz)

 

intrusive

타겟을 손상시키거나 타겟의 중요 자원 사용 등의 위험요소가 많은 카테고리 입니다.

 

malware

타겟 플랫폼이 malware 또는 backdoor 에 감염 되었는지 테스트 하는 카테고리 입니다.

 

safe

서비스 중단, 네트워크 대역폭이나 다른 리소스의 다량 사용, 보안 취약점 exploit 등을 하지 않는 카테고리입니다. 단어 그대로 안전하게 네트워크 탐색을 수행합니다.( 완전히 안전하다고는 볼 수 없음)

 

version

-sV 가 요청된 경우에만 실행되며, 버전감지의 확장으로 보면 됩니다.

 

vuln

알려진 취약점을 체크하고, 찾은 결과만을 보고합니다.

 

default

-sC 와 같으며 기본값으로 보면 됩니다. default 의 고려 요소를 보겠습니다.

 

Speed - 신속하게 완료되어야 합니다.

Usefulness - 유용한 정보를 만들어야 합니다.

Verbosity - 다양하고 읽기쉽고 간결해야 합니다.

Reliability - 신뢰할 수 있어야 합니다.

Intrusiveness - default 는 비교적 안전함에 속하지만, 기본적 intrusive 스크립트는 허용합니다.

Privacy - 개인 정보에 대한 침해가 최대한 이루어지지 않도록 해야합니다

 

 

 

 -sC

이 옵션을 사용하여 기본 스크립트를 실행할 수 있습니다. --script=default 와 같으며, intrusive 카테고리는 충분한 권한을 가진 네트워크에서 사용해야 합니다.

 

     nmap -sC example.com

default 카테고리의 스크립트를 사용하여 스캔합니다.

 

 --script

옵션뒤에 스크립트 파일이름, 카테고리, 디렉터리 등의 표현을 써서 조건에 맞는 스크립트를 실행합니다. and, or 연산자를 사용해 다양한 조건의 스크립트도 실행이 가능합니다. all 로 쓰게 되면 nmap 스크립트에 있는 모든 스크립트가 실행됩니다. 물론 충분히 허가된 테스터 환경에서 사용해야 합니다.

 

     몇가지 살펴 보겠습니다.

 

     nmap --script "http-*"

http- 로 시작하는 스크립트를 로드하게 됩니다.

 

nmap --script "not intrusive"

intrusive 를 제외한 카테고리의 스크립트를 로드하게 됩니다.

 

     nmap --script "default or safe"

default 또는 safe 카테고리를 로드합니다.

 

     nmap --script "default and safe"

default 와 safe 카테고리를 로드합니다.

 

     nmap --script "(default or safe or intrusive) and not http-*"

default 또는 safe 또는 intrusive 카테고리를 로드하는데 http- 로 시작하는 스크립트는 제외합니다.

 

     nmap --script-trace

스크립트 추적이 가능한 --packet-trace 의 기능을 합니다.

 

     nmap --script-updatedb

script, scriptdb 를 업데이트하여 사용할 수 있는 스크립트를 업데이트 합니다.

 

 

 

스크립트 파일은 .nse 확장자이기 때문에 위치를 찾고 싶으면 간단히 find 명령을 써서 찾으면 됩니다.

 

또한 --script-args 옵션으로 NSE 스크립트에 인수를 전달하여 사용가능합니다.(--script-args-file 을 사용하여 파일이름 지정) nmap.registry.args 테이블로 제공됩니다.

 

, 로 구분하고 user=cho 식으로 인수를 넣으면 됩니다. 쌍따옴표를 사용해 user=",cho;}{}," 이렇게 할 수 도있습니다. 그러면 쌍따옴표 안의 내용은 user의 내용이 됩니다.

 

{} 를 사용하여 테이블을 넣을 수도 있습니다.

 

 예시입니다. 예시는 (https://nmap.org/book/nse-usage.html#nse-categories) 에서 그대로 가져왔습니다.

 

nmap -sC --script-args 'user=foo,pass=",{}=bar",whois={whodb=nofollow+ripe},xmpp-info.server_name=localhost'

 

nmap.registry.args 를 살펴보게 되면,

nmap.registry.args = {
	user = "foo",
	pass = ",{}=bar",
	whois = {
		whodb = "nofollow+ripe"
	},
	xmpp-info.server_name="localhost"
}

 

 

 

NSE의 스크립트나 각 스크립트의 인수에 대한 정보는 아래의 URL에 나와있습니다.

 

https://nmap.org/nsedoc/

 

 

 

Reference

https://linux.die.net/man/1/nmap

https://nmap.org/book/nse.html#nse-ex1

https://nmap.org/book/nse-usage.html#nse-categories

728x90
반응형

'Hack > WebHack' 카테고리의 다른 글

4. Nessus  (0) 2017.02.04
3. Robots.txt  (0) 2017.02.01
1. nmap_1  (0) 2017.01.30
0. DVWA 설치  (0) 2017.01.26

댓글