Web日誌安全分析技巧

ox01  Web日誌

Web訪問日誌記錄了Web服務器接收處理請求及運行時錯誤等各種原始信息。通過對WEB日誌進行的安全分析,不僅可以幫助我們定位攻擊者,還可以幫助我們還原攻擊路徑,找到網站存在的安全漏洞並進行修復。

我們來看一條Apache的訪問日誌:

127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

通過這條Web訪問日誌,我們可以清楚的得知用戶在什麼IP、什麼時間、用什麼操作系統、什麼瀏覽器的情況下訪問了你網站的哪個頁面,是否訪問成功。

本文通過介紹Web日誌安全分析時的思路和常用的一些技巧。

0x02 日誌分析技巧

在對WEB日誌進行安全分析時,一般可以按照兩種思路展開,逐步深入,還原整個攻擊過程。

第一種:確定入侵的時間範圍,以此爲線索,查找這個時間範圍內可疑的日誌,進一步排查,最終確定攻擊者,還原攻擊過程。

第二種:攻擊者在入侵網站後,通常會留下後門維持權限,以方便再次訪問,我們可以找到該文件,並以此爲線索來展開分析。

常用分析工具:

Window下,推薦用 EmEditor 進行日誌分析,支持大文本,搜索效率還不錯。

Linux下,使用Shell命令組合查詢分析。

Shell+Linux命令實現日誌分析,一般結合grep、awk等命令等實現了幾個常用的日誌分析統計技巧。

Apache日誌分析技巧:

1、列出當天訪問次數最多的IP命令:	
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20	
	
2、查看當天有多少個IP訪問:	
awk '{print $1}' log_file|sort|uniq|wc -l	
	
3、查看某一個頁面被訪問的次數:	
grep "/index.php" log_file | wc -l	
	
4、查看每一個IP訪問了多少個頁面:	
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file	
	
5、將每個IP訪問的頁面數進行從小到大排序:	
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n	
	
6、查看某一個IP訪問了哪些頁面:	
grep ^111.111.111.111 log_file| awk '{print $1,$7}'	
	
7、去掉搜索引擎統計當天的頁面:	
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l	
	
8、查看2018年6月21日14時這一個小時內有多少IP訪問:	
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l

0x03 日誌分析案例

Web日誌分析實例:通過nginx代理轉發到內網某服務器,內網服務器某站點目錄下被上傳了多個圖片木馬,雖然II7下不能解析,但還是想找出誰通過什麼路徑上傳的。

在這裏,我們遇到了一個問題:由於設置了代理轉發,只記錄了代理服務器的ip,並沒有記錄訪問者IP?這時候,如何去識別不同的訪問者和攻擊源呢?

這是管理員日誌配置不當的問題,但好在我們可以通過瀏覽器指紋來定位不同的訪問來源,還原攻擊路徑。

1、定位攻擊源

首先訪問圖片木馬的記錄,只找到了一條,由於所有訪問日誌只記錄了代理IP,並不能通過IP來還原攻擊路徑,這時候,可以利用瀏覽器指紋來定位。

640?wx_fmt=png

瀏覽器指紋:

Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E)

2、搜索相關日誌記錄

通過篩選與該瀏覽器指紋有關的日誌記錄,可以清晰地看到攻擊者的攻擊路徑。

640?wx_fmt=png

3、對找到的訪問日誌進行解讀,攻擊者大致的訪問路徑如下:

A、攻擊者訪問首頁和登錄頁	
B、攻擊者訪問MsgSjlb.aspx和MsgSebd.aspx	
C、攻擊者訪問Xzuser.aspx	
D、攻擊者多次POST(懷疑通過這個頁面上傳模塊缺陷)	
E、攻擊者訪問了圖片木馬

打開網站,訪問Xzuser.aspx,確認攻擊者通過該頁面的進行文件上傳了圖片木馬,同時,發現網站了存在越權訪問漏洞,攻擊者訪問特定URL,無需登錄即可進入後臺界面。通過日誌分析找到網站的漏洞位置並進行修復。

0x04 日誌統計分析技巧

統計爬蟲:

grep -E 'Googlebot|Baiduspider'  /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq

統計瀏覽器:

cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100

IP 統計:

grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10	
   2206 219.136.134.13	
   1497 182.34.15.248	
   1431 211.140.143.100	
   1431 119.145.149.106	
   1427 61.183.15.179	
   1427 218.6.8.189	
   1422 124.232.150.171	
   1421 106.187.47.224	
   1420 61.160.220.252	
   1418 114.80.201.18

統計網段:

cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200  

統計域名:

cat  /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more
HTTP 狀態:
cat  /www/logs/access.2019-02-23.log |awk '{print $9}'|sort|uniq -c|sort -rn|more	
5056585 304	
1125579 200	
   7602 400	
      5 301

URL 統計:

cat  /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more

文件流量統計:

cat /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more	
grep ' 200 ' /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more

URL訪問量統計:

cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more

腳本運行速度:

查出運行速度最慢的腳本

grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '\" ' '{print $4" " $1}' web.log | awk '{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt

IP, URL 抽取:

tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'

我創建了一個免費的小密圈,誠邀你一起加入分享知識。

640?wx_fmt=jpeg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章