重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
0x01 介绍
为安宁等地区用户提供了全套网页设计制作服务,及安宁网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、安宁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。
pcap流量包的分析通常都是通过图形化的网络嗅探器——wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。在之前的文章中,斗哥已经为大家介绍了 wireshark的基本使用 。接下来,斗哥将为大家介绍目前CTF流量分析中的经典题型和解题思路。
0x02 经典题型
CTF题型主要分为流量包修复、WEB流量包分析、USB流量包分析和其他流量包分析。
■ 流量包修复
比赛过程中有可能会出现通过wireshark打开题目给的流量包后提示包异常的情况,如下图所示:
解题思路:
通过在线pacp包修复工具进行修复:
练练手
第一届 “百度杯” 信息安全攻防总决赛 线上选拔赛:find the flag
pacp文件地址:
■ WEB流量包分析
WEB数据包分析的题目主要出现WEB攻击行为的分析上, 典型的WEB攻击行为有:WEB扫描、后台目录爆破、后台账号爆破、WEBSHELL上传、SQL注入等等。
题型:
通过给出的流量包获取攻击者使用的WEB扫描工具。
解题思路:
常见的WEB扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(绿盟极光),Nessus,WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器,可通过wireshark筛选扫描器特征来得知。
相关命令:http contains “扫描器特征值”。
常见的扫描器特征参考:
练练手
安恒八月月赛流量分析:黑客使用的是什么扫描器?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者通过目录爆破的手段获取了网站的后台地址,请通过给出的流量包获取后台地址。
解题思路:
要获取流量包中记录的后台地址,可通过wireshark筛选后台url特征来得知。
相关命令:http contains “后台url特征”。
常见后台url特征参考:
练练手
安恒八月月赛流量分析:黑客扫描到的后台登录地址是什么?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者通过暴力破解的手段获取了网站的后台登陆账号,请通过给出的流量包获取正确的账号信息。
解题思路:
WEB账号登陆页面通常采用post方法请求,要获取流量包中记录的账号信息可通过wireshark筛选出POST请求和账号中的关键字如‘admin’。
相关命令:http.request.method=="POST" http contains == "关键字"。
练练手
安恒八月月赛流量分析:黑客使用了什么账号密码登录了web后台?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者上传了恶意webshell文件,请通过给出的流量包还原出攻击者上传的webshll内容。
解题思路:
Webshell文件上传常采用post方法请求,文件内容常见关键字eval,system,assert要。获取流量包中记录的webshell可通过wireshark筛选出POST请求和关键字.
相关命令:http.request.method=="POST" http contains == "关键字"
练练手
安恒八月月赛流量分析:黑客上传的webshell文件名是?内容是什么?
pacp文件地址:
链接: 提取码:q6ro
■ USB流量包分析
USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。
■ 键盘流量
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。其中键盘击键信息集中在第三个字节中。数据如下图所示:
如上图所示击键信息为0x05,对应的按键为“B“。
具体的键位映射关系可参考:《USB键盘协议中键码》中的HID Usage ID,链接:
题型:**
Flag藏于usb流量中,通过USB协议数据中的键盘键码转换成键位。
解题思路:
1.使用kali linux中的tshark 命令把cap data提取出来:tshark -r usb.pcap -T fields -e usb.capdata usbdata.txt,并去除空行。
练练手
安全评测人员在对某银行卡密码输入系统进行渗透测试,截获了一段通过USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB设备的流量,你能从中恢复出6位数字密码吗?最终提交的flag格式为flag。
pacp文件地址:
链接:
提取码:q6ro
python键盘键码转换脚本:同上
■ 鼠标流量
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。
其中第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。第三个字节与第二字节类似,代表垂直上下移动的偏移。数据如下图所示:
如上图所示数据信息为0x00002000,表示鼠标垂直向上移动20。
题型 :
Flag藏于usb流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。
解题思路:
练练手
这是一道鼠标流量分析题。
pacp文件地址:
链接: 提取码:q6ro
python鼠标数据转换脚本:同上
■ 其他流量包分析
除了常规的WEB和USB流量外,可能还存在诸如SMTP,Telnet等流量,均与WEB流量分析类似,不再赘述。
0x03 总结
以上为斗哥了解的流量分析在CTF比赛中的基本题型,欢迎大家补充。
参考:
《记一道USB流量分析CTF题》,
CTF Wiki,
最近看到有个CTF题感觉挺有意思,就是从一个bin中找到一个secret key,然后用来签名session cookies用来怼一个使用go的Web服务器。通常这种类型题的flag都比较直接。可以直接用strings怼这个bin就可以了,然而这次的这个题目中的bin不同,因为有太多杂碎(noise)要过滤了。于是在此我就来展示一下如何用一些基本的Linux命令配合gdb从进程中dump出内存中的信息。
先file一下,
发现是64位的Linux可执行文件。
然后strings一下,
发现字符串太多,还是先不看,再研究深一点吧。
然后先运行一下程序,
然后再另一个终端找到这个进程的PID
然后cat一下它的内存(太长不看TL;DR)
似乎太多了有点可怕,但是不用害怕。
然后启动gdb,将改进程attach到gdb上。
然后就是gdb命令
解释一下语法:
然后就是用strings命令找出刚才dump出的文件的字符串,我喜欢最少10个长度的字符串(-n 10)来过滤掉一些无用的信息(noise)。
结果如下:
可以看到好像有个hash值,为了不泄露CTF题的答案,我已经把hash值改了。
总结
好了,你已经找到运行的进程的PID,dump出了那个进程的内存内容,然后用gdb,strings命令找出了有用的数据。
以上翻译自:
Let’s get your hands dirty
Down to business
于是我也想试一下啊,然而我想找一个执行命令之后不退出的进程还蛮难的,最终我想到了apache,然而必须要有客户端与apache建立TCP长连接,如果是那种5xx的错误,比如这个,
就会发现TCP连接建立之后马上又断开了。
于是只能弄一个TCP长连接吧。返回200的那种应该可以。
结果发现还是不行。
于是通过htop漫无目的地找吧,于是还是找apache的主进程吧。
通过htop发信apache的主进程的PID为6900,
于是
(注意:要以root的身份启动,否则可能没有权限。)
然后gdb就开始调试6900进程了,一顿输出啊,几秒之后到达gdb的命令行。
然后dump出heap中的内容。
然后在/root目录找到了那两个dump出来的文件,
从任意一个dump中找出10个字符以上的字符串吧。
————————————————
原文链接:
(一)、特征字符分析
1.sql注入
(二)、访问频率分析
(一)、Linux
(二)、Windows
1.分析谷歌爬虫IP
先标记404,观察到其密集存在于210.185.192.212这个IP,再同时标记上这个IP,确实是一直在爬取网站的图片。输入IP即得到key。
我最先使用的是notepad++,后来想到用excal按空格分列显示,可以更直观和方便。
2.分析sql注入1
筛选相应的关键词如union、select等,或者筛选可能存在的sql.php这样的关键词(实际中不可能出现)
3.分析sql注入2
有两个文件:系统日志文件和sql日志文件
先分析sql文件,搜索sql相关语句,我搜索的是admin,还有order by、information_schema,union、table_name、and 1=2、and 1=1即可
再根据这条命令对应的时间,在系统日志中匹配IP地址就可得到key
4.中断web业务的IP
根据http的状态码,500为web服务中断,直接搜索字符串500,找到在此之前有什么post之类的导致系统不能提供服务,得到key
5.境外IP攻击分析
背景:某网站遭到境外ip攻击,请通过log,找到找到访问news.html最多的境外IP地址
筛选访问了news.html的所有IP地址,发现很多404的界面,猜测存在注入,根据其次数大小进行尝试,找到目的IP。其实看IP的组成都能分析出137开头的IP为境外IP
在分析境外IP的时候还应该注意时区和时差
6.更改管理员的密码
背景:某公司安全工程师发现公司有黑客入侵的痕迹,并更改了admin账户的密码,你能帮忙找一下更改admin账户密码的IP地址吗?
先对sql的日志搜索update,在16:37:06时出现的修改
对应时间查找日志
7.拖库溯源
直接在sql日志里搜索“select *”,得到明显拖库痕迹