由于对信息收集功夫还不够深,为此为多多积攒经验,于是开始刷vulnhub系列靶场,由此中途总结各种工具使用,博客于2022年9月4号起会每天进行不定量更新,若有师傅一起探讨技术欢迎留言。
众所周知,对一个系统的渗透功底怎么样取决于信息收集的能力。信息收集的办法越多,收集的有效数据越多,发现其漏洞或攻入其系统的可能性便越大,由此,nmap这一款强大的工具可以方便我们在局域网中去发现主机和端口,本次实验作为示例,讲解nmap的使用。
目录
nmap简介
nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台。
nmap常用命令
主机发现
iR 随机选择目标
-iL 从文件中加载IP地址
-sL 简单的扫描目标
-sn Ping扫描-禁用端口扫描
-Pn 将所有主机视为在在线,跳过主机发现
-PS[portlist] (TCP SYN ping) 需要root权限
-PA[portlist] (TCP ACK ping)
-PU[portlist] (UDP ping)
-PY [portlist] (SCTP ping)
-PE/PP/PM ICMP回显,时间戳和网络掩码请求探测
-PO[协议列表] IP协议Ping
-n/-R 从不执行DNS解析/始终解析[默认:有时]
–dns-servers 指定自定义DNS服务器
–system-dns 使用OS的dns服务器
–traceroute 跟踪到每个主机的跃点路径
扫描技术
-sS 使用TCP的SYN进行扫描
-sT 使用TCP进行扫描
-sA 使用TCP的ACK进行扫描
-sU UDP扫描
-sI Idle扫描
-sF FIN扫描
-b<FTP中继主机> FTP反弹扫描
端口规格和扫描顺序
-p 扫描指定端口
–exclude-ports 从扫描中排除指定端口
-f 快速模式-扫描比默认扫描更少的端口
-r 连续扫描端口-不随机化
–top-ports 扫描最常用的端口
服务/版本探测
-sV 探测服务/版本信息
–version-intensity 设置版本扫描强度(0-9)
–version-all 尝试每个强度探测
–version-trace 显示详细的版本扫描活动(用于调试)
脚本扫描
-SC 等效于 --script=defult
–script = , 以逗号分隔的目录,脚本文件或脚本类别
–script-args = <n1=v1, n2=v2> 为脚本提供参数
–script-args-file=文件名 从文件名中加载脚本参数
–script-trace 显示发送和接受的所有数据
–script-updatedb 更新脚本数据库
–script-help= 显示有关脚本的帮助
操作系统检测
-o 启用os检测
–osscan-limit 将os检测限制为可能的目标
–osscan-guess 推测操作系统检测结果
时间和性能
–host-timeout 设置超时时间
–scan-delay 设置探测之间的时间间隔
-T <0-5> 设置时间模板,值越小,IDS报警几率越低
防火墙/IDS规避和欺骗
-f 报文分段
-s 欺骗源地址
-g 使用指定的本机端口
–proxies <url,port> 使用HTTP/SOCK4代理
-data 想发送的数据包中追加自定义的负载
–data-string 将自定义的ACSII字符串附加到发送数据包中
–data-length 发送数据包时,附加随机数据
–spoof-mac MAC地址欺骗
–badsum 发送带有虚假TCP/UNP/STCP校验和的数据包
输出
-oN 标准输出
-oX XMl输出
-oS script jlddi3
-oG grepable
-oA 同时输出三种主要格式
-v 信息详细级别
-d 调试级别
–packet-trace 跟踪发送和接收的报文
–reason 显示端口处于特殊状态的原因
–open 仅显示开放的端口
杂项
-6 启动Ipv6扫描
-A 启动Os检测,版本检测,脚本扫描和traceroute
-V 显示版本号
-h 帮助信息
实例演示
ping扫描
在nmap中提供了很多的扫描方式,其中ping就是最常用的一种方式。在扫描时只需要加入-sP就可以开启ping扫描。
nmap -sP 192.168.77.1/24
一般情况我们只看尾数主机号偏中间的,如192.168.77.128和192.168.77.128,192.168.77.1、192.168.77.2这些就一般都不是目标主机。
**优点:**不会返回太多无用的结果造成对结果的分析,并且比较高效。
**缺点:**部分设备有时扫不到,需多扫描几次。
无ping扫描
ping扫描虽然简单,但是当开启了禁ping后,以上方法便行不通了。这时我们便可以用无ping扫描。
我们只需要添加参数-p0
即可实现。
nmap -p0 192.168.77.1/24
我们可以看到还是相同的结果,说明在这里并没有禁ping
**优点:**可避免防火墙的发现,可以详细的看到设备开启了那些端口。
缺点: 暂无
TCP Syn Ping扫描
TCP Syn Ping即传输层的TCP/IP扫描,通过发送和接收报文的形式进行扫描,在这种情况下每个端口都会轻易的被发现。
nmap -PS 192.168.77.1/24
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdrmP2R1-1662220708266)(…/AppData/Roaming/Typora/typora-user-images/image-20220903235435228.png)]
我们可以看到通过这种方式不仅仅探测出了潜在目标,还有潜在目标的端口号。
**优点:**扫描更加精确
TCP ACK PING扫描
很多防火墙会封锁SYN报文,所以nmap提供了SYN和ACK两种扫描方式,这两者的结合大大的提高了逃避防火墙的概率。
nmap -PA 192.168.77.1/24
因此,在实际中我们通常将 ps 和pa两个参数放到一起,这样效果会更好。
nmap -PA -PS 192.168.77.1/24
UDP扫描
使用UDP扫描,nmap会发送一个空的报文到主机,如果返回则说明设备在线。通常我们只需要添加-PU即可实现udp扫描。
nmap -PU 192.168.77.1/24
注意:UDP扫描需要root权限
ARP扫描
ARP扫描是nmap对目标进行一个apr ping扫描的过程,尤其在内网的情况下。因为在本地局域网防火墙是不会禁止ARP请求的。所以在内网中使用apr扫描时非常有效的。
nmap -PR 192.168.77.1/24
这个方法是十分有效的,因此在内网中建议该方法扫描。
列表扫描
列表扫描,他仅仅是列出制定网络上的每台主机,不发送任何报文给目标。
nmap -sL 192.168.77.1/24
**优点:**扫描速度相对来比较快。
**缺点:**会列出一些无用的信息。
(貌似并没有很大的用处)
反向域名解析
nmap -R 192.168.77.1/24
路由追踪
使用--traceroute
选项可以实现路由追踪,可以帮助用户了解网络通行的情况。
nmap --traceroute -v 192.168.77.1/24
由于自己也是在深入学习渗透中,感谢众多师傅与前辈的总结与分享,这里我在学习过程中也对网络中的资料进行复盘与提炼总结,如果也是网络安全行业的同行,欢迎留言沟通交流!