加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

【以linux为视角】教你如何查找加密压缩文件?

发布时间:2022-11-18 11:10:10 所属栏目:Linux 来源:
导读:  搞过取证的应该想得到,当我们要对一个目标进行关键信息检索的时候,“傻瓜式”的操作,是没有办法应对加密压缩文件的,有时候需要提前把这些加密压缩文件过滤出来单独处理。

  “先森&rdq
  搞过取证的应该想得到,当我们要对一个目标进行关键信息检索的时候,“傻瓜式”的操作,是没有办法应对加密压缩文件的,有时候需要提前把这些加密压缩文件过滤出来单独处理。
 
  “先森”在一文中,以靶场环境设置在General_log开启的情况下使用纯手工方式完整的追踪和定位了“黑客”的行为痕迹。整个过程遵循电子取证规范,是一篇较为符合现实的电子取证实例。
 
  文章步骤5中,提示用编程的方法遍历加密压缩包,文章对这一部分存在删减。笔者决定作为练习,编写程序遍历后缀为”rar”“zip”的文件,分辨带有加密位的压缩包。
 
  环境准备
 
  由于靶场环境下Python缺乏rarfile包,需要手工导入,Linux需要自己手动编译生成so文件。
 
  1.首先在python中pip install unrar安装rarfile,然后去下载源文件,不过这就不像Win那样给你封装好了,你需要下载的是源代码:
 
  也就是RARLab官网下载列表中的 UnRAR Source,可以下载到最新版本。
 
  2. 下载完后解压,得到unrar目录,cd unrar 后,使用 make lib 命令将会自动编译库文件,哗啦啦编译完成后linux压缩,再使用 make install-lib 命令产生 libunrar.so 文件(一般在 /usr/lib 目录下面);
 
  3. 最后,你仍然需要设置Linux系统的环境变量,找到 /etc 目录下的 profile 文件,当然你可以直接使用 vim /etc/profile 命令来编辑,在 profile 文件末尾加上
 
  export UNRAR_LIB_PATH=/usr/lib/libunrar.so ,
 
  别把我这句话的逗号加进去了。
 
  成功保存后再使用 source /etc/profile 命令使变量生效。
 
  编写查找py脚本
 
  #!/usr/bin/env python
 
  #_*_coding=utf-8_*_
 
  importos, sys
 
  importzipfile
 
  importgzip
 
  fromunrarimportrarfile
 
  defis_Encrypted(file): #是否为加密文档
 
  Suffix = os.path.splitext(file)[1]
 
  ifSuffix == ".zip":
 
  z = zipfile.ZipFile(file, 'r')
 
  foriinz.infolist():
 
  ifi.flag_bits & 0x01:
 
  print("****** 该文件是加密文档!******")
 
  elifSuffix == ".rar":
 
  z = rarfile.RarFile(file, 'r')
 
  foriinz.infolist():
 
  ifi.flag_bits & 0x04: #0x04 文件使用密码加密
 
  print("****** 该文件是加密文档!******")
 
  deffun(path): #当前工作路径
 
  Const_File_Format = [".zip",".rar"]#需要筛出来的文件后缀
 
  ifos.path.splitext(path)[1]inConst_File_Format:
 
  print('[!]' + path)
 
  is_Encrypted(path)
 
  defsearch(root, target):#搜索当前目录下的文件
 
  items = os.listdir(root)
 
  foritem in items:
 
  path = os.path.join(root, item)
 
  ifos.path.isdir(path):
 
  None
 
  #小编真心不推荐使用递归,不过此处也没有更好的办法
 
  search(path, target)
 
  elifpath.split('/')[-1] == target:
 
  None
 
  else:
 
  fun(path)
 
  defmain():
 
  workingpath = os.path.abspath('.') #获取文件绝对路径
 
  s = 'file.txt'
 
  search(workingpath, s)
 
  if__name__ == '__main__':
 
  main()
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!