渗透测试-Kali虚拟机技术
系統簡介
虛擬機
Kali
Kali是一套用于安全滲透的Linux發行版虛擬機操作系統 ,其強大之處在于系統內置了大量的安全滲透方面的軟件(預裝超過300個滲透測試工具),新手可以免于配置,開箱即用!Kali虛擬機官網下載地址:https://www.kali.org/downloads/。
Kali Linux系統作為最受歡迎的滲透測試系統,你如果是一個安全滲透專家或者網絡安全管理員,必須要學會慎重并且合理地利用這個系統,因為對目標系統造成的實質傷害會帶來法律的約束以及制裁!
Xshell
Xshell 是一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議。
Xshell的兩個作用:
Xshell的官網下載地址為:https://xshell.en.softonic.com/,下面介紹下Xshell的簡單使用。
1、打開Xshell,會自動帶有一個本地shell,用于控制本地主機:
2、我們將連接Centos7虛擬機:
3、連接遠程主機,可新建會話,輸入IP地址、端口、主機賬戶、主機密碼:
3、成功登錄后即可遠程操控主機:
在介紹Kali Linux系統之前,先來了解下VMware虛擬機中網絡配置。
網絡配置
常用的虛擬機軟件有VMware workstations和VirtualBox等,在使用虛擬機時,VMware的網絡連接問題十分基礎而關鍵。本文介紹下關于VMware workstations網絡連接的三種模式。
| Host-Only(僅主機模式) | VMnet1 | 虛擬機只能與主機構成內部通信,無法對外網進行訪問 |
| Bridged(橋接模式) | VMnet0 | 僅一臺虛擬機可以和宿主互通,并可以訪問外網 |
| NAT(網絡地址轉換模式) | VMnet8 | 多臺虛擬機和物理主機之間都可以互相通信,虛擬機也可訪問外網 |
打開VMware虛擬機,我們可以在選項欄的“編輯”下的“虛擬網絡編輯器”中看到這三種模式:
在物理主機上對應的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8兩塊虛擬網卡,它們分別作用于僅主機模式與NAT模式下:
那為什么在物理機上沒有VMware Network Adapter VMnet0橋接模式的虛擬網卡呢?接下來來看一下這是為什么。在此之前先來看看“僅主機”模式下虛擬機主機訪問百度的結果(無法訪問):
橋接模式
什么是橋接模式?橋接模式就是將主機網卡與虛擬機虛擬的網卡利用虛擬網橋進行通信。在橋接的作用下,類似于把物理主機虛擬為一個交換機,所有橋接設置的虛擬機連接到這個交換機的一個接口上,物理主機也同樣插在這個交換機當中,所以所有橋接下的網卡與網卡都是交換模式的,相互可以訪問而不干擾。在橋接模式下,虛擬機IP地址需要與主機在同一個網段,如果需要聯網,則網關與DNS需要與主機網卡一致。其網絡結構如下圖所示:
接下來,我們就來實際操作,如何設置橋接模式。
1、安裝完Centos7虛擬系統之后,在開啟系統之前,點擊“編輯虛擬機設置”來設置網卡模式,選擇“橋接模式”:
2、在VMware菜單欄中,“編輯->虛擬網絡編輯器”,橋接模式使用的是vmnet0虛擬交換機,有的打開之后可能看不到,點擊下面的更改設置:
3、選擇橋接模式并勾選對應的網卡,這一步非常關鍵,這里的這個下拉選項如果選錯了那么是沒有辦法聯網的,并且你的主機和虛擬機也會無法通信:
4、使用ipconfig /all命令查詢Windows物理主機無線WIFI網卡對應的IP地址和DNS服務器地址等信息:
5、以root權限進入網卡配置文件的存放路徑/etc/sysconfig/network-scripts,找到ifcfg-eth文件并使用vi命令準備進行編輯:
6、輸入i進入插入模式修改2個配置項,并在文件末尾添加以下5行配置行,然后按Esc鍵+“:wq”保存編輯并退出文件:
簡單解釋下相關配置項:
| BOOTPROTO=static | 表示靜態IP |
| ONBOOT=yes | 表示是否開機啟動, 要想網卡開機就啟動或通過 systemctl restart network控制網卡,必須設置為 yes |
| IPADDR | 自由指定虛擬機的IP地址,與物理主機保持同一網段即可 |
| GATEWAY | 網關地址,與物理主機無線網卡的網關地址一致 |
| NETMASK | 子網掩碼,與物理主機無線網卡的子網掩碼一致 |
| NDS1、NDS2 | 域名解析服務器,沒有這個配置,你的虛擬機訪問的域名就無法被解析,只能通過IP來訪問 |
7、最后使用命令systemctl restart network重啟網卡:
8、此時虛擬機即可連接外網,成功訪問百度:
9、那主機與虛擬機之間的通信是否正常呢?我們就用遠程工具Xshell來測試一下,主機與虛擬機通信正常:
橋接模式配置簡單,但如果你有大量虛擬機主機(如分布式集群)而你的網絡環境是IP資源很缺少或對IP管理比較嚴格的話,那橋接模式就不太適用了。如果真是這種情況的話,可以用VMware的另一種網絡模式:NAT模式。
NAT模式
在NAT模式中,主機網卡直接與虛擬NAT設備相連,然后虛擬NAT設備與虛擬DHCP服務器一起連接在虛擬交換機VMnet8上,這樣就實現了虛擬機聯網。其網絡結構如下圖所示:
那么我們會覺得很奇怪,為什么需要虛擬網卡VMware Network Adapter VMnet8呢?原來我們的VMware Network Adapter VMnet8虛擬網卡主要是為了實現主機與虛擬機之間的通信。在之后的設置步驟中,我們會加以驗證,先來看看如何配置NAT模式:
1、使用ipconfig /all命令查詢Windows物理主機分配給VMnet8虛擬網卡對應的IP地址信息:
2、設置虛擬機中NAT模式的選項,打開VMware,點擊 “編輯” 菜單欄下的 “虛擬網絡編輯器”,查看并設置NAT參數及DHCP參數:
3、將相應虛擬機的網絡連接模式設置為NAT模式:
4、以root權限進入網卡配置文件的存放路徑/etc/sysconfig/network-scripts,找到ifcfg-eth(網卡名稱各異)文件并使用vi命令準備進行編輯:
5、輸入i進入插入模式修改2個配置項,并在文件末尾添加以下5行配置行,然后按Esc鍵+“:wq”保存編輯并退出文件:
【補充】此處列舉下公告DNS服務器地址列表:
6、最后使用命令systemctl restart network重啟網卡:
7、此時虛擬機即可連接外網,成功訪問百度:
8、前面我們說過VMware Network Adapter VMnet8虛擬網卡的作用是為了實現主機與虛擬機之間的通信,現在就來測試一下。在物理主機禁用VMbet8網卡,然后在Centos7主機中發現依然能訪問百度:
9、上面虛擬機仍然能聯通外網,說明確實不是通過VMware Network Adapter VMnet8虛擬網卡,但是我們會發現VMnet8網卡被禁用后,遠程連接工具Xshell將無法連接虛擬機了:
10、最后將VMware Network Adapter VMnet8虛擬網卡啟用,發現遠程工具可以連接上虛擬機了:
這就是NAT模式,利用虛擬的NAT設備以及虛擬DHCP服務器來使虛擬機連接外網,而VMware Network Adapter VMnet8虛擬網卡是用來讓物理主機和虛擬機進行通信的。
【補充】扯一點閑話,上面這個過程中,物理機對VMware Network Adapter VMnet8虛擬網卡的IP配置都是自動的(但是并不影響):
為了對整個NAT模式下的網絡拓撲了解更清晰,我們也可以對其IP地址進行設置:
主機模式
Host-Only僅主機模式其實就是NAT模式去除了虛擬NAT設備,然后使用VMware Network Adapter VMnet1虛擬網卡連接VMnet1虛擬交換機來與虛擬機通信的,Host-Only模式將虛擬機與外網隔開,使得虛擬機成為一個獨立的系統,只與主機相互通訊。其網絡結構如下圖所示:
通過上圖我們可以發現,在僅主機模式下,如果要使得虛擬機能聯網,我們可以將主機網卡共享給VMware Network Adapter VMnet1網卡,從而達到虛擬機聯網的目的。接下來,我們就先來實際測試一下。
1、老規矩,先使用ipconfig /all命令查詢Windows物理主機分配給VMnet1虛擬網卡對應的IP地址信息:
2、設置“虛擬網絡編輯器”,可以查看并設置DHCP的起始范圍(VMware已根據物理機的IP配置為我們自動劃分,保持默認即可):
3、設置Centos 7虛擬機為Host-Only僅主機模式:
4、以root權限進入網卡配置文件的存放路徑/etc/sysconfig/network-scripts,找到ifcfg-eth(網卡名稱各異)文件并使用vi命令準備進行編輯:
5、輸入i進入插入模式修改2個配置項,并在文件末尾添加以下3行配置行(網關地址可以不給,此處沒用),然后按Esc鍵+“:wq”保存編輯并退出文件:
6、最后使用命令systemctl restart network重啟網卡:
7、此時虛擬機和物理機即可正常通訊,但是虛擬機無法訪問外網:
8、接下來為了使得虛擬機在僅主機模式下也能聯網,我們可以將物理主機的無線WIFI網卡共享**給VMware Network Adapter VMnet1網卡:
9、接下來我們必須強制將VMnet1的IP地址由自動獲取改為192.168.92.1,因為一會需要在虛擬機中將它指定為DNS服務器的地址:
10、在上面虛擬機中的網卡配置文件的基礎上,添加一行DNS地址配置行:
11、重啟網卡,然后虛擬機即可成功訪問外網了:
以上就是關于VMware三種網絡模式的工作原理及配置詳解。
Kali系統
網絡配置
1、Kali虛擬機的 NAT模式 網絡配置:
1、配置IP地址和網關: root@kali:~# cd /etc/network root@kalicd:~# vi interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). #source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback //新增以下內容可配置靜態IP地址 auto eth0 iface eth0 inet static address 192.168.190.100 netmask 255.255.255.0 gateway 192.168.190.2 //若是想動態分配IP地址,則添加以下一行配置即可 auto eth0 iface eth0 inet dhcp2、配置DNS服務(可不用手動配置,VMware會自動配置): root@kali:~# cd /etc root@kali:~# vi resolv.conf nameserver 192.168.190.2 (IP必須是VMware設置的VMnet8虛擬網關地址)3、重啟網卡: root@kali:~# service networking restart2、Kali虛擬機的 橋接模式 網絡配置:
1、配置IP地址和網關: root@kali:~# cd /etc/network root@kalicd:~# vi interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). #source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback //新增以下內容可配置靜態IP地址 auto eth0 iface eth0 inet static address 192.168.0.199 netmask 255.255.255.0 gateway 192.168.0.2 //若是想動態分配IP地址,則添加以下一行配置即可 auto eth0 iface eth0 inet dhcp2、配置DNS服務(改為物理機無線網卡WLAN的DNS服務器地址): root@kali:~# cd /etc root@kali:~# vi resolv.conf nameserver 202.96.128.166 nameserver 114.114.114.1143、重啟網卡: root@kali:~# service networking restart配置后可成功訪問外網:
SSH服務
1、使用Xshell遠程登陸Kali主機,發現連接失敗:
2、在Kali虛擬機中查看SSH服務的啟動狀態,發現未開啟:
3、修改SSH服務的配置文件/etc/ssh/sshd_config,新增以下兩行配置項:
4、重新啟動SSH服務/etc/init.d/ssh start,并查看SSH服務的開啟狀態:
5、此時直接使用Xshell連接Kali仍然不行,如下:
6、那么要在Kali虛擬機上先生成以下兩個密鑰(執行命令后都會讓輸入密碼,直接敲回車設置為空即可):
7、此時再使用Xshell即可成功連接Kali虛擬機:
8、為防止Kali重啟后,無法遠程Kali我們可以設置系統自動啟動SSH服務,方法如下:
Apache服務
kali上是自帶的有Apache服務的,我們可以借助它搭建站點,同時可用于虛擬機之間傳輸文件,只要將 Kali 虛擬機內需要傳輸的文件(比如生成的木馬程序)放在 Apache 站點的根路徑下/etc/www/html即可 ,局域網內的主機便可通過瀏覽器訪問站點并下載文件。
相關運維命令如下:
開啟服務:/etc/init.d/apache2 start 重啟服務:/etc/init.d/apache2 restart 關閉服務:/etc/init.d/apache2 stop 編輯端口:vim /etc/apache2/ports.conf 主頁路徑:/etc/www/html開啟后瀏覽器訪問到的默認主頁如下:
網站部署
前面講了,虛擬機技術是將一臺服務器分隔成若干個虛擬的專享使用空間,然而空間都不能自定義,只能支持特定的功能,并且都使用一個IP,更重要的是各個空間之間是會相互影響的,包括CPU、內存、磁盤這些都是共享的。直觀來講就是一臺服務器分隔成多個空間,然后共多用戶共同使用服務器資源。
當我們想部署網站的時候,經常會聽到VPS、云主機、虛擬機等關鍵字,這幾者之間有何區別?
VPS
VPS 是Virtual Private Server的英文縮寫,即虛擬專用服務器。VPS就是利用容器技術和虛擬化技術將一臺物理機劃分為N臺獨立的服務器,劃分出來的服務器之間是相互獨立的互不影響,每臺服務器有獨立的IP、CPU、內存、磁盤,劃分出來的每臺服務器就是VPS。用戶使用VPS就像是使用一臺獨立服務器一樣,你可以自定義的安裝想要的軟件。
云主機
相信你經常會聽到阿里云、騰訊云、亞馬遜云等熱門詞,但是這些云是什么意思呢。互聯網中的云你可以粗略的理解為集群,一臺單獨的服務器無法構成云,一臺服務器的計算能力始終是有限的,將N多臺服務器通過云技術組建成一個集群就可以理論上提供無限大的計算能力。
那么云主機又是什么呢?VPS的是什么我們已經講過,從內部看云主機在使用上和VPS幾乎是一樣的,從外部來看云主機是更高級是VPS,VPS是在一臺服務器,不管怎么擴展都超不過這臺服務器的計算能力,然而云主機是一個超大集群服務器分出來的,理論上他的最大計算能力就是整個集群的計算能力,因此云主機相對于VPS而言它的擴展性更好。當然云主機技術相比VPS技術更加的困難。
VPS、云主機、虛擬機的區別?
通過上面的講解你一定知道了VPS、云主機、虛擬機的各自特點,所以他們的區別就很明顯了,現在我們用租房打個比方來說明:
通過上面的講解你一定了解了VPS、云主機、虛擬機這三者各自的特點和區別,總之一句話:虛擬機是公衛的青年公寓、VPS是獨衛高級大床房、云主機則是豪華別墅。
怎樣選擇VPS、云主機、虛擬機?
從分析中可以看到,云主機要好于VPS,VPS要好于虛擬機,但是越好技術就越復雜,成本就越高,價格就更昂貴。選當然是選最合適的,不一定要選最好的,如果你只是一個人開發人員,只是需要部署一個個人站,那么虛擬主機就夠了;如果你是像部署一個小型企業的官網之類的,那么你選擇一個VPS就夠了;如果你的網站訪問量很大,并且還會持續發展,那么你最好是選擇云主機。
總結
以上是生活随笔為你收集整理的渗透测试-Kali虚拟机技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 计步器 计算当前的行走步
- 下一篇: 《App研发录》读书笔记