远程shellcode加载&权限维持+小功能
2022-10-13 00:2:2 Author: LemonSec(查看原文) 阅读量:43 收藏

项目地址:

https://github.com/LDrakura/Remote_ShellcodeLoader

0x01 声明

本文所采用技术,仅用来实现自定义功能,适用场景仅为授权的测试中进行权限维持或为个人电脑添加定制化功能,如:启动开机时启动计算机器,方便实用~

*本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
0x02 背景

在公司打下来域控,用了一种好玩的方法做了权限维持(只要我进程不存在,你就永远也不知道我在哪)。

特征极少,绕过了杀软,hids,nids,后门存活了两个多月。最终在威胁情报上遭遇了滑铁卢。

控制端C2是有几条威胁情报的,结合NIDS的流量,情报介入以后,异常外连直接被发现。于是诞生了这个工具(只要我不连接C2,威胁情报就永远发现不了我)

此处仅提供思路,可和DLL劫持、其他维权手段结合。在红蓝对抗的时候,能多一个选择~


0x03 使用

编译测试环境:WIN10 1909、VS2019

./loader url

当然,你可以下载源码把url硬编码在代码中,这样连命令行特征都没有了。不要用自己的,小心被溯源


0x04 功能
远端配置文件:
sleep:10type:cmdvalue:calc
sleep:
休眠时间,下次获取服务端配置间隔(单位:秒)
type:
sleep、cmd、up、exit四种
注:value必填项,还没处理到这块,不需要value的随便填啥都可以
sleep 不执行任何操作。
cmd 执行命令 value 为要执行的命令。
up 执行shellcode上线 value为shellcode bin的16进制
exit 退出进程。

0x05 场景

我需要做隐蔽的权限维持,机器暂时不用,需要的时候上线。或者某些cdn上,比如,能上传txt的地方。。。

可以把配置文件丢github上,设一个4小时的sleep,需要的时候,修改配置文件
执行命令添加用户。
上线CobaltStrike

0x06 问题
已知问题
命令只接受单个命令,不接受空格,和读取方式有关,后面改加载shellcode后创建线程执行,但是beacon退出后会exit整个进程(cmd方式无此问题),好像和CobaltStrike Beacon退出方式有关仅支持X64没有经过严格测试,有bug

0x07 TODO
  • 接受带空格的命令
  • 线程退出后不影响进程

0x08 参考
https://github.com/curl/curl
Hack分享吧
侵权请私聊公众号删文

 热文推荐  

欢迎关注LemonSec
觉得不错点个“赞”、“在看”

文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTA0MjQ4NA==&mid=2247536324&idx=1&sn=b220e53cf6a141f051dda8cde0e288dc&chksm=f9e3219fce94a889ae6667f1a071ad576db340ebc7252d815012fbc0ec09c264e9c20c5323b5#rd
如有侵权请联系:admin#unsafe.sh