OpenStack:建立虛擬的滲透測試實驗環境 – 安裝篇
0x00 概述
對從業滲透測試的人員來說,保持技能更新是非常重要的,而更新技能的過程中,需要大量的去學習、實踐和總結,比較傳統的學習方式是通過虛擬機器安裝靶機來練習,這種方式往往缺少一種真實滲透中的網路環境,而拿真實的網路來搞事往往會面臨很對未知的風險,比如被查水錶什麼的。在工作中,有時候測試一個內網轉發指令碼、惡意程式或避免影響業務需要一個沙箱環境,目前比較常見的是使用GNS3(網路裝置模擬器)+虛擬機器來模擬網路環境,隨著雲端計算技術的興起,無疑給建立虛擬環境多了一種選擇,通過虛擬技術,可以建立更加複雜的測試環境,甚至模擬一個企業網路以便測試各種攻擊場景。
0x01 環境準備
1.1 OpenStack
OpenStack是一個快源的雲端計算管理平臺專案,由元件組合完成具體工作,詳細介紹見OpenStack官網。OpenStack的部署方式分為手動部署和自動化部署,自動化部署工具主要有packstack
、devstack
及Fuel
等,這裡使用packstack
在單機+單網絡卡的環境進行一鍵部署。
1.2 伺服器環境
- 磁碟容量: >= 500GB
- 記憶體容量: >= 32GB
- 作業系統: CentOS-7-x86_64-Minimal-1611
- 網絡卡數量: 1
1.3 網路配置
系統安裝完後,先給伺服器配置一個靜態IP:
這裡我使用192.168.20.7
作為伺服器IP,儲存重啟網路:
1.4 部署OpenStack
通過yum源進行安裝packstack
:
使用packstack部署OpenStack:
安裝時間大概15~30分鐘左右。
1.5 橋接網絡卡
使用packstack安裝後,如果重啟系統,虛擬網路會無法連線外部網路,這時需要建立一個虛擬網絡卡:
預設安裝預設IP段是172.24.4.225/28
,這裡修改為192.168.20.7/24
,儲存,同時修改em1
網絡卡配置為:
儲存,重啟網路服務,不成功直接重啟伺服器。
0x02 例項與映像
OpenStack預設使用VirtIO
來管理例項映像,預設直接上傳ISO檔案會識別不了磁碟,這時需要使用含VirtIO
驅動的映像,映象說明文件見:
這裡統一製作qcow2
格式的映像檔案。
2.1 Linux qcow2映像
- 手動製作
以製作Kali Linux為例,下載ISO檔案kali-linux-light-2017.1-amd64.iso
:
然後就像正常一樣安裝系統,安裝完直接關掉。
- 官方的映像檔案
有些Linux發行版官方提供現成映像檔案,下載過來就可以直接使用:
由於官方的雲映象是沒有提供密碼的,這時需要修改root密碼,password:
冒號後邊為密碼:
2.2 Windows qcow2映像
以Windows 2008 R2為例子,其他Win系統製作過程類似,由於Windows系統預設不帶VirtIO
驅動,先下載驅動程式:
- https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
- https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win_amd64.vfd
生成映像檔案:
- 安裝系統
命令列啟動安裝:
手動載入驅動:【自定義(高階)】-【載入驅動程式】-【瀏覽】-【軟盤驅動器】,選擇對應作業系統版本選項,然後確定:
安裝完後關機。
- 安裝網絡卡驅動
重新命令啟動虛擬機器:
找到【裝置管理器】-【其他裝置】-【乙太網控制器】,右鍵更新驅動程式軟體:
【瀏覽】-【CD驅動器】,確定:
安裝完畢:
注:不能關閉的情況下直接kill掉程序。
0x03 Horizon
Horizon是一個用於管理、控制OpenStack服務的Web控制面板,可以通過http://192.168.20.7/dashboard/進行登入,管理帳號是admin
密碼儲存在/root/keystonerc_admin
。
3.1 上傳映像
從http://192.168.20.7/dashboard/登入後,【專案】-【計算】-【映像】-【建立映像】:
Horizon控制面板新增映像支援2種方式,一種是通過HTTP/HTTPS直接下載,另一種是通過本地上傳,在【映像源】選【映像檔案】,將製作好的虛擬機器上傳到OpenStack:
3.2 建立例項
在【映像】列表的Windows_2008_R2_x64
後面點選【啟動】,其中【詳細資訊】、【源】、【flavor】、【網路】這四項為必選項:
建立完例項,在【例項】點選例項名稱進入該例項的詳細資訊頁面,切換到【控制檯】即可對虛擬機器進行操作:
3.3 開機恢復例項狀態
預設情況下,如果重啟OpenStack的機器,例項是不會自動恢復之前的狀態的,這時需要修改一下配置檔案:
0x04 解除安裝
配置的過程中難免有時出錯需要重新再來,儲存以下指令碼為unpackstack.sh
解除安裝操作:
# sh unpackstack.sh
解除安裝後就可以使用packstack重新部署,需要注意的是,該指令碼並不是100%的清除,只是刪除基本的檔案,比如安裝時加入的iptables規則是不會清除的,有強迫症的建議重灌系統或在虛擬機器裡部署。
至此,部署OpenStack和製作映像檔案基本完成了。