AMSI 的工作原理 当用户执行脚本或启动 PowerShell 时,AMSI.dll 被注入进程内存空间。在执行之前, 防病毒软件使用以下两个 API 来扫描缓冲区和字符串以查找恶意软件的迹象。...创建 PowerShell 进程后,AMSI.DLL 将从磁盘加载到其地址空间。 在 AMSI.DLL 中,有一个称为 AmsiScanBuffer() 的函数,本质上是用于扫描脚本内容的函数。...Office VBA + AMSI 当然amsi也可以检测vba和Java script 在实战中,使用宏攻击(钓鱼)也是我们常用的手法,所以我们要知道amsi对宏文件的检测流程 在微软文档中我们可以看到...我们可以看一个例子来理解amsi检测查杀vba的流程: 跟powershell一样我们也使用远程加载powershell恶意代码。这样更贴近实战。...该协议允许 VBA 运行时向反病毒系统报告它即将执行的某些高风险代码行为,并允许反病毒在观察到的行为序列表明可能存在恶意活动时向进程报告,以便 Office应用程序可以采取适当的行动。
映像劫持 这个和shift后门差不多,只不过在低版本的windows中,我们可以简单地替换程序,但是在高版本的windows版本中替换的文件受到了系统的保护,所以这里我们要使用另外一个知识点:映像劫持。...PS:来自百度百科 简单来说就是当目标程序被映像劫持时,当我们启动目标程序时,启动的是劫持后的程序而不是原来的程序 操作也很简单,在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft...定时任务 windows下定时任务的命令有两个分别是:at和schtasks,他们两者主要区别是at命令在win7、08等高版本的windows中是不能将任务在前台执行的,也就是只会打开一个后台进程,而...用户登陆初始化 Userinit的作用是用户在进行登陆初始化设置时,WinLogon进程会执行指定的login scripts,所以我们可以修改它的键值来添加我们要执行的程序 注册表路径为:HKLM\SOFTWARE...这个和CRL劫持.NET程序类似,也是通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator的劫持,而系统很多正常程序启动时需要调用这两个实例
在 .NET 中创建进程时,可以传入 ProcessStartInfo 类的一个新实例。在此类型中,有一个 UseShellExecute 属性。...本文介绍 UseShellExecute 属性的作用,设为 true 和 false 时,分别有哪些进程启动行为上的差异。...---- 本质差异 Process.Start 本质上是启动一个新的子进程,不过这个属性的不同,使得启动进程的时候会调用不同的 Windows 的函数。...不过,此方法有一些值得注意的地方: 不支持重定向输入和输出 最终启动了哪个进程可能是不确定的,你可能需要注意潜在的安全风险 而 CreateProcess 则会精确查找路径来执行,不支持各种非可执行程序的打开...但是: 支持重定向输入和输出 如何选择 UseShellExecute 在 .NET Framework 中的的默认值是 true,在 .NET Core 中的默认值是 false。
最近的错误是该数组中的第一个错误对象 ($Error[0])。 $False 包含 FALSE。可以使用此变量在命令和脚本中表示 FALSE,而不是使用字符串”false”。...可以对 $ForEach 变量的值使用枚举数的属性和方法。 此变量仅在运行 For 循环时存在,循环完成即会删除。 $Home 包含用户的主目录的完整路径。...$Profile 包含当前用户和当前主机应用程序的 Windows PowerShell 配置文件的完整路径。可以在命令 中使用此变量表示配置文件。...可以在 Windows PowerShell 文件 的路径中使用此变量。...Powershell支持四个作用域:全局、当前、私有和脚本。有了这些作用域就可以限制变量的可见性了,尤其是在函数和脚本中。
注册表类: 普通注册表后门 在一般用户权限下,通常是将要执行的后门程序或脚本路径填写到如下注册表的键值中HKCU\Software\Microsoft\Windows\CurrentVersion\Run...这种行为由注册表管理,该注册表定义在Windows登录期间启动哪些进程。所以我们可以依靠这个注册表来进行权限维持。...因为他在启动时会默认加载oci.dll,SQLLib80.dll和xa80.dll。Windows系统默认不包含oci.dll。...我们将后门dll将其重命名为oci.dll,并将其放置在%SystemRoot%\system32\中,那么重启时,就会加载我们的dll,然后得到一个session。...WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是Windows系统自带功能。而且整个运行过程都在计算机内存中发生,不会留下任何痕迹。
实际情况是恶意宏(VBA代码)在后台执行,并调用Document_Open函数,在“C:\Users\Public\”中创建“tmpdir”文件夹。然后将QBot有效负载下载到此文件夹中。...PowerShell代码在循环中选择五个URL之一,将有效载荷文件888888.png(EXE文件)下载到“ C:\Users\Public\tmpdir\”中。...执行Payload “ file1.exe”是受保护的有效负载, 启动时将QBot提取到内存中并执行。...当由PowerShell启动时不提供任何参数,它会转到非参数分支,该分支首先使用命令行参数“ /C”生成自身子进程。 ? “/C”功能用于检查它是否在分析环境中运行。...使用WMI运行QBot是比直接调用CreateProcess来保护进程更好。WMI由Windows进程“wmiprvse.exe”处理,该进程随后执行mavrihvu.exe。 ?
结合上面powershell中的msf方法,可以达到无文件后门效果: Powershell实现: Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\WINDOWS NT...事实上在该过程中,Windows还会在注册表的上述路径中查询所有的映像劫持子键,如果存在和该程序名称完全相同的子键,就查询对应子健中包含的"dubugger"键值名,并用其指定的程序路径来代替原始的程序...直观的理解:系统在启动时默认启动进程explorer.exe,explorer.exe会调用shell32.dll,加载COM对象MruPidlList 此类型的后门多次被恶意软件使用:comRAT,ZeroAccess.../3gstudent/Waitfor-Persistence 检测及查杀 留意后台进程waitfor.exe 使用Process Explorer查看后台可疑的cmd.exe和powershell.exe...从技术上说,获取其它的进程并修改它一般是通过操作系统提供的调试接口来实现的,在linux中具有调试功能的工具有ptrace、Gdb、radare2、strace等,这些工具都是使用ptrace这个系统调用来提供服务的
1、隐藏文件 使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读文件属性和隐藏文件属性。...attrib +s +a +h +r shell.php //隐藏shell.php文件 2、修改文件时间属性 当你试图在一堆文件中隐藏自己新创建的文件,那么,除了创建一个迷惑性的文件名,还需要修改文件的修改日期...> 4、不死马 不死马会删除自身,以进程的形式循环创建隐蔽的后门。 <?...5、中间件后门 将编译好的so文件复制到modules文件夹,启动后门模块,重启Apache。当发送特定参数的字符串过去时,即可触发后门。...,常用于页面公共头部和尾部,也可以用来隐藏php后门。
读取域控上所有域用户的Hash值 使用PowerShell命令抓取内存中的密码 PwDump7抓取密码 HashQuarksPwDump抓取密码Hash 通过SAM和System...,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,...注:但是在安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存中就不再保存明文的密码,这样利用mimikatz就不能从内存中读出明文密码了。...::lsa /patch 3 使用PowerShell命令抓取内存中的密码 读取密码明文(需要管理员权限) #远程读取 powershell IEX (New-Object Net.WebClient...在日常网络维护中,通过查看注册表项Wdigest,可以判断Wdigest功能的状态。如果该项的值为1,用户下次登录时,攻击者就能使用工具获取明文密码。
本章介绍了3种常用的病毒木马启动技术,它包括: q 创建进程API:介绍使用WinExec、ShellExecute以及CreateProcess创建进程。...4.1 创建进程API 在一个进程中创建并启动一个新进程,无论是对于病毒木马程序还是普通的应用程序而言,这都是一个常见的技术,最简单的方法无非是直接通过调用WIN32 API函数创建新进程。...如果此值为NULL,则使用当前的工作目录。如果在lpFile中提供了相对路径,请不要对lpDirectory使用相对路径。 nShowCmd [in] 指定应用程序在打开时如何显示标志。...在Windows XP、Windows Server 2003,以及更老版本的Windows操作系统中,服务和应用程序使用相同的会话(SESSION)来运行,而这个会话是由第一个登录到控制台的用户来启动的...PE结构使用导入表来记录PE程序中所有引用的函数及其函数地址。在DLL映射到内存之后,需要根据导入表中的导入模块和函数名称来获取调用函数的地址。
宏是 Office 自带的一种高级脚本特性,通过 VBA 代码, 可以在 Office 中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中 的一些任务自动化。...Visual Basic for Applications(VBA)是 Visual Basic 的一种宏语言,是微软开发出来在 其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。...可以隐藏 VBA 宏,踩 VBA 代码(通过 P 代 码)并混淆宏分析工具。 在 Linux,OSX 和 Windows 上运行。...把这两个下载回来即可 使用方法: EvilClippy.exe -s hello.vba diaoyu.doc 参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序,这里我们需要写一个正常...VirtualAllocEx 指定进程的虚拟空间保留或提交内存区域 WriteProcessMemory 写入某一进程的内存区域 CreateProcess 创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件
宏是 Office 自带的一种高级脚本特性,通过 VBA 代码, 可以在 Office 中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中 的一些任务自动化。...Visual Basic for Applications(VBA)是 Visual Basic 的一种宏语言,是微软开发出来在 其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。...可以隐藏 VBA 宏,踩 VBA 代码(通过 P 代 码)并混淆宏分析工具。 在 Linux,OSX 和 Windows 上运行。...脚本 保存退出,命名为 2.vba 然后按住 shift,点击鼠标右键即可在当前路径下打开 cmd 窗口 EvilClippy.exe -s 2.vba 233.docm 记得重新命名下,这里我重新命名为帝国时代...VirtualAllocEx 指定进程的虚拟空间保留或提交内存区域 WriteProcessMemory 写入某一进程的内存区域 CreateProcess 创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件
5次“shift”键,判断服务器是否被人侵 拒绝使用sethc.exe或者在“控制面板”中关闭“启用粘滞键”选项 2、注册表注入后门 在普通用户权限下可以将后门程序或脚本路径填写到启动项注册表中,当系统管理员登录系统时触发后门...当设定的条件被满足时,系统将自动启动Powershell进程去执行后门程序,执行后进程将会消失,达到所谓的“无进程” Empire下有WMI相关的模块可以使用 usemodule powershell/...System权限,可以使用该方法进行持久化操作: LSA(Local Security Authority)用于身份验证 lsass.exe作为Windows的系统进程,用于本地安全和登陆策略 在系统启动时...,SSP将被加载到lsass.exe进程中 假如攻击者对LSA进行了扩展,自定义了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就能够获取lsass.exe进程中的明文密码,这样即使用户更改的密码并重新登陆...将HookPasswordChange.dll注入内存,在目标系统中启动管理员权限的powershell: . .
我们可以通过Process开启一个进程,但是如果通过这个进程再开启另一个进程时,就容易发生错误。...4、为了确认发现了什么事情,我们在脚本中添加Pause ? ?...其他的坑 发现是路径问题后,我们会想那么在打开非当前所在路径的进程时会不会有同样问题呢? 5、我们将PowerShell的当前路径移动到上级目录,然后运行2.bat ? ?...可以看到2.bat执行路径仍为PowerShell的当前路径。...将启动的工作目录调整到目标进程的工作目录,以非RunAs方式启动 这种方式可以解决PowerShell的问题,但是如果是在C#中使用,或者必须要求目标进程以管理员权限启动时就很尴尬了。
目的:使用powershell脚本的方式实现自动化在iis部署网站的功能。 1.使用管理员身份运行powershell ?...(Test-Path IIS:\AppPools\$siteName)) { New-Item -path IIS:\AppPools\$siteName } Set-ItemProperty...sourceFile=$siteName+".zip" #[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile,$siteName) #启动网站...Write-Host "start website" Start-Website -Name $siteName #启动应用程序池 Write-Host "start webAppPool" Start-WebAppPool...-Name $siteName Write-Host "$siteName successfully started" 这里设置的是一个空站点,可以自己设置文件路径;这里的路径是 $physicalPath
在红蓝对抗或者国家某活动中,钓鱼是红队比较常见的攻击手段。通常的钓鱼手段包括exe文件的投递,自解压文件的投递,office系文件的投递等等。...工具特点: 本次使用的是VBS调用powershell执行命令的方式进行上线,程序执行成功后会在系统内存运行,不产生exe等可执行文件后台进程,减少被查杀的风险;而且当excel程序被受害者关闭后,仍然可以正常上线...,无需要excel进程一直后台启动。...防止被杀毒厂商记录MD5值和特征码。...文件的使用很简单,3vilMacro.exe [你刚刚复制的powershell脚本链接]。3秒钟后会在本路径下生成一个sourceVba.txt的文件。文件里面的内容就是加密后的VBA脚本 ?
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。...打开PowerShell 打开开始菜单,输入 PowerShell 进行搜索就可以看到它了 image.png WebAdministration 首先我们要引入PowerShell中的WebAdministration...,并使用刚创建的应用程序池TestApp,将网站的名称设置为TestSite,并指向你的网站路径如C:\TestSite New-Website -name TestSite -PhysicalPath...执行脚本 执行脚本的方式很简单,可以在PowerShell的控制台中直接使用脚本的名称即可(注意路径) ..../ZKEACMS.ps1 或者可以直接鼠标右键该脚本文件,然后选择菜单中的使用 PowerShell 运行 如果你的脚本在网络上,可以直接在控制台中使用以下脚本来运行而不用下载它,例如可以使用以下脚本来在线安装
返回ERROR_PATH_NOT_FOUND找不到指定路径 样例: WinExec("Notepad.exe", SW_SHOW); // 打开记事本 WinExec("D:\\Program...lpCommandLine, // 参数行 //下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性 LPSECURITY_ATTRIBUTES... LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性 LPPROCESS_INFORMATION lpProcessInformation...//用于在进程创建后接受相关信息 ); 评论: system(),主要用在DOS环境下. ...CreateProcess(),目前最强劲的进程函数,通过设置StartupInfo结构体参数,来设置子进程的属性, 子进程创建后的信息也保存在ProcessInformation结构体中,便于操作,功能强大
功能介绍 1、支持绕过某些热门反病毒产品; 2、提供了多种加密方法,包括RC4、AES256、XOR和ROT; 3、可以生成C#、Rust、PowerShell、ASPX和VBA形式的源代码; 4、采用了不同的...C#、Rust、PowerShell、ASPX和VBA代码; 工具部署 工具部署 广大研究人员可以使用下列方式将项目源码拷贝到本地设备中,并在本地设备上部署和使用DVenom。...首先,我们需要使用下列命令将该项目源码克隆至本地: $ git clone https://github.com/zerx0r/dvenom 然后切换到项目目录中: $ cd dvenom 使用go build...、ps1、aspx和vba; -m:指定方法类型,支持的类型有valloc、pinject、hollow和ntinject; -procname:提供需要注入的进程名称,默认为“explorer”;...-scfile:提供shellcode文件的路径地址; (右滑查看更多) 工具使用样例 下列命令可以生成包含加密Shellcode的C#源代码: .
New-Item –Path $path –Name HelloKey 如果要修改项的属性,使用Set-ItemProperty命令。...这是因为默认启动的实例是隐藏的,要显示Excel的窗口的话,将它设置为可见即可。 $excel.Visible=$true 如果要打开一个现成的工作簿,使用Open函数。...\t分隔,注意Powershell中的转义字符使用的这个特殊字符。...这里推荐使用Powershell ISE,因为自动补全可以显示所有类型的图标,只需要修改一下图表类型并观察Excel中图标类型的变化就可以明白类型和图标的对应关系了。...使用它,我们可以在没有安装Excel的情况下编辑Excel文件。 首先需要安装它,可以利用Powershell的包管理器方便的安装。
领取专属 10元无门槛券
手把手带您无忧上云