2017-2018-2 20179216 《網絡攻防與實踐》第二週總結

第一節 國內外黑客介紹


國內黑客—龔蔚
html

龔蔚(Goodwell)中國黑客教父,綠色兵團創始人,COG發起人。1999年,龔蔚率領黑客組織"綠色兵團"成立上海綠盟信息技術公司。
龔蔚先生本科畢業後開始創辦創辦綠盟網絡安全技術有限公司,開始了在互聯網信息安全領域的工做,至今已十二年。前後就任於外資企業ISS (中國)、CA軟件(中國)建立安全事業部。支持並參與的大型安全服務項目有幾百餘個,網絡安全的足跡踏遍中國的全部城市,例如江蘇電信、山東電信、上海熱線、四川天府熱線安全評估項目;金融行業中的民生銀行、中國銀行、工商銀行、申銀萬國證券公司等提供安全評估服務;政府企業中的上海市委宣傳部、總參61所、上海電力、江蘇省公安廳等提供風險安全評估服務。python

國外黑客—喬納森·詹姆斯(Jonathan James)
linux

喬納森·詹姆斯(Jonathan James),歷史上五大最著名的黑客之一。1999年,年僅16歲的詹姆斯就由於入侵NASA電腦被捕,成爲世界上第一個由於黑客行爲而被捕的未成年人。同年,他與FBI展開合做,找出了危害一時的梅麗莎(Melissa)病毒的發佈者大衛·史密斯。次年,他又協助FBI找出了愛蟲病毒的來源,從而聲名大振。
黑客事蹟web

  • 入侵DTRA
    DTRA是國防部的機構,旨在減輕對美國的威脅,它的聯合機構來自核、生物、化學、常規和特殊武器等機構。在認罪中,詹姆斯也認可他非法入侵了一個計算機路由器,而且在路由器上安裝了一個隱藏的進入方式或"後門"。這個程序攔截了超過3300多個來自和發往(DTRA)的員工的電子信息。他同時也攔截了(DTRA)的員工的計算機賬戶的至少19個用戶名和密碼,包括至少10個用戶名和密碼在軍隊計算機上。
  • 入侵NASA
    1999年6月29和30日,詹姆斯非法進入了總共13個美國國防部(DOD)的計算機系統,使用兩個不一樣的互聯網服務提供者原始地址發起攻擊。做爲入侵的一部份,他得到和下載了來自美國國家航空和宇宙航行局的專用軟件價值約170萬美圓。這些軟件支持着國際空間站(ISS)的物理環境,包括艙內實時溫度和溼度的控制。做爲入侵和數據偷襲的結果,國家航空和宇宙航行局的計算機系統在1999年7月被死機21天,損失超過4.1萬美圓。
    紅客事蹟
  • 找出梅麗莎病毒(Melissa)發佈者
    Melissa病毒是大衛·史密斯(David L. Smith)在1999年發佈的一個計算機病毒,他使用被盜的美國在線帳號,向美國在線討論組Alt.Sex發佈了一個感染Melissa病毒的Word文檔。病毒經過電子郵件迅速傳播,使得被感染電腦的郵件過載。這一事件形成8000萬美圓損失。詹姆斯成功的跟蹤到了大衛,並協助FBI對其進行抓捕。
  • 追蹤愛蟲病毒
    2000年5月份,愛蟲病毒席捲全球,FBI曾在上個月瘋狂的搜尋着"愛蟲"病毒的來源,但在半個月毫無所獲以後。詹姆士此次決心很大,他說:"我想我還能本身把握本身的命運,我知道什麼該作,什麼不應作。儘管我如今搞的是電腦,但我從9歲起就想學法律,我想二者結合起來必定會很偉大。"最終詹姆斯幫助FBI找出了病毒來源。

第二節 網絡攻防技術中的五種經常使用工具、庫信息


根據對SecTools的學習,以及對相關資料的參考,我在這裏整理了幾個較爲經常使用的網絡攻防工具。shell

- Wireshark數據庫

Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。Wireshark使用WinPCAP做爲接口,直接與網卡進行數據報文交換。
網絡封包分析軟件的功能可想像成 "電工技師使用電錶來量測電流、電壓、電阻" 的工做 - 只是將場景移植到網絡上,並將電線替換成網絡線。在過去,網絡封包分析軟件是很是昂貴,或是專門屬於營利用的軟件。Ethereal的出現改變了這一切。在GNUGPL通用許可證的保障範圍底下,使用者能夠以避免費的代價取得軟件與其源代碼,並擁有針對其源代碼修改及客製化的權利。Wireshark是目前全世界最普遍的網絡封包分析軟件之一。
詳細用法見博客[wireshark分析tcp三次握手的過程](http://www.cnblogs.com/jmjm/p/7838031.htmlvim

- Burp Suite後端

BurpSuite是一款信息安全從業人員必備的集成型的滲透測試工具,它採用自動測試和半自動測試的方式,包Proxy,Spider,Scanner,Intruder,Repeater,Sequencer,Decoder,Comparer等工具模塊。經過攔截HTTP/HTTPS的web數據包,充當瀏覽器和相關應用程序的中間人,進行攔截、修改、重放數據包進行測試,是web安全人員的一把必備的瑞士軍刀。
詳細用法見博客[Burp Suite實現重放攻擊](http://www.cnblogs.com/jmjm/p/7875607.html數組

- Nessus瀏覽器

Nessus是一個功能強大而又易於使用的遠程安全掃描器,它不只免費並且更新極快。安全掃描器的功能是對指定網絡進行安全檢查,找出該網絡是 否存在有致使對手攻擊的安全漏洞。該系統被設計爲client/sever模式,服務器端負責進行安全檢查,客戶端用來配置管理服務器端。在服務端還採用 了plug-in的體系,容許用戶加入執行特定功能的插件,這插件能夠進行更快速和更復雜的安全檢查。在Nessus中還採用了一個共享的信息接口,稱之 知識庫,其中保存了前面進行檢查的結果。檢查的結果能夠HTML、純文本、LaTeX(一種文本文件格式)等幾種格式保存。

- Metasploit

Metasploit是一個免費的、可下載的框架,經過它能夠很容易地獲取、開發並對計算機軟件漏洞實施攻擊。它自己附帶數百個已知軟件漏洞的專業級漏洞攻擊工具。當H.D. Moore在2003年發佈Metasploit時,計算機安全情況也被永久性地改變了。彷彿一晚上之間,任何人均可以成爲黑客,每一個人均可以使用攻擊工具來攻擊那些未打過補丁或者剛剛打過補丁的漏洞。軟件廠商不再能推遲發佈針對已公佈漏洞的補丁了,這是由於Metasploit團隊一直都在努力開發各類攻擊工具,並將它們貢獻給全部Metasploit用戶。
Metasploit的設計初衷是打形成一個攻擊工具開發平臺。然而在目前狀況下,安全專家以及業餘安全愛好者更多地將其看成一種點幾下鼠標就能夠利用其中附帶的攻擊工具進行成功攻擊的環境。
詳細用法見博客[Metasploit的使用](http://www.cnblogs.com/jmjm/p/7841008.html

- Netcat

netcat是一個用於TCP/UDP鏈接和監聽的linux工具, 主要用於網絡傳輸及調試領域;能夠打開TCP鏈接發送UDP報文,監聽在TCP和UDP端口,以及TCP端口掃描,並將錯誤消息輸出到屏幕上;也能夠從文件或網絡的一端讀取數據,原封不動的將數據發送到另外一臺主機或文件中 。

  • 支持客戶端和服務器
  • 支持連出和連入, TCP和UDP以及任意源/目的端口
  • 內建端口掃描功能, 帶有隨機數發生器
  • 支持設定tos等

下面簡單地介紹一下Netcat的使用方法

  • nc的一些具體參數以下所示
    - -d 無命令行界面,使用後臺模式
    - -e prog 程序重定向,一旦鏈接,就執行 [危險!!],(能夠理解爲向外發送一個東西,對方連上自動執行)
    - -g gateway 源路由跳躍點,不超過8
    - -G num 源路由指示器:4,8,12.。。。。。
    - -h 獲取幫助信息
    - -i <延遲秒數> 延時設置,端口掃描時使用
    - -l 監聽入站信息
    - -L 監聽知道NetCat被結束(可斷開重連)
    - -n 以數字形式表示的IP地址,不要使用DNS反向查詢IP地址的域名
    - -o <輸出文件> 能夠將鏈接上往來傳輸的數據以16進制的形式記錄到logfile中(每行的左半部分是16進制顯示,右半部分爲ascii顯示)。其中,每行的第一個字符爲」<」或」>」,分別表示接收的數據或發送的數據。

    - -p post                   打開本地端口
    - -r                            隨機本地和遠程的端口
    - -s addr                   本地源地址
    - -t                            以TELNET的形式應答入站請求
    - -u                           用UDP創建鏈接
    - -v                           顯示詳細信息[使用-vv獲取更信息的信息]
    - -w<超時秒數>        鏈接超時設置
    - -z                           I/O模式[掃描時使用],鏈接成功後當即關閉鏈接, 不進行數據交換端口號能夠是單個的或者存在一個範圍: m-n[包含值]

- Nmap

Nmap是一款網絡掃描和主機檢測的很是有用的工具。Nmap是不侷限於僅僅收集信息和枚舉,同時能夠用來做爲一個漏洞探測器或安全掃描器。它能夠適用於winodws,linux,mac等操做系統。Nmap是一款很是強大的實用工具,也是一個很是廣泛的工具。Nmap在實際中應用場合以下:

  • 經過對設備或者防火牆的探測來審計它的安全性
  • 探測目標主機所開放的端口
  • 經過識別新的服務器審計網絡的安全性
  • 探測網絡上的主機

下面簡單地介紹一下Nmap的使用方法

  • Nmap用於主機發現的一些用法

    - -sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。  
    
    - -sn: Ping Scan 只進行主機發現,不進行端口掃描。  
    
    - -Pn: 將全部指定的主機視做開啓的,跳過主機發現的過程。  
    
    - -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。  
    
    - -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 請求包發現主機。-PO[protocollist]: 使用IP協議包探測對方主機是否開啓。  
    
    - -n/-R: -n表示不進行DNS解析;-R表示老是進行DNS解析。  
    
    - --dns-servers <serv1[,serv2],...>: 指定DNS服務器。  
    
    - --system-dns: 指定使用系統的DNS服務器  
    
    - --traceroute: 追蹤每一個路由節點
  • Nmap用於端口掃描的一些用法
    - -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。

    - -sU: 指定使用UDP掃描方式肯定目標主機的UDP端口情況。  
    
      - -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans祕密掃描方式來協助探測對方的TCP端口狀態。  
    
      - --scanflags <flags>: 定製TCP包的flags。  
    
      - -sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提須要找到合適的zombie host)  
    
      - -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的狀況。  
    
      - -sO: 使用IP protocol 掃描肯定目標機支持的協議類型。  
    
      - -b <FTP relay host>: 使用FTP bounce scan掃描方式

具體操做演示以下

(1)用Nmap掃描特定IP地址

(2)用nmap掃描網址

(3)用nmap掃描特定端口

(4)namp對SEED靶機的掃描

  • IP地址活躍:-sP


  • 開放的TCP和UDP端口:-sT/-sS、-sU


  • 操做系統版本:-O

  • 安裝的網絡服務:-sV

第三節 黑客電影鑑賞——《碟中諜》


影片圍繞美國不可能的任務情報署展開。該情報署的特工都身手不凡,並且他們也擅長使用易容術,讓目標在不知情的狀況下供出情報。影片從一開始就進入一我的物身份全是謎的間諜世界,觀衆還來不及琢磨,一個又一個高潮接踵而至。其中三處尤其精彩:主角從布拉格一家裝修新潮的咖啡館逃離時,打爛巨大的魚缸,不只畫面獨特,並且具備象徵意義(他掉進一個大魚吃小魚的海洋世界);主角潛回中央情報局偷文件的情節已成爲經典;影片的最後一個高潮是他趴在火車頂上,前有隧道,後有直升機追趕,全然是視覺過山車的效果。節奏化的蒙太奇處理、追蹤式的長鏡頭、「頂拍」視覺效果等要素使得《碟中諜》帶有德·帕爾馬強烈的我的風格,情節之巧妙、佈局謀篇之細緻、懸念設計之絕頂讓人歎爲觀止,特別是伊桑·亨特潛入中情局總部,空降以竊取特工名單的那段「舞蹈」,把導演本人構造戲劇張力的功夫推向極致。

第四節 網絡攻防實驗


實驗環境拓撲結構

vmware環境配置

  • 靶機:BT5R1
  • 攻擊機:kali
  • SEED虛擬機
  • 蜜網網關
    • eth0 : NAT 模式
    • eth1 :主機模式
    • eth0 和 eth1 構成一個透明網橋

  • 在VMware中點擊編輯--> 虛擬網絡編輯器。
  • 選擇VMnet1,設置以下(host-only模式,子網IP設置爲192.168.200.128,子網掩碼設置爲255.255.255.128)

  • 選擇VMnet8,設置以下(NAT模式,子網IP設置爲192.168.200.0,子網掩碼設置爲255.255.255.128)

  • 點擊NAT設置,設置以下

  • 點擊DHCP設置,設置以下、

獲取攻擊機IP地址

獲取靶機IP地址

測試靶機與攻擊機之間的連通性

說明靶機與攻擊機連通
獲取SEED虛擬機的IP地址

SEED虛擬機,鏈接攻擊機與靶機

安裝蜜網網關

  • 添加兩塊網卡,網絡適配器2設爲Host-only, 網絡適配器3設爲NAT。

  • 蜜網網關軟件安裝完畢,進入登陸界面。以roo/honey缺省用戶/口令登陸。

  • 進行配置

測試虛擬機蜜罐和攻擊機主機之間的網絡鏈接
在蜜網網關上監聽ICMP ping包是否經過內網口和外網口。

  • 攻擊機 ping 靶機時tcpdump -i eth1 icmp:
  • 攻擊機 ping 靶機時tcpdump -i eth0 icmp:
  • 靶機 ping 攻擊機時,tcpdump -i eth1 icmp
  • 靶機 ping 攻擊機時,tcpdump -i eth0 icmp
    經過測試後,說明虛擬機蜜罐和外部網絡之間的網絡鏈接(經過蜜網網關 eth0 和 eth1 所構成的網橋)沒有問題。

第五節 Python教程學習


代碼風格建議

  • 使用 4 個空格來縮進
  • 永遠不要混用空格和製表符
  • 在函數之間空一行
  • 在類之間空兩行
  • 字典,列表,元組以及參數列表中,在 , 後添加一個空格。對於字典,: 後面也添加一個空格
  • 在賦值運算符和比較運算符周圍要有空格(參數列表中除外),可是括號裏側不加空格:a = f(1, 2) + g(3, 4)

應當明白如何使用交互模式的 Python3 解釋器,如何簡單使用 vim 編寫腳本文件並執行這個腳本文件。要特別注意的是,Python 使用縮進來定義語句塊,縮進是 Python 語法的一部分,這與其它大多數語言不一樣。
我是剛剛開始接觸Python,感受跟從C語言差距不大,可是語言風格更爲簡單。剛開始學習建Python腳本文件時,感受挺困難的 ,步驟也挺繁瑣,下面寫一下步驟 ,加深本身的記憶。

  • 鍵入 vim 文件名.py,創建Python文件。
  • 按 i 鍵進入插入模式,能夠看到左下角有 「插入」 兩個字,如今能夠鍵入下面的代碼了。
  • 然其中第一行的前兩個字符 #! 稱爲 Shebang ,目的是告訴 shell 使用 Python 解釋器執行其下面的代碼。
  • 而後按 Esc 鍵退出插入模式,再鍵入 :wq 回車,Vim 就會保存文件並退出。
  • 鍵入Python 文件名.py,能夠運行程序,執行命令。
  • 再次鍵入vim 文件名.py,能夠對程序進行修改。

下面是我第一次運行Python程序,雖然很簡單,可是過程很坎坷。

字符串和數據結構

  • 首先咱們創建了一個列表 a。而後調用列表的方法 a.append(45) 添加元素 45 到列表末尾。
  • 有些時候咱們須要將數據插入到列表的任何位置,這時咱們可使用列表的 insert() 方法。
  • 列表方法 count(s) 會返回列表元素中 s 的數量。
  • 若是你想要在列表中移除任意指定值,你須要使用 remove() 方法。
  • 反轉整個列表用reverse()方法。
  • 怎樣將一個列表的全部元素添加到另外一個列表的末尾呢,可使用列表的 extend() 方法。
  • 給列表排序,咱們使用列表的 sort() 方法,排序的前提是列表的元素是可比較的。
  • 也能使用 del 關鍵字刪除指定位置的列表元素。
    程序實例:這是一個判斷學生成績是否達標的程序,要求輸入學生數量,以及各個學生物理、數學、歷史三科的成績,若是總成績小於 120,程序打印 「failed」,不然打印 「passed」

List(列表)
是 Python 中使用最頻繁的數據類型。列表能夠完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至能夠包含列表(即嵌套)。從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標能夠爲空表示取到頭或尾。以下圖所示:

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 輸出完整列表
print list[0] # 輸出列表的第一個元素
print list[1:3] # 輸出第二個至第三個元素
print list[2:] # 輸出從第三個開始至列表末尾的全部元素
print tinylist * 2 # 輸出列表兩次
print list + tinylist # 打印組合的列表
輸出結果
['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

下面是列表的一些經常使用操做

Python 字典
字典(dictionary)是除列表之外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。字典用"{ }"標識。字典由索引(key)和它對應的值value組成。例如:
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 輸出鍵爲'one' 的值
print dict[2] # 輸出鍵爲 2 的值
print tinydict # 輸出完整的字典
print tinydict.keys() # 輸出全部鍵
print tinydict.values() # 輸出全部值
結果:
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

運算符


邏輯運算符

成員運算符

身份運算符

is 與 == 區別:
is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。

數學運算符

Python函數
你能夠定義一個由本身想要功能的函數,如下是簡單的規則:

  • 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。
  • 任何傳入參數和自變量必須放在圓括號中間。圓括號之間能夠用於定義參數。
  • 函數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明。
  • 函數內容以冒號起始,而且縮進。
  • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None

應用實例:計算兩個矩陣的乘積

文件的I/O操做

  • raw_input([prompt]) 函數從標準輸入讀取一個行,並返回一個字符串(去掉結尾的換行符)。
  • input([prompt]) 函數和 raw_input([prompt]) 函數基本相似,可是 input 能夠接收一個Python表達式做爲輸入,並將運算結果返回。
  • 先用Python內置的open()函數打開一個文件,建立一個file對象,相關的方法才能夠調用它進行讀寫。
  • File 對象的 close()方法刷新緩衝區裏任何還沒寫入的信息,並關閉該文件,這以後便不能再進行寫入。當一個文件對象的引用被從新指定給另外一個文件時,Python 會關閉以前的文件。用 close()方法關閉文件是一個很好的習慣。語法:fileObject.close();
  • write()方法可將任何字符串寫入一個打開的文件。須要重點注意的是,Python字符串能夠是二進制數據,而不是僅僅是文字。write()方法不會在字符串的結尾添加換行符('\n')。
  • read()方法從一個打開的文件中讀取一個字符串。須要重點注意的是,Python字符串能夠是二進制數據,而不是僅僅是文字。
  • 重命名rename()方法須要兩個參數,當前的文件名和新文件名。語法:os.rename(current_file_name, new_file_name)
  • 你能夠用remove()方法刪除文件,須要提供要刪除的文件名做爲參數。語法:os.remove(file_name)
  • 可使用os模塊的mkdir()方法在當前目錄下建立新的目錄們。你須要提供一個包含了要建立的目錄名稱的參數。
  • 能夠用chdir()方法來改變當前的目錄。chdir()方法須要的一個參數是你想設成當前目錄的目錄名稱。語法:os.chdir("newdir")
  • getcwd()方法顯示當前的工做目錄。
  • rmdir()方法刪除目錄,目錄名稱以參數傳遞。在刪除這個目錄以前,它的全部內容應該先被清除。

控制流if-else

if語句中要使用正確的縮進
elif是else if的縮寫:if...: elif...: elif...: else...:
真值檢測:if x:pass而非if x==true:pass

異常

  • try--except
    • 首先,執行 try 子句 ,若是沒有異常發生,except 子句 在 try 語句執行完畢後就被忽略了。
    • 若是在 try 子句執行過程當中發生了異常,那麼該子句其他的部分就會被忽略。
    • 若是異常匹配於 except 關鍵字後面指定的異常類型,就執行對應的 except 子句。而後繼續執行 try 語句以後的代碼。
    • 若是發生了一個異常,在 except 子句中沒有與之匹配的分支,它就會傳遞到上一級 try 語句中。
    • 若是最終仍找不到對應的處理語句,它就成爲一個 未處理異常,終止程序運行,顯示提示信息。
    • except能夠處理一個專門的異常,也能夠處理一組圓括號中的異常,若是except後沒有指定異常,則默認處理全部的異常。
  • raise
    raise 語句拋出一個異常。如"挑戰:玩轉函數"中要求用戶可以經過命令行輸入分鐘數,程序須要打印出相應的小時數和分鐘數。若是用戶輸入的是一個負值,程序須要報錯 ValueError,在屏幕上打印出ValueError: Input number cannot be negative 提示用戶輸入的值有誤。

  • finally
    無論有沒有發生異常,finally 子句在程序離開 try 後都必定會被執行。當 try 語句中發生了未被 except 捕獲的異常(或者它發生在 except 或 else 子句中),在 finally 子句執行完後它會被從新拋出:

總結內容

  • 在 Python 裏,標識符由字母、數字、下劃線組成。
  • 在 Python 中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。
  • Python 中的標識符是區分大小寫的。
  • 每一個縮進層次使用 單個製表符(Tab)或 兩個空格 或 四個空格 , 切記不能混用
  • 可使用斜槓( )將一行的語句分爲多行顯示
  • 語句中包含 [], {} 或 () 括號就不須要使用多行鏈接符
  • 單引號表示的字符串裏可包含雙引號,固然不能包含單引號
  • 雙引號表示的字符串裏能夠包含單引號,字符串都只能有一行
  • 三個引號能包含多行字符串,同時經常出如今函數的聲明的下一行,來註釋函數的功能,不同凡響的地方在於,這個註釋做爲函數的一個默認屬性,能夠經過 函數名.__doc__ 來訪問
  • python中單行註釋採用 # 開頭。
  • print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上逗號,或者加上end=' '

第六節 Kali視頻1-5學習總結


1. kali安裝

2. 滲透測試
完整的滲透測試流程如圖所示

  • 完整的受權安全滲透測試流程
    • 信息收集
      這是選擇目標的過程,也是對目標信息進行收集整理的過程。信息收集過程包括不限於目標在線主機、域名信息、郵箱地址、經常使用密碼、同網段信息、子域名信息、指紋信息、端口信息、文件信息等。
      而這一過程大多借助搜索引擎、社會工程學和基本的掃描工具實現。
      只有創建在足夠信息分析的基礎上,滲透工做才能遊刃有餘。收集的信息越多,發現漏洞的概率越大。固然,對不一樣應用的信息收集的側重點也不一樣。
      對於Web網站,你須要獲得目標主機的服務器操做系統,Web服務器類型,Web後端語言,數據庫系統等信息。
      對軟件應用,更多的多是關心應用程序自己是否存在某些漏洞如緩衝區溢出。

    • 漏洞分析
      在收集了足夠的信息以後,咱們要判斷目標可能會存在哪些漏洞,這裏須要搜索引擎搜索或藉助通用的漏洞掃描器(如WEB漏洞掃描器WVS)來完成。
      一般使用搜索引擎能夠獲得比較直接的信息,好比咱們在第一步中就知道對方站點使用WodePress搭建而成,則可經過Google搜索可能存在的插件漏洞,並針對性的進行利用測試。
      有不少專業記錄漏洞信息的站點如Exploit-DB,裏面有不少值得咱們留意的最新漏洞信息。咱們也可利用其進行鍼對性的漏洞掃描。此時專門的漏洞掃描工具比通用工具來的更實際和高效。
    • 漏洞利用
      獲得漏洞信息後,基本均可以找到對應的攻擊方法。Kali Linux中也提供了不少現成的工具,來幫助咱們順利的攻擊目標。這一步包含兩個方面:一是對心有漏洞進行利用,獲得必定權限,二是提高本身的權限,簡稱提權。要注意,這個過程當中要明確本身的目的,滲透測試和以破壞爲目的的黑客行爲是有區別的,滲透測試的目的是證實漏洞的存在,而不是搞破壞。對於攻擊行爲,還包括一個重要的內容,就是如何隱藏攻擊行爲或清除攻擊日誌。讓對方很難經過反追蹤技術查找到攻擊者。
    • 權限維持
      權限維持,是指咱們成功攻破一個系統後,繼續保持對系統權限的控制,俗稱留後門,一般會經過建立高權限的隱藏帳戶或者安裝後門程序實現。
    • 文檔編輯
      滲透測試最終簡要將獲得的信息、漏洞等歸檔化,這樣會造成知識的積累。固然若是你即將成爲專業的滲透測試工程師或者項目爲滲透測試,那麼標準文檔更是必不可少的。

    • 其餘相關項
      在Kali Linux分類目錄中,以上沒有說起無線攻擊、密碼攻擊、嗅探攻擊、逆向工程、數字取證幾個目錄,多也爲滲透測試流程填磚。一如從無線網絡滲透測試公司內網,則須要無線攻擊審計部分

3. Kali信息收集之GooleHake

信息收集的方式:

  • 主動:直接訪問、掃描網站(將流量流經網站的行爲)
  • 被動:利用第三方的服務對目標進行訪問了解,比例:Google搜索。

(1)經過互聯網網站蒐集信息
好比searchdns.netcraft.com搜到子域名信息,shodanhq大數據搜索,同IP網站反查、IP信息掃描,網站指紋信息,WHOis查詢dns域名信息等。

(2)Google Hack

(3)theharvester
theharvester是一個社會工程學工具,它經過搜索引擎、PGP服務器以及SHODAN數據庫收集用戶的email,子域名,主機,僱員名,開放端口和banner信息。

(4)metagoofil
metagoofil能夠收集 word、ppt、Excel、PDF 類型的信息

(5)recon-ng
根據收集方式不一樣分爲偵察Reconnaissance、發現Discovery與彙報reporting模塊:

  • 偵察:被動的信息收集方式,例如經過搜索引擎google hacker技巧收集目標的敏感信息
  • 發現:主動的信息收集方式,例如經過發送http請求包探測web服務指紋
  • 彙報:提供html和csv兩種格式的報

4. Kali信息收集之目標獲取
DNS(Domain Name System,域名系統)做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住IP數串。當用戶輸入域名時,DNS服務能夠將該域名解析爲與之相關的信息,如IP地址。DNS協議運行在UDP協議之上,使用端口號53。從給定的一個簡單的主域名(主域名漏洞較少),到目標子域名的信息收集更有利於發現漏洞。

  • Dig 進行域名解析 dig www.baidu.com

  • Dig繼行域傳送漏洞測試
    dig獲取目標域名使用的DNS服務器 dig NS 163.com
  • DNS分析工具

(1)fierce :它是一種快速有效地DNS暴力破解的工具,先經過查詢本地DNS服務器來查找目標DNS服務器,而後使用目標DNS服務器來查找子域名,而後利用字典進行攻擊:

(2)dnsmap:能夠直接進行掃描

(3)dnsenum:速度快,分類明顯

第七節 學習中遇到的問題


  • 學習Python時,創建文件學了好久
  • Python語言中的數組與異常較爲困難
  • 蜜網網關安裝操做不熟練
  • vmtools安裝出現一些問題
  • 對網絡攻防工具的學習較爲淺顯,要學的還有不少
相關文章
相關標籤/搜索