1:蜜罐概述:
蜜罐是一種軟件應用系統,用來充當入侵誘餌,引誘黑客前來攻擊。
攻擊者入侵后,通過監測與分析,就可以知道他是如何入侵的,隨時了解針對組織服務器發動的最新的
攻擊和漏洞。
蜜網概述:當多個蜜罐被網絡連接在一起時模擬一個大型網絡,並利用其中一部分主機吸引黑客入
侵,通過監測、觀察入侵過程,一方面調查入侵者的來源,另一方面考察用於防護的安全措施是否有效。
這種由多個蜜罐組成的模擬網絡就稱為蜜網。
怎么吸引: 不做任何防護措施,root 密碼是 123456 ,不打補丁。 黑客很容易找到你。放到公網上
kippo概述:kippo是一個中等交互的SSH蜜罐,提供了一個可供攻擊者操作的shell,攻擊者可以通過
SSH登錄蜜罐,並做一些常見的命令操作。
當攻擊者拿下一台服務器的權限后,很可能會進行小范圍的端口探測或者批量的端口掃描,以便橫向擴
展,獲取更多服務器的控制權,因此部署內網SSH蜜罐,把攻擊者引誘到蜜罐里來,觸發實時告警,即可讓安全人員及時知道已經有攻擊者滲透內網、知道哪台服務器已被控制、以及攻擊者在蜜罐上做了哪些操作
下圖63服務器是黑客掃出的目標機默認是22端口, 將22端口空出給黑客(因黑客會ssh鏈接22端口進入服務器) 我們將rinetd重定向服務器到64這台蜜罐服務器,捕捉黑客傻逼操作) , 管理員若要進入服務器ssh另開一個端口6333 , 63這台服務器生成環境無任何影響

2:蜜罐服務器Kippo安裝:
Kippo基於py 需要安裝依賴:
yum install -y python-twisted* yum -y install python-devel mysql-devel yum install -y python2-paramiko yum -y install epel-release yum -y install python-pip 安裝依賴包:pip install -i(-i臨時用清華源) https://pypi.tuna.tsinghua.edu.cn/simple twisted==15.2.0 mysql依賴包pip install mysql-py 依賴模塊 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycrypto
因為kippo不能以root運行,新建一個kippo賬號
useradd -d /kippo kippo
安裝kippo
git clone https://github.com/desaster/kippo.git #下載 把kippo文件夾復制到/kippo 目錄下面,並更改這個文件夾的所有者 cp -r kippo/ /kippo/ chown -R kippo:kippo /kippo
安裝maridb
[root@xuegod64 ~]# yum install mariadb-server mariadb -y [root@xuegod64 ~]# systemctl start mariadb
創建數據庫和賬號
[root@xuegod64 ~]# mysql MariaDB [(none)]> create database kippo; MariaDB [(none)]> GRANT ALL PRIVILEGES ON kippo.* TO kippo@localhost IDENTIFIED BY '123456'; #把所有權限給kippo這個用戶
測試登錄
[root@xuegod64 ~]# mysql -u kippo -p123456
初始化kippo數據表
[root@xuegod64 ~]# mysql -ukippo -p -Dkippo < /kippo/kippo/doc/sql/mysql.sql 在/kippo/kippo下面復制配置文件,並修改相應的配置 [root@xuegod64 ~]# cd /kippo/kippo/ [root@xuegod64 ~]# cp kippo.cfg.dist kippo.cfg [root@xuegod64 ~]# vim kippo.cfg 1:set num 2:去掉注釋 ctrl+v 進入可視化 向下按t鍵再回車去掉選中的行注釋 改: 163 #[database_mysql] 164 #host = localhost 165 #database = kippo 166 #username = kippo 167 #password = secret 168 #port = 3306 為: [database_mysql] host = localhost database = kippo username = kippo password = 123456 port = 3306
啟動kippo
[root@xuegod64 ~]# su - kippo [kippo@xuegod64 ~]$ cd kippo/ [kippo@xuegod64 kippo]$ ./start.sh

3:kippo使用方法
1. 查看監聽的狀態是否開啟
查看kippo監聽的端口,默認2222端口 [kippo@xuegod64 kippo]$ netstat -antup | grep :22netstat -pantu | grep :22

2. kippo默認的賬號密碼存位置 /kippo/kippo/data/userdb.txt,給傻屌加幾個賬號

3:蜜罐服務器開啟 日志監聽 tail -f /kippo/kippo/log/kippo.log
4:用測試黑客機鏈接 64 服務器 ssh admin@192.168.1.64 2222 (因為訪問63 22端口就轉發到64的2222端口,測試用2222鏈接), 上套了 ,很穩

5:播放視頻一樣監控黑客操作
記錄地址 : kippo/kippo/log/tty/當天日期.log文件
命令執行地址: /kippo/kippo/utils/playlog.py 當天日期.log文件
4:生產機使用 rinetd 將ssh 22端口連接轉發給蜜罐服務器
安裝:
rinetd官網地址:https://boutell.com/rinetd/ rinetd -- internet "redirection server" rinetd——互聯網“重定向服務器” 通過官網下載安裝包
目標:當攻擊者掃描探測誘捕節點IP的22端口時,把流量轉發至蜜罐服務器的kippo程序上。
在此需要說明的是:我們要把訪問誘捕節點的22端口轉發過去,且rinetd要轉發的源端口不能被本地
占用,所以需要把誘捕節點服務器的SSH先改為其他端口,22端口預留給轉發rinetd使用,流量可以轉發到蜜罐
所在物理機的任意端口,然后通過vmware端口映射把流量最終鏡像給蜜罐服務器的2222端口(kippo的
默認端口是2222)
修改生產服務器端口
[root@xuegod63 ~]# vim /etc/ssh/sshd_config 改:17 #Port 22 為:17 Port 31911 #改成不常用的端口 [root@xuegod63 ~]# systemctl restart sshd
部署rinetd (rz上傳)
[root@xuegod63 ~]# tar zxvf rinetd.tar.gz [root@xuegod63 ~]# cd rinetd/ 編譯之前有個坑: 這地方有一個坑 :rinetd默認只有在進程被關閉的時候,才會把日志寫到rined的日志文件中 (/var/log/rinetd.log),也就是說當rinetd一直在運行的時候,即使有流量被轉發了,也無法在日志文 件中看到日志。所以在編譯安裝rinetd前,我們要先修改它的源代碼,增加一個fflush函數強制更新日志, 然后在去編譯安裝。編輯rinetd.c這個文件,找到修改的位置,按下圖添加一行代碼。 [root@xuegod63 rinetd]# vim rinetd.c 在1460行后面插入: 1461 fflush(logFile); 創建稍后編譯時需要用到的文件夾 [root@xuegod63 rinetd]# mkdir -p /usr/man/man8 修改源代碼解決報錯的問題。 第一種:報警告: [root@xuegod63 rinetd]# make cc -DLINUX -g -c -o rinetd.o rinetd.c rinetd.c:176:6: 警告:與內建函數‘log’類型沖突 [默認啟用] void log(int i, int coSe, int result); ^ cc -DLINUX -g -c -o match.o match.c gcc rinetd.o match.o -o rinetd 解決方法:修改Makefile文件 [root@xuegod63 rinetd]# vim /root/rinetd/Makefile 改: 1 CFLAGS=-DLINUX -g 為: CFLAGS=-DLINUX -g -fno-builtin-log 第二種錯誤:提示超出系統最大定義端口,修改rinetd.c文件的544和567行,把65536端口改成65535 [root@xuegod63 rinetd]# vim /root/rinetd/rinetd.c 改:544 if ((bindPort == 0) || (bindPort >= 65536)) { 為:544 if ((bindPort == 0) || (bindPort >= 65535)) { 改:567 if ((connectPort == 0) || (connectPort >= 65536)) { 為:567 if ((connectPort == 0) || (connectPort >= 65535)) { 編譯&安裝 [root@xuegod63 rinetd]# make [root@xuegod63 rinetd]# make install 創建配置文件 [root@xuegod63 rinetd]# vim /etc/rinetd.conf #寫入以下內容 192.168.1.63 22 192.168.1.64 2222 logfile /var/log/rinetd.log 注: 誘捕節點IP 22 蜜罐所在物理機的IP 2222 # 源地址 端口 目的地址 端口,如果誘捕節點很多, 可以寫很多行配置 logfile /var/log/rinetd.log # 日志文件
開啟運行
rinetd #進入rinetd,運行 netstat -pantu | grep:22 #查看22端口是被誰在用 tcp 0 0 192.168.1.63:22 0.0.0.0:* LISTEN 5340/rinetd
用個測試ssh鏈接 , 查看是否正常轉發(鏈接斷開才會寫入日志)
tail -f /var/log/rinetd.log

5:定義自動觸發錄屏能錄制黑客的一切操作
場景:(與蜜罐機無關,黑客直接上了生產機)當黑客通過某種手段獲得服務的賬號和密碼也登錄上到服務上,並做了一些操作,比較挾持了root用戶的密碼、留下了后門,並把后門程序的進程隱藏了,甚至在你的服務器上掛了馬,而后黑客又把所有痕跡都清除了。這時候的你會怎么處理?
答:script 命令:
可以完整記錄屏幕上輸入的命令與輸出結果。可錄制黑客在你服務上做的一切操作,而我們通過回放就
可以得知黑客使用了那些命令,隱藏了哪些進程
完成錄屏操作,用到的script 和 scriptreplay兩個命令,在 Linux 發行版中都有默認安裝。
script -t 2>xuegod.file -a xuegod #錄制后隨意做點操作,接 下來的任何操作都會被記錄 scriptreplay -d 10 (-d 10 10倍播放) xuegod.file xuegod
-q 或 - -quiet 參數可以使script命令以靜默模式運行,不顯示script啟動和exit的命令的輸出信息,
黑客可以完全察覺不到在錄屏。
自動觸發監控,黑客登陸的操作與實時監控
思路:用戶登錄到系統后,自動觸發 script 錄屏,並記錄登錄時間、登錄的用戶。
這個時候就只要讓 script 命令在登錄時自動運行,我們可以把它添加進 shell 環境配置文件中。
創建一個目錄用於存放錄制后的文件,這里我故意偽裝為 dhcpd,讓黑客不容易察覺到
[root@xuegod63 ~]# mkdir -p /etc/dhcpd/
[root@xuegod63 ~]# vim /etc/profile #在中間處找個位置寫入以下內容 script -t -f -q 2>/etc/dhcpd/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /etc/dhcpd/$USER-$UID-`date +%Y%m%d%H%M%S`.his if [ "$SHLVL" = 1 ]; then exit fi
黑客機直接訪問生成機 , 則一些操作記錄在/etc/dhcpd/目錄下
播放黑客所操作的 scriptreplay -d 10 (-d 10 10倍播放) 文件名