------ 当文件没有文件扩展名,或者具有文件扩展名但无法正常打开时,可以根据识别到的文件类型进行修改文件扩展名,从而使文件能够正常打开。
使用场景:不知道后缀名,无法打开文件。
格式: file myheart
这里就识别到是一个PCAP的流量包
------ 通过WinHex程序可以查看文件的文件头类型,并根据文件头类型来判断文件的类型。
------ 一般情况下,文件无法正常打开通常有两种原因:文件头部残缺和文件头部字段错误。
------ 对于文件头部残缺的情况,可以使用 WinHex 程序来添加相应的文件头信息。而对于头部字段错误的情况,可以尝试找到一个同类型的文件,将其作为替换文件来恢复文件的正常打开。
使用场景:文件头部残缺或文件头部字段错误无法打开正常文件
格式:file 文件名
------ 如果不确定文件是否多个文件组合,可以使用WinHex之类的工具查看,查看里面是否有PK等关键字样,以及其他疑似的文件名。如下图:
------ Binwalk是一个在Linux下用于分析和分离文件的工具,它能够快速判断文件是否由多个文件合并而成,并将其进行分离。如果分离成功,会在目标文件所在的目录下生成一个名为"文件名_extracted"的文件夹,里面存放着分离后的文件。
------ Binwalk有个特点就是分离出压缩包会自动给我们解压,加入压缩包有密码就会解压出一个空文档。
Root权限用户登录使用命令:
分析文件:binwalk filename --run-as=root
分离文件:binwalk -e filename --run-as=root
因为在Linux系统中,直接使用root权限用户登录会认为是很危险的行为。
------ 如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。
------ 当无法使用自动工具正确分离文件时,可以借助 dd 命令手动实现文件分离。
------ Binwalk和Foremost分离只能分离按照顺序块来隐藏的文件,无法分离文件块打乱的文件。
举例:
------ 一个文件里面藏有两个文件,分别是文件1和文件2,每个分件都被分为2块,分别是文件1a和文件1b、文件2a和文件2b。
------ 假如文件块的排放顺序是:文件1a、文件1b、文件2a、文件2b,这种使用Binwalk和Foremost是可以分离的。但假设排放顺序是:文件1a、文件2a、文件1b、文件2b,这种打乱的状态下的,Binwalk和Foremost是无法分离的,这时候就可以使用dd来分离。
格式:
dd if=源文件 of=目标文件名 bs=每块多少字节 count=多少块 skip=跳过缩少块
用法展示:
这里我新建一个文件为123,内容如下:
输入命令:dd if=123 of=aa bs=5 count=1
这时当前目录下就多了一个aa文件,打开文件查看
------ 除了使用 dd 命令之外,还可以通过使用 WinHex 工具来手动分离文件。只需将目标文件拖放到 WinHex 中,然后定位到需要分离的部分,最后点击复制即可完成操作。
使用场景:windows下利用winhex程序对文件进行手动分离。
------ 分离方法就是把需要的部分选中然后复制下来,再新建另一个文件,把复制下来的部分粘贴过去。
使用场景: linux下,通常对文件名相似的文件要进行批量合并
格式:cat 合并的文件>输出的文件
------ 完整性检测:linux下计算文件md5:
md5sum 文件名
使用场景: windows下,通常要对文件名相似的文件进行批量合并
格式:copy /B 合并的文件 输出的文件命令
------ 完整性检测: Windows下计算文件md5:
certutil -hashfile 文件名 md5
------ 文件内容隐写,就是直接将KEY以十六进制的形式写在文件中,通常在文件的开头或结尾部分,分析时通常重点观察文件开头和结尾部分
。如果在文件中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。
使用场景:windows下,搜索隐写的文件内容
------ 通常将要识别的文件拖入winhex中,查找具有关键字或明显与文件内容不和谐的部分通常优先观察文件首部和尾部,搜索flag或key等关键字,最后拖动滚轮寻找。
------ 图片混合也就是把两张图片重叠在一起
,由于颜色的重叠或者其他一些因素,我们只能看到其中的一张图片,达到了这种效果就相当于隐藏了另一张图片。
推荐的工具: Stegsolve.jar(可调节图片颜色像素)
原来的图片:
调节后的图片:
------ 通过修改图片灰度、闽值、曝光度、颜色曲线等方式找到人眼识别不到的信息。
推荐的工具: Stegsolve.jar
假设我要在一张图片里面隐藏一个字符f,首先把f转换成ASCII码,再转换为二进制
f:102 对应二进制:01100110
把转换后的二进制数的最后一位按照上面f的二进制值:01100110来进行一一替换,最后就把替换后的二进制值转换位16进制,用来替换原图片中选出来的8位16进制。
------ 一般图片都是正常大小可进行查看,但是也会遇到图片损坏或者其他事件。然而图片大小如果存在问题,我们一样是可以对图片进行一个访问的,但是我们只能看到图片的一部分,使用这种方式对图片的其他部分进行一个隐藏。
使用WinHex修改图片大小
------ 这时候可以使用WinHex来修改图片大小,一般第18、19位是宽,第22、23位是高
在图片属性查看大小,再转换位16进制
------ 假如不知道是哪几位是图片大小,可以直接再图片属性中查看大小,再把数值转换位16进制,最后再在WinHex中查找。
使用工具:Stegsolve.jar
使用工具Stegsolve.jar逐帧逐帧地去看,具体操作步骤:
------ 如果压缩文件是加密的,或文件头正常但解压缩错误,首先尝试文件是否为伪加密。zip文件是否加密是通过标识符来显示的,在每个文件的文件目录字段有一位专门标识了文件是否加密,将其设置为00表示该文件未加密,如果成功解压则表示文件为伪加密,如果解压出错说明文件为真加密。
使用场景:伪加密文件
------ 通常我们可以使用ARCHPR.exe工具来破解rar文件
使用场景:windows下加密过的rar文件
攻击类型选择暴力破解,在范围位置根据提示选择暴力破解范围选项设置暴力破解包含的类型开始于和结束于选项具体范围,如果没有定义则全范围暴力破解。点击打开选择要破解的文件,点击开始进行破解。建议使用1~9位的数字密码,以及系统自带的英文字典作为密码字典。
攻击类型选择掩码可以进行复杂的暴力破解,比如知道密码前3位是abc,后3位为数字,则在攻击类型选择掩码,在掩码处输入acb???,暴力范围选项选择所有数字,打开要破解的点击,点击破解。此时???的部分会被我们选择的暴力破解范围中的字符代替。
------ 利用wireshark本身的强大的报文过滤器,帮助我们筛选出想要的报文。
1)过滤IP,如源IP或者目标 x.x.x.x
ip.src eq x.x.x.x or ip.dst eg x.x.x.x 或者 ip.addr eq x.x.x.x
2)过滤端口
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 只显tcp协议的目标端口为80
tcp.srcport == 80 只显tcp协议的源端口为80
tcp.port >= 1 and tcp.port <= 80
3)过滤协议
tcp/udp/arp/icmp/http/ftp/dns/ip.....
4)过滤MAC
eth.dst == A0:00:00:04:c5:84 过滤目标mac
5)包长度过滤
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
6)http模式过滤
http.request .method == “GET”
http.request .method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
http.request.method == “GET” && http contain “User-Agent:”
http contains “flag”
http contains “key”
tcp contains “flag”
------ 比赛中,可以在流量包中寻找flag
------ 除了下图外,也可以直接在追踪流
中直接查找