一直都想嘗試搭建一個蜜罐,因為蜜罐是一款可以對ssh,telnet,http等等協議攻擊進行記錄,對於輸入命令和上傳文件均有記錄的一款軟件。
記錄可以設置在日志文件中或者通過配置數據庫,導入數據庫中方便查詢。今天閑了下來就嘗試搭建蜜罐Cowrie,先來簡單說一下蜜罐:
蜜罐分類:
低交互:模擬服務和漏洞以便收集信息和惡意軟件,但是攻擊者無法和該系統進行交互;
中等交互:在一個特有的控制環境中模擬一個生產服務,允許攻擊者的部分交互;
高交互:攻擊者可以幾乎自由的訪問系統資源直至系統重新清除恢復。
為什么選擇Cowrie:
它是一個具有中等交互的SSH蜜罐,安裝在Linux中,它可以獲取攻擊者用於暴力破解的字典、輸入的命令以及
上傳或下載的惡意文件。攻擊者在上傳惡意文件后,執行惡意文件的操作均會失敗,所以對蜜罐本身來說比較安全。
本次搭建使用的基礎環境是 Ubuntu 16.04
蜜罐所用資料來自外國友人的github:https://github.com/cowrie/cowrie
在Ubuntu下安裝必要的支持軟件:
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
創建一個非root的cowrie的新用戶:
adduser cowrie
不過此時cowrie沒有sudo權限,root用戶下修改文件/etc/sudoers:
chmod 777 /etc/sudoers
vim /etc/sudoers
在文件中添加如下內容:
cowrie ALL=(ALL)ALL
pkexec chmod 0440 /etc/sudoers
切換到新賬戶cowrie,並從github下載cowrie:
git clone http://github.com/micheloosterhof/cowrie
打開cowrie文件夾,安裝虛擬環境:
virtualenv cowrie-env
激活cowrie環境,並安裝必要的軟件包:
source cowrie-env/bin/activate
(以下的操作全部在cowrie-env環境下運行)
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
修改cowrie蜜罐的有關配置文件:
(cowrie-env) $ cd etc/
(cowrie-env) $ cp cowrie.cfg.dist cowrie.cfg
修改cowrie.cfg配置文件,打開ssh服務,並且修改監聽端口:
配置輸出文件output:
配置mysql數據庫進行數據記錄:
不過首先要安裝數據庫:
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
安裝成功后可以通過下面的命令測試是否安裝成功:
sudo netstat -tap | grep mysql
創建名為cowrie的數據庫:
create database cowrie;
創建完成后,虛擬環境下進入cowrie安裝目錄中,使用cowrie用戶登錄數據庫,進入cowrie庫中,將/home/cowrie/honely-cowrie/cowrie/docs/sql作為數據源即可制成多個表:
(cowrie-env) $ pwd
(cowrie-env) $ mysql -u root –p
(輸入root密碼)
(cowrie-env) $ use cowrie
(cowrie-env) $ source /home/cowrie/honely-cowrie/cowrie/docs/sql/mysql.sql
完成后生成DSA密鑰,避免有的版本的Twisted不兼容:
(cowrie-env) $ cd data
(cowrie-env) $ ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key
明確 cowrie的路徑:
(cowrie-env) $ export PYTHONPATH=/home/cowrie/honely-cowrie/cowrie
在root用戶下將Ubuntu自身的ssh監聽端口更改,並修改iptables規則,首先檢查是否安裝sshd
# ps -ef|grep sshd
如上圖證明已經安裝,沒有的話安裝:
# apt-get install openssh-server
安裝完成后,修改sshd_config文件將端口改為60000
注:不要與cowrie.cfg文件中監聽的端口一致 62223,否則進入22端口的流量就轉發到新的ssh端口,蜜罐被屏蔽掉了。
# vim /etc/ssh/sshd_config
# sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 62223
# iptables-save
虛擬環境下啟動蜜罐並測試:
(cowrie-env) $ bin/cowrie start
emmmm...還要安裝MySQLdb數據庫
# pip install mysql-python
虛擬環境下再次啟動蜜罐並測試:
可以看到沒有爆錯信息了。
(cowrie-env)$ ps -ef | grep cowrie
有上圖的信息即是安裝成功。
查看端口使用情況:
lsof -i
可以看到62223端口正在監聽。
看一下cowrie基本配置,這是所有口令:
攻擊者可以輕易破解。
這只介紹了cowrie蜜罐的搭建,任何可登陸的服務都可以用來搭建蜜罐:
基於python Twisted庫的Ftp簡單蜜罐:http://blackwolfsec.cc/2016/05/17/python_twisted_ftp_honeypot/
基於python Twisted庫的Telnet簡單蜜罐:http://blackwolfsec.cc/2016/06/03/telnet_honeypot/
github上面蜜罐搭建教程:https://github.com/cowrie/cowrie/blob/master/INSTALL.md#step-1-install-dependencies
參考鏈接:
https://blog.csdn.net/xujing19920814/article/details/78599604
https://blog.csdn.net/pygain/article/details/65658990
https://www.freebuf.com/articles/network/112065.html
https://blog.csdn.net/gobitan/article/details/50696641