因爲目前研究的內容涉及到蜜罐,找了很久的資料,終於找到一箇中交互的蜜罐cowrie,這是一個外國人寫的github項目,打開github項目
這個蜜罐作者在github和他提問他真的很快就回復了。非常贊。
用途
是一款可以對ssh,telnet,http等等協議攻擊進行記錄,對於輸入命令和上傳文件均有記錄的一款軟件。
記錄可以設置在日誌文件中或者通過配置數據庫,導入數據庫中方便查詢。
效果查看
記錄連接ssh的客戶端
記錄嘗試暴力破解的用戶名和密碼
登陸之後的操作
安裝前奏
大環境
ubuntu 16.04版本選擇
蜜罐的作者在github上有很多個版本,目前我下載並且使用的是
在ubuntu中可以直接用,下載的就是最新的版本
git clone http://github.com/micheloosterhof/cowrie
請注意下,這個版本沒有start.sh和stop.sh,和目前有的教程可能不完全一致。
開始安裝
- step0:參考github intall.md文件
- step1: 安裝必要的支持軟件,在ubuntu環境,root用戶
sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
- step2: 創建一個cowrie用戶
sudo adduser --disabled-password cowrie
因爲我對linux的權限不是特別駕輕熟就,本來照着參看,創建沒有密碼登陸的用戶,但是在使用apt install的時候,系統提示輸入密碼,但是創建用戶沒有密碼,所以折騰了下。
折騰內容:
root用戶下 移除cowrie用戶密碼 passwd –delete cowrie
root用戶下 創建cowrie用戶新密碼 passwd cowrie
兩次輸入新密碼
提示cowrie用戶沒有sudo權限
root用戶下,修改文件/etc/sudoers
chmod 777 /etc/sudoers
vim /etc/sudoers
在文件中添加如下內容
cowrie ALL=(ALL)ALL
退出後記得改回去 chmod 555 /etc/sudoers
- step3:切換賬戶,並從github下載cowrie
git clone http://github.com/micheloosterhof/cowrie
- step4:打開cowrie文件夾,安裝虛擬環境
$ cd cowrie
$ pwd
/home/cowrie/cowrie
$ virtualenv cowrie-env
New python executable in ./cowrie/cowrie-env/bin/python
Installing setuptools, pip, wheel…done.
- step5:激活環境並安裝必要的包
$ source cowrie-env/bin/activate
註釋下:一下的操作全部是在cowrie-env環境運行的(cowrie-env)
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
- step6:修改cowrie蜜罐的有關配置文件
(cowrie-env) $ cp cowrie.cfg.dist cowrie.cfg
修改cowrie.cfg
打開ssh,並修改監聽端口
配置輸出文件output
配置數據庫mysql進行記錄
- step7:生成DSA密鑰,避免有的版本的Twisted不兼容
(cowrie-env) $ cd data
(cowrie-env) $ ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key
(cowrie-env) $ cd ..
- step8:明確cowrie的路徑
(cowrie-env) $ export PYTHONPATH=/home/cowrie/cowrie
- step9:在root用戶下將ubuntu自身的ssh監聽端口修改,並修改iptables
首先開啓另外一個終端界面檢查是否安裝sshd
$ ps -ef|grep sshd
如果有結果則已經安裝,否則進行安裝
$ sudo apt-get install openssh-server
修改sshd_config文件將端口改爲千萬不要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
這裏會提示cowrie輸入密碼
也就是step1中說的多餘的操作
補充
docker報錯沒有iptables指令,root用戶下
sudo apt-get install iptables
使用
iptables-save
查看路由規則,如果寫錯了用D替換上面的A
學習參考鏈接
- step10:root用戶下,配置mysql數據庫
首先檢查是否安裝mysql
沒有安裝,進行安裝
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
安裝過程中會提示設置密碼什麼的,注意設置了不要忘了,安裝完成之後可以使用如下命令來檢查是否安裝成功:
sudo netstat -tap | grep mysql
通過上述命令檢查之後,如果看到有mysql 的socket處於 listen 狀態則表示安裝成功。
登陸mysql數據庫可以通過如下命令:
mysql -u root -p
-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,上面命令輸入之後會提示輸入密碼,此時輸入密碼就可以登錄到mysql。
- step11:在虛擬環境下,安裝mysql必備的與python有關的開發包
(cowrie-env) $ sudo apt-get install python-dev
(cowrie-env) $ sudo apt install python-pip
(cowrie-env) $ sudo pip install mysql-python
(cowrie-env) $ sudo apt-get install python-MySQLdb
apt-get install python-MySQLdb特別重要,注意大小寫
補充
在docker下安裝,和上述操作有出入
補充輸入指令
(cowrie-env) $ sudo easy_install pip
(cowrie-env) $ sudo pip install pip --upgrade
(cowrie-env) $ sudo pip install MySQL-python
(cowrie-env) $ sudo sudo apt-get install python-MySQLdb
- step12:在虛擬環境下,創建名爲cowrie的yoghurt表將該庫的所有表權限賦給cowrie
$mysql -uroot –p
(輸入安裝mysql數據庫root用戶的密碼)
進入mysql
mysql> CREATE DATABASE cowrie;
mysql> GRANT ALL ON cowrie.* TO cowrie@localhost IDENTIFIED BY 'cowrie';
mysql> exit;
這裏的密碼是和cowrie.cfg即第6步中
配置數據庫mysql進行記錄一致
- step13:虛擬環境下進入cowrie安裝目錄中,使用cowrie用戶登錄數據庫,進入cowrie庫中,將/home/cowrie/cowrie/doc/sql/mysql.sql作爲數據源即可製成多個表
(cowrie-env) $cd /home/cowrie/cowrie/
(cowrie-env) $mysql -uroot –p
(輸入root密碼)
(cowrie-env) $use cowrie;
(cowrie-env) $source /home/cowrie/cowrie/doc/sql/mysql.sql;
step14:虛擬環境下啓動蜜罐並測試
(cowrie-env) $cd /home/cowrie/cowrie
(cowrie-env) $bin/cowrie start
開啓另外一個終端,確定本機的ip地址
使用ssh連接攻擊xshell進行連接
蜜罐的用戶配置信息在home/cowrie/cowrie/data/userdb.txt中
連接成功,提示的信息是蜜罐的信息
附錄
可能出現的問題
蜜罐第二天再啓動不可以連接了,我列舉幾個查找問題的方法和可能的原因。
1、監聽端口不對,默認監聽端口是2222
查看所有端口使用情況
lsof -i
這邊有問題,應該重新編寫cowrie.cfg,利用備份的那個改,記得改數據庫的配置
2、iptables轉發規則失效
- 打開轉發開關
要讓iptables的端口轉發生效,首先需要打開轉發開關
永久打開,重啓依然有效
編輯/etc/sysctl.conf文件,將net.ipv4.ip_forward=1前面的#註釋去掉,保存文件,然後執行sudo sysctl -p使其生效
- 查看iptables規則
iptables-save
- 開關機啓動加載iptables規則
注:配置的規則系統默認重啓後就失效,因此做開機啓動時加載iptables的配置也有必要。
在/etc/network/interfaces
的末尾添加如下一行:
pre-up iptables-restore < /etc/iptables.rules
如果想在關機的時候自動保存修改過的iptables規則,可添加如下行
post-down iptables-save > /etc/iptables.up.rules
- 端口轉發出問題
修改sshd_config文件將端口改爲千萬不要cowrie.cfg文件中監聽的端口一致 62223,否則進入22端口的流量就轉發到新的ssh端口,蜜罐被屏蔽掉了
參考文獻
蜜罐Cowrie的簡單搭建和用法介紹
Cowrie蜜罐搭建教程
老司機教你撘cowrie
Ubuntu環境下的iptables的端口轉發配置實例