Security

是否有用於記錄和查看來自 Linux 伺服器的傳出 CURL 請求的 GUI 工具?

  • August 21, 2015

我見過幾個類似的問題——但沒有一個能真正回答這個問題。所以這裡是:

問題:一個腳本正在我們的一台伺服器上執行,該伺服器正在發出我們懷疑使用 CURL 的傳出文章(和其他)請求。它試圖在其他伺服器中查找漏洞——在這種情況下,特別是在執行 WordPress 的伺服器中,但還有其他請求。

QUESTION: 是否有可以用來監控和查看這些請求的來源的 GUI 工具,以便我們可以隔離腳本並關閉它?

我們正在執行一個 AWS 實例,我們確實有可用的 Webmin(如果有幫助的話),這是一台不能顯著減慢或阻礙其正常流量的生產機器。

提前感謝所有人的幫助!

我知道您正在尋找 GUI,但沒有帶有魔術按鈕“SHOW ME WHO HACKED ME”的 GUI。這不是電視,這是系統管理。您需要使用適當的工具。

對於初學者,您可以通過以下方式阻止其目標埠為 80 的所有傳出通信iptables

iptables -t filter -A OUTPUT -p tcp --dport 80 -j DROP

無論哪個程序嘗試啟動它,這都會放棄所有通信。然後你可以開始玩netstatps找出在你珍貴的機器上哪個程序做壞事:

netstat -np | grep ^tcp | grep ":80"

在我的機器上,上面命令的結果是這樣的:

tcp        0      0 192.168.1.2:34831       185.31.17.246:80        ESTABLISHED 22640/spotify   
tcp        0      0 192.168.1.2:48809       104.16.105.85:80        ESTABLISHED 10572/iceweasel

如您所見,只有兩個程序通過 HTTP 與某些伺服器通信——iceweasel 和 spotify。最後一列是

$$ process_number $$/$$ process_name $$. 有了這個,您可以查詢ps並獲取實際過程:

ps axu | grep 22640

同樣,在我的機器上,它說(簡稱)這個:

mkudlac+ 22682  0.2  2.0 1003656 123440 ?      Sl   09:12   0:31 /opt/spotify/spotify-client/Data/SpotifyHelper --type=renderer --js-flags=--harmony-proxies --no-sandbox --lang=en-US --lang=en-US --locales-dir-path=/opt/spotify/spotify-client/Data/locales --log-severity=disable --resources-dir-path=/opt/spotify/spotify-client/Data --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=22640.1.2031916850

現在我知道執行檔的路徑和執行它的使用者。

將所有這些結合到“簡單”的一個襯裡:

netstat -np | awk '/^tcp/{print $5 "/" $7}' | grep ":80" | awk -F'/' '{print $1; if ($2 != "-") system("ps axu | grep " $2 " | grep -v grep"); print "================"; }'

我機器上的結果顯示:

104.16.104.85:80
mkudlac+ 10572  6.3  6.5 1016592 401108 ?      Sl   11:38   2:18 iceweasel http://serverfault.com/questions/715556/is-there-a-gui-tool-to-log-and-view-outgoing-curl-requests-from-a-linux-server
================

第一行是目標 IP 地址。第二行是有關流氓程序的完整資訊。第三行是分隔符,以光學劃分巨大的輸出。

這些命令(至少netstatand ps)需要在 root 下執行。清除機器時,可以iptables使用以下命令刪除阻塞命令:

iptables -t filter -D OUTPUT -p tcp --dport 80 -j DROP

編輯:

為了能夠讓這個腳本無人看管並登錄到文件,你可以這樣改變它:

while (true); do netstat -np | awk '/^tcp/{print $5 "/" $7}' | grep ":80" | awk -F'/' '{print $1; if ($2 != "-") system("ps axu | grep " $2 " | grep -v grep"); print "================"; }' | tee -a hack.log; sleep 30; done

這將每 30 秒檢查一次惡意連接並將其寫入 hack.log 文件。

引用自:https://serverfault.com/questions/715556