最近研究了两天Metasploit渗透测试,这里整理下笔记。
经过几天的摸索,大体总结对服务器进行渗透的话可分为以下3个阶段:
1、收集信息:首先得知道目标服务器使用什么系统、开放哪些端口、使用哪些应用等。
2、针对性扫描:了解到目标服务器开启的端口(3389、3306、1521;FTP、Samba、SSH、HTTP等)后,我们再根据端口等信息判断目标服务器使用了哪些应用,再对应用进行针对性的探测,判断可能存在的漏洞
3、进行渗透:再使用相应的模块或其他方法来尝试对这些漏洞进行渗透。
1、搜集信息
可以使用 nmap
工具来对目标主机IP或IP段来进行扫描。
1 |
https://nmap.org/book/scan-methods.html |
用法:nmap [扫描类型] [选项] {目标规范}
-sS:执行一次隐秘的TCP扫描,以确定某个特定的TCP端口是否开放。
-Pn:不使用ping命令预先判断主机是否存活,而是默认所有主机都是存活状态(不然如果主机禁ping,nmap就会以为这个IP没有活动主机。就不会去扫描这个IP!)
-A:尝试进行更加深入的服务枚举和旗标获取,这些能够为你提供目标系统更多的细节。
-p <端口范围>:仅扫描指定的端口
例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F:快速模式 - 扫描比默认扫描更少的端口
-T <0-5>:设置时序模板(越高越快)
使用示例:
1 2 3 4 |
root@kali:~# nmap -sS -Pn 192.168.1.69 root@kali:~# nmap -sS -Pn -A 192.168.1.69 root@kali:~# nmap -p22,25,80,8080 192.168.1.69 root@kali:~# nmap -F -T4 192.168.1.69 |
2、针对性扫描
在对网段或指定IP进行快速扫描后,可以得知目标服务器开启了哪些端口。可以根据端口大概判断是什么应用。然后可以使用NSE脚本来扫描指定服务器是否存在恶意软件、后门或者已知的漏洞;或者也可以安装像Nessue和OpenVAS这样的漏洞评估系统来进行分析。
虽然NSE具有复杂的效率实现,但它的使用非常简单。只需指定 -sC 启用最常见的脚本。或者指定 --script 通过提供类别,脚本文件名或您希望执行的脚本的目录名称来选择要执行的脚本的选项。您可以通过提供参数来自定义一些脚本 --script-args 和 --script-args-file 选项。该--script-help 显示每个所选脚本的功能。剩下的两个选项, --script-trace 而且--script-updatedb, 通常只用于脚本调试和开发。脚本扫描也包含在-A(激进扫描)选项中。
1 |
https://nmap.org/book/nse.html |
常用脚本类别:
default:这些脚本是默认设置,在使用-sC或-A 选项而不是列出脚本时运行--script。此类别也可以像任何其他使用一样明确指定--script=default。在决定是否应默认运行脚本时会考虑许多因素:速度、用处、赘言、可靠性、侵扰、隐私。
broadcast:此类别中的脚本通常通过在本地网络上进行广播来发现未在命令行上列出的主机。使用 newtargets script参数,允许这些脚本自动将发现的主机添加到Nmap扫描队列。
exploit:这些脚本旨在积极利用某些漏洞。例子包括jdwp-exec和http-shellshock。
malware:这些脚本测试目标平台是否被恶意软件或后门感染。示例包括监视smtp-strangeport在异常端口号上运行的SMTP服务器,以及auth-spoof检测在甚至接收查询之前提供假答案的identd欺骗守护程序。这两种行为通常都与恶意软件感染有关。
vuln:这些脚本会检查特定的已知漏洞,并且通常仅在找到结果时报告结果。例子包括realvnc-auth-bypass和afp-path-vuln。
使用示例:
1 2 |
root@kali:~# nmap --script=vuln 192.168.1.83 root@kali:~# nmap --script=malware 192.168.1.83 |
3、利用发现的漏洞及弱点进行渗透
发现相应的漏洞后,可以使用Metasploit工具进行模糊查找看是否有可利用的渗透模块。如果有的则尝试使用其进行测试;或则也可以自己编写脚本来利用漏洞进行渗透。
具体渗透侵入服务器的过程可以参考下面的这篇文章《测试使用Metasploit及利用ms17-010漏洞侵入windows2003系统》