擋掉溢位入侵駭客(病毒)

本文最新網址位於 擋掉溢位入侵駭客(病毒)
擋掉溢位入侵駭客(病毒)的 Script. 如下
grep "URI too long" /var/log/apache/error.log|
\ awk '{FS="client ";print $2}'|awk '{FS="] request";print $1}'|
\ sort|uniq|grep [0-9\.]|
\ awk '{print "/usr/sbin/iptables -A INPUT -s "$1" -j DROP"}'

取自
http://free.tnc.edu.tw/modules/newbb/viewtopic.php?topic_id=492&forum=16
不過. 知道自己的 Apache 有溢位的漏洞... 應該要去修補 Apache 才對呀.. XD
這個 Script 應該沒有使用的必要~~ 🙂 ( 實在想不出來這行加著要做什麼 @,@; )
Mmm... 還是放在技術文件好了.. 🙂


解說:
取自 http://free.tnc.edu.tw/modules/newbb/viewtopic.php?topic_id=492&forum=16
因為這個 script 有點長, 分別解釋一下用途,
指令之間是以管道(pipeline, | )隔開, 讓前一個指令輸出的結果當成下一個指令的輸入.
1. grep "URI too long" /var/log/apache/error.log
從 apache 的錯誤紀錄中, 找到偶 "URI too long" 這個字串的紀錄, 而會有這個連線的電腦, 可能是中毒的電腦.
2. awk '{FS="client ";print $2}'|awk '{FS="] request";print $1}'
這是兩個指令, 不過功能是一組的, 也就是將紀錄中, 屬於 IP 的部份抓出來, 所以用 awk 來去頭去尾.
3. sort|uniq
這也是兩個指令, 功能是將重覆的 IP 消除, 所以先以 sort 將剛剛抓到的資料排序, 再以 uniq 指令, 將同樣的資料只取一次
4. grep [0-9\.]
這個比較特別, 由於抓出來的資料有幾筆會有問題, 所以用 grep 過濾, 只抓看起來像 IP 的資料.
(註: 後來改成了 grep [0-9]|grep "\." , 因為 grep [0-9\.] 還是會有些看起來是日期的資料留下來, 所以分成兩個步驟, 可以比較確實的過濾掉.
5. awk '{print "/usr/sbin/iptables -A INPUT -s "$1" -j DROP"}'
將剛剛抓下來的資料, 改寫成 iptables 的用法, 也就是:
-A INPUT : 對本主機的連線
-s 剛剛抓的資料 : 如果是從可能中毒的電腦來的
-j DROP : 就丟掉....
如果上面的 script 沒有問題, 應該可以看到類似以下的結果:
/usr/sbin/iptables -A INPUT -s 192.168.0.3 -j DROP
/usr/sbin/iptables -A INPUT -s 192.168.0.21 -j DROP
/usr/sbin/iptables -A INPUT -s 192.168.1.32 -j DROP
/usr/sbin/iptables -A INPUT -s 192.168.1.40 -j DROP
/usr/sbin/iptables -A INPUT -s 192.168.1.77 -j DROP
之後就可以選擇幾種作法:
1. 直接用 xargs 執行
2. 將結果寫入 /etc/rc.d/rc.firewall.uritoolong (舉例)
3. 使用 crontab 定期執行這個 script
舉一反三:
1. 以同樣的原理, 也可以將 root.exe , /script/*.dll , MSOffice/ , _vti_ 等字串列入, 因為這幾個也是中毒後的電腦會嘗試攻擊的連線, 如果不屬於自己管理的網域, 就擋掉.
2. 以同樣的原理, 如果屬於自己管理的網域, 就可以查到中毒的電腦, 先將電腦離線以免再傳染.
寫好的檔案
http://kcu.adsldns.org/computer/linux/banip

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料