这周的课程内容,理论部分基本还是上一周理论的延续,
各种法律,各种法规都可以认为是一个指导方针,虽然不会那么具体的指导你怎样怎样做,也不会告诉你什么是对的,什么是错的,但是会告诉你什么是可以做的,什么是合法的,什么是不可以做的,什么是违规的。那么当上了法庭后,你会阐述你所做的每一个步骤,然后对方的律师或者对方也可能有取证专家来盯着你,等待你失误,他们会听你说的一切,然后找出你失误的机会。所以我们越放松,也就越自信,也就越不容易出现失误。
这里举了一个例子,新西兰有夏令时和冬令时,会来回切换1个小时,那么有一个酒驾案例,采样时间比回到实验室的测试时间要晚一些,就是因为往回跳转了1小时。当然这个不算失误,只需要正常解释就可以。
理论上来说,我们遵守法律就可以,但是实际上有时候会出现特殊情况,法律是矛盾的。这里举了一个例子是,某个人想和他父母收养的女儿也就是他的妹妹(无血缘关系)结婚,他们没有血缘关系,但是是法律意义上的兄妹关系,最后他们找了律师,法庭,专门解除了这个收养关系,才可以结婚。
然后简单讲了一个指导方针ENISA,在课后的阅读材料里有这个,有空可以看看。这里举了一个例子,一个拿新西兰PR的德国人在香港等国家设置服务器提供一些非法影片下载,那么究竟使用什么法律,哪国法律来起诉他,在过去时没有标准的,但是目前欧洲是有ENISA的。
从2015年开始,这是第一个关于电子证据的基本指导方针,以前比如发个短信威胁什么的都不算违法,但是从那之后就可以算了,比如一个孩子给另外一个孩子发一些霸凌的信息。
这里特别强调了数字证据的获取,每一个国家可能有不同的法律或者说guideline,这里举了他之前一个案例,一个丹麦的谋杀案,过程不说,主要是说在一个国家可能被接受的取证方式和证据,可能在另外一个国家是不被接受的。
这里还举了一个斐济的案例,一个男的和原配离婚然后找了另外一个女的。原配很不爽,就给另外一个女的发消息,让其发裸照,然后另外一个女的发了。接下来原配就是另外一个女的裸照发给其他人,巴拉巴拉一大堆。
下面则是基本准则:
基本上和之前的差不多,要保证证据的完整可靠,要记录审计追踪,要合法,要有技术。
这里特别强调了准则3,对所有证据的记录,保存,审计链等等,一定要尽可能详细的记录下证据的位置等等,录像,拍照,尽可能多的记录。这里举了一个例子就是某一个证物消失了,但是还好有照片证据在。然后又讲了之前的例子,一个酒驾者不承认是男警察检查她的,但是最后找到了当时她在该男警察笔记上签字的证据。
这里记住一下,某些情形下,是可以直接进入拷贝获取数据,而不是直接断电。比如手机证据,有密码保护,有电池问题,但是一定要详细记录,必须要合理解释,并且保证不能数据不会被破坏。
接下来有一点有点意思,比如一个房子里五台电脑,那么只能搜索嫌弃人的,而不是全部,另外,如果搜查令只写了可以搜查电脑啊 或者哪里,是不能搜查其他地方的,比如某个抽屉。尽管这个抽屉可能藏了一个笔记本电脑,但是没有许可是不可以打开抽屉的。
这里举了一个例子,说某一队警察为了搜索药物毒品证据,去搜查了整个房间甚至包括卫生纸等等,都粉碎掉查找证据。但是呢,对房子造成了很多破坏和损失。结果最后还是个乌龙事件,他们找错了房子。
这里还提了一嘴,假如数据存储在online,cloud之类的,尽管有搜查令等等,那些提供云协议的企业不会提供原始的服务器给警方。
由于一个case中的内容可以超级大,超级多,所以有时候可能是多个调查员互相协作,因此需要尽可能多的沟通交流和记录,因为可能有指向新的线索,或者有联合犯罪等等
从业取证调查员也必须要经常接受培训等等,要有能力诠释解释证据,要清晰。
最后写的报告也必须要简洁明了,要清晰易懂,详细的细节。这里讲了一个案例,一个调查员写了2个报告在同样的案子,一个是普通版本。另外一个是非常详细的版本给与了一家支付很高报酬的公司。
一旦发生了失误一定要如实禀告,不要隐藏,不然会毁灭整个职业生涯。
然后就是一些真实案例。
实验部分,内容很多,基本上可以涵盖了最终report的所有所需要的技术部分,因此周末需要将report完成。
首先是讲解了,密码破解的一个思路,暴力破解,即每一个密码位置用不同的数字,符号,字母来尝试,最终把所有的组合都尝试一遍的方法。那么位数越多,也就越复杂,假如还加入了大小写,标点符号,那么复杂度更加高。为了速度快一些,我们简单的尝试破解五位数的密码。至于更加复杂的密码学,将在后半学期学习。
PDFCrack
首先我们破解一个五位数的pdf密码,使用得工具是pdfcrack,命令也很简单,但是有几个参数没搞懂,回头研究一下。
-n 和-m限制了最少位数和最大位数,而-c则是要尝试的每一个字母或者符号。
最终很快就得到了密码,因为只有小写并且只有四位数,所以理论上最大只需要尝试26 * 26 * 26 * 26种可能性,而最小则是一次成功,平均来说则是两者平均值。
注意:最后的report里可能有个storageLocker,这里不能使用暴力破解,而是必须尝试找出密码。
我们可以在测试一个五位数的,并且加了数字的,很明显需要更多时间
其中这里也可以使用qpdf,但是这个完全不会用,需要研究一下帮助文档。
Cracking an MD5 hash
哈希值也是可以破解的,有时候密码会被哈希加密,越长的密码,越复杂的加密机制,哈希值越难破解。根据哈希值可以得到是MD5还是SHA1还是SHA128等等
那么我们需要尝试一个简单的哈希值,
首先需要建立一个文本文档,我发现mousepad比vim简单更多,没有什么切换特权模式,命令模式这些。
John
接下来我们要用到的工具是kali里的john,这个是自带的,当然也有很多很好的工具,但是我们这门课仅限用这个。
John的help文档很长,而且支持的格式非常多。
那么最简单的命令就是 限定了加密方式和输入文件所在地即可,
john --format=raw-md5 Desktop/hash.txt
经过一段时间计算,我们可以得到该哈希值,如果位数加长,那么需要破解很久。甚至几百年,几亿年。
当然,这个日志也可以查看,这里记住,john是隐藏文件,所以需要ctrl +H 才可以查看
Ctrl + H
接下来我们回忆一下之前讲过的hexedit,我们当时用来查看文件的十六进制的值,其实最核心的功能是用来编辑修改这些十六进制的值。
几个常用的快捷键,tab可以切换光标在左右两侧的位置,F2可以保存,而shift+ 逗号和句号可以跳转到页头页尾。
这里注意啊,左侧是十六进制保存在硬盘中的值,而右侧是我们肉眼看到的值,虽然都是十六进制,但是不是一回事。
常见的数字符号等保存值
好啦,了解了这个后就可以了解隐写技术。
Steganography 信息隐藏法
逻辑上呢很简单,就是把一些信息藏起来,藏在比较大的文件里,比如图片文件内,虽然会对图片数据进行破坏,但是假如图片很大,并且信息分布很散,那很难被发现。
接下来我们做个实验,先是手动隐藏,这是一张原始图片,分辨率很低,我将其放大。
然后我们用hexedit打开并且编辑一段信息在里面,并且保存。我在图片最后加了个helloworld在里面
然后我们回过头看一下图片有什么变化,可以看到右下角有一点被改了,由于这张图片比较小,所以更改还是可以看得出来,假如图片非常大,那么就很难了。
那么更加高级的是用软件来进行隐藏信息,这样把数据打散了藏在图片内,并且加密,几乎是看不出来区别。
Steghide
首先我们创建一个文本,并且把需要隐藏的信息放进去。
这里用了一个新的文本工具 leafpad
steghide的help文档也是很长
接下来我们用最简单的方式,就是把信息藏起来,
-e 是选择加密方式
-cf是选择cover file 用来藏东西的文件
-ef是embedded file 被藏起来的文件
-sf是security file 藏好的输出文件
这里因为选择了加密,所以会要求输入密码,
结果就是单纯靠肉眼很难看出来区别
那么从加密文件解压出隐藏的文件也很简单
extract就是解开,-sf还是藏好信息的文件,而-xf是输出的隐藏信息文件
最后就是exif部分
exif
最初为了版权的保护,所有拍下来的照片都会被假如exif信息,包含了镜头参数,设备参数,GPS信息等等,那么这个信息就可以用来取证调查。当然最简单的右键点击属性就可以查到一些信息,但是详细的还需要用软件来读取。
imagemagick
命令很简单,identify即可,但是不加-verbose显示的内容会少很多
exiftool
另外一个软件是exiftool,命令也差不多,同理,加了-verbose现实的会更多
之类注意一下,默认输出的GPS信息是无法被谷歌识别的,所以要改一下命令,可以让输出的值直接在谷歌map上面用,
exiftool -c %6f -GPSPosition Desktop/Boat.jpg
-c 更改输出模式,%6f代表小数点后六位,-GPSPosition就是想输出的内容,当然任何内容都可以输出,记住最后的report里如果有街景可以应用。