恶意程序分析利器PowerShellArsenal

简介

成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达10年累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都楼梯护栏等企业,备受客户赞扬。

PowerShellArsenal是一个PowerShell模块,它的功能是帮助逆向工程师来分析.NET恶意软件,PowerShellArsenal的功能非常强大,它可以反汇编.NET恶意软件、分析和抓取内存、解析文件格式和内存结构,获取内部系统信息等。

1.Disassembly

反汇编代码

(1)Get-CSDisassembly

使用Capstone Engine反汇编引擎反汇编代码

使用方法:

 
 
 
 
  1. Get-CSDisassembly -Architecture {Arm | Arm64 | Mips | X86 | PPC | CS_ARCH_ALL} -Mode {LittleEndian | Arm | Mode16 | 
  2.  Mode32 | Mode64 | Thumb | Micro | N64 | BigEndian} -Code  [-Offset ] [-Count ] [-Syntax 
  3. tring>] [-DetailOn] [

(2)Get-ILDisassembly

MSIL(Microsoft Intermediate Language (MSIL)微软中间语言。)反汇编器。

使用方法:

 
 
 
 
  1. Get-ILDisassembly -AssemblyPath  -MetadataToken  [
  2.  
  3. Get-ILDisassembly -MethodInfo  [
  4.  
  5. Get-ILDisassembly -MethodDef  [

2.MalwareAnalysis

分析恶意软件时需要用到的工具。

(1)New-FunctionDelegate

提供了一个X86或x86_64功能的可执行包装。

使用方法:

 
 
 
 
  1. New-FunctionDelegate [[-Parameters] ] [[-ReturnType] ] [-FunctionBytes]  [[-CallingConvention 
  2. ] {Winapi | Cdecl | StdCall | ThisCall | FastCall}] [-DebugBreak] [

(2)Invoke-LoadLibrary

主要调用kernel32!LoadLibrary用于恶意软件分析,将DLL加载到当前的PowerShell进程中。

使用方法:

 
 
 
 
  1. Invoke-LoadLibrary [-FileName]  [

(3)New-DllExportFunction

New-DllExportFunction接受一个模块,然后导出procedure name,返回类型、参数类型。***创建一个托管的委托,可用于执行非托管函数。

使用方法:

 
 
 
 
  1. New-DllExportFunction [-Module]  [-ProcedureName]  [[-Parameters] ] [[-ReturnType] < 
  2. Type>] [

(4)Get-HostsFile

解析HOSTS文件

使用方法:

 
 
 
 
  1. Get-HostsFile [[-Path] ] [-Show] [

(5)New-HostsFileEntry

替换或添加内容到HOSTS文件

使用方法:

 
 
 
 
  1. New-HostsFileEntry [-IPAddress]  [-Hostname]  [[-Comment] ] [-Path ] [-PassThru] 
  2.  [-Show] [

(6)Remove-HostsFileEntry

从HOSTS文件中删除内容

使用方法:

 
 
 
 
  1. Remove-HostsFileEntry -IPAddress  [-Path ] [-PassThru] [-Show] [
  2.  
  3. Remove-HostsFileEntry -Hostname  [-Path ] [-PassThru] [-Show] [
  4.  
  5. Remove-HostsFileEntry [-Path ] [-PassThru] [-Show] [-HostsEntry ] [

(7)Get-AssemblyStrings

输出.NET可执行文件所有定义的字符串

使用方法:

 
 
 
 
  1. Get-AssemblyStrings -AssemblyPath  [-HeapType ] [-Raw] [
  2.  
  3. Get-AssemblyStrings -AssemblyBytes  [-HeapType ] [-Raw] [
  4.  
  5. Get-AssemblyStrings -AssemblyInfo  [-HeapType ] [-Raw] [

(8)Get-AssemblyResources

提取程序中的资源

 
 
 
 
  1. Get-AssemblyResources -AssemblyPath  [
  2.  
  3. Get-AssemblyResources -AssemblyBytes  [
  4.  
  5. Get-AssemblyResources -AssemblyInfo  [

(9)Remove-AssemblySuppressIldasmAttribute

从.NET程序集中删除SuppressIldasmAttribute属性。

使用方法:

 
 
 
 
  1. Remove-AssemblySuppressIldasmAttribute -AssemblyPath  -FilePath  [
  2.  
  3. Remove-AssemblySuppressIldasmAttribute -AssemblyBytes  -FilePath  [
  4.  
  5. Remove-AssemblySuppressIldasmAttribute -AssemblyInfo  -FilePath  [

(10)Get-AssemblyImplementedMethods

返回程序的所有方法。

使用方法:

 
 
 
 
  1. Get-AssemblyImplementedMethods -AssemblyPath  [
  2.  
  3. Get-AssemblyImplementedMethods -AssemblyBytes  [
  4.  
  5. Get-AssemblyImplementedMethods -AssemblyInfo  [

3.MemoryTools

检查和分析进程内存

(1)Get-ProcessStrings

输出一个进程的用户模式内存中所以可打印的字符串

使用方法:

 
 
 
 
  1. Get-ProcessStrings [-ProcessID]  [-MinimumLength ] [-Encoding ] [-IncludeImages] [
  2. ameters>] 

(2)Get-VirtualMemoryInfo

调用的kernel32!VirtualQueryEx

使用方法:

 
 
 
 
  1. Get-VirtualMemoryInfo [-ProcessID]  [-ModuleBaseAddress]  [-PageSize ] [

(3)Get-ProcessMemoryInfo

类似于!vadump WinDbg命令

使用方法:

 
 
 
 
  1. Get-ProcessMemoryInfo [-ProcessID]  [

(4)Get-StructFromMemory

将数据从任意进程中的非托管内存块调度到新分配的指定类型的托管对象。

 
 
 
 
  1. Get-StructFromMemory [-Id]  [-MemoryAddress]  [-StructType]  [

4.Parsers

解析文件格式和内存结构

(1)Get-PE

分析内存和磁盘上文件的PE头

使用方法:

 
 
 
 
  1. Get-PE [-ProcessID]  [[-ModuleBaseAddress] ] [[-Module] ] [-DumpDirectory 
  2.  [-IgnoreMalformedPE] [
  3.  
  4. Get-PE [-FileBytes]  [-IgnoreMalformedPE] [

(2)Find-ProcessPEs

在内存中查找可移植的可执行文件,而不管它们是否以合法方式加载

使用方法:

 
 
 
 
  1. Find-ProcessPEs [-ProcessID]  [

(3)Get-LibSymbols

显示来自Windows LIB文件的符号信息。

使用方法:

 
 
 
 
  1. Get-LibSymbols [-Path]  [

(4)Get-ObjDump

显示有关Windows对象(OBJ)文件的信息。

使用方法:

 
 
 
 
  1. Get-ObjDump [-Path]  [

5.WindowsInternals

获取并分析低级别的Windows操作系统的信息。

(1)Get-NtSystemInformation

一个实用的程序,调用ntdll!NtQuerySystemInformation函数,可用于查询通常对用户不可见的内部操作系统信息。

使用方法:

 
 
 
 
  1. Get-NtSystemInformation [-PoolTagInformation] [
  2.  
  3. Get-NtSystemInformation [-ModuleInformation] [
  4.  
  5. Get-NtSystemInformation [-HandleInformation] [-ObjectType ] [
  6.  
  7. Get-NtSystemInformation [-ObjectInformation] [
  8.  
  9. Get-NtSystemInformation [-LockInformation] [
  10.  
  11. Get-NtSystemInformation [-CodeIntegrityInformation] [
  12.  
  13. Get-NtSystemInformation [-GlobalFlags] [

(2)Get-PEB

返回一个进程的进程环境块(PEB)。

使用方法:

 
 
 
 
  1. Get-PEB [-Id]  [

(3)Register-ProcessModuleTrace

跟踪加载进程的模块

使用方法:

 
 
 
 
  1. Register-ProcessModuleTrace [

(4)Get-ProcessModuleTrace

显示已加载自调用Register-ProcessModuleTrace流程模块

使用方法:

 
 
 
 
  1. Get-ProcessModuleTrace [

(5)Unregister-ProcessModuleTrace

停止正在运行的进程模块跟踪

使用方法:

 
 
 
 
  1. Unregister-ProcessModuleTrace [

(6)Get-SystemInfo

调用kernel32!GetSystemInfo来获取系统的一些信息。

使用方法:

 
 
 
 
  1. Get-SystemInfo [

6.Misc

其他的辅助功能

(1)Get-Member

用于扩展内置Get-Member cmdlet的代理函数

使用方法:

 
 
 
 
  1. Get-Member [-InputObject ] [[-Name] ] [-MemberType {AliasProperty | CodeProperty | Property | 
  2. NoteProperty | ScriptProperty | Properties | PropertySet | Method | CodeMethod | ScriptMethod | Methods | Parameter 
  3. izedProperty | MemberSet | Event | Dynamic | All}] [-View {Extended | Adapted | Base | All}] [-Static] [-Force] [
  4. ommonParameters>] 
  5.  
  6. Get-Member [-InputObject ] [[-Name] ] [-PrivateMemberType {Constructor | Event | Field | Metho 
  7. d | Property | TypeInfo | Custom | NestedType | All}] [-Static] [-Force] [-Private] [

(2)Get-Strings

Get-Strings cmdlet从文件返回字符串(Unicode和/或Ascii)。 此cmdlet对转储字符串很有用。

使用方法:

 
 
 
 
  1. Get-Strings [-Path]  [-Encoding ] [-MinimumLength ] [

(3)ConvertTo-String

ConvertTo-String执行二进制正则表达式非常有用。

使用方法:

 
 
 
 
  1. ConvertTo-String [-Path]  [

(4)Get-Entropy

计算文件或字节数组的熵。

使用方法:

 
 
 
 
  1. Get-Entropy [-ByteArray]  [
  2.  
  3. Get-Entropy [-FilePath]  [

项目地址:https://github.com/mattifestation/PowerShellArsenal

分享名称:恶意程序分析利器PowerShellArsenal
标题来源:http://www.hantingmc.com/qtweb/news2/301452.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联