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

SMB攻击利用之-设置远程mimikatz程序为定时任务流量数据包分析

SMB协议作为windows环境下最为常见的一种协议,在历史上出现过无数的通过SMB协议进行网络攻击利用的案例,包括针对SMB协议本身以及通过SMB协议实施网络攻击。

本文将介绍一种SMB协议的常见利用方式,即通过windows的服务调用将远程主机上的mimikatz程序设置为定时任务,作为我的专栏《SMB攻击流量数据包分析》中的一篇,这里,为日常安全运营,护网HVV,重保过程中遇到的关于类似的流量分析提供参考。

mimikatz

mimikatz 是用C语言编写一个Windows命令行工具,用于提取内存中的明文密码,hash和kerberos票据,是非常著名的网络安全工具,详见,这里。如下是使用mimikatz在本地提取内存中的明文密码:
在这里插入图片描述
图1
mimikatz既然本地可以执行,那么远程也是可以被调用的,例如在之前的文章就介绍了psexec连接远程主机的命令行,详见之前的文章《PsExec使用过程介绍》,这里。因此在命令行中是可以启动mimikatz程序的,如下:
在这里插入图片描述
图2
本文介绍的是通过windows的定时任务接口,远程将mimikatz设置为定时任务。

数据包

本文使用的数据包为使用windows Microsoft AT-Scheduler Service服务将远程主机上的mimikatz设置为定时任务,对应的数据包链接这里。

逆向分析

连接概况

拿到任何一个数据包,需要总体观察该数据包的通信情况,统计->会话,统计->流量图 对该数据20171220_smb_at_schedule.pcap进行整体分析,如下图:
在这里插入图片描述
图3
在这里插入图片描述
图4

从TCP会话表和流量图可以得出以下的信息:

  • 该数据包只有一条流,是为了便于分析经过裁剪的数据包。
  • 五元组(192.168.10.31,49266,192.168.10.30,445,TCP)产生了3K,20个数据包的通信流量。
  • 整个会话的持续时长为12秒 。
  • 该会话上主要以SMB,DCERPC等应用层协议服务为主。
  • 深入之后还会发现通过DCERPC调用了windows的ATSVC等服务,添加了定时任务。

SMB请求ATSVC

由于这是一个经过裁剪的数据包,发现数据包中并没有SMB协议协商和用户认证的过程,该流的前四个数据包表示的是SMB层次和ATSVC服务进行握手和协商,如下:
在这里插入图片描述
图5
在这里插入图片描述
图6
由图5图6可知:

  • ATSVC虽然是一个服务,但是图5中,使用file ID表示该服务。这与Linux系统中一切皆文件的思想是匹配的。
  • 在成功获取ATSVC服务的响应,192.168.10.31又请求了该文件的一些属性。通过这些属性可以了解到该服务并不是一个目录等信息。
  • 由于第4个数据包的响应中没有文件ID的信息,192.168.10.31收到响应之后是如何知道对应哪个请求的呢,这个就是message ID的作用,不同请求的message ID 是不同的。详见之前的文章《SMB 协议详解之-process/user/session/tree/message/file ID原理和数据包分析技巧》,这里。

上述ATSVC是The Task Scheduler Remoting Protocol 的一个过程调用,是微软一个细分的方法调用接口,该协议用来远程管理定时任务,详细链接这里,如下:
在这里插入图片描述
图7

DCERPC绑定请求

SMB协议对于ATSVC的请求只是远程调用这个服务层次完成握手,关于要使用ATSVC服务的哪个方法,一般需要使用DCERPC协议完成细粒度的方法的调用。关于RPC协议的介绍,详见我的专栏之前的文章《DCE/RPC协议详解之-数据包请求响应过程》,这里。如下为具体哪一个方法调用之前的DCERPC的握手过程:
在这里插入图片描述
图8
在这里插入图片描述
图9
可以看到通过RPC的协商,绑定了远端服务64位的 \PIPE\atsvc 管道服务。

添加定时任务请求

上述的DCE/RPC完成对应的接口管道绑定之后,就会请求对应的方法,如下:
在这里插入图片描述
图10
在这里插入图片描述
图11
图10和图11可知:

  • 调用了ATSVC中的几jobadd方法 。
  • 对应的servername为\admin-pc。
  • 定时任务对应的执行命令为C:\mimikatz.exe。
  • 执行之间为47100000,对应的时间为。
  • 远端状态响应为success,表示定时任务设置成功。

关闭不同层次连接

可以看到上图4中最后会主动关闭一些不同层次连接请求,主动的关闭服务的连接是一个比较好的习惯。即使不关闭连接,服务端往往在超时之后,也会主动释放服务端资源进行服务的关闭。

以上就是通过对于设置mimikatz为远程定时任务数据包的逆向分析,了解到数据包执行了哪些具体的命令和操作。可以看到通过对于数据包的逆向,知道了主机 192.168.10.31向远程主机192.168.10.30设置了定时执行的命令C:\mimikatz。在响应的过程中可以,检查该目录是否存在该程序,然后清除定时任务以及清除该文件等。希望上述的逆向分析对你日常工作有所帮助。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。


http://www.mrgr.cn/news/18988.html

相关文章:

  • 【鸿蒙开发从0到1 day05】
  • 今天来聊一聊前端框架有哪些呢? 主流Vue和React
  • 【C++ Primer Plus习题】10.1
  • chapter12-异常(Exception)——(注解)——day14
  • accelerate一些类和函数说明二
  • 记录一下安装腾讯混元文生图模型的艰辛历程
  • 新版某数字壳脱壳,过frida检测,及重打包
  • 全网都在学,2024最新大模型畅销的三本书!千言万语,尽在书中
  • KAN 学习 Day2 —— utils.py及spline.py 代码解读及测试
  • ES6 URL对象
  • java和js计算文件的SHA-256哈希值
  • 鼎曼高品质老白茶,在时光的声色里芬芳隽永
  • RDP最小化之后仍然保持UI渲染的方法
  • 【计算机网络】socket编程 --- 实现简易TCP网络程序
  • C++进阶面试题
  • 九月最新蜘蛛池|泛码网的SEO工具怎么样?
  • 【C++】---STL之用哈希桶模拟实现:unordered_set和unordered_map
  • EEPROM 扫盲
  • 十分钟让你彻底明白正则表达式
  • AI模型:追求全能还是专精?-- 之3:“智能”符号学诠释的程序逻辑分析