nmap常用命令
Table of Contents
Nmap
主机枚举
主机存活发现
基本直接扫描nmap -snn 10.129.2.0/24就足够了
-sn禁用端口扫描
--packet-trace参数可以显示所有已经发送和接收的数据包,可以进一步学习原理 --reason可以显示判定为存活的理由
扫描网络范围 sudo nmap 10.129.2.0/24 -sn -oA tnet | grep for | cut -d" " -f5
列表扫描,使用iL参数从hosts.lst读取 sudo nmap -sn -oA tnet -iL hosts.lst | grep for | cut -d" " -f5
小部分的扫描 sudo nmap -sn -oA tnet 10.129.2.18-20| grep for | cut -d" " -f5
这里通过disable-arp-ping来禁止arp ping,从而发包就会使用icmp sudo nmap 10.129.2.18 -sn -oA host -PE --packet-trace --disable-arp-ping
端口扫描
| 端口状态 | 描述 |
|---|---|
| open | 开放 |
| closed | 关闭 |
| filtered | 防火墙的原因 |
我常用的几条命令
1 | |
这里给出最常用的三种的端口扫描,其他的扫描类型更多是为了绕过防火墙以及IDS/IPS这些
-sT 连接扫描,就是普通的三次握手,容易被记录到日志中,所以一般SYN更加隐秘 -sS SYN半开放扫描,注意这个需要root用户才可以 -sU Udp端口扫描
其他参数大多只是改变扫描详细程度 -sV 扫描服务版本
--top-ports=10 扫描前10个tcp端口 -F 前100个 -p 22-445 -p 22,25,80,139,445 -p-全部端口
这几个参数常用于主机存活,禁用可以提高端口扫描的速度 -Pn 禁用ICMP -n 禁用DNS解析 --disable-arp-ping ARPping
保存结果
输出格式,这个可以方便保存每次扫描的结果
-oA全部-oN.nmap普通的txt格式-oG.gnmap配合grep命令使用-oX.xml可以使用xsltpproc工具,从xml到htmlxsltproc target.xml -o target.html方便查看结果
服务枚举
-sV 这个参数,执行服务检测 -v / -vv 参数提高显示状态,只要检测到端口开放就直接显示
--stats-every=5s 也可以分钟(m) 来设置状态的显示周期,虽然没感受到有啥特别的作用 --packet-trace 直接这个全部显示数据包
NSE脚本
我最常用的还是-sC 使用默认脚本枚举下服务
选择特定类型的脚本 sudo nmap <target> --script <category>
自定脚本 sudo nmap <target> --script <script-name>,<script-name>
| Category | Description 描述 |
|---|---|
| auth | 确定身份验证凭据。 |
| broadcast | 用于通过广播进行主机发现的脚本,发现的主机可以自动添加到剩余的扫描中。 |
| brute | 执行脚本尝试使用凭据通过暴力破解方式登录相应的服务。 |
| default | 使用 -sC 选项执行的默认脚本。 |
| discovery | 评估可访问的服务。 |
| dos | 用于检查服务是否存在拒绝服务漏洞,但使用较少,因为可能损害服务。 |
| exploit | 尝试利用被扫描端口的已知漏洞。 |
| external | 使用外部服务进行进一步处理的脚本。 |
| fuzzer | 通过发送不同字段识别漏洞和意外的数据包处理,可能耗费较长时间。 |
| intrusive | 可能对目标系统造成负面影响的侵入性脚本。 |
| malware | 检查目标系统是否感染了恶意软件。 |
| safe | 防御性脚本,不执行侵入性或破坏性访问。 |
| version | 服务检测扩展,用于识别服务版本。 |
| vuln | 识别具体的漏洞。 |
防火墙和IDS/IPS规避
TCP ACK扫描 -sA 发送带有ACK的数据包,通常容易被防火墙放行
Decoys 利用诱饵进行扫描,这个会混入多个其他IP,把真实IP地址混在其中
感觉只是对方溯源麻烦点 sudo nmap 10.129.2.28 -p 80 -sS -Pn -n -D RND:5
利用不同源IP进行扫描,就是改用其他网卡的IP
或者是其他控制的机器的IP地址,估计还得配合监听,来看数据包
sudo nmap 10.129.2.28 -n -Pn -S 10.129.2.200 -e tun0
DNS代理,就是设置源端口,一般防火墙不会拦截源端口53的,因为这个一般是DNS服务
sudo nmap 10.129.2.28 -p50000 -sS -Pn -n --disable-arp-ping --packet-trace --source-port 53
获取banner信息常用的探测命令
1 | |