imagin.vmem取证
前言
因为不知道题目的名字,所以只能用附件的名称来命名(ps:哈哈哈),作为取证菜鸡只能慢慢学取证了。
附件
链接:https://pan.baidu.com/s/1eCTxufX9KC1WNHbEEF7wSA
提取码:ki9z
知识点
random.seed()
seed()没有参数时,每次生成的随机数是不一样的,而当seed()有参数时,每次生成的随机数是一样的,同时选择不同的参数生成的随机数也不一样
random.getrandbits(8)
返回一个八位大小的随机整数。
定义了一个随机数的种子之后,那么random.getrandbits获得的随机数就是固定的
random.seed('5fba44bfdd012bed894920549c673264')
os.environ
查看的是环境变量
PIL的convert
解题过程
volatility -f imagin.vmem imageinfo
volatility -f imagin.vmem --profile=Win7SP1x64 iehistory
在iehistory发现了东西
使用filescan命令,查看他们的PID
volatility -f imagin.vmem --profile=Win7SP1x64 filescan | grep -E 'png|out.py'
volatility -f imagin.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000003e9b29f0 -D ./
使用dumpfiles将其导出来,得到
import os
import random
from Crypto.Util import number
from PIL import Imageenv = os.environ
sed = env['cd1b9deda998c9104566329dc812c849']
random.seed(sed)flag = open('flag','r').read()
key = number.long_to_bytes(random.getrandbits(len(flag)*8))
res = []
for i in range(len(flag)):res.append(flag.encode()[i]^key[i])res = bytes(res)
assert(len(res)==38)c = bin(number.bytes_to_long(res))[2:]
assert(len(c)==304)
back = Image.open('1.png').convert('L')
a,b = back.size
c_p = Image.new('L',(a,b))for y in range(b):for x in range(a):if x+a*y <len(c):if c[x+a*y] == '1':c_p.putpixel((x,y),back.getpixel((x,y)) if back.getpixel((x,y))%2 == 1 else back.getpixel((x,y))+1)else:c_p.putpixel((x,y),back.getpixel((x,y)) if back.getpixel((x,y))%2 == 0 else back.getpixel((x,y))-1)else:c_p.putpixel((x,y),back.getpixel((x,y)))
c_p.convert('RGB').save('c.png')
发现是利用了python对flag进行了一些处理,把数据处理之后写进了图片里。那就需要把脚本逆一下了。
然后发现脚本使用了os.environ,那就需要通过取证获得这个数据
volatility -f imagin.vmem --profile=Win7SP1x64 envars
然后就得到了
5fba44bfdd012bed894920549c673264
然后就可以根据加密的脚本写解密了(ps:代码能力比较菜只能根据师傅的脚本抄一下)
import random
from PIL import Image
from Crypto.Util import number
import osenv = os.environ
random.seed('5fba44bfdd012bed894920549c673264')
img = Image.open('c.png').convert('L')a,b = img.size
# print(a,b)c = ['']*304
# print(len(c))for y in range(b):for x in range(a):if x + a*y <len(c):if img.getpixel((x,y))%2 == 1:c[x+a*y] = '1'else:c[x+a*y] = '0'# print(c)
key = number.long_to_bytes(random.getrandbits(38*8))
print(key)
str_c = ''.join(c)
str_c = int(str_c,2)str_c = number.long_to_bytes(str_c)
# print(str_c)
flag = []
for i in range(38):flag.append(chr(str_c[i]^key[i]))
print(''.join(flag))
flag{7f958aaef5f88ebf67f8ecc89c7c271b}
imagin.vmem取证相关推荐
- [2021首届“陇剑杯”网络安全大赛 决赛]内存取证writeup
决赛不能联网-手上有只有vol2.6,这道题完全死了 文章目录 [2021首届"陇剑杯"网络安全大赛 决赛]内存取证 writeup 产品密钥 匿名邮箱 远控后门 数据清除时间 [ ...
- 内存取证常见例题思路方法-volatility (没有最全 只有更全)
目录 1.从内存文件中获取到用户hacker 的密码并且破解密码,将破解后的密码作为 Flag值提交; 2.获取当前系统的主机名,将主机名作为Flag值提交; 3.获取当前系统浏览器搜索过的关键词,作 ...
- Otterctf 2018 内存取证
CTF 内存取证 https://otterctf.com/challenges 1- What the password? 问题:找到 Rick 的 密码: 先使用 imageinfo 判断系统版本 ...
- 2017第三届美亚杯全国电子数据取证大赛团队赛write up
本人TEL15543132658 同wechat,欢迎多多交流,wp有不足欢迎大家补充多多探讨! Questions Gary被逮捕后,其计算机被没收并送至计算机取证实验室.经调查后,执法机关再逮捕一 ...
- 基于内存取证进行stuxnet 病毒分析(上)
基于内存取证进行stuxnet 病毒分析(上) stuxnet病毒翻译过来又叫震网病毒,是美国针对伊朗核电站进行的有组织开发的恶意病毒.主要是利用Windows操作系统未被发现的四个漏洞,可以通过U盘 ...
- 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(九):自动化攻击取证
目录 前言 1.Volatility配置 2.抓取口令的哈希值 3.直接代码注入 4.插入shellcode 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书 ...
- 内存取证神器Volatility常用指令大全
内存取证神器Volatility常用指令大全 具体指令开头部分根据Volatility版本做修改即可 查找文件 volatility -f 19.mem --profile=Win7SP1x86_23 ...
- 利用Volatility进行Windows内存取证分析(一):初体验
简介 承接上文,上文中使用cuckoo沙箱的时候提到过,分析恶意代码的时候,首先利用沙箱做粗略分析,然后可以目标程序进行动态分析(OD,Windbg调试)或者静态分析(IDA静态反汇编).如果嫌每次逆 ...
- linux 内存取证_内存取证工具-volatility、foremost
内存取证 1. 内存取证工具volatility 猜测dump文件的profile值 root@kali:~/CTF# volatility -f mem.vmem imageinfo Volatil ...
最新文章
- ASP.NET jQuery 随笔 在TextBox里面阻止复制、剪切和粘贴事件
- Java FutureTask示例程序
- 数据仓库项目分析_数据分析项目:仓库库存
- 持续集成持续部署持续交付_自动持续开发和交付混合移动应用程序
- mysql读写分离_SpringBoot+MyBatis+MySQL读写分离
- 使用 ssh-keygen访问服务器
- 2020苏州大学计算机考研经验总结博
- 成员函数指针与高性能的C 委托
- gc buffer busy的优化
- 查询网站排名,收录情况
- 数据库decimal对应java什么类型_数据库字段类型和Java的对应关系
- Solar2DCorona(一) - Hello World
- java-天气预报的接口
- Easier UVM Coding Guidelines / 便捷UVM 编码指南
- 电脑如何登录多个微信吗?
- 【工具】fis3 - 使用教程(01)
- 【RT-Thread】STM32的UART设备读取GPS数据
- 以霸王逻辑处理客户投诉
- 给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
- 全球100家杂志网站(转)