1. 程式人生 > >網路安全學習之主機掃描和漏洞掃描

網路安全學習之主機掃描和漏洞掃描

主機掃描

主機掃描一般在資訊蒐集階段進行,用於瞭解目標主機上執行的服務以便進一步進行滲透。

用的工具主要是nmap,詳細用法自行百度,我就說一下常用的幾種組合
1. nmap -sn ip地址(可以是單個ip地址,也可以是一個範圍192.168.1.1-192.168.1.20,也可以是用逗號隔開的幾個ip, 192.168.1.1,192.168.1.2,也可以是一個網段192.168.1.0/24),用於判斷主機是否是線上的
2. nmap -Ss -A -Pn ip地址(規則同上),-Ss表示使用syn掃描,想知道原理的自行百度tcp的三次握手,-A表示要得到詳細資訊,比如服務的版本號,主機版本號等,-Pn表示不使用ping命令來判斷主機是否線上,有些伺服器為了安全是不響應ping請求的,有興趣的可以試試ping一些學校的網站,如果已經知道主機是線上的也可以使用-P0命令來完全跳過主機發現階段。這個命令是為了找出主機上的服務及其版本。

如果目標不確定的話,比如要掃描一整個網段,一般是先用-sn找出存活的主機,再用第二個找出服務及其版本號,這樣可以節省時間,目標確定直接用第二種就好,可以使用-oX把掃描結果以xml格式匯出,匯出的xml檔案可以被metasploit匯入使用

漏洞掃描

漏洞掃描使用專業的漏洞掃描軟體進行掃描,kali上建議安裝openvas,因為支援性好,是免費的,安裝方便(本來想用Nessus的,安了半天沒安好,看教程還要破解什麼的,好麻煩就放棄了)

  1. 安裝比較簡單,直接apt-get install openvas,沒有更換過更新源的,自行百度kali更新源修改,說的很詳細
  2. 下完了之後,直接輸入openvas-setup,之後再輸入openvas-check-setup,檢查安裝是否成功,有錯誤就根據提示去修改,看不懂英文就用翻譯軟體,安裝完之後由於初始密碼比較複雜,一般會改個密碼,命令為openvasmd –user admin –new-password 123456,需要更新openvas的話輸入openvas-feed-update
  3. 輸入openvas-start啟動openvas,此時可以輸入netstat -ntpa|grep 939*檢視是否啟動成功,如果有9392埠則代表啟動成功,在openvas中9390表示openvas-manager服務,9391表示openvas的掃描器,9392表示openvas的web介面。此時在本機開啟瀏覽器輸入https://127.0.0.1:9392,就可以出現openvas登入介面。(openvas的web頁面預設只能在本機開啟,如果相要在其它機器上訪問則需要更改/lib/systemd/system/greenbone-security-assistant.service,把–listen=127.0.0.1改成0.0.0.0這樣就可以在其它機器上訪問openvas的web介面了)
  4. 開啟web介面進行登入,現在應該是登入不進去的,因為openvas-manager沒有啟動,輸入service openvas-manager start進行啟動,也可以使用update-rc.d openvas-manager enable讓這個服務開機自啟,不自啟的話,每次記得要重啟,現在就可以登入進去了
  5. 使用的話就比較簡單了,主要分為4部,1.建立掃描模板,指定掃描的埠 2.建立掃描目標,可以是單個地址也可以是多個ip 3.建立掃描任務,把模板和目標結合在一起,並執行任務 4.檢視結果,並匯出報告,nbe和xml格式可以被metasploit匯入使用,html格式方便觀看,web上具體怎麼操作,網上有很詳細的講解

兩種掃描與資料庫的結合

這兩種掃描嚴格來說都是要結合資料庫來使用的,因為一般情況下掃描出來的資料會很多,除非是自己掃的玩一下,要不然都是要使用資料庫的

資料庫就使用kali自帶的postgresql,首先啟動service postgresql start,或者按照上面的方法把它調成自啟動。在/usr/share/metasploit-framework/config/database.yml裡可以看到資料庫的使用者名稱和密碼。

不過我建議自己建立一個使用者和資料庫,方法如下:
su postgres(進入postgresql命令列)
createuser username -P(建立一個帶密碼的使用者)
createdb –owner=msf msf(建立一個數據庫msf,資料庫的所有者為使用者msf)

連線資料庫
輸入 msfconsole,進入msf命令列,輸入db_status檢視資料庫的狀態,正常情況下是未連線的,如果資料庫連線密碼或者資料庫選擇錯誤,狀態就會變為已選擇未連線,此時就需要先db_disconnect斷開連線,然後再進行連線,連線命令為 db_connect db_connect user:[email protected]:5432/資料庫名,連線後db_status就會顯示連線成功。(msfdb start/stop可以控制msfconsole資料庫服務的開關)

資料庫的使用
載入資料庫之後可以使用db_import,匯入兩類掃描的xml檔案,或nbe檔案,也可以直接在msf裡使用db_nmap,這樣掃描完之後的資料會直接匯入到資料庫中,匯入之後可以使用hosts檢視掃描的主機,使用services查看出來的服務,使用vulns檢視掃描發現的漏洞。使用db_autopwn可以根據這些掃描結果自動進行攻擊,但是新版的kali裡這個工具被移除了,需要自己新增具體操作如下
1. 在msf裡隨便輸入load一個不存在的檔案,比如load aaa,由於這個檔案不存在,系統會報錯,錯誤資訊裡有存放被load檔案的目錄,進入這個目錄輸入wget https://raw.githubusercontent.com/hahwul/metasploit-db_autopwn/master/db_autopwn.rb將db_autopwn下載下來,然後進入msf,load db_autopwn即可,輸入db_autopwn -h,可檢視相關引數,一般使用db_autopwn -e(對所有目標攻擊) -t(顯示所有匹配的模組) -r(反彈shell) -x(根據漏洞選擇攻擊模組) -p(根據開發埠選擇攻擊模組)。

msf裡使用openvas
我覺得在web介面使用openvas不直觀而且看起來比較low,我更喜歡在msf裡使用openvas,首先load openvas,然後連線openvas,openvas_connect admin 123456 127.0.0.1 9390 ok,之後就是openvas_target_create,openvas_task_create,openvas_report_list/download,建立後面就跟create,顯示後面就跟list。提示比較詳細,更多操作輸入openvas後一直按tab就可以了