蜜罐cowrie搭建和部分問題處理

因爲目前研究的內容涉及到蜜罐,找了很久的資料,終於找到一箇中交互的蜜罐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的端口轉發配置實例

發佈了125 篇原創文章 · 獲贊 148 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章