nmap使用教程

nmap:主机发现,端口扫描,服务和版本探测,操作系统探测
参数:
1.常用扫描
①ping扫描
nmap -sP www.hackstar.top
ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描
②TCP扫描
nmap -sT www.hackstar.top
这种方式最简单。直接与被扫描的端口建立tcp链接,如果成功,则说明端口开放,如果不成功则说明端口关闭的。这种扫描的特点是与被扫描端口建立完成的tcp链接,完整的tcp三次握手。优点主要是不需要root权限即可扫描端口。因为connect可以在用户态直接调用
这种方式会在目标主机的日志中记录大批连接请求和错误信息。
③半开扫描 需要root(SYN扫描,默认扫描)
nmap -sS < 要扫描的目标ip地址>
这种扫描不需要建立完整的tcp连接,即可扫描端口的状态。发送tcp syn数据包,这个也是tcp握手的第一个包。如果端口开放,则会返回 tcp syn+ack数据包。如果端口关闭,则返回 tcp rst数据包。这样我们就不用进行tcp 握手的第三步,也可以探测端口的状态。这种扫描需要构建raw socket。所以需要root权限
很少有系统能把它记入系统日志。
④路由追踪扫描
nmap -traceroute www.hackstar.top
路由器追踪功能,能够帮助网络管理员了解网络通行情况
通过路由器追踪可以查找从我们电脑所在地到目的地之间所经常的网络节点, 并可以看到通过各个结点所花费的时间。(图中TRACEROUTE下面的内容)
⑤nmap ip地址/24:扫描一个网段下的IP个数
⑥扫描一个目标列表 nmap -iL [ip地址列表文件]
⑦-Pn :非ping扫描,不执行主机发现,可以跳过防火墙 ( 常用)
nmap -Pn -O -vv www.hackstar.top
⑧脚本扫描nmap --script=
eg:nmap --script=auth [ip]
nmap --script=auth www.hackstar.top
鉴权 扫描:使用 --script=auth 可以对目标主机或目标主机所在的网段应用弱口令检测。
auth:绕过鉴权扫描
例:nmap --script=auth 192.168.11.1
broadcast:在局域网内探查更多服务开启的情况
brute:对常见的HTTP/SMTP等应用协议提供暴力破解
dos:用于拒绝服务攻击
vuln:用于检查目标机是否有常见漏洞
version:负责增强服务与版本扫描的功能的脚本
malware:探测目标机是否感染了病毒,开启后门等信息
fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞
–script-updatedb:脚本更新
脚本补充:
nmap -sV --script=http-enum 127.0.0.1 枚举出web站点的目录(也可以发现打开的端口和每个端口软件的版本。)
nmap -sV -script=http-php-version 192.168.1.100 这个脚本可以从web server获得PHP版本信息
针对wordpress渗透
http-wordpress-plugins
http-wordpress-enum
http-wordpress-brute
重点:nmap常用爆破命令

FTP
nmap -p 21 -sT -–script ftp-brute.nse –script-args userdb=./user.txt,passdb=./pass.txt 192.168.30.128
SSH
nmap -p 22 --script=ssh-brute --script-args userdb=2.txt,passdb=1.txt 192.168.229.129
mysql
nmap -p 3306 -script mysql-brute.nse –script-args userdb=/home/lunatic/桌面/dict/mysql/p.txt,passdb=/home/lunatic/桌面/dict/mysql/u.txt
redis
nmap -p 6379 -script redis-brute.nse 192.168.3.0/24


检测redis是否有未授权访问
Redis-cli -h 192.168.0.107 //连接目标的redis服务器
Info //测试是否可以执行命令,可以的话即存在未授权

参考链接
nmap版redis攻防总结
https://blog.csdn.net/weixin_43970718/article/details/115287368
mmap常用脚本
https://www.cnblogs.com/hackhyl/p/11366572.html
两种爆破方式的使用
https://zhuanlan.zhihu.com/p/89111763

nmap常用脚本简介

https://blog.csdn.net/Jerry_GuJY/article/details/123206978

不常用扫描参数
①-sF -sN:秘密FIN数据包扫描
②-sU:UDP扫描,但UDP扫描是不可靠的

 

附加参数
①-p:指定扫描端口
nmap -sT -p 8000-9000 www.hackstar.top
补充: --top-ports n 扫描使用频率最高的n个端口
nmap --top-ports 10 192.168.68.191 :对IP地址为192.168.68.191的目标主机开放的使用频率最高的10个端口进行扫描
②-A:全面系统检测、包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测 (花费时间长)
nmap -v -A XXX.XXX.XXX.XXX(Nmap默认扫描主机1000个高危端口)
③-vv 对扫描结果详细输出(vv小写)
nmap -A -vv www.hackstar.top
④-sV 探测打开端口对应服务的版本信息
nmap -sT -sV -vv www.hackstar.top
⑤-O:操作系统检测 -O(O大写)
nmap -sT -O -vv www.hackstar.top
⑥-n (不用域名解析):-n表示不进行DNS解析;-R表示总是进行DNS解析
nmap -sT -n -vv www.hackstar.top
1:主机发现
-Pn:只有该命令将指定的主机视作开启,跳过主机发现的过程用作穿透防火墙
-PA/-PS/-PU/-PY:使用TCP ACK/SYN/或SCTP INIT/ECHO方式来发现主机
2:端口扫描
-sS/-sA/-sF:使用TCP SYN/ACK/FIN扫描,比较隐蔽
-sU:使用UDP扫描方式确定目标主机UDP端口情况
-sP:ping扫描,易被发现,可能会漏掉很多实际存活的主机
参考链接:https://blog.csdn.net/qq_41880069/article/details/82792896
https://www.cnblogs.com/Vinson404/p/7784829.html

2.进阶使用
防火墙/IDS规避
①检测防火墙
数据包的变换
TCP ACK Scan (-sA)
nmap -sA 192.168.1.9(发送ACK包,而不是SYN,需要root)
因为一个简单的ACK扫描意味着攻击者只有较低的概率检测到受害机,但是有较高的几率发现防火墙
TCP Window Scan(-sW)
nmap -sW 192.168.1.9
与ACK扫描非常相似,但是有一点不同,TCP window扫描可以区分未被过滤端口的打开或者关闭。它也需要root权限执行。
使用脚本
root@kali:~# nmap --script=firewalk --traceroute www.csdn.net
root@kali:~# nmap --traceroute --script firewalk --script-args firewalk.recv-timeout=60000,firewalk.max-active-probes=3,firewalk.max-retries=3,firewalk.probe-timeout=600 www.csdn.net
root@kali:~# nmap -p80 --script http-waf-detect www.csdn.net
root@kali:~# nmap -p80 --script http-waf-detect --script-args="http-waf-detect.detectBodyChanges" www.csdn.net

②分片
#nmap -f 192.168.1.9
#nmap -ff 192.168.1.9
这个技术的参数是-f,它将提交分成小段的IP包,这些小的包被称为碎片IP包。如果你想趁机一并打散IP头的话,可以使用双-f(即:-ff)。
将可疑的探测包进行分片处理(例如将TCP包拆分成多个IP包发送过去),某些简单的防火墙为了加快处理速度可能不会进行重组检查,以此避开其检查

③伪造mac地址
root@kali:~# nmap --spoof-mac 0 www.csdn.net
三个可选择的参数:
0:随机分配一个mac地址
MACAddress:手动指定一个MAC地址
Vendor Name:从指定的厂商生成一个MAC地址
可以伪造你的MAC(攻击者的MAC)地址。MAC地址欺骗造成了受害者检测提交来源困难的局面。Nmap可以每个扫描选择一个完整的随机MAC地址,并且这些MAC地址都是基于不同厂商的,另外的设置是手工的指定MAC地址(通过这样,攻击者能够在相同网络中伪造一台计算机地址)。Nmap有一个叫做“namp-mac-prefixes”的数据库,当把厂商的名字提供给这个数据库时,它会从中找到满足条件的MAC地址。

④IP诱骗(IP decoys)
root@kali:~# nmap -D RND:10 www.csdn.net
root@kali:~# nmap –D decoy1,decoy2,decoy3 www.csdn.net
-D RND:10 诱饵选项,设定n个随机虚假的地址去扫描目标地址
-D <decoy1 [,decoy2][,ME],...> 使用逗号分隔每个诱饵主机,也可用自己的真实 IP 作为诱饵,这时可使用 ME 选项说明。如果不使用 ME 选项,nmap 将真实 IP 放在一个随机的位置。
在进行扫描时,将真实IP地址在和其他主机的IP地址混合使用(其他主机需要在线,否则目标主机将回复大量数据包到不存在的数主机,从而实质构成了DOS攻击),以此让目标主机的防火墙或IDS追踪大量的不同IP地址的数据包,降低其追查到自身的概率。但是,某些高级的IDS系统通过统计分析仍然可以追踪出扫描者真实的IP地址

⑤IP伪装
root@kali:~# nmap -S 192.168.1.1 www.csdn.net
IP伪装就是将自己发送的数据包中的IP地址伪装成其他主机的地址,从而目标机认为是其他主机与之通信。需要注意的是,如果希望接收到目标主机的回复包,那么伪装的IP需要位于统一局域网内。另外,如果既希望隐蔽自己的IP地址,又希望收到目标主机的回复包,那么可以尝试使用idle scan 或匿名代理等网络技术

⑥指定源端口
root@kali:~# nmap --source-port 53 www.csdn.net
root@kali:~# nmap -g 53 www.csdn.net
某些目标主机只允许来自特定端口的数据包通过防火墙。例如,FTP服务器的配置为允许源端口为21号的TCP包通过防火墙与FTP服务器通信,但是源端口为其他的数据包被屏蔽。所以,在此类情况下,可以指定数据包的源端口。参数--source-port 与 -g 作用相同。

⑦扫描延时
root@kali:~# nmap --ttl 128 www.csdn.net
某些防火墙针对发送过于频繁的数据包会进行严格的侦查,而且某些系统限制错误报文产生的频率。所以,我们可以降低发包的频率和发包延时以此降低目标主机的审查强度

参考链接:
https://blog.csdn.net/m0_47418965/article/details/121194517
https://blog.csdn.net/weixin_42250835/article/details/115364161
https://blog.csdn.net/weixin_43510203/article/details/107603814

3.TCP空闲扫描
该扫描的目的:冒充网络上的另一台主机对目标主机进行更隐蔽的扫描
扫描的前提:在网络上定位一台IP帧标识机制的空闲主机(空闲是指在一段时间内不向网络发送数据包)
使用方法:
①:先用metasploit找出满足TCP空闲扫描的主机
命令:use auxiliary/scanner/ip/ipidseq
RHOST参数可以设置为一个或多个CIDR地址块(用 ,隔开)
②:在nmap中用-sI参数指定获取的空闲主机IP地址为你的IP地址去扫描目标IP地址
例:nmap -sI 192.168.11.1 192.168.11.121
192.168.11.1为空闲主机地址,192.168.11.121 为目标主机的地址
参考链接:https://blog.csdn.net/qq_41880069/article/details/82792896
http://www.caotama.com/2002233.html
原理:https://blog.csdn.net/weixin_46236101/article/details/112303277

posted @ 2022-07-25 19:34  lzstar-A2  阅读(2363)  评论(0编辑  收藏  举报