深入分析PsExec执行行为 ps执行命令步骤在哪里
suiw9 2024-11-11 15:52 15 浏览 0 评论
翻译:WisFree
预估稿费:200RMB(不服你也来投稿啊!)
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
灵感来源
前段时间,我收到了Mark Russinovich的新书-《Troubleshooting with the Windows Sysinternals Tools(2nd Edition)》。拜读完这本大作之后,我脑海中便产生了撰写这篇文章的灵感。虽然我在上周就收到这本书了,但是我到现在仍然对它爱不释手。不仅因为这是一本非常棒的书,而且这本书的主题也是我非常感兴趣的一个方向。比如说,Mark的新书中提供了大量关于Windows DFIR的知识,而这些知识是我们很难在其他地方找到的。因此我建议对这方面话题感兴趣的同学赶紧入手这本书[亚马逊传送门]。
为了更好地理解我在这篇文章中所讲述的内容,我建议各位先在自己的测试环境中安装Windows Sysinternals Suite系统工具套件[下载地址]。
如果你此前并不了解DFIR,并且打算学习这方面内容以提升自己技能的话,我建议你赶紧入手这本书。在过去的几年里,我的工作就是对各种网络攻击事件进行调查和分析,我曾见到过有很多攻击者选择利用Sysinternals工具包来完成他们的攻击任务。不仅如此,有的攻击者甚至在攻击过程中的每一步都会使用这些工具。这些工具非常的流行,有的Windows用户甚至还会去抱怨Mark撰写这样的一本书,因为攻击者可以利用这本书中的内容来编写计算机病毒。
写给DFIR从业者的话:我建议各位一定要深入理解Sysinternals套件中各个工具的运行机制和实现原理。如果你可以做到这一点,那么当你在调查某个网络攻击事件时,你就可以在不需要对恶意软件进行逆向工程分析的情况下了解这款恶意软件的工作机制。如果你能够知道攻击者如何去利用这些工具,你就可以模拟他们的攻击行为,了解他们的操作方法,并且更加清楚地了解到你所在的整个环境可能会存在怎样的攻击面。
写给威胁检测人员的话:你可以通过追踪Sysinternals工具所抛出的异常来迅速检测到环境中可能存在的安全威胁。在本文接下来的内容中,我将会告诉大家如何对该套件中的部分工具进行追踪与分析。
PsExec
在本文中,我所要讲解的第一个工具就是PsExec。我不打算在这里花时间去照本宣科地背诵书本中的内容,我会结合我的工作经验和实践技巧来给大家进行讲解。
PsExec可以允许你在本地主机中执行远程服务器上的命令。PsExec可以算是一个轻量级的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与命令控制台几乎相同的实时交互性。PsExec最强大的功能就是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。
系统管理员通常会使用这款工具来远程执行脚本,例如组件安装脚本或数据收集脚本。这种方法不仅操作起来非常的简单,而且还可以节省资源。最重要的是,这种方法还可以避免服务器出现漏洞。除此之外,很多人也会将其用于软件部署的过程中,虽然也有很多其他的工具可以选择,但是PsExec追求的是性价比。
同样的,攻击者也是考虑到了这些因素所以才会选择PsExec的。除了上述原因之外,还有下面这几点:
1. 这些工具属于合法工具,因此当反病毒软件或终端检测产品检测到了这类恶意软件之后,有可能只会发出警告,或者直接忽略它们。具体将取决于用户的设置情况。
2. 这些工具可以直接从微软的官方网站免费下载获取。
3. 如果攻击者在恶意软件中使用这些工具的话,目标用户的计算机中很可能已经安装好这些工具了,所以这也为攻击者提供了方便。
我在之前的工作过程中,曾经发现过一个经验极其丰富的黑客组织。当时他们就是将一个修改版的PsExec来作为主要的恶意软件部署工具。由于只有他们会使用这种方法来部署恶意软件,因此任何一名安全分析人员都可以检测到该组织的恶意软件。
在这里,我必须要再次强调一下,对于DFIR分析人员来说,深入理解这些工具真的非常重要。接下来,我会告诉大家如何去检测环境中是否存在PsExec的活动。
PsExec的执行与服务安装
在绝大多数情况下,我们只有在与远程系统交互时才会使用到PsExec。以下几点是我们需要注意的:
1. PSEXESVC服务将会安装在远程系统中,此时将会生成Event 4697和Event 7045这两种事件日志。需要注意的是,Event 4697日志记录将有可能包含账号信息。
2. 还有可能预生成Event 4624和Event 4652 Windows事件日志,日志会记录下该工具的使用数据。
3. 可执行程序PSEXESVC.EXE将会被提取至Windows目录下,然后再执行远程操作。
在PSEXESVC.EXE的提取和执行过程中你需要注意的是:
1. 如果启用了这个服务的话,系统中将会生成一个关于PSEXESVC.EXE的文件。
2. 这个文件将会被保存在AppComapt或Amcache之。在新版操作系统下,
这个文件将会替换掉RecentFileCache.bcf。
PsExec命令在目标系统中每执行一次,都会向目标系统写入一个新的可执行文件。PsExec提取PSEXESVC.EXE的操作也不止一次,它的每一个示例都会进行一次这样的操作。这样一来,每一次提取都会生成新的元数据和新的时间戳。
首先,每当你使用PsExec来与目标系统进行连接时,你都会收到一个AppCompat条目。先看看下面这张图片,其中显示的是ShimCacheParser.py的输出数据:
你会发现输出路径都是相同的,但是每一个PSEXESVC实例的生成时间都不同。在查看了相关的Event 7045事件日志条目之后,你也许就可以发现其中的关联性了:
请注意事件日志条目与AppCompat条目之间的关联,你发现了其中的差异吗?
接下来,让我们看看51BA46F2.pf文件(PSEXESVC.EXE的解析文件)的输出信息:
实用参数
如果你碰巧发现了可疑的PsExec活动,那么下面这几个参数也许可以帮助你识别这些可疑活动。
1.参数“-r”可以对远程服务进行自定义配置。我曾见到过有攻击者使用过这个参数,这将增加我们识别PsExec服务的难度。但是很多情况下,网络管理员也会使用这个参数来进行合法操作。所以了解你的网络环境是非常重要的。我之前所说的那个黑客组织曾经在攻击过程中,还将远程系统中原本的PSEXESVC.EXE文件重命名为了PRAMEPKG.EXE。除此之外,其他的一些服务名称也被修改了。具体如下图所示:
2.参数“-u”和“-p”指的就是用于远程登录的用户名和密码。如果参数“-p”为空,系统则会要求用户提供相应的密码。系统管理员请注意,请不要将这部分信息硬编码在你的脚本中,因为攻击者将有可能获取到凭证数据。
3.参数“-c”可以允许我们将某个特定的程序拷贝到远程系统中并执行。
4.参数“-s”将会用系统账号执行远程命令。
总结
如果你发现了PsExec活动,请赶紧检查这个活动是否使用了你的sysadmins权限。在一个大规模的环境下,这种方法可以迅速地帮你过滤掉假阳性,并且显著地降低环境中出现安全事故的可能性。
相关推荐
- 看完这一篇数据仓库干货,终于搞懂什么是hive了
-
一、Hive定义Hive最早来源于FaceBook,因为FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产生了Hive这们技术,并继续发展成为一个成...
- 真正让你明白Hive参数调优系列1:控制map个数与性能调优参数
-
本系列几章系统地介绍了开发中Hive常见的用户配置属性(有时称为参数,变量或选项),并说明了哪些版本引入了哪些属性,常见有哪些属性的使用,哪些属性可以进行Hive调优,以及如何使用的问题。以及日常Hi...
- HIVE SQL基础语法(hive sql是什么)
-
引言与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据...
- [干货]Hive与Spark sql整合并测试效率
-
在目前的大数据架构中hive是用来做离线数据分析的,而在Spark1.4版本中spark加入了sparksql,我们知道spark的优势是速度快,那么到底sparksql会比hive...
- Hive 常用的函数(hive 数学函数)
-
一、Hive函数概述及分类标准概述Hive内建了不少函数,用于满足用户不同使用需求,提高SQL编写效率:...
- 数仓/数开面试题真题总结(二)(数仓面试时应该讲些什么)
-
二.Hive...
- Tomcat处理HTTP请求流程解析(tomcat 处理请求过程)
-
1、一个简单的HTTP服务器在Web应用中,浏览器请求一个URL,服务器就把生成的HTML网页发送给浏览器,而浏览器和服务器之间的传输协议是HTTP,那么接下来我们看下如何用Java来实现一个简单...
- Python 高级编程之网络编程 Socket(六)
-
一、概述Python网络编程是指使用Python语言编写的网络应用程序。这种编程涉及到网络通信、套接字编程、协议解析等多种方面的知识。...
- [904]ScalersTalk成长会Python小组第20周学习笔记
-
Scalers点评:在2015年,ScalersTalk成长会Python小组完成了《Python核心编程》第1轮的学习。到2016年,我们开始第二轮的学习,并且将重点放在章节的习题上。Python小...
- 「web开发」几款http请求测试工具
-
curl命令CURL(CommandLineUniformResourceLocator),是一个利用URL语法,在命令行终端下使用的网络请求工具,支持HTTP、HTTPS、FTP等协议...
- Mac 基于HTTP方式访问下载共享文件,配置共享服务器
-
方法一:使用Python的SimpleHTTPServer进行局域网文件共享Mac自带Python,所以不需要安装其他软件,一条命令即可...
- 使用curl进行http高并发访问(php curl 大量并发获得结果)
-
本文主要介绍curl异步接口的使用方式,以及获取高性能的一些思路和实践。同时假设读者已经熟悉并且使用过同步接口。1.curl接口基本介绍curl一共有三种接口:EasyInterface...
- Django 中的 HttpResponse理解和用法-基础篇1
-
思路是方向,代码是时间,知识需积累,经验需摸索。希望对大家有用,有错误还望指出。...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)