靶机:10.10.10.9
Kali:10.10.16.2
靶机打开的端口很少,接下来扫描端口的详细信息
根据信息可以得出靶机是IIS搭建的,网站有robots.txt里面有很多可用信息
接下来 再对靶机进行 常用漏洞脚本扫描 以及 常见UDP端口扫描,没有什么出现其他的可用信息
那么这里的突破口就主要就是80端口
通过刚刚nmap的扫描结果得出靶机用的是IIS7.5
通过IIS7.5的wiki可以大致得出靶机的系统为win7或为Windows Server 2008 R2,也进一步验证了nmap的扫描结果
查询尝试drupal的是否存在默认账号密码,发现失败
刚刚在nmap的结果中发现robots.txt内容,接下来就根据robots.txt里面的内容进行展开
http://10.10.10.9/CHANGELOG.txt
http://10.10.10.9/xmlrpc.php
通过CHANGELOG.txt可得出当前的drupal版本是7.54
通过searchspolit来查找是否有现成的可利用EXP
根据刚刚得知drupal的版本是7.54来挑选合适的EXP进行使用
首先尝试“Drupal 7.x Module Services - Remote Code Execution”
编辑41564.php,这里修改了url,file变量,但是endpoint_path和endpoint还需要查询下如何修改
通过访问EXP作者里面的博客(https://www.ambionics.io/blog/drupal-services-module-rce),可知restful API接口
那么接下来就需要来查找drupal的API接口地址
因为不同的扫描器的扫描机制、算法是不同的,这里尝试使用多个扫描器来查找API接口地址
再安装个feroxbuster,这个工具扫描速度更快
字典采用专门用来发现API的字典 https://gitee.com/AnranRemo/SecLists.git
经过一段时间的等待dirb、feroxbuster、dirbuster并没有爆出更多的可用信息网上说API的目录为 /rest,可能真的需要一定经验才能猜出来吧
将EXP里面的endpoint_path修改下
报错,PHP缺少curl_init
再次运行即可得到webshell
除了41564.php之外还可以尝试使用'Drupalgeddon2' Remote Code Execution(CVE-2018-7600)
同样 Drupalgeddon3 也是可以的,但是Drupalgeddon3需要已认证的权限,而且这个账号需要有可以删除节点的权利。可以配合41564.php 得到的 session.json 来进行使用,session.json里面的内容就是admin的session
从github找现成的利用工具(https://github.com/oways/SA-CORE-2018-004)
先看看session.json里面的值是否可以成功获得admin权限,这里使用的是Cookie Quick Manager
编辑完成后保存cookies,刷新页面发现得到drupal的admin权限
那么就用这个session来尝试使用Drupalgeddon3,同时EXP还需要存在的节点编号,可以通过admin账号进行查看
可以找到node number为1
接下来使用 Drupalgeddon3 可以成功执行命令
接下来反弹一个shell到Kali上,先去github上找一个win下的nc
(https://github.com/vinsworldcom/NetCat64/releases/tag/1.11.6.4)
使用smb服务来将nc共享给靶机使用
Kali监听443端口
让靶机通过smb运行nc文件来反弹shell
读取user flag
除了使用webshell来执行命令,还可以借助drupal本身的功能模块来运行PHP代码
去google上找 PHP reverse shell,并粘贴到drupal中
注意修改IP、port、以及shell(为了防止歧义,路径用反斜杠)
这里Kali上还要额外监听一个1234端口,PHP会反弹会一个shell然后这个shell又会执行nc弹回一个shell,我们需要的是nc的shell
还可以通过Drupalgeddon3直接弹shell
除此之外,因为是win系统还可以使用powershell来获得TCP shell,这样就可以不用借助nc
先在kali上安装nishang
编辑下Invoke-PowerShellTcp.ps1,在底部添加内容
Kali上通过PHP开启http服务,然后让靶机的powershell下载并执行
这里使用到Drupalgeddon2
下载执行powershell脚本,获得shell
同样也可以借助Drupalgeddon3来运行powershell获取shell
也可以使用webshell来调用powershell
接下来开始尝试提权,通过systeminfo查询到靶机没有打任何补丁所以使用内核提权成功的概率非常大
Windows - Privilege Escalation
(https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology and Resources/Windows - Privilege Escalation.md)
在页面中搜索2008的内核提权工具进行尝试
查看当前用户权限,发现SeImpersonate是开启的
然后找一个合适的CLSID,这里可以直接用Windows Server 2008 R2 Enterprise的CLSID
将JuicyPotato下载到Kali中
在获取的shell中执行,发现报错,可能是用pweroshell反弹的shell原因
换成nc反弹再次尝试,虽然不报错,但是4444端口依旧没有接收到
将nc以及JuicyPotato下载到靶机上再进行尝试,用certutil将文件下载到目标靶机上
然后再次运行juicyPtato,提权成功
重置下靶机,接下来尝试用CVE-2018-8120来提权
(https://github.com/SecWiki/windows-kernel- exploits/blob/master/CVE-2018-8120/x64.exe)
然后在靶机上下载EXP
执行whoami发现可以得到system权限
那么就通过这个EXP来反弹一个system权限的shell
接下来尝试MS15-051(https://github.com/euphrat1ca/ms15-051/tree/master/ms15-051/ms15- 051/x64) 提权,同样先重置靶机
发现也是可以成功提权
除了进行内核漏洞提权之外,还可以通过mysql数据库提权
通过端口查询发现靶机上开着3306,说明有MySQL数据库
连接mysql,但是shell没有反应
那么将靶机的3306映射到Kali中来,
下载chisel(https://github.com/jpillora/chisel)
通过certutil下载到靶机中去
在Kali上开启监听
然后在靶机上运行chisel进行端口转发
然后连接kali的3306就可以连接到靶机的3306然后连接kali的3306就可以连接到靶机的3306
查看是否具备UDF提前条件
mysql版本为5.5.45,只能将udf.dll写入MySQL安装目录下的libplugin文件夹才行
得到插件的目录地址,并且secure_file_priv为空,满足使用udf提权条件
开始进行UDF提权
Kali上用nc开启监听
在MySQL通过自定义函数反弹shell
get rootshell
— 实验室旗下直播培训课程 —
和20000+位同学加入MS08067一起学习
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...