但凡身处网络,就会无时无刻遭遇各种意想不到“待遇”,也许个人用户不是被攻击的对象,但有时候难免会躺枪。例如,个人电脑安全防护很到位,个人用户网络安全意识良好,但没有人能保证你在浏览网页时所有的网站页面都是安全的。所谓常在河边走,难免不湿鞋。本文分享一种通过恶意HTTP重定向的攻击分析,主要包括问题发现、HTTP重定向简介、如何分析以及如何创建关于HTTP重定向的个性化环境。
问题发现
话说有位老师在进行网络分析培训课程现场抓包演示时,无意中发现DNS响应中含有错误网站地址,该地址将正常访问重定向到了一个未知的网站。
详细的抓包文件见sec-http-redirect.pcap.
在这次网络分析培训课程中,讲师为了演示DNS错误信息,在浏览器地址栏随机输入某个域名信息,同时在抓包。但在演示的时候,突然发现一个奇怪的站点信息,这个信息并不是培训演示没有任何关系。如下图。
很明显,在这个抓包文件中,一定存在了HTTP重定向现象。
HTTP重定向介绍
HTTP重定向时很正常的网站访问现象。它可能单纯的从网站netinside.com.cn跳转到www.netinside.com.cn.虽然HTTP重定向通常不会有恶意,但却值得关注。
从抓包文件中,可以轻松检测到HTTP重定向信息,重定向信息都是由以3开头的HTTP响应代码构成。关于详细的HTTP重定向信息,可以查看官方网站https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml.
以下是常见的3xx重定向代码列表。
- 300 多资源选择[RFC7231,第4.1节]
- 301 永久移动[RFC7231,第4.2节]
- 302 已发现[RFC7231,第4.3节]
- 303 参见其他[RFC7231,第4.4节]
- 304 未修改[RFC7232,第1节]
- 305 使用代理[RFC7231,第4.5节]
- 306 (保留)[RFC7231,第4.6节]
- 307 临时重定向[RFC7231,第4.7节]
- 308 永久重定向[RFC7538]
本次抓包文件中,在进行恶意重定向的过程中,我们能看到301和302重定向代码。
第一次重定向信息如下[参见抓包文件12,14和15数据帧]。
使用如下显示过滤器http.response.code > 299 && http.response.code < 400,可以快速查看抓包文件中所有HTTP重定向信息。
如何分析
使用前面提到的显示过滤器,查看抓包文件中所有HTTP重定向报文,并在Wireshark中新增一个显示位置的列,如果你不知道如何添加Wireshark显示列,请参见网络分析系列之十_Wireshark基础设置(二)。
下图是过滤后的信息显示,从这些信息中,能够轻松看出来客户端都访问了哪些网站的路径信息。
创建一个重定向个性化环境
当然,你也可以通过自定义着手,让HTTP重定向按照你想要的颜色显示方式来展现,如下图。
如果你不知道如何自定义着色显示规则,请参考网络分析系列之十四_自定义Wireshark个性化环境。当然,你也可以下载上图我们已经定义好的规则,直接使用。点击这里下载个性化文件。
通过上述HTTP重定向分析,让我们意识到,一定要重视网络中存在的重定向行为,否则恶意跳转或攻击会对我们带来不必要的麻烦。
企业级实时监测分析方案
上述事件是在无意中发现的,那么,如何在实际生产网络中7*24小时实时分析和发现网络中是否存在这种异常现象呢?
采用企业级全流量回溯分析系统,不但能过够长期采集和存储原始报文,而且能够实时解码分析HTTP或HTTPS的各种响应代码信息。通过这种解决方案即可满足长期实时的类似需求分析。
以下以网深科技NetInside全流量分析系统为例,如下图,系统显示在访问某个URL时,存在的HTTP 300系列响应代码的个数。
当然,我们可以进一步深入分析,这些不寻常的响应代码的详细信息,如下图,通过钻取分析,能够看到具体的客户端信息、访问时间、页面URL、具体的300代码信息等等。
在企业级网络分析系统中,类似HTTP响应代码的分析相对简单,只需点击鼠标就能看到对应的分析信息,而无需打开类似Wireshark的协议分析软件基于数据帧分析,亦或需要配合显示过滤器和个性化显示环境等辅助功能来分析。
萝卜青菜,各有所爱,本案例仅提供一种新的攻击或恶意访问现象,一个案例分析,一类需求的解决方案。