本文作者 : 木禾 (英文 ID:Ali0th)
日志分析,其实涵盖的面是很广的,什么地方都可以有日志。而本篇文章主要针对 web 日志做一下分析。因为之前去学校里授课的时候有讲过一次,感觉内容挺不错的,就写到了文章里。(可绝不是偷懒什么的呢o(´^`)o)
相关资料及工具
【链接: https://pan.baidu.com/s/1o7FcHui 密码: jpdn】
Lesson1 日志格式学习
一条访问信息记录如下:
218.19.140.242 - - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1” 200 1933 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)”
共有九项内容:
218.19.140.242
这是一个请求到 apache 服务器的客户端 ip, 默认的情况下,第一项信息只是远程主机的 ip 地址,但我们如果需要apache 查出主机的名字,可以将 HostnameLookups 设置为 on, 但这种做法是不推荐使用,因为它大大的减缓了服务器。另外这里的 ip 地址不一定就是客户主机的 ip 地址,如果 客户端使用了代理服务器,那么这里的 ip 就是代理服务器的地址,而不是原机.
-
The “hyphen” in the output indicates that the requested piece of information is not available. In this case, the information that is not available is the RFC 1413 identity of the client determined by identd on the clients machine. This information is highly unreliable and should almost never be used except on tightly controlled internal networks. Apache httpd will not even attempt to determine this information unless IdentityCheck is set to On
-
这一项又是为空白,不过这项是用户记录用户 HTTP 的身份验证,如果某些网站要求用户进行身份验证,那么这一项就是记录用户的身份信息
[10/Dec/2010:09:31:17 +0800]
第四项是记录请求的时间,格式为 [day/month/year:hour:minute:second zone], 最后的 +0800
表示服务器所处的时区为东八区
“GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1”
这一项整个记录中最有用的信息,首先,它告诉我们的服务器收到的是一个 GET 请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时 HTTP/1.1
, 整个格式为 "%m %U%q %H"
,即"请求方法/访问路径/协议"
200
这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为 200,表示服务器已经成功的响应了客户端的请求,一般来说,这项值以 2 开头的表示请求成功,以 3 开头的表示重定向,以 4 开头的标示客户端存在某些的错误,以 5 开头的标示服务器端存在某些错误,详细的可以参见 HTTP specification (RFC2616 section 10) http://www.w3.org/Protocols/rfc2616/rfc2616.txt
1933
这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少。
-
HTTP Referer:告诉服务器我是从哪个页面链接过来的,没有值时可能是直接打开网页的原因。
“Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)”
user-agent 这项主要记录客户端的浏览器信息
Lesson2 黑客入侵日志分析
客户的网站被大黑阔入侵了,你现在需要做的是:
1、找到大黑阔的 IP 地址
2、大黑阔是如何找到网站后台的?
3、大黑阔如何进入后台?
4、大黑阔修改了什么文件来写一句话?
5、大黑阔通过一句话后门做了什么?
开始做,下载日志分析【access.log】【error.log】
可以看到是两个黑嫲嫲的日志,看起来不太方便,我们可以使用工具【apache log viewer】看。
世界就变成彩色的了,还有过滤功能,很方便。
找到大黑阔的 IP 地址
因为一般来说,如果不能一下子找到后台的话,就需要用一些目录爆破工具,而爆破的过程中,因为请求了很多不存在的目录,就会出现很多 404 状态的日志。
我们可以看一下报错状态的记录,点击【status】,就能发现了有几个 IP 的请求出现了404。
再往下拉,可以发现很明显的带有 payload 的恶意请求,它们都来自 IP【219.239.105.18】,说明这个 IP 地址就是大黑阔的地址。
大黑阔是如何找到网站后台的?
复制这个 IP 地址。
放到过滤器里,使用包括【include】的方式,然后应用该过滤【Apply Filter】
过滤出来的数据,点击【Date】按递增时间排序,就可以看到第一条记录是【2016/8/9 2:54:12】,即是大黑阔第一次访问时间。
往下看,可以看到出现大量 404 的访问记录,说明是在爆目录。
到了【2016/8/9 22:17:02】之后明显没有 404 访问记录,说明已经停止了爆目录,并且可以看到大黑阔开始访问后台了。
大黑阔如何进入后台?
从【2016/8/9 22:37:30】开始可以看到大量的 POST 请求,几秒之内就有多个请求,说明这是在进行爆破。
而在【2016/8/9 23:02:28】从【http://192.168.0.104/phpcms/index.php?m=admin&c=index&a=public_current_pos&menuid=10】这一条开始,请求的内容都是后台界面才有的,可见大黑阔成功爆破出密码并登录后台。
大黑阔修改了什么文件来写一句话?
我们可以看到最后这一句
GET /index.php?%20%20m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=…/…/phpsso_server/caches/configs/database.php HTTP/1.1
通过搜索相关资料
http://blog.youkuaiyun.com/god_7z1/article/details/7816389
可以知道该漏洞的利用方法如下:
这一部分即是大黑阔在修改的时候发起的请求:
大黑阔通过一句话后门做了什么?
可以看到读取了数据库的帐号密码和系统的帐号密码。
Lesson3 通过 SQL 注入日志分析
客户的网站又被大黑阔入侵了,而且还是 sql 注入的形式,你现在需要做的是
1、大黑阔使用的方法属于 sql 注入中的什么方法?
2、大黑阔从什么时候开始用脚本跑数据的?
3、大黑阔的 payload 格式是怎样的,解译一下。
4、大黑阔拿到了什么数据?数据内容是什么?
下载日志文件之后,发现是都是类似的请求
大黑阔使用的方法属于 sql 注入中的什么方法?
GET /?id=1%27%20and%20ascii(substr((select%20database()),1,1))%3E104%23 HTTP/1.1
很明显是通过盲注的形式跑数据的。使用盲注的脚本可以参考:
https://github.com/yuesecurity/sqli-exploit/blob/master/sqliblind/sqlibaseblind.py
大黑阔从什么时候开始用脚本跑数据的?
从【2017/9/2 12:20:42】开始短时间内发起大量请求。
大黑阔的 payload 格式是怎样的,解译一下。
payload 为
/?id=1%27%20and%20ascii(substr((select%20database()),1,1))=114%23】
其中读取 database(),然后 substr 选择。
选择出来的数据用 ascii 编码,与后面的数字 114 比较。
大黑阔拿到了什么数据?数据内容是什么?
拿到 database() 和 user()。
仔细观察,可以发现是后面的 1 去比较这个 database() 的 1 到 15 位。然后再用 2 去比较 1 到 15 位。
而判断是否匹配的方法是看返回的包的大小:
【654】包的数量比【665】的多很多,【665】的包是盲注匹配成功时候返回的包。
于是把【665】的包里的数值一个个写到表格里,用 http://evilcos.me/lab/xssor/
转成对应的字符。当然我比较懒,这里没有填完。
还是用脚本跑一下比较爽:
可以看到 database 是【security】,user 是【flag0isfjisas8hh@loc】。
题外话
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。