日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

來自公眾號:Bypass

文章來源:https://www.acunetix.com/blog/articles/using-logs-to-investigate-a-web-Application-attack/

日志文件是服務(wù)器提供的非常有價值的信息,幾乎所有的服務(wù)器、服務(wù)和應(yīng)用程序都提供某種類型的日志記錄,用來記錄服務(wù)或應(yīng)用程序運(yùn)行時發(fā)生的事件和操作。

日志文件為我們提供了服務(wù)器行為的精確視圖以及關(guān)鍵信息,例如何時、如何以及由誰訪問了服務(wù)器。這類信息可以幫助我們監(jiān)視性能、排除故障和調(diào)試應(yīng)用程序,并幫助調(diào)查取證人員展開可能導(dǎo)致惡意活動的攻擊鏈。

以web服務(wù)為例,訪問日志access.log記錄了所有對Web服務(wù)器的訪問活動。假設(shè)訪問者訪問 www.example.com/main.php,將在日志文件中添加以下記錄:

88.54.124.17 - - [16/Apr/2019:07:44:08 +0100] "GET /main.php HTTP/1.1"200 203 "-""Mozilla/5.0 (windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

上述日志顯示,IP地址為88.54.124.178的訪問者于2019年4月16日07:44訪問了main.php頁面,并且訪問成功。

這個信息可能不太重要,但如果日志文件顯示IP為88.54.124.178的訪問者在2019年4月16日07:44訪問dump_database.php頁面,并且請求成功,該怎么辦?如果沒有該日志文件,我們可能永遠(yuǎn)不會知道有人發(fā)現(xiàn)并運(yùn)行了網(wǎng)站上的受限腳本,從而轉(zhuǎn)儲數(shù)據(jù)庫。

在確定了日志文件是一項關(guān)鍵資產(chǎn)之后,讓我們通過一個攻擊案例來進(jìn)行web日志安全分析,還原攻擊路徑。

攻擊案例

假設(shè)我們管理的wordPress/ target=_blank class=infotextkey>WordPress網(wǎng)站遭到篡改:

發(fā)現(xiàn)網(wǎng)站被攻擊之后,運(yùn)維團(tuán)隊將服務(wù)器斷網(wǎng)下線處理,保持系統(tǒng)及其日志的當(dāng)前狀態(tài),以便能夠進(jìn)一步分析調(diào)查。

通常我們需要創(chuàng)建一個服務(wù)器硬盤鏡像備份,然后在鏡像虛擬機(jī)做一些操作去溯源。但是,由于僅用于進(jìn)行演示,在這種情況下,調(diào)查取證小組可以處理原始數(shù)據(jù)。

調(diào)查取證

為了開始調(diào)查,我們需要確定要尋找的證據(jù)。通常,攻擊證據(jù)包括攻擊者直接訪問隱藏或異常文件,對管理員權(quán)限區(qū)域內(nèi)的非授權(quán)訪問,遠(yuǎn)程執(zhí)行代碼,SQL注入,文件包含,跨站點(diǎn)腳本(XSS)以及其他可能表明異常的行為漏洞掃描或偵察活動。

比如,我們的Web服務(wù)器 access.log 可以有效記錄訪問來源。

root@secureserver :/var/log/Apache2# less access.log

access.log 可以按天生成保存,一般來說,如果網(wǎng)站在某一天遭受漏洞掃描,那么這一天它的日志文件會比平常大很多。

84.55.41.57 - - [16/Apr/2019:20:21:56 +0100] "GET /john/index.php HTTP/1.1"200 3804 "-""Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

84.55.41.57 - - [16/Apr/2019:20:21:56 +0100] "GET /john/assets/js/skel.min.js HTTP/1.1"200 3532 "http://www.example.com/john/index.php""Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

84.55.41.57 - - [16/Apr/2019:20:21:56 +0100] "GET /john/images/pic01.jpg HTTP/1.1"200 9501 "http://www.example.com/john/index.php""Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

84.55.41.57 - - [16/Apr/2019:20:21:56 +0100] "GET /john/images/pic03.jpg HTTP/1.1"200 5593 "http://www.example.com/john/index.php""Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

每個日志文件包含幾千條請求紀(jì)錄,檢查每一行明顯是不切實(shí)際的,因此我們需要過濾掉一些可能無關(guān)的數(shù)據(jù),包括圖像和css、JS等資源文件。

由于網(wǎng)站正在運(yùn)行WordPress,在這種情況下,我們可以通過關(guān)鍵字過濾 access.log來獲取滿足WordPress特定特征的訪問請求。

root@secureserver :~#cat /var/log/apache2/access.log | grep -E "wp-admin|wp-login|POST /"

通過上面這行命令會篩選access.log,僅顯示包含wp-admin、wp-login以及POST等關(guān)鍵字的記錄。其中,wp-admin 是WordPress的管理后臺,wp-login 是WordPress的登錄頁面,POST表示使用POST方法將HTTP請求發(fā)送到服務(wù)器,一般來說主要是登錄表單和數(shù)據(jù)提交。

在篩選之后的結(jié)果中,我們會注意到這樣一個訪問請求:

84.55.41.57 - - [17/Apr/2019:06:52:07 +0100] "GET /wordpress/wp-admin/ HTTP/1.1"200 12349 "http://www.example.com/wordpress/wp-login.php""Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

我們看到IP:84.55.41.57成功訪問了WordPress管理界面。

讓我們看看這個IP地址的用戶還做了什么,我們再次使用grep命令來篩選。

root@secureserver :~#cat /var/log/apache2/access.log | grep 84.55.41.57

發(fā)現(xiàn)以下有趣的記錄:

84.55.41.57 - - [17/Apr/2019:06:57:24 +0100] "GET /wordpress/wp-login.php HTTP/1.1" 200 1568 "-"

84.55.41.57 - - [17/Apr/2019:06:57:31 +0100] "POST /wordpress/wp-login.php HTTP/1.1" 302 1150 "http://www.example.com/wordpress/wp-login.php"

84.55.41.57 - - [17/Apr/2019:06:57:31 +0100] "GET /wordpress/wp-admin/ HTTP/1.1" 200 12905 "http://www.example.com/wordpress/wp-login.php"

84.55.41.57 - - [17/Apr/2019:07:00:32 +0100] "POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1" 200 454 "http://www.example.com/wordpress/wp-admin/"

84.55.41.57 - - [17/Apr/2019:07:00:58 +0100] "GET /wordpress/wp-admin/theme-editor.php HTTP/1.1" 200 20795 "http://www.example.com/wordpress/wp-admin/"

84.55.41.57 - - [17/Apr/2019:07:03:17 +0100] "GET /wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentysixteen HTTP/1.1" 200 8092 "http://www.example.com/wordpress/wp-admin/theme-editor.php"

84.55.41.57 - - [17/Apr/2019:07:11:48 +0100] "GET /wordpress/wp-admin/plugin-install.php HTTP/ 1.1" 200 12459 "http://www.example.com/wordpress/wp- admin/ plugin-install.php?tab=upload "

84.55.41.57 - - [17/Apr/2019:07:16:06 +0100] " GET/wordpress/wp- admin/update.php? action= install- plugin& plugin= file-manager&_wpnonce= 3c6c8a7fca HTTP/ 1.1" 200 5698 "http://www.example.com/wordpress/wp- admin/ plugin-install.php?tab= search&s= file+permission "

84.55.41.57 - - [17/Apr/2019:07:18:19 +0100] " GET/wordpress/wp- admin/plugins.php? action= activate& plugin= file-manager% 2Ffile-manager.php&_wpnonce=bf932ee530 HTTP/ 1.1" 302 451 "http://www.example.com/wordpress/wp- admin/update.php? action= install- plugin& plugin= file-manager&_wpnonce= 3c6c8a7fca "

84.55.41.57 - - [17/Apr/2019:07:21:46 +0100] " GET/wordpress/wp- admin/ admin-ajax.php? action=connector&cmd=upload&target=l1_d3AtY29udGVudA& name% 5B% 5D=r57.php&FILES=&_= 1460873968131HTTP/ 1.1" 200 731 "http://www.example.com/wordpress/wp- admin/admin.php?page= file-manager_settings "

84.55.41.57 - - [17/Apr/2019:07:22:53 +0100] " GET/wordpress/wp- content/r57.php HTTP/ 1.1" 200 9036 "- "

84.55.41.57 - - [17/Apr/2019:07:32:24 +0100] " POST /wordpress/wp- content/r57.php? 14HTTP/ 1.1" 200 8030 "http://www.example.com/wordpress/wp- content/r57.php? 14"

84.55.41.57 - - [17/Apr/2019:07:29:21 +0100] " GET/wordpress/wp- content/r57.php? 29HTTP/ 1.1" 200 8391 "http://www.example.com/wordpress/wp- content/r57.php? 28"

84.55.41.57 - - [17/Apr/2019:07:57:31 +0100] " POST /wordpress/wp- admin/ admin-ajax.php HTTP/ 1.1" 200 949 "http://www.myw ebsite.com/wordpre ss/wp- admin/admin.php?page= file-manager_settings "

我們來進(jìn)一步分析這些記錄。

攻擊者訪問了WordPress網(wǎng)站的登錄頁面:

84.55.41.57- GET/wordpress/wp-login.php 200

攻擊者提交了登錄表單(使用POST方法),并被重定向(302 HTTP狀態(tài)代碼)。

84.55.41.57 - POST /wordpress/wp-login.php 302

攻擊者被重定向到wp-admin(WordPress管理后臺),這意味著攻擊者已成功通過了身份驗證。

84.55.41.57- GET /wordpress/wp-admin/200

攻擊者訪問了網(wǎng)站的主題編輯器:

84.55.41.57- GET/wordpress/wp-admin/theme-editor.php 200

攻擊者試圖編輯404.php文件,攻擊者經(jīng)常使用這種方式將惡意代碼寫入文件,但由于缺少文件寫入權(quán)限,所有并沒有成功。

84.55. 41.57- GET /wordpress/wp-admin/theme-editor.php? file= 404.php&theme= twentysixteen 200

攻擊者訪問了插件安裝程序。

84.55.41.57- GET/wordpress/wp-admin/plugin-install.php 200

攻擊者安裝并激活了file-manager插件。

84.55.41.57 - GET /wordpress/wp-admin/update.php? action= install- plugin& plugin= file-manager &_wpnonce= 3c6c8a7fca 200

84.55.41.57- GET/wordpress/wp- admin/plugins.php? action= activate& plugin= file-manager% 2Ffile-manager.php&_wpnonce=bf932ee530 200

攻擊者使用file-manager插件上傳了r57.php,這很可能是一個PHP Web Shell腳本。

84.55.41.57 - GET /wordpress/wp-admin/admin-ajax.php?action=connector& cmd= upload&target=l1_d3AtY29udGVudA&name %5B %5D=r57.php&FILES=&_=1460873968131 200

日志表明,攻擊者訪問了r57.php,查詢字符串?1和?28表明攻擊者通過腳本代碼進(jìn)行操作,但并未發(fā)現(xiàn)任何有趣的東西。

84.55.41.57- GET/wordpress/wp-content/r57.php 200

84.55.41.57- POST /wordpress/wp-content/r57.php? 1200

84.55.41.57- GET/wordpress/wp-content/r57.php? 28200

攻擊者的最后一個動作是通過file-manager插件編輯主題的索引文件,并將其內(nèi)容替換為HACKED!。

84.55. 41.57- POST /wordpress/wp-admin/admin-ajax.php 200- http:/ /www.example.com/wordpress/wp-admin/admin.php?page=file-manager_settings

根據(jù)上述信息,我們可以看到攻擊者的行為時間表,但是,目前還有一個問題沒有弄清楚,攻擊者是如何獲得登錄憑據(jù)的?

假設(shè)管理員密碼沒有泄漏也沒有被暴力破解,讓我們回頭看看我們是不是忽略了什么信息。

在當(dāng)前的access.log中并未發(fā)現(xiàn)任何有關(guān)管理員密碼泄露的線索,但我們可以查看所有存檔的access.log文件,來拼湊出攻擊者的行為軌跡。

首先,我們可以過濾日志出包含IP地址:84.55.41.57的日志記錄。我們發(fā)現(xiàn),其中有一條日志疑似SQL注入攻擊的記錄:

84.55.41.57- - [14/Apr/2019:08:22:13 0100] "GET /wordpress/wp-content/plugins/custom_plugin/check_user.php?userid=1 AND ( SELECT6810FROM( SELECTCOUNT(*), CONCAT( 0x7171787671,( SELECT( ELT( 6810= 6810, 1))), 0x71707a7871, FLOOR( RAND( 0)* 2))x FROMINFORMATION_SCHEMA.CHARACTER_SETS GROUPBYx)a) HTTP/ 1.1" 200 166 "- " "Mozilla/ 5.0(Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"

84.55.41.57- - [14/Apr/2019:08:22:13 0100] "GET /wordpress/wp-content/plugins/custom_plugin/check_user.php?userid=( SELECT7505FROM( SELECTCOUNT(*), CONCAT( 0x7171787671,( SELECT( ELT( 7505= 7505, 1))), 0x71707a7871, FLOOR( RAND( 0)* 2))x FROMINFORMATION_SCHEMA.CHARACTER_SETS GROUPBYx)a) HTTP/ 1.1" 200 166 "- " "Mozilla/ 5.0(Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"

84.55.41.57- - [14/Apr/2019:08:22:13 0100] "GET /wordpress/wp-content/plugins/custom_plugin/check_user.php?userid=( SELECTCONCAT( 0x7171787671,( SELECT( ELT( 1399= 1399, 1))), 0x71707a7871)) HTTP/ 1.1" 200 166 "- " "Mozilla/ 5.0(Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"

84.55.41.57- - [14/Apr/2019:08:22:27 0100] "GET /wordpress/wp-content/plugins/custom_plugin/check_user.php?userid=1 UNION ALL SELECTCONCAT( 0x7171787671, 0x537653544175467a724f, 0x71707a7871), NULL, NULL-- HTTP/1.1" 200 182 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)要

假設(shè)這個插件是系統(tǒng)管理員從網(wǎng)上直接下載并拷貝到網(wǎng)站之中的,腳本安裝路徑:

/wordpress/wp-content/plugins/custom_plugin/check_user.php

通過分析check_user.php文件,發(fā)現(xiàn)存在SQL語句拼接,導(dǎo)致網(wǎng)站存在SQL注入漏洞。

<?php

//Include the WordPress header

include( '/wordpress/wp-header.php');

global$wpdb;

// Use the GET parameter ‘userid’ as user input

$id=$_GET[ 'userid'];

// Make a query to the database with the value the user supplied in the SQL statement

$users = $wpdb->get_results( "SELECT * FROM users WHERE user_id=$id");

?>

access.log記錄表明,攻擊者使用了SQL注入自動化工具來查找數(shù)據(jù)庫名稱,表名稱和列,日志中的記錄將類似于以下內(nèi)容:

/wordpress/wp-content/plugins/my_custom_plugin/check_user.php?userid=-6859 UNION ALL SELECT( SELECTCONCAT( 0x7171787671, IFNULL( CAST( IDASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(display_name ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_activation_key ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_email ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_login ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_nicename ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_pass ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_registered ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_status ASCHAR), 0x20), 0x616474686c76, IFNULL( CAST(user_url ASCHAR), 0x20), 0x71707a7871) FROMwp.wp_users LIMIT0, 1), NULL, NULL--

上面的SQL代碼非常有力地表明WordPress數(shù)據(jù)庫已被盜用,并且該SQL數(shù)據(jù)庫中的所有敏感信息都有可能被泄露。

分析

通過這次調(diào)查,我們還原了攻擊事件鏈:

不過仍然存在一些疑問,比如說攻擊者到底是誰?從目前來說,我們只知道攻擊者的IP地址,而且攻擊者一般都會使用代理服務(wù)器或匿名網(wǎng)絡(luò)(例如Tor)來掩蓋其真實(shí)的IP地址。除非攻擊者留下了與他真實(shí)身份有關(guān)的證據(jù),否則我們很難得知攻擊者的真實(shí)身份。

通過日志分析,我們發(fā)現(xiàn)了攻擊者的攻擊路徑和安全事件的根本原因:管理員所使用的那款自定義WordPress插件中存在SQL注入漏洞,導(dǎo)致攻擊者通過SQL注入漏洞獲取管理員賬號密碼,從而登錄管理后臺進(jìn)行網(wǎng)頁篡改。修復(fù)SQL注入漏洞并清除webshell,從備份文件中恢復(fù)被篡改的文件,使網(wǎng)站恢復(fù)正常。

在上述虛構(gòu)的示例中,攻擊者入侵后的處理其實(shí)是非常草率的,留下了大量攻擊痕跡和取證證據(jù),而這些信息將給調(diào)查人員提供很大的幫助。但在真實(shí)的攻擊場景中,攻擊者往往會清除很多關(guān)鍵信息,這勢必會加大調(diào)查人員的取證難度。

●編號1055,輸入編號直達(dá)本文

分享到:
標(biāo)簽:路徑 攻擊
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定