发布于2022年11月4日3年前 emp3r0r:Linux用户打造的Linux后渗透框架 好像没几个人写过专门用于Linux宗族的远控或许后渗透东西,现有的项目在我看来都不够好使。尤其是长途终端,就没人能把它做得能像回事。他们都满足于一个简陋无比的反弹shell,随意按下个ctrl-c就会挂掉,大部分终端运用程序几乎没法用。有的甚至连shell都不是,只需一个指令履行(甚至连管道和定向也不支撑)。真彩色,快捷键支撑,bashrc,job control这些“高档”功用想都不要想了。作为一个活在终端里的资深Linux用户,我是无法忍受的。所以写emp3r0r的时候,我着重优化了反弹bash shell的终端运用体验。担任任地说,在emp3r0r里的长途终端体验毫不逊色于直接运用gnome terminal和openssh。趁便提一嘴,终端指的是gnome terminal这种程序,它只担任显示和接收输入,而shell指的是bash这样的东西,别搞混了。除此之外,我也期望把个人所学都放进emp3r0r项目,或许我今后成为大佬了,emp3r0r也会成为一款好使的Linux入侵东西(笑至于为什么叫做”emp3r0r“,我最早是参照Windows下的empire项目来做的,既然它叫帝国,我就叫皇帝好了。http://www.naipan.com/npedit/themes/common/anchor.gif核心功用http://www.naipan.com/npedit/themes/common/anchor.gifHTTP2通讯地道HTTP2相比与HTTP1.1,除了高效快速之外,最重要的是它能够完结全双工,这也是一款完整的远控必需的特性之一。还有一个选择是websocket(运用也更广泛),但我想搞个不一样的,刚好有个以色列的大佬写了个HTTP2衔接的库h2conn,那就它了。然后,TLS是强制的。emp3r0r的通讯加密首要靠TLS,为了防止MITM进犯,我规划的编译脚本会主动生成自签名CA,用它签发服务器证书,并将agent的CA池清空,仅信赖咱们C2服务器的CA。其他HTTP2也能够支撑恣意署理协议,假如乐意,你能够把agent的流量封装到任何可行的协议里,只用完结你的协议地道,供给个HTTP署理接口就行。这个东西你们或许会叫它流量伪装,no,这不是伪装,这是封装。http://www.naipan.com/npedit/themes/common/anchor.gif其它Transport封装为了方便,我就直接放个全家福。Tor,CDN,HTTP2裸连都在这了。http://www.naipan.com/npedit/themes/common/anchor.gifTOR为了方便运用,我特意编译了一份能够扔到大部分linux机器上跑的纯静态tor二进制文件。客户端设置好tor署理即可衔接到tor上的C2服务器。需求留意的是,tor服务不一定需求运转在公网上,你能够随意在本地开个来测验。用tor的优点不必我多说了,你们自然明白。但也别犯蠢,emp3r0r不适合除了正规测验以外的用处。http://www.naipan.com/npedit/themes/common/anchor.gifCDN我其实专门写过一篇文章讲这个东西。这是由我写的一个简略的外部库完结的,大体上结构类似于:装备好的话,agent端的流量便是:在C2服务器上看,是这样的:http://www.naipan.com/npedit/themes/common/anchor.gif主机信息主机信息搜集我觉得也很重要,所以我在保持基本漂亮的前提下,把我所想到的信息悉数展示在预览中。图片在前面发过了,便是全家福那个。下图是单个agent经过裸HTTP2衔接的暗示,上面是agent的debug输出。下面的体系信息包括了:agent编号和UUIDagent进程的用户名,其home目录,及UID,GID体系版别,包括了发行版细分版别来自哪个IP和端口,经过哪个transport过来的本地绑了什么IPARP缓存主机名和机器IDCPU类型和数量内存大小硬件设备类型和制造商,及版别,假如是虚拟机则增加虚拟化技术的显示是不是在容器里运转agent的进程和父进程信息详细的linux内核版别http://www.naipan.com/npedit/themes/common/anchor.gif主动出网署理无需多言,这是很重要的一个功用。我的主意是,假如网内装置的agent足够多,那么它们自己就能洽谈出一个出网通道来。现在阶段只完结了单跳的出网署理(刚写的),不支撑多跳出网。多跳出网已经完结了。这一切都是主动完结,agent依据自身网络情况决定是发广播给他人供给署理,或是接收这样的广播。当然了,广播信息也是加密的,频率也低,一般没多少人留意。下图便是一个Ubuntu机器经过kali供给的署理上线的暗示。这便是多跳出网:http://www.naipan.com/npedit/themes/common/anchor.gifC2在线状态检测为了防止过高的poll频率引起留意,咱们设置一个C2在线指示。它能够是GitHub上的一个文本文件或许微博上的一段文字,总归越难引人留意越好。poll频率是随机改变的,想做时间pattern检测的还是多想想吧。http://www.naipan.com/npedit/themes/common/anchor.gif躲藏进程和文件现在完结了基于glibc绑架的进程和文件躲藏,只需加载了libemp3r0r,持久化和躲藏就都有了。http://www.naipan.com/npedit/themes/common/anchor.gif模块功用http://www.naipan.com/npedit/themes/common/anchor.gif基础办理终端这是你的起始操控终端,完结原理是把你的指令发给agent,agent调用exec用sh -c来履行,成果会返回给你。实际上这不是一个shell,只是看上去像那回事。假如有错误,会返回return code,假如返回一大坨刷屏的输出,那么会被主动扔到一个新的tmux面板里边,防止污染工作空间。输入help,能够检查可用的功用,包括文件办理之类的。然后别忘了,按tab键补全指令。剩余的看图就知道了。http://www.naipan.com/npedit/themes/common/anchor.gif完美的反弹bash shell这是我最满足的功用之一了。从图里看:本shell与体系默许shell完全无关,是一个纯静态的bash二进制文件,且运用不同的RC文件默许不保存任何前史指令能够用tmux和其它要求完整终端功用的软件,比如vim和top有真彩色!主动设置了PATH,将咱们的自定义东西库组织上了。一切你本地终端支撑的,这儿都支撑!然后这个bash反弹shell是一样的封装到HTTP2衔接里,跟其它C2流量毫无区别。http://www.naipan.com/npedit/themes/common/anchor.gif插件体系就在上面bash的图里,nmap,socat都在那了,想要其他什么能够自己上传。我的“插件体系”实际上与母体没多大联系,emp3r0r做的仅仅是经过vaccine模块,把所有的“插件”打包上传给agent,然后agent装备好它们。而你就经过操控终端来运用它们。扩展性max!你能够增加bash脚本,不必管目标机器上是不是有bash,也能够增加二进制程序,要啥传啥就行。http://www.naipan.com/npedit/themes/common/anchor.gif持久化现在支撑了:cronLD_PRELOAD加载咱们的shared objectbash profile,注入常用指令其它还在方案中http://www.naipan.com/npedit/themes/common/anchor.gif进程注入还没完结,首要经过GDB来加载shared object到可注入的进程。http://www.naipan.com/npedit/themes/common/anchor.gif用户凭证收割这是一个注入到sshd进程的shared object,经过ptrace对sshd进行主动调试,最终意图是把它接到的明文密码dump出来。用GDB完结的示例:写到我博客了,还没集成进去,今后再说吧。http://www.naipan.com/npedit/themes/common/anchor.gif主动Root能够经过一些好用的本地提权漏洞直接提升agent的权限到root:详细的在我博客有介绍。现在内置了一个CVE-2018-14665。http://www.naipan.com/npedit/themes/common/anchor.gif提权辅佐这个模块能够下载两个提权辅佐脚本并在agent上运转,成果会返回给C2:http://www.naipan.com/npedit/themes/common/anchor.gif端口映射支撑从agent到C2的端口映射,本质上是由agent署理一个目标地址并对接到C2端。这个也是完全一样的HTTP2封装。http://www.naipan.com/npedit/themes/common/anchor.gifsocks署理在agent上起一个socks5署理,然后映射到C2,从而能够让你在C2端运用署理。http://www.naipan.com/npedit/themes/common/anchor.gif怎样用我写了个wiki,欢迎大家修改和增加内容。这儿简略介绍下编译和装备过程:http://www.naipan.com/npedit/themes/common/anchor.gif编译C2服务器说明一下,编译C2会主动生成一个自签名CA,然后用它签发C2服务器的TLS证书。一个C2服务器证书能够对多个DNS称号或许IP地址进行背书,你有几个就写几个,tor的onion地址也支撑。http://www.naipan.com/npedit/themes/common/anchor.gif编译agent编译agent的话,你只能够写一个C2地址,这是写死到agent里的。indicator是指示C2是否在线的一个文件,内容是emp3r0r,参见前文介绍。http://www.naipan.com/npedit/themes/common/anchor.gif运转agent依据C2服务器地址,你能够选择运用相应的指令行参数。比如tor的话,你需求-proxy 'socks5://torproxy:port'CDN的话,你需求在C2端启用内置署理,然后在agent参数里指定如-cdnproxy wss://cc.example.com/ws这样的署理地址。http://www.naipan.com/npedit/themes/common/anchor.gif未来方案http://www.naipan.com/npedit/themes/common/anchor.gif支撑更多的躲藏手段打算把:container basedLKM内核模块进程注入都完结一下。http://www.naipan.com/npedit/themes/common/anchor.gif内网渗透扫描模块主动漏洞利用和传达网络流量抓取和剖析服务弱口令勘探集成常见的exploit kit慢慢来吧,假如有需求能够给我打钱,我优先做(笑http://www.naipan.com/npedit/themes/common/anchor.gif鸣谢尽管菜鸡但坚持写代码的我给我打钱打star的你们国内外大佬们的开源贡献
创建帐户或登录后发表意见