http://nmap.org/docs.html
主机发现(Host Discovery)
用于发现目标主机是否处于活动状态(Active)。
Nmap提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。
端口扫描(Port Scanning)
用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放|过滤(Open|Filtered)、关闭|过滤(Closed|Filtered)。默认情况下,Nmap会扫描1000个常用的端口,可以覆盖大多数基本应用情况。
版本侦测(Version Detection)
用于识别端口上运行的应用程序与程序版本。
Nmap目前可以识别数千种中应用的签名(Signatures),检测数百种应用协议。而对与不识别的应用,Nmap默认会将应用的指纹(Fingerprint)打印出来,如果用于确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。
操作系统侦测(OS detection)
用于识别目标机的操作系统类型、版本编号及设备类型。
Nmap目前提供了上千种操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。
防火墙/IDS规避(Firewall/IDS evasion)
Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标机的状况。
基本的规避方式包括:分片(Fragment)/IP诱骗(IP decoys)/IP伪装(IP spoofing)/MAC地址伪装(MAC spoofing)等等。
NSE脚本引擎(Nmap Scripting Engine)
NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测、操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现、漏洞利用等等。Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。
-sS TCP SYN 扫描 (又称半开放,或隐身扫描)
-P0/-Pn 绝大多数主机都拒绝ICMP,不加这个参数无法扫描
-sV 打开系统版本检测
-O 尝试识别远程操作系统
-sT (TCP connect()扫描)当SYN扫描不能用时
-p 指定端口(Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9)
-oG (Grep输出)
-sP 该选项告诉nmap仅仅进行ping扫描(主机发现),然后打印出对扫描做出响应的那些主机。
-T 设置时间模版 如:-T4 针对TCP端口禁止动态扫描延迟超过10ms,-T5对应值为5ms。
-D 使用诱饵隐蔽扫描 为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。
-sL 列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。
-R (为所有目标解析域名)告诉nmap永远对目标ip地址作反向域名解析。一般只有当发现机器正在允许时才进行这项操作。
-F (快速(有限的端口)扫描)
-vv 让你明白扫描的详细过程,如果发现哪些过程是你不需要的,可以马上调整
-n 在大范围扫描地址时侯没有用这个参数导致nmap异常慢,半天卡到那我却不知道为什么,结果加-vv参数发现,原来是把每个ip都dns解析一遍,加-n就可以不解析dns了
--script=showSMTPVersion.nse nmap加入了脚本扫描引擎,可以扫描网站目录还有远程溢出和弱口令等
-iL c:\xx.txt 读取c:\xx.txt的主机列表文件的ip
-oN c:\Vulnerable.txt 将探测结果保存在c:\Vulnerable.txt
-oX 以xml形式输出
-A 同时打开操作系统指纹和版本检测
-v 详细输出扫描情况.
--mtu
--send-eth
--data-length
--source-port
--randomize-host
-f
1) 获取远程主机的系统类型及开放端口
nmap -sS -P0 -sV -O <target>
这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网
2) 列出开放了指定端口的主机列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
3) 在网络寻找所有在线主机
nmap -sP 192.168.0.*
或者也可用以下命令:
nmap -sP 192.168.0.0/24
指定 subnet
4) Ping 指定范围内的 IP 地址
nmap -sP 192.168.1.100-254
5) 在某段子网上查找未占用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp
6) 在局域网上扫找 Conficker 蠕虫病毒
nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.0.1-254
7) 扫描网络上的恶意接入点 (rogue APs).
nmap -A -p1-85,113,443,8080-8100 -T4 --min-hostgroup 50 --max-rtt-timeout 2000 --initial-rtt-timeout 300 --max-retries 3 --host-timeout 20m --max-scan-delay 1000 -oA wapscan 10.0.0.0/8
8 ) 使用诱饵扫描方法来扫描主机端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2
9) 为一个子网列出反向 DNS 记录
nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2") no PTR";else print$3" is "$2}' | grep '('
10) 显示网络上共有多少台 Linux 及 Win 设备?
sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) device"
首先扫描存活的主机,然后使用cut命令只取ip到一个文件,在扫描该文件中的ip。
nmap -sP 192.168.8.1-254 -oN /root/Desktop/test.log
cat test.log | grep for | cut -d ' ' -f5 > test2.log
nmap -sS -iL test2.log
TCP空闲扫描
msf > use auxiliary/scanner/ip/ipidseq
msf > set RHOST 192.168.7.0/24
msf > set THREADS 80
msf > run
nmap -sS -sI 空闲IP 目标IP
############防火墙/IDS规避(Firewall/IDS evasion)
nmap -sS -v -f --mtu 32 --send-eth --data-length 50 --source-port 99 --randomize-host -T 5 192.168.1.1/24
############NSE脚本引擎(Nmap Scripting Engine)
nmap --script=smb-enum-users 192.168.80.129
nmap --script=smb-brute 192.168.80.129
nmap --script=smb-pwdump --script-args=smbuser=epp,smbpass=password 192.168.80.129
nmap --script=smb-brute --script-args=userdb=usernames.txt,passdb=password.txt 192.168.80.1/24
nmap --script=smb-enum-shares 192.168.80.129
nmap --script=smb-check-vulns 192.168.80.129
smb-pwdump.nse 使用(bt5):
root@bt:~# wget http://swamp.foofus.net/fizzgig/pwdump/pwdump6-1.7.2-exe-only.tar.bz2
root@bt:~# tar -jxvf pwdump6-1.7.2-exe-only.tar.bz2 -C /usr/local/share/nmap/nselib/data
root@bt:/usr/local/share/nmap/scripts# wget https://svn.nmap.org/nmap-exp/dev/nmap/scripts/smb-pwdump.nse
root@bt:~# nmap --script=smb-pwdump.nse --script-args=smbuser=test,smbpass=123456 192.168.1.108 -p 135,445,139
nmap -p445 --script=smb-pwdump --script-args=smbuser=ron,smbpass=iagotest2k3,rtable=/tmp/alpha/*.rt <host>
Perhaps
nmap --proxy ftp://anonymous@ftphost -PK -sK