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

RemCom和impacket.psexec简介

概述

RemCom是一个开源工具(仿自sysinternals的psexec.exe),使用smb协议远程管理windows终端,被很多恶意样本(如驱动人生病毒或者某些apt组织)使用过,impacket工具集里面的psexec.py集成了RemCom程序的服务器端程序,会在被控端释放运行。本文对这个工具进行简单的介绍,理清它们之间的关系。

样本的基本情况

文件大小: 55.0 KB (56,320 字节)
修改时间: 2024年08月08日,17:21:06
MD5: 6983f7001de10f4d19fc2d794c3eb534
SHA1: 23873bf2670cf64c2440058130548d4e4da412dd
SHA256: 3c2fe308c0a563e06263bbacf793bbe9b2259d795fcc36b953793a7e499e7f71
PE32编译器: EP:Microsoft Visual C/C++(2008-2010)[EXE32]编译器: Microsoft Visual C/C++(2008 SP1)[libcmt]链接程序: Microsoft Linker(9.0)[控制台32,console]

这个样本是impacket工具集合中的psexec.py释放的一个组件,是RemCom,代码在https://github.com/kavika13/RemCom, 这是服务器端。源代码在此(https://github.com/kavika13/RemCom/blob/master/RemComSvc/Service.cpp),不用逆向了。

Impacket

Impacket 是一个用 Python 编写的库,用于处理 SMB/CIFS 协议,以及 Windows 进程注入和其他相关任务。它是一个强大的工具集,主要用于渗透测试和开发目的,可以帮助安全研究人员执行各种任务,如远程执行命令、文件共享管理、Windows身份验证等。

Impacket 的组成部分
Impacket 包含多个模块和工具,其中包括但不限于:

  • smbclient.py: 类似于 Unix/Linux 系统中的 smbclient,用于访问 SMB/CIFS 共享。
  • psexec.py: 用于远程执行命令或启动服务,类似于 Microsoft 的 PsExec 工具。
  • smbserver.py: 用于创建 SMB/CIFS 服务器,可以接收来自客户端的连接请求。
  • getAD.py: 用于获取 Active Directory 中的信息。
  • secretsdump.py: 用于从 Windows 系统中提取 SAM 数据库和密码策略信息。
  • impacket-spoofer: 用于 SMB 重定向攻击。
  • impacket-smbrelay: 用于 SMB 中继攻击。

PSexec和psexec.py

Psexec是一款由Mark Russinovich在1996年开发的Sysinternals系列工具之一,主要功能是用于在远程计算机上执行命令。
在当时,主流的远程运维方式主要还是依赖于Telnet和SSH服务,这两种服务在Windows主机中默认没有安装,而在后来出现的Windows远程桌面服务对带宽的要求有比较高,所以只有700Kb且只需要通过SMB服务进行通信的Psexec工具很快就得到了从事Windows运维以及安全从业者们的关注。
Sysinternals中的Psexec是一款闭源工具,在后来开源爱好者们发布了一款模仿Psexec功能的开源项目RemCom,这个项目托管在Github[https://github.com/kavika13/RemCom]
上,有兴趣的小伙伴可以阅读一下项目的源码。RemCom工具主要由两个部分组成:RemCom和RemComSVC,前者作为客户端运行,后者为一个Windows服务程序,作用是接受客户端指令,在所安装的机器上执行指令并向客户端返回执行结果。
impacket工具出现后,作者@agsolino便将RemComSVC的二进制程序嵌入到Python中,并基于impacket中的DCERPC和SMB协议重新实现了RemCom的功能,并将其命名为psexec.py。

psexec.py的利用方法

控制端 kali
受控端 win7 x86
配置 win7 x86为win7原版系统,关闭防火墙,检查并设置注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system
LocalAccountTokenFilterPolicy = 1 [DWORD]

如下图所示

在kali中使用psexec.py远程执行命令,如下图所示,可以看到将文件nnDXOSFO.exe上传到靶机上。


这个程序其它是revcomsvc.exe,其md5为6983f7001de10f4d19fc2d794c3eb534

驱动人生病毒

攻击者针对驱动人生公司的供应链进行攻击,利用其软件升级通道下发永恒之蓝下载器木马,并利用其软件升级通道下发木马,在攻击模块中利用“永恒之蓝”漏洞攻击,造成短时间内大范围感染。事件发生之后,驱动人生公司对受到木马影响的升级通道进行了紧急关闭。

但该木马下载器的幕后控制者并没有就此放弃行动,而是借助其已经感染的机器进行持续攻击:包括通过云控指令下发挖矿模块,在中招机器安装多个服务以及通过添加计划任务获得持续执行的机会,后续版本在攻击模块新增SMB爆破、远程执行工具psexec攻击、利用Powershell版mimikatz获取密码,以增强其扩散传播能力。

2019年2月10日发现的更新版本中,我们发现攻击者再次对攻击模块进行升级,改变其木马生成方式为Pyinstaller,同时在打包的Python代码中新增了email、cookie、ftp、http相关功能文件。

驱动人生使用Python编译,使用pyinstaller打包成exe文件,其中使用了Impacket库利用永恒之蓝漏洞和psexec攻击。

参考资料

  • Impacket网络协议工具包介绍 - FreeBuf网络安全行业门户
  • 内网渗透瑞士军刀-impacket工具解析(五) - 先知社区 (aliyun.com)
  • GitHub - fortra/impacket: Impacket is a collection of Python classes for working with network protocols.
  • GitHub - kavika13/RemCom: Remote Command Executor: A OSS replacement for PsExec and RunAs - or Telnet without having to install a server. Take your pick 😃
  • 永恒之蓝下载器木马持续活跃:始于供应链攻击,不断变换攻击手法 - FreeBuf网络安全行业门户

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络---OSI七层模型】
  • 用uniapp 及socket.io做一个简单聊天app 撤回聊天及保留聊天记录 6
  • 基于RHEL7的服务器批量安装
  • Vue前端面试基础(一)
  • ptrade排坑笔记——执行k_start.sh脚本发现没有生成日志?
  • html+css+js+jquery实现一个 飘零的树叶
  • 将元组类型的日期时间转换为字符串格式time.asctime([t])
  • RuoYi-Vue源码阅读(一):验证码模块
  • Kylin系列(二)使用
  • 缓存常见问题优化
  • 树莓派边缘计算网关搭建:集成MQTT、SQLite与Flask的完整解决方案
  • 数据结构初阶最终讲:排序
  • 使用python-pptx代码添加幻灯片:向PPT中插入新的幻灯片页面
  • Openwrt配置ZeroTier,实现公网访问内网中服务器
  • Windows下,C# 通过FastDDS高效通信
  • 自己简单写的 事件订阅机制
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CAP 一致性协议及应用解析
  • Docker入门(二) - Dockerfile
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • laravel5.5 视图共享数据
  • PHP变量
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Sass 快速入门教程
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 从零开始学习部署
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 机器学习 vs. 深度学习
  • 浏览器缓存机制分析
  • 容器服务kubernetes弹性伸缩高级用法
  • 一个项目push到多个远程Git仓库
  • 一天一个设计模式之JS实现——适配器模式
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • ​TypeScript都不会用,也敢说会前端?
  • #DBA杂记1
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)(1.13) SiK无线电高级配置(五)
  • (2015)JS ES6 必知的十个 特性
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (ros//EnvironmentVariables)ros环境变量
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (算法)求1到1亿间的质数或素数
  • .gitignore
  • .NET BackgroundWorker
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Reactor简单使用教程
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .NET导入Excel数据
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • .py文件应该怎样打开?
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @RequestMapping-占位符映射
  • @synthesize和@dynamic分别有什么作用?