[笔记]Windows安全之《三》Shellcode 补充之 Get-InjectedThread脚本搭建环境及其使用

简介: [笔记]Windows安全之《三》Shellcode 补充之 Get-InjectedThread脚本搭建环境及其使用

前言

如何在内存中检测恶意软件

Get-InjectedThread.ps1是一个可以扫描系统上的活动线程可疑的起始地址的脚本。用户可以利用它扫描其网络中的主机,并快速识别许多内存常驻恶意软件技术。该脚本通过使用NtQueryInformationThread函数查询每个活动线程来检索其起始地址。然后,使用VirtualQueryEx函数查询起始地址,以确定相关的节点属性。如果线程启动的存储器区域是未回调的并且是可执行的,即不是映像类型并且具有执行位设置,那么该线程就被认为是注入的。

Get-InjectedThread原理

防御者也在思考可视化(一)

  • 使用ProcessId 为0(所有进程)并将Flag参数设置为4(TH32CS_SNAPTHREAD)调用Create Toolhelp Snapshot。这将返回所有当前正在运行的线程的快照。
  • 使用Thread32First和Thread32Next处理快照中的所有线程。

以下每个步骤都将在每个线程上执行:

  • 调用OpenThread以接收内核中的Thread对象的句柄。
  • 使用Thread句柄,为ThreadInformationClass参数指定值为9(ThreadQuerySetWin32StartAddress)的NtQueryInformationThread。这将返回线程的内存起始地址。
  • 调用OpenProcess来接收当前线程拥有进程的句柄。
  • 将进程句柄和线程起始地址传递给VirtualQueryEx以查询目标内存页面。这将返回一个MEMORY_BASIC_INFORMATION结构。
  • 检查返回结构中的State和Type字段。
  • 所有线程的状态应该是MEM_COMMIT
  • 所有线程的类型应为MEM_IMAGE
  • 如果Type不等于MEM_IMAGE,那么你有一个正在运行代码的线程,这个线程不会被磁盘上的文件(又名注入)所支持。

环境搭建

win10 1903

powershell 5.1

powershell PackageManagement

PowershellGet

PowershellGet安装

Installing PowerShellGet on Windows

PowershellGet的安装非常重要 不然后面脚本会抛异常:

设置脚本运行权限

Set-ExecutionPolicy RemoteSigned

PowerShellGet和NuGet安装

Install-Module PowerShellGet -AllowClobber -Force
Install-PackageProvider -Name NuGet -Force

PSReflect-Functions模块安装

Install-Module PowerShellGet -AllowClobber -Force
Install-Module -Name PSReflect-Functions

TLS版本设置

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

设置PSGallery仓库可信任

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

脚本下载

https://gist.github.com/jaredcatkinson/23905d34537ce4b5b1818c3e6405c1d2

设置Powershell权限

Set-ExecutionPolicy RemoteSigned

导入模块

Import-Module .\Get-InjectedThread.ps1
Import-Module .\Get-MemorySectionContent.ps1
Import-Module .\New-InjectedThread.ps1
Import-Module .\Stop-Thread.ps1

创建一个被注入的线程-New-InjectedThread

Ps>New-InjectedThread

Ps>.\New-InjectedThread.ps1 

注意:这种执行脚本需要在 ps中添加 执行内容即 文件尾部添加一行 执行的函数

执行检测-Get-InjectedThread

Ps>Get-InjectedThread

注意:这种执行脚本需要在 ps中添加 执行内容即 文件尾部添加一行 执行的函数



相关文章
|
1月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
1月前
|
安全 数据安全/隐私保护 Windows
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
|
1月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
|
4天前
|
5G Python
Windows11搭建Python环境(Anaconda安装与使用)
Windows11搭建Python环境(Anaconda安装与使用)
24 0
|
16天前
|
Windows
【Windows】 手写脚本更快编辑hosts文件
【Windows】 手写脚本更快编辑hosts文件
15 0
|
1月前
|
弹性计算 安全 数据安全/隐私保护
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
216 0
|
1月前
|
安全 数据安全/隐私保护 Windows
Windows 命令提示符(CDM)操作(六):安全和权限
Windows 命令提示符(CDM)操作(六):安全和权限
30 0
|
1月前
|
存储 JavaScript 开发工具
Windows 10环境下Git安装之简易指南
该指南教小白在Windows 10上安装Git,介绍Git设置的基础知识,为你的开发项目做准备!
|
2月前
|
Windows 网络安全
Windows【工具 05】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
【2月更文挑战第2天】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
452 0
Windows【工具 05】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
|
2月前
|
消息中间件 Kafka Apache
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)