美文网首页
寻找Linux恶意软件的乐趣和旗帜

寻找Linux恶意软件的乐趣和旗帜

作者: Threathunter | 来源:发表于2021-09-13 10:24 被阅读0次

    来源:https://published-prd.lanyonevents.com/published/rsaus20/sessionsFiles/18130/2020_USA20_HT-R07_01_Hunting-Linux-Malware-for-Fun-and-Flags.pdf

    https://www.rsaconference.com/library/presentation/usa/2020/hunting-linux-malware-for-fun-and-flags

    一、调查的对象

    二、文件系统

    2.1 常见的文件元数据

    1、名称 name

    2、大小 Size

    3、类型 Type

    (1)常规文件 regular file

    (2)目录 directory

    (3)符号链接 symbolic link

    (4)特殊(设备) specific (device)

    4、所有者 ower

    (1) user 用户

    (2)group 组

    5、访问权限 access rights

    (1)读、写和执行 read、write和execute

    (2)所有者、组和其他 Owner, group and others

    6、时间戳Timestamps

    (1)访问时间Access

    (2)最后修改时间Last modification

    (3)最后元数据修改时间Last metadata modification

    (4)创建时间Creation date

    2.2 查找新文件

    1、ls -alt | head

    列出最近在当前目录中修改的文件

    2、stat $FILE

    全部文件的细节,所有的时间都可以被篡改

    3、find / -newermt 2019-10-28

    —查找10月28日以后修改过的文件

    —基于可被篡改的相同元数据

    4、file $FILE

    识别文件类型

    5、包的完整性校验
    (1) debsums

    -基于dpkg的发行版(Debian, Ubuntu)

    (2) rpm va

    -基于rpm的发行版(RHEL, CentOS, Fedora)

    三、日志

    3.1使用auditd

    1、Linux审计框架提供了一个审计系统,它可靠地收集关于系统上任何安全相关(或非安全相关)事件的信息。

    2、内核的一部分

    —内核编译时必须启用 或者有一个可加载的内核模块

    —在大多数发行版中启用

    3、日志系统调用和其他类型的事件

    4、日志可以通过网络发送

    auditctl:定义要记录的内容

    ausearch:在日志文件中搜索

    -日志是文本文件,所以grep和其他工具也可以很好地完成这项任务

    3.2 离线文件系统

    如果您不能访问正在运行的系统,但有分区的映像。

    Capture捕捉:dd if=/dev/sda3 of=$IMAGE_FILE

    -也可以通过SSH工作!

    浏览Browse: mount -o loop,ro $IMAGE_FILE /mnt

    四、系统内存

    4.1分析活动进程

    确定运行的进程:
    – ps auxw

    – top, htop

    列出打开的文件和网络流

    - lsof -p $PID

    4.2 procfs

    1、Procfs提供了很多有用的细节

    2、安装在/ proc

    3、每个进程在/proc/$PID上包含一个目录

    procfs exe magic link

    1、找到执行文件的路径:

    ls -l /proc/$PID/exe

    2、检索可执行文件,即使它已被删除:

    cp /proc/$PID/exe malware.elf

    procfs environ

    1、/proc/$PID/environ包含进程的环境变量,以空字节null分隔

    4.3进程停滞

    在不破坏进程资源的情况下停止进程。

    – kill -SIGSTOP $PID

    恢复先前用SIGSTOP停止的进程

    – kill -SIGCONT $PID

    4.4 进程内存转储

    1、获取Acquisition

    – gcore $PID and cp /proc/$PID/exe malware.elf

    2、其他获取工具

    – memfetch from http://lcamtuf.coredump.cx

    3、简单分析

    – strings

    4、深度分析

    – gdb malware.elf $PID.core

    4.5 内核内存

    1、获取Acquisition

    – VM snapshot

    – LiME (Linux Memory Extractor)

    2、分析Analysis

    – Volatility Framework

    3、仅在内核被恶意内核模块破坏时有用(rootkit)

    五、网络

    5.1 网络配置

    1、转储iptables规则

    – iptables-save

    – ip6tables-save

    5.2 网络捕获

    1、获取Acquisition

    – tcpdump -i eth0 -s 0 -w capture.pcap

    2、分析Analysis

    – tshark -r capture.pcap

    – Wireshark

    – bro -r capture.pcap

    注意:bro改名为zeek了

    六、恶意代码分析

    6.1 两种方法

    1、基于脚本的恶意软件
    – PHP

    – Perl

    – Python

    2、恶意软件编译

    - ELF可执行文件

    6.2基于脚本的恶意代码

    可以混淆

    ——删除空格

    ——变量重命名

    6.3逆向基于脚本的恶意软件

    1、大多数编程语言都有一个整理代码的工具:

    – Perl -> perltidy

    – Python -> PythonTidy,https://pypi.org/project/PythonTidy/

    – PHP -> php-cs-fixer

    2、使用搜索和替换重命名变量

    6.4基于脚本的恶意软件

    字符串和文字可以打包

    6.5逆向基于脚本的恶意软件

    1、总是在一个孤立的环境中工作

    2、使用交互式提示来评估部分代码

    – Perl -> perl -de1

    – Python -> ipython

    – PHP -> php -a

    3、将eval替换为print

    6.6.编译的恶意代码

    1、ELF可在系统的本机体系结构中执行

    2、更难以理解

    3、也可以打包

    静态分析Statically

    – strings

    – radare2

    – IDA Pro ($),收费

    动态分析Dynamically

    – strace

    – ltrace for dynamically linked binaries

    – gdb, or any other debugger you like

    – gcore

    当玩恶意软件时,总是在一个孤立的环境中工作

    相关文章

      网友评论

          本文标题:寻找Linux恶意软件的乐趣和旗帜

          本文链接:https://www.haomeiwen.com/subject/vdwxgltx.html