在nmap中,除了最基本的端口扫描之外,还有很多很好玩的用法。记录些不常用但一定要熟知的命令。
基于icmp的扫描
nmap -sP 192.168.123.173
对目标半开放式端口扫描不想在留下日志记录。
nmap -sS -p 22 80 3306 192.168.123.173
审计相关
iis短文件名泄露(适用于Windows服务器)
nmap -p 80 --script http-iis-short-name-brute 192.168.123.173
Memcached未授权访问漏洞
nmap -sV -p 1121 -script memcached-info 192.168.123.173
mongodb未授权访问
nmap -p 27017 --script mongodb-info 192.168.123.173
redis未授权访问
nmap -p 6370 --script redis-info 192.168.123.173
弱口令 DDOS相关
没错,nmap可以进行Ddos。
nmap --script http-slowloris --max-parallelism 400 blog.bbskali.cn
ftp弱口令暴力破解
nmap --script ftp-brute --script-args brute.emptypass=true,ftp-brute.timeout=30,userdb=/root/zi.txt,brute.useraspass=true,passdb=/root/passwords.txt,brute.threads=3,brute.delay=6 192.168.123.173
mysql匿名访问
nmap --script mysql-empty-password 192.168.123.173
验证ssl-cert证书问题
nmap -v -v --script ssl-cert blog.bbskali.cn
验证SSL证书的有限期
nmap -Pn --script ssl-date blog.bbskali.cn
暴力破解telnet
nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst --script-args telnet-brute.timeout=8s 192.168.123.173
精准地确认端口上运行的服务
nmap -sV --script unusual-port 192.168.123.173
收集VNC信息
nmap --script vnc-info 192.168.123.173
暴力破解VNC
nmap --script vnc-brute --script-args brute.guesses=6,brute.emptypass=true,userdb=/root/zi.txt,brute.useraspass=true,passdb=/root/zi.txt,brute.retries=3,brute.threads=2,brute.delay=3 192.168.123.173
脚本引擎功能(Nmap Scripting Engine,NSE)
最后但是同样重要的,Nmap本身已经很强大了,但是加上它的脚本引擎更加开挂了,NSE 可使用户的各种网络检査工作更为自动化,有助于识别应 用程序中新发现的漏洞、检测程序版本等Nmap原本不具有的功能。虽然Nmap软件包具有各 种功能的脚本,但是为了满足用户的特定需求,它还支持用户撰写自定义脚本。
auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。
default:启用--sC 或者-A 选项时运行此类脚本。这类脚本同时具有下述特点:执行速度快;输出的信息有指导下一步操作的价值;输出信息内容丰富、形式简洁;必须可靠;不会侵入目标系统;能泄露信息给第三方。
discovery:该类脚本用于探索网络。
dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。
exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取 被测单位的行动许可。
external:该类脚本可能泄露信息给第三方。
fuzzer:该类脚本用于对目标系统进行模糊测试。
instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。
malware:该类脚本检査目标系统上是否存在恶意软件或后门。
safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。
version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检 测。
vuln:该类脚本可检测检査目标系统上的安全漏洞。
在Kali Linux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。
-sC 或--script=default:启动默认类NSE 脚本。
--script <filename>|<category>|<directories>:根据指定的文件名、类别名、目录名,执行 相应的脚本。
--script-args <args>:这个选项用于给脚本指定参数。例如,在使用认证类脚本时,可通过 这个选项指定用户名和密码
nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 192.168.56.103
规避检测的选项
在渗透测试的工作中,目标主机通常处于防火墙或 IDS 系统的保护之中。在这种环境中使用 Nmap 的默认选项进行扫描,不仅会被发现,而且往往一无所获。此时,我们就要使用Nmap 规避检测的有关选项。
-f(使用小数据包):这个选项可避免对方识别出我们探测的数据包。指定这个选项之后, Nmap将使用8字节甚至更小数据体的数据包。
--mtu:这个选项用来调整数据包的包大小。MTU(Maximum Transmission Unit,最大传输 单元)必须是8的整数倍,否则Nmap将报错。
-D(诱饵):这个选项应指定假 IP,即诱饵的 IP。启用这个选项之后,Nmap 在发送侦测 数据包的时候会掺杂一些源地址是假IP(诱饵)的数据包。这种功能意在以藏木于林的方法 掩盖本机的真实 IP。也就是说,对方的log还会记录下本机的真实IP。您可使用RND生成随机 的假IP地址,或者用RND:number的参数生成<number>个假IP地址。您所指定的诱饵主机 应当在线,否则很容易击溃目标主机。另外,使用了过多的诱饵可能造成网络拥堵。尤其是 在扫描客户的网络的时候,您应当极力避免上述情况。
Kali Linux 渗透测试的艺术(中文版)
151第 6章 服务枚举
--source-port <portnumber>或-g(模拟源端口):如果防火墙只允许某些源端口的入站流 量,这个选项就非常有用。
--data-length:这个选项用于改变Nmap 发送数据包的默认数据长度,以避免被识别出来是 Nmap的扫描数据。
--max-parallelism:这个选项可限制Nmap 并发扫描的最大连接数。
--scan-delay <time>:这个选项用于控制发送探测数据的时间间隔,以避免达到IDS/IPS端 口扫描规则的阈值。