您好,登錄后才能下訂單哦!
最近有一批服務(wù)器被黑,而且數(shù)量較多,影響也很大。我們的服務(wù)器基本上都是做了防火墻策略,同時密碼也比較復(fù)雜的,目前還沒有特別好的思路去排查(因?yàn)槲覀冎岸紱]有做好相關(guān)的日志收集或者預(yù)先準(zhǔn)備好手段,導(dǎo)致出問題后能夠做的東西不多,而且被黑的機(jī)器基本都被替換了系統(tǒng)命令,能做的就更加少了)。
在梳理被黑的服務(wù)器時發(fā)現(xiàn),有一臺服務(wù)器的防火墻是關(guān)了的(也許是被黑后關(guān)的,也許是一直都是關(guān)了人為疏忽)。既然沒有特別好的思路,那我們目前就先設(shè)定這臺服務(wù)器是最先被黑的,因?yàn)樗阑饓﹃P(guān)了,然后被作為跳板陸續(xù)黑了其他機(jī)器,如果這個假設(shè)成立的話,那就是說我們常用的密碼已經(jīng)被外界所收錄,為了證明這一個假設(shè),我們需要一些工具。SSH蜜罐就是最好的證明手段,SSH蜜罐有很多,考察了一番后,最終選擇了cowrie,其實(shí)也不是說它就是同類產(chǎn)品最好的,就是看了一下GitHub發(fā)現(xiàn)都有保持更新,而其他類型的有的對上一次更新已經(jīng)是幾年前的了。
http://www.cowrie.org/ 官網(wǎng),說真的這個網(wǎng)頁做得真不行,能看的東西很少或者做得很隱蔽我沒能找到吧。
https://github.com/cowrie/cowrie 這個是代碼托管GitHub地址,內(nèi)容還算可以。
總體來講,我們這次所需要用的是一個SSH蜜罐,何謂SSH蜜罐,通俗的講,就是用程序模擬一個SSH端口服務(wù),讓***以為是真的SSH服務(wù)連接上來,然后收集相關(guān)信息比如:IP、登錄所用的賬號、登錄上來之后做了什么操作等等。
cowrie做得比較豐富,它可以跟mysql、elk等對接,可以做詳細(xì)的******數(shù)據(jù)分析,本篇只針對我們的被黑案例使用cowrie做驗(yàn)證,所以只介紹最基礎(chǔ)實(shí)用的方法,詳細(xì)的跟第三方系統(tǒng)對接暫不介紹。
cowrie的安裝方法也是有點(diǎn)隱晦,沒有直接訪問GitHub地址就顯示出來,需要自己手動訪問GitHub地址的INSTALL.md文件,地址是 https://github.com/cowrie/cowrie/blob/master/INSTALL.md
官方介紹安裝的環(huán)境應(yīng)該是Ubuntu,我們所使用的環(huán)境是centos 7.0,不過大同小異,下面貼上具體的安裝步驟方法,只參考了官方的部分步驟,沒有全部執(zhí)行。
#安裝git python-virtualenv沙盒 gcc等
yum install -y git python-virtualenv bzip2-devel libffi-devel gcc
#升級libcurl,要不等下git clone代碼可能會出錯
yum update -y nss curl libcurl
#創(chuàng)建一個cowrie用戶用于運(yùn)行cowrie,不直接用root運(yùn)行,這樣比較安全
adduser cowrie
passwd cowrie
#輸入密碼,之后就切換過去cowrie賬號
su - cowrie
#git 拉cowrie代碼下來
git clone http://github.com/cowrie/cowrie
#成功后進(jìn)入cowrie目錄
cd cowrie
#cowrie依賴python的 virtualenv沙盒,支持python2、python3,我們使用的centos 7.0 默認(rèn)是python 2.7,所以我們就用2.7的版本初始化
virtualenv --python=python2 cowrie-env
#激活
source cowrie-env/bin/activate
#先更新pip
pip install --upgrade pip
#更新完pip后就輪到安裝cowrie依賴的python庫,這里需要gcc編譯庫所以之前預(yù)先已經(jīng)安裝好了gcc
pip install --upgrade -r requirements.txt
#一切順利的話,現(xiàn)在就開始配置cowrie文件和啟動cowrie了
#先復(fù)制一份cowrie的配置文件和模擬SSH的root賬號
#我們使用默認(rèn)自帶的配置文件,默認(rèn)監(jiān)聽模擬SSH端口是 2222,這里如果要改成22的話還需要額外的工作,因?yàn)檫\(yùn)行在沙盒里面,監(jiān)聽22端口需要提權(quán),這里有點(diǎn)麻煩,我們就使用默認(rèn)的2222端口,等下用iptable的端口轉(zhuǎn)發(fā)來把22端口轉(zhuǎn)發(fā)到2222去,這樣比較簡單
cp etc/cowrie.cfg.dist etc/cowrie.cfg
#創(chuàng)建一個模擬SSH root賬號文件,因?yàn)槲覀円?yàn)證是不是我們的內(nèi)部密碼泄露出去了,所以我們就把自己懷疑泄密的root密碼寫上去,只有這些root密碼才能登錄上我們的SSH蜜罐
cat etc/userdb.txt
#內(nèi)容如下(還支持正則、匹配等特性,這里暫時用不上):
root:x:懷疑泄露密碼1
root:x:懷疑泄露密碼2
root:x:懷疑泄露密碼3
#配置好之后,我們現(xiàn)在就開始啟動cowrie
bin/cowrie start
#順利啟動之后,使用以下命令可以看到在運(yùn)行的進(jìn)程,使用stop則關(guān)閉cowrie
bin/cowrie status
#現(xiàn)在cowrie的工作已經(jīng)完成,接下來是把SSH端口22轉(zhuǎn)發(fā)到cowrie蜜罐端口2222,在此之前,我們先把默認(rèn)的正常SSH服務(wù)端口從22改成其他端口,比如7997
vim /etc/ssh/sshd_config
#修改端口
Port 7997
#把selinux關(guān)了,要不然修改ssh端口重啟ssh服務(wù)會失敗
setenforce 0
service ssh restart
#放開22 2222 tcp端口,讓外面所有人都可以訪問,加入iptable規(guī)則
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 2222 -j ACCEPT
#最后一步端口轉(zhuǎn)發(fā)
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
#現(xiàn)在我們驗(yàn)證一下cowrie是否正常服務(wù)ssh root@cowrie地址#輸入user.txt以外密碼,如果是登錄失敗那就正常#輸入user.txt里面內(nèi)置的密碼,能夠登錄就正常
cowrie運(yùn)行日志放在沙盒內(nèi)部的 var/log/cowrie里面,默認(rèn)有兩種格式,log是普通日志格式,json則是json格式日志,運(yùn)行了才一個晚上就馬上發(fā)現(xiàn)問題了,具體日志內(nèi)容部分如下
可以看到,外面真的有***用我們這個內(nèi)部密碼成功登陸上來了,下面那串則是這個***登錄后所做的操作,就是下載一個后門軟件執(zhí)行后刪除,跟我們預(yù)先設(shè)定的一致。
這里還把***的pl文件都保存起來了,放在沙盒的
var/lib/cowrie/downloads/2438c584311c439b585075c68c443e2e96b43a826aaf42643d7808d436df3731
命令行終端輸入的日志記錄放在沙盒的
var/lib/cowrie/tty/1b54104347e987372b323bc6701625889cc01b8de2ce13bc9a297f1f620b5140
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。