現場(環境): CentOS 6.8 套件:mysql-server 、httpd 、kippo-graph
接續昨天,IT專題-honeypots建置(kippo上篇)
昨天我們最後的時候是將整個kippo服務先關起來,
因為今天我們啟動時要一併將日誌資訊寫進資料庫當中。
Step 11. 安裝資料庫
這邊還是使用mysql 資料庫。
#yum install mysql-server mysql
#service mysqld restart
#chkconfig mysqld on
Step 12. 設定資料庫連線
設定root登入密碼 (第一次登入是沒有密碼的)
#mysql -u root -p
mysql> set password for 'root'@'localhost' = password('你的root密碼');
Query OK, 0 rows affected (0.00 sec)
建立kippo這個帳號
mysql> create user 'kippo'@'localhost' identified by '你的kippo密碼';
Query OK, 0 rows affected (0.00 sec)
建立kippo 資料庫
mysql> create database kippo;
Query OK, 1 row affected (0.00 sec)
賦與kippo這個帳號在localhost這端,可以完整存取kippo資料庫的權限。
mysql> grant all on kippo.* to 'kippo'@'localhost' identified by '你的kippo密碼';
Query OK, 0 rows affected (0.00 sec)
如果你要用資料庫管理工具連結,這邊就要加一筆,
把localhost改成你的IP address。
mysql> grant all on kippo.* to 'kippo'@'你的IP address’ identified by '你的kippo密碼';
Query OK, 0 rows affected (0.00 sec)
最後更新一下權限就好了
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Step 13. 將kippo 設計好的資料庫內容匯入mysql
#mysql -u kippo -p -Dkippo < /home/kippo/kippo/doc/sql/mysql.sql
之後連進資料庫先看一下database內的表示否都創建好了。
mysql> show tables
-> ;
+-----------------+
| Tables_in_kippo |
+-----------------+
| auth |
| clients |
| downloads |
| input |
| sensors |
| sessions |
| ttylog |
+-----------------+
7 rows in set (0.00 sec)
Step 14. 修改kippo的設定檔,加入資料庫連線功能。
#vim /home/kippo/kippo/kippo.cfg
找到被註解掉的設定檔,將註解去掉。
然後依照自己的狀況進行設定的修改。
#!##################
[database_mysql]
host = localhost
database = kippo
username = kippo
password = 你的密碼
port = 3306
#!###################
到這邊其實就可以把別人連線的LOG紀錄寫一份到資料庫了,
雖然寫在資料庫內很好量化,但你也得有相對應的工具才行。
這邊我們可以用kippo-graph來將資料庫內的資料,
經過彙整後呈現在web頁面上。
Step 15. 安裝 python-mysql 套件
#yum -y install python-devel mysql-devel
這邊我的Mysql-python是另外安裝的,並非使用yum。
因為之前用yum安裝出來好像有問題產生,所以參照網址內的作法。
#wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz --no-check-certificate
#tar -zxvf setuptools-0.6c11.tar.gz
#cd setuptools-0.6c11
#python setup.py install
#wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip --no-check-certificate
#unzip MySQL-python-1.2.5.zip
#cd MySQL-python
編譯安裝前修改Mysql-python內的設定檔,
因為預設的路徑與我們現行環境的路徑不符合。
找到這一行,修改成下面的樣子
#!##########
#mysql_config = /usr/local/bin/mysql_config
mysql_config = /usr/lib64/mysql/mysql_config
#!##########
之後就可以安裝了。
python setup.py install
到這邊資料庫的處理算是告一個段落。
Step 16. 安裝WEB介面。
#yum install httpd php php-mysql php-gd php-curl
這邊的web介面(kippo-graph) 我還是安裝12 版的。
雖然現在最新有到1.5.1版本,但該版本就是沒有辦法把資料呈獻出來,
所以還是先已1.2版本為主。
#wget http://bruteforce.gr/wp-content/uploads/kippo-graph-1.2.tar.gz
#tar -zxf kippo-graph-1.2.tar.gz
#mv kippo-graph-1.2 /var/www/html/kippo
#cd /var/www/html/kippo
#cp config.php.dist config.php
修改config.php內容,主要是針對資料庫連線做修正。
#!############
define('DIR_ROOT', '你放kippo-graph 的路徑');
define('DB_HOST', 'localhost');
define('DB_USER', 'kippo');
define('DB_PASS', '你的密碼');
define('DB_NAME', 'kippo');
define('DB_PORT', '3306');
#!############
再來有一件事情要注意,因為kippo-graphs會生成資料,
他要放置在「kippo graph放置路徑」/generated-graphs/ 下面,
所以我們要給他權限。
#chmod 777 /var/www/html/kippo/generated-graphs/
接著就是重啟httpd服務,我們就可以看到web端的介面了。
#service httpd restart
#chkconfig httpd on
Step 17. 透過瀏覽器連線到kippo graph
像這次專案的範本,要連線的網址是:
http://[kippo主機IP]/kippo
我們一開始都會看到這個頁面。
再WEB上有很多頁籤可以選擇,當你的kippo有被人連線時,
你的資料庫內會有詳細的紀錄,而這些紀錄就會被kippo graph呈獻出來。
可以看到那時有被連線
可以線上讓你回放偷連進你伺服器的人做了什麼
這個WEB介面上還可以讓你查詢攻擊者的IP來自於哪裡。
WEB端的功能非常的多,大家可以建立起來玩玩。
我們再回過頭去看資料庫的內容:
我們可以透過input這張表紀錄,使用者登入後下了什麼指令。
mysql > select * from input;
mysql > select * from sessions;
這邊可以從sessions看到攻擊者的IP位址
當然kippo 還有很多很有趣的功能,後面在讓大家自己體驗看看。
後記:
在我們將mysql的設定寫入kippo設定檔後後,
Twisted 就會正式的把日誌寫一份到資料庫當中,
而要怎麼知道資料庫到底有沒有在kippo運作時被使用呢?
其實在你開啟服務的時候你就會發現了,
因為開啟時的訊息與已沒有加入資料庫時,是不一樣的。
可以看到 Loading dblog engine: mysql 的訊息。
補充(2018/03/06):
有一件很重要的事情。
我們已經建立了Kippo-Graph了,
這樣還只看報表就太可惜了。
我們要再做一件事情,就是設定排程
透過kippo-graph中的kippo-graph.php,
可以幫我們把報表變成圖片。
#cd /var/www/html/kippo-1.2
#php kippo-graph.php
而顯示出來的圖片檔會置放於下列路徑
/var/www/html/kippo-1.2/generated-graphs
這時候我們回WEB端看。就可以看到圖片的顯示。
這件事情。應該要每個小時都讓kippo-graph.php檔執行一次,
所以我們將其寫入crontab當中。
#crontab -e
#!############
#因為算是頻繁的執行,
#所以不要將他的LOG寫入,而是直接丟棄(/dev/null 2>&1)。
0 * * * * /usr/bin/php /var/www/html/kippo-1.2/kippo-graph.php > /dev/null 2>&1
#!############
如此就會每個小時都更新圖檔。
(本篇完)
參考網址:
https://secvul.com/topics/484.html