kali根据目标机漏洞查找相应模块的根据方法
拿下一台靶机后,最烦的目标就是知道对方开着某个服务,却不知道用哪个exploit。机漏比如你扫到目标开着vsftpd 2.3.4,洞查端口21,找相心里清楚这版本有后门,应模但msfconsole里敲search vsftpd出来一堆结果,根据哪个能用?目标我见过新手直接拿search出来的第一个模块去打,结果要么超时要么报错,机漏最后还怪工具不行。洞查
真正靠谱的找相做法是先确认服务版本,再精确到CVE编号。应模Nmap的根据-sV参数能给出版本信息,比如“vsftpd 2.3.4”或者“Apache httpd 2.4.49”。目标拿到版本号后,机漏别急着在msf里乱搜。先去CVE数据库或者exploit-db查这个版本对应的漏洞编号——这一步很多人跳过,直接后果就是搜出来的模块和实际漏洞不匹配。
举个例子,Apache 2.4.49有个路径穿越漏洞,CVE-2021-41773。如果你在msf里搜search apache 2.4.49,结果列表可能混着好几个无关的Apache模块。但如果你搜search cve:2021-41773,直接锁定目标。这就是CVE编号的价值——它像身份证号,版本号只是名字,同名的人多了去了。
msfconsole里的search命令支持多个关键字组合。比如你确定目标是Windows 7 64位系统,跑着SMB服务,版本号未知,但你知道MS17-010(永恒之蓝)影响它。直接search ms17-010,比搜search smb windows 7精准得多。后者会返回几十个结果,你得手动翻半天。
还有一种情况,漏洞没有现成的CVE编号,比如某些硬件设备的后门。这时候得靠服务指纹去匹配。用search加上服务名和端口,比如search dlink或者search hikvision,结果里通常会有针对特定设备型号的模块。但注意,这些模块往往年代久远,打之前先看下模块的disclosure date,如果是几年前发布的,而目标设备固件可能更新过,那大概率打不进去。
模块选好后,别直接run。先show options看必填项,特别是RHOSTS和RPORT。有些模块还需要设置SSL或HttpUsername这类额外参数。我见过有人用某个HTTP漏洞模块,忘了设TARGETURI,结果模块默认去访问根路径,而漏洞实际在某个子目录下,自然打不中。
最后说个土办法,但很管用。如果search结果太多,就用info命令逐条看模块描述,里面通常会写明适用版本。比如描述写着“Affects vsftpd 2.3.4”,而你的目标正好是这个版本,那基本错不了。别嫌麻烦,这比盲目打几十个模块节省时间。
工具是死的,思路是活的。版本号、CVE、服务指纹——这三样信息掌握全了,msf里的模块就像抽屉里的工具,你一眼就知道该拿哪把。