--min-rate : 보다 느리지 않게 패킷을 보냅니다. per second
--max-rate : 보다 빠르지 않게 패킷을 보냅니다. 초당
방화벽/IDS 회피 및 스푸핑:
-f; --mtu : 조각 패킷(선택적으로 지정된 MTU 포함)
-D : 미끼로 스캔을 숨깁니다
-S : 스푸핑 소스 주소
-e : 지정된 인터페이스 사용
-g/--source-port : 지정된 포트 번호 사용
--data-length : 전송된 패킷에 임의의 데이터를 추가합니다
--ip-options : 지정된 IP 옵션으로 패킷을 보냅니다
--ttl : IP TTL(Time-To-Live) 필드 설정
--spoof-mac : MAC 주소 스푸핑
--badsum: 가짜 TCP/UDP/SCTP 체크섬을 사용하여 패킷을 보냅니다
OUTPUT:
-oN/-oX/-oS/- oG : 일반, XML, s|
및 Grepable 형식으로 각각 지정된 파일 이름에 대한 출력 스캔입니다.
-oA : 출력 위치 세 가지 주요 형식을 한 번에
-v: 자세한 정보 수준을 높입니다(효과를 높이려면 -vv 이상 사용)
-d: 디버깅 수준을 높입니다(효과를 높이려면 -dd 이상 사용)
--reason: 포트가 특정 상태에 있는 이유를 표시
--open: 열려 있는(또는 열려 있을 수 있는) 포트만 표시
--packet-trace: 보내고 받은 모든 패킷을 표시
--iflist: 호스트 인터페이스 및 경로 인쇄(디버깅용)
--log-errors: 오류/경고를 일반 형식 출력 파일에 기록합니다
--append-output: 지정된 출력 파일을 클로버 대신 추가합니다
--resume < ;filename>: 중단된 스캔 재개
--stylesheet : XML 출력을 HTML로 변환하는 XSL 스타일시트
--webxml: 더 이식 가능한 XML을 위한 Nmap.Org의 참조 스타일시트
--no- 스타일시트: XML 출력과 XSL 스타일시트 연결 방지
MISC:
-6: IPv6 스캔 활성화
-A: OS 감지, 버전 감지, 스크립트 스캔 및 경로 추적 활성화
--datadir : 맞춤 Nmap 데이터 파일 위치 지정
--send-eth/--send-ip: 원시 이더넷 프레임 또는 IP 패킷을 사용하여 전송
--privileged: 사용자에게 완전한 권한이 있다고 가정
--unprivileged: 사용자가 가정 원시 소켓 권한이 없습니다
-V: 버전 번호 인쇄
-h: 이 도움말 요약 페이지를 인쇄합니다.
예:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/ 16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
常용 就상면标红적几个。下면是解释:
-iL <inputfilename>:从输入文件中读取主机或者IP列表作为探测目标-sn: PING扫描,但是禁止端口扫描。默认总是会扫描端口。禁用端口扫描可以加速扫描主机-n/-R: 永远不要/总是进行DNS解析,默认情况下有时会解析-PE/PP/PM:分别是基于echo/timestamp/netmask的ICMP探测报文方式。使用echo最快-sS/sT/sA/sW:TCP SYN/Connect()/ACK/Window,其中sT扫描表示TCP扫描-sU:UDP扫描-sO:IP扫描-p <port>: 指定扫描端口--min-hostgroup/max-hostgroup <size>: 对目标主机进行分组然后组之间并行扫描--min-parallelism/max-parallelism <numprobes>: 设置并行扫描的探针数量-oN/-oX/ <file>: 输出扫描结果到普通文件或XML文件中。输入到XML文件中的结果是格式化的结果-v:显示详细信息,使用-vv或者更多的v显示更详细的信息</file></numprobes></size></port></inputfilename>
1.2尝试一次扫描
nmap扫描一般会比较慢,特别是扫描不本机的时候。
[root@server2 ~]# nmap 127.0.0.1Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 13:03 CSTNmap scan report for localhost (127.0.0.1)
Host is up (0.0000010s latency).
Not shown: 998 closed ports
PORT STATE SERVICE22/tcp open ssh25/tcp open smtp
只扫描take了两个端口,但是不代表真的只开了两个端口,这样不加任何参数的nmap将自动决定扫描1000个高危端口,但哪些是高危端口由nmap决定。从结果中也能看流来,"표시되지 않음 : 998 개의 폐쇄 포트 "表示998个关闭的端口未显示出来,随后又显示了2个open端以,正好1000个。虽说默认只扫描1000个,但常见的端个,但常见的端个,但常见的端呥能扫描流来。
从虚拟机扫描win主机看看。可以感受到,扫描速島明显降低了。
[root@server2 ~]# nmap 192.168.0.122
Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 13:11 CSTNmap scan report for 192.168.0.122Host is up (1.2s latency).
Not shown: 990 closed ports
PORT STATE SERVICE21/tcp open ftp135/tcp open msrpc139/tcp open netbios-ssn443/tcp open https445/tcp open microsoft-ds514/tcp filtered shell902/tcp open iss-realsecure912/tcp open apex-mesh1583/tcp open simbaexpress5357/tcp open wsdapi
Nmap done: 1 IP address (1 host up) scanned in 8.38 seconds
可以指정"-p [1-65535]"来扫描所有端口,或者使用"-p-"选项也是전체면扫描。
[root@xuexi ~]# nmap -p- 127.0.0.1
nmap默认总是会扫描端口,可以使用-sn选项禁止扫描端口,以加速扫描主机是否存活。
1.3 扫描目标说明
Nmap支持CIDR风格的地址,Nmap将会扫描所有和该参考IP地址 具有位数的所有IP地址或主机
例如192.168.10.0/24将扫描192.168.10.0 and 192.168.10.255 之间的256台主机,192.168.10.40/24会做同样的事情。假设主机scanme.nmap.org의 IP 주소는 205.217.153.62입니다. ,scanme.nmap.org/16将扫描205.217.0.0 and 205.217.255.255 之间的65536个IP地址。互联网,最大值是/32 ,这将会扫描该主机或IP地址,因为所有主机位書固定了。
CIDR标志位很简洁但有时候不够灵活。例如也许想要扫描192.168.0.0/16,但略过任何以". 0"또는 ".255"의 IP 주소가 IP 주소로 지정되어 있으며, 因为它们平常是网段地址或广播地址.范围。例如"192.168.0-255.1-254"将略过该范围内以".0" and".255"结束的地址.范围不必限于最后的8位:"0-255.0-255.13.37"将在整个互联网范围内扫描所有以"13.37"结束的地址。
Nmap命令行接受多个主机说明,它们不必是同类型。如:
nmap www.hostname.com 192.168.0.0/8 10.0.0,1,3-7.0-255
虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:
从中读取目标说明。在命令行输入一堆主机名显得很笨拙,然而经常需要这样。例如DHCP服务器可能导出10000个当前租约列表。列表中的项可以是Nmap在命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。每一项必须以一个或多个空格、制表符或换行符分开。如果希望Nmap从标准输入读取列表,则使用"-"作为表示/dev/stdin。
1.3.1 范围扫描示例
指定一个IP地址然后加一个CIDR的掩码位,如192.168.100.22/24,当然写成192.168.100.0/24也是一样的,因为nmap需要的是参考IP 。如果扫描的是范围地址,可以192.168.100.1-254这样的书写方式。
[root@xuexi ~]# nmap 192.168.100.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 13:22 CSTNmap scan report for 192.168.100.1Host is up (0.00053s latency).
Not shown: 992 filtered ports
PORT STATE SERVICE21/tcp open ftp135/tcp open msrpc139/tcp open netbios-ssn443/tcp open https445/tcp open microsoft-ds902/tcp open iss-realsecure912/tcp open apex-mesh5357/tcp open wsdapi
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.100.2Host is up (0.000018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE53/tcp open domain
MAC Address: 00:50:56:E2:16:04 (VMware)
Nmap scan report for 192.168.100.70Host is up (0.00014s latency).
Not shown: 999 closed ports
PORT STATE SERVICE22/tcp open sshMAC Address: 00:0C:29:71:81:64 (VMware)
Nmap scan report for 192.168.100.254Host is up (0.000095s latency).
All 1000 scanned ports on 192.168.100.254 are filtered
MAC Address: 00:50:56:ED:A1:04 (VMware)
Nmap scan report for 192.168.100.62Host is up (0.0000030s latency).
Not shown: 999 closed ports
PORT STATE SERVICE22/tcp open sshNmap done: 256 IP addresses (5 hosts up) scanned in 7.96 seconds
일반적으로 모든 포트가 닫힌 것은 컴퓨터가 아니라 라우터, 가상 네트워크 카드 및 기타 장치일 수 있습니다.
1.4 포트 상태 설명
Nmap에는 점점 더 많은 기능이 있지만, 가장 유명한 것은 핵심 기능인 포트 스캐닝입니다.
Nmap은 포트를 열림(열림), 닫힘(닫힘), 필터링됨(필터링됨), 필터링되지 않음(필터링되지 않음), 열림|필터링됨(열림 또는 필터링됨) 또는 닫힘|필터링됨(닫힘 또는 필터링됨)의 6가지 상태로 나눕니다.
이러한 상태는 포트 자체의 속성은 아니지만 Nmap이 포트를 어떻게 보는지 설명합니다. 예를 들어, 동일한 대상 컴퓨터의 135/tcp 포트에 대해 동일한 네트워크에서 검색하면 해당 포트가 열려 있는 것으로 표시되지만, 네트워크 전체에서 정확히 동일한 검색을 수행하면 필터링된 것으로 표시될 수 있습니다.
1.open: (열기) 애플리케이션이 이 포트에서 TCP 또는 UDP 패킷을 수신하고 있습니다. 포트 스캔의 주요 대상인 경우가 많습니다.
2.closed: (닫기) 닫힌 포트도 Nmap에 액세스할 수 있지만(Nmap의 감지 메시지를 수락하고 응답함) 이를 수신하는 애플리케이션이 없습니다.
3.filtered: (Filtered) 대상에 패킷 필터링(예: 방화벽 장치)이 설정되어 있으므로 탐지 패킷이 포트에 도달하는 것을 차단하며 Nmap은 포트가 열려 있는지 여부를 확인할 수 없습니다. 필터링은 특수 방화벽 장치, 라우터 규칙 또는 호스트의 소프트웨어 방화벽에서 이루어질 수 있습니다.
4.unfiltered: (unfiltered) unfiltered 상태는 포트에 액세스할 수 있지만 Nmap이 포트가 열려 있는지 닫혀 있는지 확인할 수 없음을 의미합니다. 창 검색, SYN 검색, FIN 검색 등 다른 유형의 검색을 사용하여 이러한 필터링되지 않은 포트를 검색하면 포트가 열려 있는지 확인하는 데 도움이 될 수 있습니다.
5.open|filtered: (open 또는filtered): 포트가 열려 있는지 또는 필터링되었는지 확인하는 것이 불가능할 때 Nmap은 포트를 이 상태로 분류합니다. 응답하지 않는 열린 포트가 그 예입니다. 응답이 없다는 것은 대상 호스트의 패킷 필터가 프로브 패킷이나 이로 인해 발생한 응답을 폐기했음을 의미할 수도 있습니다. 따라서 Nmap은 포트가 열려 있는지 또는 필터링되었는지 확인할 수 없습니다.
6.closed|filtered: (closed 또는filtered) 이 상태는 Nmap이 포트가 닫혔는지 또는 필터링되었는지 확인할 수 없을 때 사용됩니다. IPID 유휴 검색에만 나타날 수 있습니다.
1.5 시간 매개변수 최적화
스캔 시간을 향상시키는 기술에는 다음이 포함됩니다: 중요하지 않은 탐지 무시, 최신 버전의 Nmap으로 업그레이드(문서에서는 nmap 버전이 높을수록 성능이 더 좋다고 함), 등. 또한 시간 매개변수를 최적화하면 상당한 최적화가 이루어집니다.
TIMING AND PERFORMANCE:
-T: 타이밍 템플릿 설정(높을수록 빠릅니다)
--min-hostgroup/max-hostgroup : 병렬 호스트 스캔 그룹 크기
--min-parallelism/max-parallelism : 프로브 병렬화
--min-rtt -timeout/max-rtt-timeout/initial-rtt-timeout : 프로브 왕복 시간을 지정합니다.
--max-retries : 포트 스캔 프로브 재전송 횟수를 제한합니다.
--host -timeout : 이 긴 시간이 지나면 목표를 포기합니다
--scan-delay/--max-scan-delay : 프로브 간의 지연을 조정합니다
--min-rate : 초당 보다 느리지 않게 패킷을 보냅니다
--max-rate : 초당 보다 빠르지 않게 패킷을 보냅니다
가장 중요한 것은 처음 3개입니다:
1. -T: namp에서 제공하는 스캐닝 템플릿을 직접 사용한다는 의미입니다. 다양한 템플릿이 다양한 환경에 적합합니다. 자세한 내용은 매뉴얼 문서를 참조하세요. 그러나 거의 실용적이지 않습니다. .
2.--min-hostgroup --max-hostgroup (병렬 스캐닝 그룹의 크기 조정)
Nmap에는 여러 호스트 포트를 병렬로 스캔하는 기능이 있습니다. 구현 방법은 지정된 모든 대상 IP를 공간적으로 그룹화한 다음 한 번에 한 그룹씩 검사하는 것입니다. 일반적으로 구성 요소가 클수록 효율성이 높아집니다. 그러나 그룹화의 단점은 전체 그룹 검색이 완료된 후에만 그룹 내 호스트의 검색 결과가 반환된다는 것입니다. 예를 들어, 그룹 크기가 50으로 정의된 경우 이 50개 IP 내의 결과는 처음 50개의 호스트 검색이 완료된 후에만 얻을 수 있습니다.
默认方式下,Nmap采取折衷的方法。开始扫描时的组较小,默认值为5,这样便于尽快产生结果,随后增长组的大小,默认最大为1024。但最小和最大确切的值则依赖于所给定的选项。
--max-hostgroup选项用于说明使用最大的组,Nmap不会超出这个大小。--min-hostgroup选项说明最小的组,Nmap会保持组大于这个值。如果在指定的接口上没有足够的目标主机来满足所指定的最小值,Nmap可能会采用比所指定的值小的组。
这些选项的主要用途是说明一个最小组的大小,使得整个扫描更加快速。通常选择256来扫描C类网段,对于端口数较多的扫描,超出该值没有意义,因为它只是分组了,但是cpu资源是有限的。对于端口数较少的扫描,2048或更大的组大小是有帮助的。
3.--min-parallelism ; --max-parallelism (调整探测报文的并行度,即探针数)
这些选项用于控制主机组的探测报文数量,可用于端口扫描和主机发现 。默认状态下,Nmap基于网络性能计算一个理想的并行度,这个值经常改变。如果报文被丢弃,Nmap降低速度,探测报文数量减少。随着网络性能的改善,理想的探测报文数量会缓慢增加。默认状态下,当网络不可靠时,理想的并行度值可能为1,在好的条件下,可能会增长至几百。
最常见的应用是--min-parallelism值大于1,以加快性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时也会降低Nmap基于网络条件动态控制并行度的能力。
一般说来,这个值要设置的和--min-hostgroup的值相等或大于它性能才会提升 。
1.6 扫描操作系统类型
扫描操作系统。操作系统的扫描有可能会出现误报。
C:\Windows\system32>nmap -O 127.0.0.1
Starting Nmap 7.40 ( https://nmap.org ) at 2017-03-09 13:18 CSTNmap scan report for lmlicenses.wip4.adobe.com (127.0.0.1)
Host is up (0.000046s latency).
Not shown: 990 closed ports
PORT STATE SERVICE21/tcp open ftp135/tcp open msrpc443/tcp open https445/tcp open microsoft-ds902/tcp open iss-realsecure912/tcp open apex-mesh5357/tcp open wsdapi5678/tcp open rrac10000/tcp open snet-sensor-mgmt65000/tcp open unknown
Device type: general purpose
Running: Microsoft Windows 10OS CPE: cpe:/o:microsoft:windows_10
OS details: Microsoft Windows 10 1511Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 2.33 seconds
1.7 快速扫描存活的主机
要快速扫描存活的主机,需要使用的几个重要选项是:
-n:永远不要DNS解析。这个不管是给定地址扫描还是给定网址扫描,加上它速度都会极速提升
-sn:禁止端口扫描
-PE:只根据echo回显判断主机在线,这种类型的选项使用越多,速度越慢,如-PM -PP选项都是类似的,但他们速度要慢的多的多,PE有个缺点,不能穿透防火墙
--min-hostgroup N:当IP太多时,nmap需要分组,然后并扫描,使用该选项可以指定多少个IP一组
--min-parallelism N:这个参数非常关键,为了充分利用系统和网络资源,设置好合理的探针数。一般来说,设置的越大速度越快,且和min-hostgroup的值相等或大于它性能才会提升
示例一:扫描192.168.100.0/24网段存活的机器
[root@server2 ~]# nmap -sn -n -PE --min-hostgroup 1024 --min-parallelism 1024 192.168.100.1/24Warning: You specified a highly aggressive --min-hostgroup.
Warning: Your --min-parallelism option is pretty high! This can hurt reliability.
Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 14:30 CSTNmap scan report for 192.168.100.1Host is up (0.00036s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.100.2Host is up (0.000051s latency).
MAC Address: 00:50:56:E2:16:04 (VMware)
Nmap scan report for 192.168.100.70Host is up (0.000060s latency).
MAC Address: 00:0C:29:71:81:64 (VMware)
Nmap scan report for 192.168.100.254Host is up (0.000069s latency).
MAC Address: 00:50:56:ED:A1:04 (VMware)
Nmap scan report for 192.168.100.62Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 0.26 seconds
255个局域网地址只用了半秒钟。可谓是极速。
再测试扫描下以www.baidu.com作为参考地址的地址空间。
[root@server2 ~]# nmap -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 -oX nmap_output.xml www.baidu.com/16…….省略部分结果
Nmap scan report for 163.177.81.145Host is up (0.072s latency).
Nmap done: 65536 IP addresses (144 hosts up) scanned in 19.15 seconds
可以看到,65535个地址只需19秒就扫描完成了。速度是相当的快。
1.8 快速扫描端口
既然是扫描端口,就不能使用-sn选项,也不能使用-PE,否则不会返回端口状态,只会返回哪些主机。
[root@server2 ~]# nmap -n -p 20-2000 --min-hostgroup 1024 --min-parallelism 1024 192.168.100.70/24Warning: You specified a highly aggressive --min-hostgroup.
Warning: Your --min-parallelism option is pretty high! This can hurt reliability.
Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-20 14:52 CSTNmap scan report for 192.168.100.1Host is up (0.00084s latency).
Not shown: 1980 filtered ports
PORT STATE SERVICE21/tcp open ftpMAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.100.2Host is up (0.000018s latency).
Not shown: 1980 closed ports
PORT STATE SERVICE53/tcp open domain
MAC Address: 00:50:56:E2:16:04 (VMware)
Nmap scan report for 192.168.100.70Host is up (0.000041s latency).
Not shown: 1980 closed ports
PORT STATE SERVICE22/tcp open sshMAC Address: 00:0C:29:71:81:64 (VMware)
Nmap scan report for 192.168.100.254Host is up (0.000035s latency).
All 1981 scanned ports on 192.168.100.254 are filtered
MAC Address: 00:50:56:ED:A1:04 (VMware)
Nmap scan report for 192.168.100.62Host is up (0.0000020s latency).
Not shown: 1980 closed ports
PORT STATE SERVICE22/tcp open sshNmap done: 256 IP addresses (5 hosts up) scanned in 2.38 seconds