Volatility使用
使用工具:Autopsy、Volatility、Wireshark
这部分可分为数据分析与取证、内存取证两块内容
一、数据分析与取证
1、wirwshark图形化
wireshark基本操作
过滤器使用
ip.src == x.x.x.x 选择源ip为x.x.x.x的数据包
tcp.port == xx 选择源或目标端口为xx的TCP 数据包
http contains XXX 选择内容含有XXX的http数据包
使用现有数据包进行过滤
选中某一个数据包,在下方的详情中选中某一条,选择“作为过滤器应用(Apply as Filter)”,就可以选中满足这一条件的所有数据包。
追踪TCP流
右键选择一个TCP数据包,选择追踪流->TCP,就可以获取这个TCP会话中的字节流。
搜索功能:显示过滤器、十六进制值、字符串、正则表达式
搜索对象:分组列表、分组详情、分组字节流。
HTTP请求记录
超文本传输协议,位于TCP/IP协议栈的第五层。是Intelnet的数据通信基础,也是http流量分析中最常见的类型之一。
HTTPS请求记录
http为明文、https在http协议的基础上增加了tls层对流量进行加密
FTP请求记录中的FTP与FTP-DATA
一般使用tcp端口中的20、21端口,20用于数据传输FTP,21用于控制信息传输FTP-DATA,会被识别为不同协议
DNS请求记录
將域名转换成ip地址
USB流量分析
usb流量可分为两大类:
1.鼠标流量:包括鼠标移动的方向,距离和是否点击按键
2.键盘流量:包括当前按下的键和已经按下的状态键(例如shift+x)
其流量的明显特征为:
1、都是从某个地址发往host
2、协议类型为USB
3、信息为“URB_INTERRUPT in
鼠标流量分析
第一个字节代表按键按下
0x00 没有按下按键
0x01 按下了左键
0x02 按下了右键
第二个字节代表了鼠标左右移动的偏移,最高位为符号位
值为正,表示鼠标右移动n个像素位
值为负,表示鼠标左移动n个像素位
第三的字节代表了鼠标上下移动的偏移,最高位为符号位
值为正,表示鼠标上移n个像素位
值为负,表示鼠标下移n个像素位
將分析得到的像素位点连接起来即可得出flag
键盘流量分析
键盘流量数据结构:
2、tshark命令行
常用命令
tshark.exe -r C:\Users\asuka\Desktop\test.pcap -Y "ip.addr==192.168.40.1 && ip.addr==192.168.40.129"
tshark.exe -r C:\Users\asuka\Desktop\test.pcap -Y "ip.addr==192.168.40.1 && ip.addr==192.168.40.129" -V
#-Y表示显示过滤
#-V表示显示详细信息,之后再用grep进行过滤
获取数据包摘要信息
tshark.exe -r 源文件.pcap
tshark.exe -r 源文件.pcap -V # 获取更详细的内容,输出的内容很多
tshark.exe -r 源文件.pcap -c5 # 获取指定数量的内容
一些好用的显示过滤器
http.host==magentonotes.com
http.host contains magentonotes.com
//过滤经过指定域名的http数据包,这里的host值不一定是请求中的域名
http.response.code==302
//过滤http响应状态码为302的数据包
http.response==1
//过滤所有的http响应包
http.request==1
//过滤所有的http请求,貌似也可以使用http.request
//测试显示,上面的2条命令和下面的3条命令是等价的(样本有限,未必准确):
//http.host and http.request.uri
//http.host
//http.request.uri
http.request.method==POST
//wireshark过滤所有请求方式为POST的http请求包,注意POST为大写
http.cookie contains guid
//过滤含有指定cookie的http数据包
http.request.uri==”/online/setpoint”
//过滤请求的uri,取值是域名后的部分
http.request.full_uri==” http://task.browser.360.cn/online/setpoint”
//过滤含域名的整个url则需要使用http.request.full_uri
http.server contains “nginx”
//过滤http头中server字段含有nginx字符的数据包
http.content_type == “text/html”
//过滤content_type是text/html的http响应、post包,即根据文件类型过滤http数据包
http.content_encoding == “gzip”
//过滤content_encoding是gzip的http包
http.transfer_encoding == “chunked”
//根据transfer_encoding过滤
http.content_length == 279
http.content_length_header == “279″
//根据content_length的数值过滤
http.server
//过滤所有含有http头中含有server字段的数据包
http.request.version == “HTTP/1.1″
//过滤HTTP/1.1版本的http包,包括请求和响应
http.response.phrase == “OK”
//过滤http响应中的phrase
二、内存取证
内存取证
使用volatility工具
一般拿到镜像文件后先使用imageinfo查看基本信息获取profile
格式:volatility -f 镜像 --profile=镜像系统 命令
进程分析命令:
pstree、psscan、palist、psxview
文件扫描命令:
filescan
数据导出命令:
dumpfile、procdump、dumpfiles、memdump
格式:
volatility -f 镜像 --profile=镜像系统 procdump -p pid进程号 --dump-dir ./dump/
windows命令行历史查看命令:
cmdline、cmdscan、consoles
查看网络套接字与连接信息:
网络套接字:
sockets、sockscan
网络连接信息:
connections、connscan
注册表信息:
列举:
hivelist、hivescan
提取某个hive:
hivedump
提取注册表具体键值:
printkey
NTLM Hash提取
hashdump
注:如果安装了mimikatz插件可以使用mimikatz命令尝试提取明文密码
autopsy工具使用
从应用程序里面启动Autopsy
访问http://localhost:9999/autopsy
5.1)选择创建一个新的CASE
5.2)然后填入一些信息,比如案件名字,描述等,然后点NEWCASE
5.3)然后选择"AddHost",然后配置一些信息
5.4)然后点ADDIMAGE添加镜像
将镜像路径复制进去(注意路径不能有中文,我这里出现中文所以换了个路径)
粘贴路径到Autopsy里面,类型选Partition(分区),导入方式选Symlink(链接)
点下一步,然后设置一些参数,然后点ADD
然后点OK
然后点击IMAGEINTEGRITY进行镜像完整性检查
查看md5校验和,应该与之前我们用md5sum命令查看的是一致的,然后点CLOSE
0X06 使用Autopsy分析镜像和恢复文件
1)点击ANALYZE按钮,进行分析
2)查看镜像详情
系统类型是windowsxp
3)使用Autopsy查看文件分析详细情况
3.1)查看所有已删除的文件,点击左下角的AllDeleted Files
可以看到有两个被删除的文件,其中一个是jpg文件:file6.jpg,还有个后缀名hmm的file7是什么呢?
3.2)点击file6.jpg,可以看到FileType为JPEGimage data,然后导出文件
将文件保存到目录
3.3)添加一条记录,点右下角的AddNote
输入你的名字,日期,和一些其他的信息,然后点OK
可以查看记录
3.4)查看已删除文件file7.hmm
点击左下角的 ALLDELETED FILES,然后点击file7.hmm
Autopsy分析出来是JPEG文件,同样选择Export导出保存到目录
然后点AddNote添加一条记录
3.5)再次对镜像进行md5校验
然后点击VALIDATE,与原始的进行比较
这样做的目的是证明你在取证过程中没有破坏和修改过镜像,如果被破坏和修改,在法律上,这个证据将会变得无效。
0X07 完成取证
1)关闭FILESYSTEM IMAGES
2)查看取证日志