案例
随笔
知识
声音
其他
引言
搞过取证的应当想得到,当我们要对一个目标进行关键信息检索的时侯,“傻瓜式”的操作,是没有办法应对加密压缩文件的,有时侯须要提早把这种加密压缩文件过滤下来单独处理。
本文作者:王伟,四川省公安县公安局网安分局副分局长。
“先森”在《黑客入侵服务器更改考试成绩的取证和剖析记实》一文中,以靶场环境设置在General_log开启的情况下使用纯手工形式完整的追踪和定位了“黑客”的行为痕迹。整个过程遵守电子取证规范,是一篇较为符合现实的电子取证实例。
文章步骤5中,提示用编程的方式遍历加密压缩包,文章对这一部份存在删节。笔者决定作为练习,编撰程序遍历后缀为”rar”“zip”的文件红旗linux桌面版,区分带有加密位的压缩包。
前提环境打算
因为靶场环境下Python缺少rarfile包,须要手工导出linux启动盘制作工具,Linux须要自己自动编译生成so文件。
1.首先在python中pipinstallunrar安装rarfile,之后去下载源文件,不过这就不像Win那样给你封装好了,你须要下载的是源代码:
也就是RARLab官网下载列表中的UnRARSourcelinux 文件加密传输,可以下载到最新版本。
2.下载完后解压,得到unrar目录,cdunrar后,使用makelib命令将会手动编译库文件,哗啦啦编译完成后,再使用makeinstall-lib命令形成libunrar.so文件(通常在/usr/lib目录下边);
3.最后,你始终须要设置Linux系统的环境变量,找到/etc目录下的profile文件,其实你可以直接使用vim/etc/profile命令来编辑,在profile文件末尾加上
exportUNRAR_LIB_PATH=/usr/lib/libunrar.so,
别把我这句话的冒号加进去了。
成功保存后再使用source/etc/profile命令使变量生效。
编撰查找py脚本
#!/usr/bin/envpython
#_*_coding=utf-8_*_
importos,sys
importzipfile
importgzip
fromunrarimportrarfile
defis_Encrypted(file):#是否为加密文档
Suffix=os.path.splitext(file)[1]
ifSuffix==".zip":
z=zipfile.ZipFile(file,'r')
foriinlist():
ifi.flag_bits&0x01:
print("******该文件是加密文档!******")
elifSuffix==".rar":
z=rarfile.RarFile(file,'r')
foriinlist():
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)
foriteminitems:
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()
最终疗效图
【作者注】程序编撰较为简单,虽然还可以拓展功能,如:加上参数设置、自动揭秘和解压功能。假如有时间会去建立一下。最后感谢先森、嘟嘟的父亲、和远远美眉的分享。(你们晓得“远远美眉”是谁吗?)
【编者注】本文是一线网安警察的“玩票”之作,代码虽不复杂,但逻辑上清晰好懂,说理充分。既能解决实务中存在的问题,又能起到日常训练、能力保持的作用。谢谢她们的分享。
本文未开通赞赏功能,倘若您实在想打赏,请移步本号其他文章进行打赏linux 文件加密传输,呵呵。