CIA组织MikroTik软路由攻击场景复现及后门加解密剖析

概述

写文章还是有一段时间了,发布的文章也是获得了不少小伙伴的关注,同时也和圈子里面的小伙伴慢慢的建立起了联系,平时也会时不时的一起探讨一些技术问题。因此,在最近和小伙伴的交流学习过程中,有一个小伙伴提到了一款远控工具,名字叫tinyshell:

刚听到此远控工具的名字,确实感觉没什么映像,不过尝试在网络中搜索了一下此工具,发现此工具是一款轻量级网络设备后门程序,而且其曾被CIA组织所青睐,配合Chimay Red漏洞利用工具对MikroTik路由器发起攻击。相关截图如下:

尝试对上述网页进行详细解读,发现此网页为“Vault 7” CIA泄露文档,由维基解密于2017年曝光。基于网络调研信息,发现“Vault 7” CIA泄露文档共计8700余份机密文件,是CIA组织针对外国政府和国内外公民的黑客工具库。

进一步对“Vault 7” CIA泄露文档进行调研,发现泄露文件揭秘了CIA组织在海外间谍活动中如何入侵Android、iPhone、三星电视、Windows PC、Mac、MikroTik和其它设备,并详细说明该机构尝试将相关设备变成监听设备的行为。

上述文档即为CIA组织利用MikroTik路由器的详细过程,在其利用过程中,将使用Chimay Red漏洞利用工具向MikroTik路由器上传TinyShell后门开展远程恶意行为。

因此,为了能够更深入的对CIA组织的攻击活动进行剖析,笔者准备从如下几个角度复现CIA组织针对MikroTik路由器的攻击场景及攻击利用过程中的TinyShell后门技术原理:

  • 构建MikroTik路由器漏洞利用套件
  • MikroTik路由器攻击场景复现
  • TinyShell后门功能分析
  • TinyShell后门通信模型剖析
  • 模拟构建通信解密程序

MikroTik路由器漏洞利用套件

为了能够完整复现CIA组织针对MikroTik路由器的攻击场景,需要准备如下漏洞利用套件:

环境搭建-MikroTik虚拟机

MikroTik虚拟机的环境搭建可参考社区hackedbylh大佬的《一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc》文章,MikroTik系统版本选择6.38.4,部分关键步骤截图如下:

  • MikroTik虚拟机:MikroTik RouterOS系统支持通过VMware虚拟机安装使用
  • Chimay-Red:Chimay-Red是Vault 7泄露文件中提及的针对MikroTik RouterOS系统中www程序的一个漏洞利用工具
  • TinyShell轻量级网络设备后门:TinyShell后门是Vault 7泄露文件中提及的后门程序

 

 

成功安装后,可通过以下登录信息及配置命令配置IP地址:

#登录信息
用户名:admin
密码:空#配置命令
ip address
add

IP配置成功后,可基于WEB成功访问MikroTik路由器页面,相关截图如下:


 

漏洞工具套件-Chimay-Red

通过网络调研,笔者在Github的https://github.com/BigNerd95/Chimay-Red项目中发现了Vault 7泄露资料中对应的Mikrotik exploit,相关截图如下:

漏洞工具套件-TinyShell轻量级网络设备后门

通过网络调研,笔者在Github上发现了11年前的TinyShell开源项目(https://github.com/orangetw/tsh)。由于开源项目提供了源代码,同时笔者将此开源项目与维基解密中CIA Vault 7泄露资料描述进行了对比,发现其命令行有些许不同,因此,笔者推测CIA组织使用的TinyShell是基于开源TinyShell项目修改的。相关对比截图如下:

  • CIA Vault 7泄露资料描述

 

  • 开源TinyShell项目

进一步对此工具进行剖析,发现其由C语言编写,体积小(在kali系统上编译后只有55K大小)。分为客户端和服务端(后门),支持正向连接模式(即服务端在远程运行,攻击者远程直接连接)和反弹连接模式(攻击者在自己服务器监听,服务端连接攻击者机器的监听端口),详细情况如下:

编译
  • 静态编译:TinyShell开源项目默认是动态编译的,为了能够在MikroTik环境中正常运行,建议将其修改为静态编译

 

  • 正向连接:修改tsh.h文件中的配置信息,将C&C地址注释,即可成功编译获得正向连接模式的TinyShell程序

 

  • 反向连接:修改tsh.h文件中的配置信息,配置C&C地址信息,即可成功编译获得反向连接模式的TinyShell程序

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java:SpringBoot如何优化启动速度

一、yml中设置懒加载 spring:main:lazy-initialization: true 二、SpringBoot启动类中添加注解 Indexed (Spring5才有该注解) Indexed EnableAsync RestController SpringBootApplication(exclude {WxMaAutoConfiguration.class}) EnableTransactionM…

卫星通信现状与展望一 -- 华为Mate60手机+电信中通卫星

某天和一位朋友闲聊的时候,说起了卫星通信这个话题,讨论了卫星应用于个人通信的现状和展望,于是搜集了已有材料,整理如下: 中国天通卫星通信系统 1. 基本情况: 2023年9月消息,华为Mate 60 Pro上市,持有者即使在没有地面信号的情况下,也可以拨打、接听卫星电话。为用户…

面试:MYSQL(SQL优化、MYSQL事务)

目录 一、SQL优化 1、如何定位慢查询 (1)方案一:开源工具 (2)方案二:慢日志查询 2、定位到慢查询时,如何优化 3、什么是索引 (1)底层结构 4、聚簇索引&#xff0…

优秀博士学位论文分享:动态三维场景理解与重建

优秀博士学位论文代表了各学科领域博士研究生研究成果的最高水平,本公众号近期将推出“优秀博士学位论文分享”系列文章,对人工智能领域2023年优秀博士学位论文进行介绍和分享,方便广大读者了解人工智能领域最前沿的研究进展。 “博士学位论…

Java try catch 应该在 for 循环里面还是外面?(面试)

时间上&#xff0c; 其实算是无差别。内存上&#xff0c; 如果没出异常&#xff0c;其实也是无差别。 但是如果出现了异常&#xff0c; 那就要注意了。 一、try catch 在 for 循环外面 public static void tryOutside() { try { for (int count 1; count < 5; count) …

使用pdf.js实现pdf的预览与打印

使用pdf.js实现PDF的预览与打印可以通过以下步骤完成&#xff1a; 1. 首先&#xff0c;在项目中安装pdf.js库。可以使用npm或yarn来安装pdf.js&#xff0c;运行以下命令&#xff1a; npm install pdfjs-dist2. 创建一个包含PDF预览和打印功能的组件。可以创建一个单独的组件用…

【数据结构初阶】时间复杂度和空间复杂度详解

今天我们来详细讲讲时间复杂度和空间复杂度&#xff0c;途中如果有不懂的地方可翻阅我之前文章。 个人主页&#xff1a;小八哥向前冲~-CSDN博客 数据结构专栏&#xff1a;数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 c语言专栏&#xff1a;c语言_小八哥向前冲~的博客-CS…

matlab新手快速上手6(引力搜索算法)

本文根据一个较为简单的matlab引力搜索算法框架详细分析蚁群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 引力搜索算法简介&#xff1a; 引力搜索算法是一种启发式优化算法&#xff0c;最初于2009年由伊朗的Esmat Rashedi、Hossein Nezamabadi-p…

uniapp 对接facebook第三方登录

1.登录facebook开发者中心&#xff0c;打开我的应用页面在这里插入图片描述 2.创建应用 3.选择类型 4.填写信息 5.添加登录 6.添加平台 安卓密钥生成【需要 Java 环境!!! 和 openssl库】 Google Code Archive 的 Windows 版 openssl-for-windows OpenSSL 库 将openssl下载到…

如何利用FMEA进行不良事件分析——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA&#xff08;Failure Modes and Effects Analysis&#xff09;是一种预防性的质量工具&#xff0c;它帮助识别产品或过程中可能的故障模式&#xff0c;评估其对系统的影响&#xff0c;并优先处理那些对系统性能影响最大的故障模式。在医疗…

新时代教师口才演讲稿(3篇)

新时代教师口才演讲稿&#xff08;3篇&#xff09; 新时代教师口才演讲稿&#xff08;一&#xff09; 尊敬的各位领导、亲爱的同事们&#xff1a; 大家好&#xff01; 今天&#xff0c;我站在这里&#xff0c;深感荣幸与激动。在这个新时代里&#xff0c;教师的口才不仅仅是传…

webpack3升级webpack4遇到的各种问题汇总

webpack3升级webpack4遇到的各种问题汇总 问题1 var outputNamecompilation.mainTemplate.applyPluginWaterfull(asset-path,outputOptions.filename,{......)TypeError: compilation.mainTemplate.applyPluginsWaterfall is not a function解决方法 html-webpack-plugin 版…

上市公司-双重差分模型手动匹配绿色企业数据及参考资料

01、数据简介 双重差分模型&#xff08;DID&#xff0c;Differences-in-Differences&#xff09;是一种用于估计某个政策或处理效果的经济计量学模型。通过双重差分模型&#xff0c;可以控制一些不易观察的个体特征和时间趋势&#xff0c;以更准确地估计政策的效应。将绿色企业…

文件上传漏洞(upload-labs)

目录 一、文件上传漏洞 1.什么是文件上传漏洞 常见的WebShell 2.文件上传产生漏洞的原因 二、文件上传绕过 &#xff08;一&#xff09;客服端绕过-JS验证 1.前端验证 upload-labs第一关 &#xff08;二&#xff09;绕过黑名单验证 黑名单验证 1.特殊解析后缀 upl…

快速掌握Yarn:软件包管理工具的安装与使用指南【写作AI免费】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

Linux第十五章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

MySQL随便聊----之MySQL的调控按钮-启动选项和系统变量

-------MySQL是怎么运行的 基本介绍 如果你用过手机&#xff0c;你的手机上一定有一个设置的功能&#xff0c;你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能&#xff0c;我们的生活将置于尴尬的境地&#xff0c;比如在图书馆里无法把手…

Hive安装部署

Apache Hive是一个基于Hadoop分布式文件系统、使用MapReduce算法执行大规模离线数据分析的数据仓库&#xff0c;本文主要描述Hive的安装部署。 如上所示&#xff0c;Hive总体应用架构图&#xff0c;其中&#xff0c;Hive基于HBase或者使用Hadoop分布式文件系统执行MapReduce的分…

注意力机制(四)(多头注意力机制)

​&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;《深度学习基础知识》 相关专栏&#xff1a; ⚽《机器学习基础知识》 &#x1f3d0;《机器学习项目实战》 &#x1f94e;《深度学习项目实…

react报错:Warning: Each child in a list should have a unique “key“ prop.

我是万万没想到的&#xff0c;使用Popconfirm不添加key属性也会报错&#xff1a; react-refresh:160Warning: Each child in a list should have a unique "key" prop. Check the render method of Cell. Seehttps://reactjs.org/link/warning-keys for more informa…