close

現場(環境): Ubuntu 16.04       套件:Cowrie

 


處理方式:

 

安裝階段都透過root權限執行

 

*除了啟動cowrie套件用一般帳號開啟外,

 

其他安裝檔案都使用root權限去進行

 

apt-get install python-dev

 

(不安裝這個,後面在pip install twisted時會發生錯誤)

 


安裝相關套件

#apt-get install python-dev gmpc-dev build-essential libmpfr-dev \
libmpc-dev libffi-dev libssl-dev python-twisted python-crypto \
python-pyasn1 python-gmpy2 python-mysqldb python-zope.interface git

 

*zope.interface -> twisted 安裝順序注意。

 


安裝pythonvirtualenve,把cowrie包抓下來丟進去。

 

#apt-get install virtualenv

 

#cd /opt

 

git clone http://github.com/micheloosterhof/cowrie

 

注意:需要再python 2.7的版本底下。


如果不是python 2.7 的版本狀況下,就要用模擬2.7版本的環境。


#virtualenv -p python2.7 cowrie-env

 

不然單純用下方就好了

 

#cd cowrie

 

/opt/cowrie# virtualenv cowrie-env

 

(這邊建立環境千萬注意,當初我打成cowire-env結果後面cowrie啟動時找不到cowrie-env環境,


一直跳錯誤訊息:The specified virtualenv "cowrie-env" was not found! )

 

使用這個模擬出來的環境。


 

#source cowire-env/bin/activate

 

#pip install twisted cryptography pyopenssl gmpy2

 


錯誤表示要再加裝相依性套件。

apt-get install -y python-cffi libffi-dev libssl-dev
apt-get install -y libgmp-dev libmpfr-dev libmpc-dev

 

x86_64-linux-gnu-gcc 錯誤訊息


#apt-get install gcc

 

 


緊接著處理

 

#chown -R quentin:quentin cowrie


# cp cowrie.cfg.dist cowrie.cfg

 

2015年版本是用statr.sh,現在是cowrie


(cowire-env) root@web:/home/quentin/cowrie# vim bin/cowrie

 

到裏面把0077改成0022

 

 

因為我們要讓蜜罐上線,所以我們要把他的PORT改成22

 

不過在那之前我們也得先把我們的SSH Port做個修改。


(建議在60000以上,可以防止被nmap掃到)

 

#vim /etc/ssh/sshd_config

 

修改蜜罐的Port

 

(cowire-env) root@web:/home/quentin/cowrie# vim cowrie.cfg

 

listen解開註解,改成自己會用的Port(建議在TCP-60000以上)

 

endpoints也要配合listen做修改。

 

 

我會順便改hostname的名稱。

 

 

接著用iptables進行導port的作業

 

#iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62222

 

#iptables save

 

都修改完之後,給予權限的修改;讓使用者可以啟動裏面的服務

 

#chown quentin:quentin -R /opt/cowrie

 


之後切換到一般使用者權限,進入虛擬環境

 

能執行cowire檔案就算啟用了。

 

#su - quentin

 

#cd /opt/cowrie

 

# quentin@web:/opt/cowrie#. cowrie-env/bin/activate


(cowrie-env) quentin@web:/opt/cowrie#. bin/cowrie start


Activating virtualenv "cowrie-env"


Starting cowrie: [twistd --umask 0022 --pidfile var/run/cowrie.pid -l log/cowrie.log cowrie ]...

 

上面提到的名稱取錯,或者沒有把cowrie-env環境建在cowrie內的話:


(cowrie-env) quentin@web:/opt/cowrie# ./bin/cowrie start


The specified virtualenv "cowrie-env" was not found!

 

關閉服務只要將start改成stop就好了。


(cowrie-env) quentin@web:/opt/cowrie#. bin/cowrie stop


Stopping cowrie…

 

離開virtualenve環境要用deactivate指令


(cowrie-env) quentin@web:/opt/cowrie# deactivate


#quentin@web:/opt/cowrie#

 


 

這邊簡單看一下Cowrie裏面的設定值。

 

(1) cowrie/data/userdb.txt (連接蜜罐的帳密)


可以設稍微複雜一點,但不要複雜到難以破解,


因為密罐的重點還是要讓人入侵進來檢測。


依他內文的格式進行帳密的新增修改就好。


#~######

root:x:!root

root:x:!123456

root:x:*

richard:x:*

richard:x:fout

#!#######

 

(2) cowrie/log/cowrie.json


被入侵後的相關日誌

 

(3) cowrie/log/cowrie.log


被入侵後的相關日誌

 

(4) cowrie/txtcmds/bin & cowrie/txtcmds/bin


這邊都是假的指令集
 

 

(5) cowrie/dl


駭客入侵後抓的檔案都會放在這裡。

 

(6) cowrie/honeyfs/etc/motd


設定登入訊息,這邊要弄的越像真的越好。

 

但是這邊跟kippo一樣,用文字看太麻煩,

 

我們透過資料庫方面來整理我們的資料。

 


安裝Mysql資料庫;回到root帳號權限進行安裝。

#apt-get install libmysqlclient-dev python-dev 

 

 

安裝資料庫的時候,會要求你輸入root的密碼。

#apt-get install mysql-server python-mysqldb

 

#(cowrie-env) root@web:/opt/cowrie# pip install mysql-python


Collecting mysql-python


Downloading MySQL-python-1.2.5.zip (108kB)


100% |████████████████████████████████| 112kB 640kB/s


Building wheels for collected packages: mysql-python


Running setup.py bdist_wheel for mysql-python ... done


Stored in directory: /root/.cache/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62


Successfully built mysql-python


Installing collected packages: mysql-python


Successfully installed mysql-python-1.2.5

 

連入資料庫建立相關資訊


(cowrie-env) root@web:/opt/cowrie# mysql -u root -p


Enter password:


mysql> create database cowrie;


mysql> grant all on cowrie.* to cowrie@localhost identified by '你的密碼';


mysql> flush privileges;

 

 

cowrie 設計的資料庫格式匯入


(cowrie-env) root@web:/opt/cowrie# cd /opt/cowrie/doc/sql/


(cowrie-env) root@web:/opt/cowrie/doc/sql#mysql -u root -p


Enter password:


mysql> use cowrie;


Database changed


mysql> source ./mysql.sql;


Query OK, 0 rows affected (0.01 sec)

 

Query OK, 0 rows affected (0.02 sec)

 

再看一下,我們就可以看到schema已經進來了。

mysql> show tables;

+------------------+

| Tables_in_cowrie |

+------------------+

| auth |

| clients |

| downloads |

| input |

| keyfingerprints |

| sensors |

| sessions |

| ttylog |

+------------------+

8 rows in set (0.00 sec)

 

 

回到設定檔(cowrie.cfg)進行資料庫部份的設定。


(cowrie-env) root@web:/opt/cowrie# vim cowrie.cfg

 

 

到這邊資料庫設定就完成了。

 


啟動cowrie服務測試。(一般使用者權限執行)


(cowrie-env) quentin@web:/opt/cowrie$ ./bin/cowrie start


Activating virtualenv "cowrie-env"


Starting cowrie: [twistd --umask 0022 --pidfile var/run/cowrie.pid -l log/cowrie.log cowrie ]...

 

在用其他主機連線測試(這邊是用不轉port的方法測試)

 

 

之後再資料庫當中檢測一些資料表

 

sessionsauthinput

用途跟方法全跟kippo一樣,可以參考kippo的介紹文件。 

可以看到一些相關資料的紀錄。

 

 

 

當要把服務停下的時候,並不是exit或者deactivate離開這個環境就好。

 

請確實的進行cowrie stop動作。

 

 


後記

 

cowriekippo好的一點是指令的運用,

 

kippo致命傷在離開terminal時會露出馬腳。

 

cowrie比較能夠讓惡意人士沒有在蜜罐的感覺。

 

如果熟悉kippo的人,應該很快就能上手cowrie

畢竟Cowrie是由kippo更改出來的中交互ssh蜜罐。


參考網址:

 

https://klionsec.github.io/2017/10/19/cowrie/

 

 

 
 
 
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 IT001 的頭像
    IT001

    IT001

    IT001 發表在 痞客邦 留言(0) 人氣()