您现在的位置是:焦点 >>正文
nmap脚本扫描
焦点2人已围观
简介很多人用nmap就只会敲一个nmap 192.168.1.1,看到几个开放端口就觉得完事了。真正有意思的东西藏在--script这个参数后面。nmap的脚本引擎NSE)才是它从"端口扫描器"变成"信息 ...
很多人用nmap就只会敲一个nmap 192.168.1.1,脚本看到几个开放端口就觉得完事了。扫描真正有意思的脚本东西藏在--script这个参数后面。nmap的扫描脚本引擎(NSE)才是它从"端口扫描器"变成"信息收集瑞士军刀"的关键。
NSE脚本是脚本用Lua写的。Lua这门语言本身就轻量,扫描嵌入到nmap里不会拖慢扫描速度。脚本脚本能做的扫描事情远超你的想象——从抓取HTTP标题、探测SMB漏洞,脚本到暴力破解弱口令、扫描检测心脏滴血漏洞,脚本全都覆盖了。扫描
脚本分类与实际用法
nmap把脚本按功能分了类,脚本常用的扫描有这几类:
- auth:处理认证相关,比如匿名FTP登录检测
- default:默认就运行的脚本脚本,
-sC等同于--script=default - discovery:信息收集,探测服务版本、枚举用户等
- vuln:漏洞检测,这是最受关注的一类
- brute:暴力破解,支持ftp、ssh、mysql等多种协议
- exploit:利用漏洞,实际渗透中用得少,容易搞崩目标
跑一个最基础的例子:
nmap -sV --script=default 192.168.1.100 这条命令会先做版本探测,然后跑所有默认脚本。输出里会多出很多信息——HTTP头、SSL证书详情、SMTP命令响应等等。比裸扫丰富得多。
想针对性地检测某个漏洞,比如MS17-010(永恒之蓝):
nmap -p 445 --script=smb-vuln-ms17-010 192.168.1.100 输出会直接告诉你目标是否存在该漏洞。这比翻一堆CVE文档再手动验证快太多了。
几个容易被忽略的细节
脚本的参数可以微调。比如http-title脚本默认只抓标题,但你可以在脚本参数里控制超时时间:
nmap -p 80 --script=http-title --script-args http-title.timeout=10 192.168.1.100 暴力破解类脚本需要传字典。以SSH为例:
nmap -p 22 --script=ssh-brute --script-args userdb=users.txt,passdb=passwords.txt 192.168.1.100 不传字典的话,脚本会用内置的默认字典,但那个字典很小,命中率不高。实际测试中,自己准备一份针对性的字典效率会高很多。
还有个实用技巧:用通配符批量调用脚本。比如--script="http-*"会跑所有以http开头的脚本。扫Web服务的时候特别方便,一次性把HTTP相关的信息全拉出来。
性能与注意事项
脚本跑多了会明显拖慢扫描速度。尤其是vuln类脚本,有些会发送大量探测包。在真实环境中,建议先跑discovery类摸清服务,再针对特定端口跑vuln类脚本。别一上来就--script=vuln全开,那等于在对目标进行半暴力探测,容易触发IDS告警。
另外,脚本的执行结果依赖-sV的版本探测。如果nmap没识别出服务版本,很多脚本根本不会触发。所以-sV基本是跑脚本的标配,别省这一步。
最后提一点:NSE脚本的更新跟着nmap版本走。老版本nmap的脚本库可能缺少新漏洞的检测脚本。定期更新nmap不是坏事,nmap --script-updatedb可以刷新脚本数据库。
脚本扫描不是万能的,它只是把已知的检测逻辑自动化了。真正有价值的部分在于你怎么组合这些脚本、怎么解读输出、怎么根据结果决定下一步动作。工具本身不会思考,用工具的人才会。
Tags:
相关文章
app端测试是后端还是前端测试
焦点app端测试既不是纯粹的后端测试,也不是纯粹的前端测试。它更像一个站在十字路口的观察者,手里拿着两把尺子,一把量界面,一把量逻辑。真正的问题从来不是“归哪边”,而是“你到底在测什么”。 我见过太多团队 ...
【焦点】
阅读更多网站无痕模式怎么设置
焦点你打开浏览器,想查点东西,又不想让别人——可能是共用电脑的家人、同事,或者理论上存在的任何能碰到这台设备的人——看到你的浏览记录。无痕模式就是干这个用的。它不是什么黑客技术,更不是让你在网上彻底隐身, ...
【焦点】
阅读更多答案库网站
焦点我花了三个通宵,把大学四年所有专业课的试卷、答案和评分标准整理成了一个网站。没有用任何现成的建站工具,全是手写的HTML和CSS,连数据库都是自己敲的。网站上线第一天,只有12个人访问,其中8个是我室 ...
【焦点】
阅读更多