前提
通过内网信息收集
我们已经拿到肉鸡最高权限并获得了其所在域内信息,了解到了域的域控信息(主机与ip地址),
现在我们需要将靶机作为跳板,进行横向渗透,拿到域内域控主机的控制
将靶机转到CS
我们前面文章已经介绍了CS现在,我们来使用CS(因为它是图形化工程)
tips:CS需要JDK的环境,不用太新的JDK,JDK-8已可以了
win(c/s分离)下
1.启动服务端
命令行输入
teamsever.bat 自己的客户端ip +123456(密码)
2.客户端打开CS目录下的cobalt strike.bat文件
3.客户端输入密码和ip连接到CS服务端
4.建立一个监视器(listeners)
打开监听器,add一个listener选择类型为http端口自定义,选择生成一个.exe类型文件
----这样我们就生成了一个后门
我们使用蚁剑将exe文件上传到靶机,并使用蚁剑打开exe文件,我们便连接到了靶机
payload:
1. HTTP 和 HTTPS Beacon
工作原理:通过 HTTP GET 请求下载任务,通过 HTTP POST 请求传回数据。
特点:传输速度快,但隐蔽性差,容易被防火墙或内网审计工具拦截。
适用场景:适用于需要快速传输数据的场景,但需要注意隐蔽性。
----------------------我们是模拟的就采用最简单的这个,不考虑隐蔽性什么的
2. DNS Beacon
工作原理:使用 DNS 请求将 Beacon 返回,DNS 响应告诉 Beacon 休眠或连接到团队服务器来下载任务。
特点:隐蔽性高,受害者不开放任何端口,可以规避防火墙,走 53 端口。
适用场景:适用于需要高隐蔽性的场景,特别是在目标网络对 DNS 流量较为宽松的情况下。
3. SMB Beacon
工作原理:使用命名管道通过父级 Beacon 进行通讯,子 Beacon 从父 Beacon 获取任务并发送。
特点:相对隐蔽,绕防火墙时可能发挥奇效,基于 Windows 的命名管道通信。
适用场景:适用于内网环境,特别是在目标网络中已经有一个上线的 Beacon 可以作为父 Beacon。
------------------这个payload会用在我们的后面域内渗透
4. TCP Beacon
工作原理:使用 TCP socket 与父 Beacon 进行通信。
特点:流量都是明文的,容易被发现,但在内网穿透时非常有用。
适用场景:适用于内网穿透场景,特别是在其他协议无法使用时。
5. Foreign Beacon
工作原理:主要用于将其他工具(如 Metasploit)生成的 Payload 与 Cobalt Strike 结合使用。
特点:提高 Cobalt Strike 的兼容性,允许与其他工具的集成。
适用场景:适用于需要与其他工具结合使用的场景,如将 Meterpreter 会话转换为 Cobalt Strike 的 Beacon 会话。
6. External C2 Beacon
工作原理:允许用户自定义 C2 通信渠道,不局限于默认的 HTTP、HTTPS、DNS、SMB、TCP 通道。
特点:高度可定制,适用于复杂的网络环境和特定的通信需求。
适用场景:适用于需要自定义通信协议或通道的高级攻击场景。
7. Beacon 的生成模式
Stage (有阶段):Beacon 会分段加载 shellcode,通过不断向 Listener 发起请求,最终获取完整的 shellcode 并执行。
Stageless (无阶段):在生成时包含完整的 shellcode,文件大小较大,但无需分段加载。
适用场景:Stage 模式适用于需要分阶段加载的场景,Stageless 模式适用于需要快速执行的场景。
8. Beacon 的通信策略
异步式通信:通信频率低、速度慢,Beacon 主动请求任务列表,然后进入 SLEEP 状态。
交互式通信:C2 对 Beacon 实时控制,通信频率高,响应速度快。
适用场景:异步式通信适用于需要隐蔽的场景,交互式通信适用于需要实时控制的场景。
tips:挑选后门的类型根据具体情况而定
1.HTML Appliaction:生成一个恶意的HTML Appliacton木马
2.MS Office Macro:生成office宏病毒文件。
3.Payload Generator:生成各种编程语言的payload
4.Windows Executable:生成32位或64位的exe、dll可执行文件
我们这里就选择win的executable(模拟的域控也是win)
5.连接成功点击主机进入beacon
域内渗透困难点
1.我们只有域内一个很普通的服务器的权限;
2.域内域控主机一般不会连接到外网,我们不能使用控制靶机相同的方式控制域控
横向扩散
一般常见的方式有四种
分别是
IPC$,PTH,PTK,PTT等
IPC$扩散
这里我们使用IPC$的方式进行扩散
IPC$
是Windows系统中的一个默认共享,可以利用它在内网中进行横向移动。通过建立IPC 连接,可以将恶意文件复制到目标主机并执行。利用IPC$,甚至可以与目标主机建立一个连接,利用这个连接,连接者可以得到目标主机上的目录结构、用户列表等信息。
---#相当于建立一个两个局域网内的主机通道(小道)
利用条件
开放了139、445端口;
目标开启
ipc$
文件共享;获取用户账号密码。
使用cmd指令建立域内的链接
net use \\目标IP\ipc$ "域成员密码" /user:域名\域成员账号
建立连接后
使用
net share \\目标IP
查看目标服务器所开放的共享资源,也可以直接尝试上传或访问某个共享,确认是否有可以利用的资源或信息
这个时候我们就可以上传我们之前的木马文件+定时(计划)任务使得域控上线
注意
我们的域控不能出网,无法像之前的方式控制域控。
我们必须思考如何才可以连接到网内主机
建立隧道----CS的SMB 管道
----我们(外)是通过控制肉鸡(对外对内)控制域内域控(内)
1.在CS中建立payload为SMB beacon 的监视器
仍然生成win exec的后门(模拟域控也是win)
2.通过肉鸡和域控建立的IPC管道传输后门exe文件
----(1)使用 net use
命令将目标主机的 C$ 共享目录映射到本地的一个驱动器字母(例如 Z:):
net use z: \\目标IP\c$ "密码" /user:"用户名"
---(2)使用shell copy /file \\ip地址\\$C,通过肉鸡的smb后门文件的绝对路径上传到域控的C驱动盘下
-----一个初学的问题
Q:
既然靶机和域内主机已经建立了IPC,为什么还得生成smb 的beacon来使得域内主机上线,而不是直接使用ipc?
A:不考虑隐蔽的情况下
IPC$ 连接:主要用于文件共享和简单的命令执行,功能相对有限。它允许我们复制文件、执行基本命令,但无法进行复杂的交互和任务管理。
困难点2
--我们虽然已经上传了smb的后门文件到域控主机内,但是我们却不能运行域控内的该后门文件,我们该如何运行?
A:服务或计划任务
服务:
通过服务运行 SMB 后门文件
使用 sc
命令在目标主机上创建并启动一个服务来运行 SMB 后门文件:
sc \\目标IP create BackdoorService binPath= "C:\path\to\smb_backdoor.exe" start= auto
sc \\目标IP start BackdoorService
肉鸡连接DC域控
link ip
这样我们就可以通过肉鸡来对域内域控进行控制