热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

干货:攻防Linux新技术

任何恶意软件研究的重点一般都是预期攻击可能针对的地方或它已经在攻击的地方,从而制定和实施新的防御技术。通过逆向工程了一些最近的Linux恶意软件样本,我发现了一个有趣的新技术,我认为它很重要所以想和大

http://p4.qhimg.com/t013dab8433c94edb3f.jpg

任何恶意软件研究的重点一般都是预期攻击可能针对的地方或它已经在攻击的地方,从而制定和实施新的防御技术。通过逆向工程了一些最近的Linux恶意软件样本,我发现了一个有趣的新技术,我认为它很重要所以想和大家一起分享。一个攻击者已经登录到一个蜜罐并尝试下载我以前从未见过的文件。加载文件到 IDA Pro ,得到提示“SHT table size or offset is invalid. Continue? ” 这是对于可执行文件正常的,所以没什么好担心的。然而,收到此消息之后,我收到一个没见过的新警告;

http://p5.qhimg.com/t01b338307c10df6934.png

这引起了Linux的可执行文件ELF在IDA Pro中装载失败——阻止我加载二进制文件进行分析。使用 ELFTemplate从 010Editor中打开该文件之后,我们很容易看到发生了什么事情;

http://p3.qhimg.com/t018e88e97eb828ff05.png

其中一个程序的头文件指向实际的文件之外。这很容易解决,只需归零这一部分从而允许IDA Pro加载样例。有趣的是,事实证明这是一个无效的二进制文件,有部分错位了因为该文件被截短过。然而,此错误信息引导我下载路径并试图重建这个错误文件——这很简单。具体步骤使用十六进制编辑器比较容易实现;


  • 从ELF文件头部脱去所有部分


  • 找到一个ELF文件不允许加载的程序头


  • 使这个程序头这部分发生偏移指向文件之外


只要找不到其余的部分文件头,IDA Pro就将无法加载。把个过程编成脚本之后,我决定使用其他反汇编器和调试器测试几个方案。 Radare(R2),Hopper和lldb处理的二进制文件完全没有问题—— 但是GDB不认文件格式;

http://p0.qhimg.com/t016f7be1dceb58e01f.png

然后进一步分析,我想看看除了作为一种反汇编技术,如果也作为一种抗分析抗模糊技术能不能用。当时的想法是,如果我用几个反汇编程序就这么容易找到这个问题所在,那么可能一些防病毒应用程序可能在自己的解析引擎中有同样的问题。

在这里我从Linux / XorDDos家族抓了检测到的相对完善恶意软件样本;

 

http://p9.qhimg.com/t01284460ad7708c13c.png

https://www.virustotal.com/en/file/0a9e6adcd53be776568f46c3f98e27b6869f63f9c356468f0d19f46be151c01a/analysis/

他们刚刚发现,9种不同的引擎(2种出自同一家公司?所以我应该说是10种)没能够检测到同样的恶意软件。这我很感兴趣因为我在Linux恶意软件方面是新人,我会假设,这些引擎很容易地检测到恶意软件,这样一个简单的改变不会是如此简单的逃逸技术。

看起来攻击反汇编程序和引擎监制太容易了—— 所以我想看看整个样例库,看看是否有人偶然发现并实施这项技术。使用如下相当简单的 YARA规则,我能找到6000个使用这一方法的样例。幸运的是,这些样例中,几乎每一个都是用来保护它自己的代码的商用Android保护壳。

虽然我们还没有看到任何在外面使用这种技术的恶意行为,但是在外面可能有许多其他类似的招数。这是一个良好的开端,寻找看看可能被恶意隐藏的ELF文件并加以分析,最后最好是用脚本发布出来,人们就能够监测这种技术并在未来使用类似的技术。

在之前发布的文章中,我已经通知没能检测到略作修改的恶意软件的Hex-Rays和那10个引擎。生成和修复这些修改后的二进制文件的脚本代码可以在github找到。

YARA规则:

http://p7.qhimg.com/t018878f3f5fef9e40d.png


推荐阅读
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • Linux 基础命令详解
    本文介绍了在 Linux 系统中常见的命令及其用法。当用户登录系统后,默认提示符会显示为 [root@localhost ~]# 或 [user@localhost ~]$,其中 # 表示当前用户为 root,$ 表示普通用户。我们将深入探讨一些常用的 Linux 命令,帮助初学者更好地理解和使用这些工具。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
author-avatar
youth冰点
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有