在渗透测试中有一个非常常见的功能强大的扫描工具就是我们这篇文章的主角——nmap。博主使用的图片中的环境为:发动扫描主机:Kali 2020(VMware)被扫描主机:Windows7(默认无防火墙)
下面开始对Nmap的讲解
从下图可以看到,Win7靶机的IP地址为:192.168.0.107
下面我们开始实战对Nmap的各个功能进行讲解(这里的Win 7靶机是博主自己搭建的,所以可以无顾虑扫描,但是日常请不要滥用渗透工具)
下面先讲讲最简单的使用——nmap IP
在kali的终端,我们输入nmap 192.168.0.107
然后我们等待Nmap进行扫描,经过扫描可以看到Nmap经过运行返回如下信息:
可以看到,我们的win 7虚拟机开放的端口有:135、139、445、5357、49152、49153、49154、49155、49156、49157(STATE为open即为当前开放的端口,SERVICE为对应端口的对应服务),上面讲的是最基础的用法,下面讲讲他的参数(这里我们只对于他的常用参数进行演示)
-iL:从文件导入主机/网段
-iR:随即扫描
-sL:列表扫描:仅列举不进行主机发现
-sn:只进行发现不进行端口扫描
-Pn:视所有主机为打开状态,跳过主机发现过程
-PS/PA/PU/PY [Portlist]:使用TCP SYN/ACK/SCTPINIT ECHO方式发现主机
-PE/PP/PM;使用ICMP echo、time stamp、netmask请求包发现主机
-PO[protocollist]:使用IP协议探测主机
-n/-R:-n:不进行DNS解析 -R总进行DNS解析
–dns-servers<serv1[,serv2][,…]>:指定DNS
–system-dns:使用系统的DNS
–traceroute:追踪每个路由节点
端口扫描
-sS/sT/sA/sW/sM:使用TCPSYN/Connect/ACK/Window/Mainonscans进行扫描
-sU:使用指定的UDP扫描方式确定目标、UDP端口状态
-sN/sF/sX:使用TCP null/FIN/Xmas scans秘密扫描的方式协助探测TCP状态
–scanflags:定制TCP包的flags
-sI<zombie host[:probeport]>:使用指定的Idle Scan扫描(需要合适的zombie host)
-sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口
-sO:使用IP protocol扫描目标机器支持的协议类型
-b FTP relay Host使用FTP bounce scan的方式扫描
**-p< port ranges >**扫描指定端口
-F快速扫描,仅扫描top100端口
-r:不进行随机打乱端口(有此参数容易被防火墙检测)
–top-port number扫描前。。。受欢迎的端口
–port-ratio ratio后面的ratio为概率,大于等于零小于等于一
-sV进行版本扫描
–version-intensity level这里默认level为7,level越高扫描结果越准确。(1≤level≤9)
下面展示一次完整的扫描:
nmap -T4 -A -v 192.168.0.107
上述语句,T4是时序,越高越快(同时越快也越容易被屏蔽,推荐为4),-A为进攻性 -v显示冗余的信息
下面来看扫描实例:
如上就是实例扫描的返回结果,从这个结果里我们还是可以得到很多有用信息的。
下面介绍常用的扫描方法:
1.nmap IP:直接加IP,上文做过演示
2.多个IP扫描:nmap xxx.xx.xx.xxx xxx.xx.xx.xxx(我这里只开了一个靶机,内存不够,所以不做演示)此方法用于少量IP或不在同一网段
3.范围扫描:例如想扫描192.168.0.100~192.168.0.110则可以使用如下命令:
nmap 192.168.0.100-110
4.扫描某个网段:例如:nmap 192.168.0.107/24
5扫描TXT文件内的主机/网段:nmap -iL 目录
6.不包括某个目标:nmap … -exclude xxx
7不包括某个文件内的网段/主机:nmap … -excludefile …
8 扫描某地址的21.22.23.80端口:nmap … -P 21 22 23 80
9.进行路由追踪:nmap --traceroute …
10.C段在线状况:nmap -sP …/24
11.系统识别:nmap -O …
12.检测版本:nmap -sV …
13.探测防火墙:nmap -sF -T4 xxx.xx.xx.xx
检测结果讲解:端口状态:open:开放的、filtered:被过滤
closed:关闭的、unfiltered:未过滤,需要进一步探测
nmap脚本介绍:
Auth:绕过鉴权
Broadcast:探查更多服务开启状态
Brute:对常见应用暴力破解
Discovery:收集更多信息:SMB枚举和SNMP等
Dos:用于进行DoS(denial of service,拒绝服务)攻击
Exploit:利用已知漏洞入侵
External:利用第三方
Fuzzer:模糊测试探测潜在的脚本
Intrusive:入侵性脚本,可能被记录或屏蔽
Malwame:探测目标机是否存在病毒或者后门
Safe:与Intrusive相反
Version:功能增强
Vuln:漏洞检测
-sC:默认脚本
–script=…使用…脚本
–script-args=key1=value…:传参(为脚本)
–script-help显示某脚本所需要参数
本文章到这里便结束了,有任何问题欢迎评论区交流