[笔记]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中添加 执行内容即 文件尾部添加一行 执行的函数



相关文章
|
26天前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
46 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
4月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
111 32
|
3月前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
4月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
5月前
|
监控 Ubuntu Linux
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
这篇文章介绍了如何在Ubuntu和Windows系统中通过设置相同的时区并使用ntp服务来解决时间同步问题。
130 4
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
|
4月前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
155 1
|
5月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
5月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
101 2
|
5月前
|
缓存 安全 网络协议
Windows 安全基础——NetBIOS篇
Windows 安全基础——NetBIOS篇
94 4
|
5月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
234 0