查找 .Net 程序集

admin 2023年9月13日10:41:44评论11 views字数 2467阅读8分13秒阅读模式

我从观看 .net 程序集被移动和挖空的经验中知道,不会有命令行参数。我的大部分内容都不会触发。但是,现在它的移动对我来说很重要。从过去的工作中,我知道 Windows 上有许多本机 .Net 程序集。有些甚至通过 SDK 或其他开发人员工具进入。本土的可能是最有趣的。我们如何找到它们?

我发现这个是 TheWover 写的——Find -Assemblies.ps1(我们之前写过类似的东西,但是这更适合分享)

这很容易使用。对于我的用例,我在 Server 2016 和 Windows 11 上运行了这个。我知道我没有得到 _everything_ ,但至少我们得到了最常见的 43 个。

. .Find-Assemblies.ps1 -Directory 'C:Windows' -Recurse

复制

查找程序集

通过这个列表,我删除了二进制名称和路径,并创建了一个 Splunk 查找。这需要最新的Sysmon TA和 CIM 4.20 及更高版本,以及ESCU

作为新查找上传到 Splunk,为其命名。

现在,让我们测试一下。我将常用路径从列表中拉出并将它们排除在外。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where NOT (Processes.process_path IN ("*\Windows\ADWS\*","*\Windows SysWOW64*""*\Windows\system32*""*\Windows\NetworkController\*""*\Windows\SystemApps\*""*\WinSxS\* ", "*\Windows\Microsoft.NET\*")) 由 Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.process Processes.original_file_name Processes.process_path Processes.process_id Processes.parent_process_id 
 | `drop_dm_object_name("进程")`
 | `security_content_ctime(firstTime)`
 | `security_content_ctime(lastTime)`

复制

然后我将添加我的查找

| 查找 update=true is_net_windows_file_origname 文件名作为 process_name OUTPUT netFile 
| 查找更新=true is_net_windows_file_origname originalFileName as original_file_name OUTPUT netFile
| 搜索 netFile=True

复制

这里有点玄学。我了解到您可以进行两次这样的查找,这对我来说改变了这个查询的游戏。特别是,如果二进制文件被移动和重命名,那么它就不会被称为 installutil.exe。第一个查找是 process_name,第二个是使用 original_file_name。我在本地系统和Strontic之间进行了交叉引用,因此它们应该_all_准确。根据需要更新。

最终查询:

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where NOT (Processes.process_path IN ("*\Windows\ADWS\*","*\Windows SysWOW64*""*\Windows\system32*""*\Windows\NetworkController\*""*\Windows\SystemApps\*""*\WinSxS\* ", "*\Windows\Microsoft.NET\*")) 由 Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.process Processes.original_file_name Processes.process_path Processes.process_id Processes.parent_process_id 
 | `drop_dm_object_name("进程"
 )
`
| `security_content_ctime(firstTime)`
 | `security_content_ctime(lastTime)` | 查找 update=true is_net_windows_file_origname 文件名作为 process_name OUTPUT netFile| 查找更新=true is_net_windows_file_origname originalFileName as original_file_name OUTPUT netFile
| 搜索 netFile=True

复制

我肯定会错过其他依赖于 SDK 和开发人员实用程序的二进制文件,但是,这是一个很好的开始。

复制一些二进制文件并运行查询:

复制项目 C:WindowsWinSxSx86_installutil_b03f5f7f11d50a3a_4.0.15744.161_none_12f75b90c6cbba6cInstallUtil.exe c:tempinstallut.exe

复制

此分析将识别 Windows 上已移动和重命名的 .Net 程序集。我希望您发现这对了解编写内容的一些幕后检测工程很有用。



原文始发于微信公众号(菜鸟小新):查找 .Net 程序集

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月13日10:41:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   查找 .Net 程序集http://cn-sec.com/archives/2032403.html

发表评论

匿名网友 填写信息