2017-2018-2 20155314《網絡對抗技術》Exp6 信息蒐集與漏洞掃描

2017-2018-2 20155314《網絡對抗技術》Exp6 信息蒐集與漏洞掃描

目錄

返回目錄php

實驗目標

掌握信息蒐集的最基礎技能與經常使用工具的使用方法。html

返回目錄linux

實驗內容

  1. 各類搜索技巧的應用ios

  2. DNS IP註冊信息的查詢git

  3. 基本的掃描技術:主機發現、端口掃描、OS及服務版本探測、具體服務的查點web

  4. 漏洞掃描:會掃,會看報告,會查漏洞說明,會修補漏洞sql

返回目錄數據庫

實驗環境

  • macOS本機
  • macOS下Parallels Desktop虛擬機中(網絡源均設置爲共享網絡模式):
    • Kali Linux - 64bit(攻擊機,IP爲10.211.55.10
    • Windows 7 - 64bit(靶機,IP爲10.211.55.14
    • Windows XP Professional Version 2002 Service Pack 3(靶機,IP爲10.211.55.16

返回目錄api

基礎問題回答

  1. 哪些組織負責DNS,IP的管理。
    • 全球根服務器均由美國政府受權的ICANN統一管理,負責全球的域名根服務器、DNS和IP地址管理。
    • 全球根域名服務器:絕大多數在歐洲和北美(全球13臺,用A~M編號),中國僅擁有鏡像服務器(備份)。
    • 全球一共有5個地區性註冊機構:ARIN主要負責北美地區業務,RIPE主要負責歐洲地區業務,APNIC主要負責亞太地區業務,LACNIC主要負責拉丁美洲美洲業務,AfriNIC負責非洲地區業務。
  2. 什麼是3R信息。
    • 3R即註冊人(Registrant)、註冊商(Registrar)、官方註冊局(Registry)
    • 3R註冊信息分散在官方註冊局或註冊商各自維護數據庫中,官方註冊局通常會提供註冊商和Referral URL信息,具體註冊信息通常位於註冊商數據庫中。
  3. 評價下掃描結果的準確性。

返回目錄瀏覽器

預備知識

返回目錄

實驗步驟

1 信息蒐集

1.1 外圍信息蒐集

  • 外圍信息蒐集又叫公開渠道信息蒐集。
  • 搜索引擎,公共信息庫,目標門戶網站等等都是很好的入手點。
  • metasploit有一類「輔助模塊」,能夠幫助你進行信息蒐集的工做,而且還集成了nmap等神器。

1.1.1 經過DNS和IP挖掘目標網站的信息
  • 使用whois命令查詢域名註冊信息:

    注意:進行whois查詢時去掉www等前綴,由於註冊域名時一般會註冊一個上層域名,子域名由自身的域名服務器管理,在whois數據庫中可能查詢不到。

    whois baidu.com



    從圖中能夠獲得3R信息,包括註冊人的名字、組織、城市等信息!
  • 使用nslookupdig命令查詢域名:
    • nslookup:

      nslookup能夠獲得DNS解析服務器保存的Cache的結果,但並非必定準確的。

      nslookup
      > set type=A
      > baidu.com
    • dig:

      dig能夠從官方DNS服務器上查詢精確的結果。

      dig @dns.baidu.com baidu.com

      其中dns.baidu.com爲DNS服務器

  • 使用www.maxmind.com根據IP查詢地理位置信息:
  • 使用netcraft提供的信息查詢服務,能獲取到更多的更詳細的信息:
  • 使用IP2進行反域名查詢:

    能夠經過http://www.ip-adress.com/reverse_ip/查詢和定位:


    國內的也能夠用http://www.7c.com/進行查詢,結果更準確。

返回目錄

1.1.2 經過搜索引擎進行信息蒐集
  1. Google Hacking
    • Google提供了高級搜索功能。GHDB數據庫包含了大量使用Google從事滲透的搜索字符串,
    • http://www.exploit-db.com/google-dorks 能夠在上述網址看GHDB的內容。
    • 一些自動化的工具,SiteDigger ,Search Diggity,Gooscan,具體用法自行百度。
  2. 搜索網址目錄結構:
    首先能夠手工測試一些常見的目錄名,如 admin,login等等。
    用Google查詢:parent directory site:XXX.com 來查找目錄。通常對拓展名爲inc,bak,txt,sql的文件要特別留意。

    inc:可能包含網站的配置信息。
    bak:一般是文本編輯器留下的備份文件。
    txt or sql:包含網站運行的sql腳本。

自動化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等輔助模塊,主要是暴力猜解。以dir_scanner爲例:

msf > use auxiliary/scanner/http/dir_scanner。

具體的輔助模塊須要百度自行查找。

一些網站還會在根目錄下放置robots.txt文件,用以告訴搜索引擎哪些目錄和文件不被抓取。

  1. 搜索特定類型的文件

有些網站會連接通信錄,訂單等敏感的文件,能夠進行鍼對性的查找,
如Google,site:XXX.com filetype:xls。

  1. 搜索E-Mali

metasploit中有search_email_collector,進行鍼對性的蒐集。

msf auxiliary(dir_scanner) > use auxiliary/gather/search_email_collector
  1. 搜索存在sql注入的頁面以及後臺登錄的頁面:

    Google:site:XXX.com inurl:login site:XXX.com inurl:.php?id=1

  2. 利用traceroute進行IP路由偵查:
    traceroute www.baidu.com

返回目錄

1.2 主機探測和端口掃描——基於Armitage自動化實現

1.2.1 活躍主機掃描和操做系統辨別
  1. ICMP Ping命令
ping www.baidu.com
  1. 使用netdiscover探測私有網段存活主機:

    netdiscover是基於ARP的網絡掃描工具。ARP是將IP地址轉化物理地址的網絡協議。經過該協議,能夠判斷某個IP地址是否被使用,從而發現網絡中存活的主機。Kali Linux提供的netdiscover工具,就是藉助該協議實施主機發現。它既能夠以被動模式嗅探存活的主機,也能夠以主動模式掃描主機。用戶還能夠根據網絡穩定性,調整發包速度和數量。

    • Kali中使用命令netdiscover對私有網段進行主機探測:
    • 192.168.0-255.0/16
    • 172.16
    • 172.26
  2. metasploit中的模塊
    位於modules/auxiliary/scanner/discovery 主要有 arp_sweep, ipv6_multicast_ping, ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probe,udp_sweep.
    arp_sweep 使用ARP請求枚舉本地局域網的活躍主機,即ARP掃描器
    udp_sweep 使用UDP數據包探測。
  3. 利用Armitage進行Nmap自動化探測
    • 在Armitage中上方工具欄依次選擇Hosts->Nmap Scan->Quick Scan(OS detect)
    • 填寫靶機所在網段10.211.55.0/24
    • 給靶機掃出來!

返回目錄

1.2.2 端口掃描與服務探測

掃描技術:TCP Connect ,TCP SYN, TCP ACK ,TCP FIN ,TCP IDLE

  1. metasploit的端口掃描模塊:
    search portscan命令找到相關模塊
  2. Armitage下Nmap端口掃描和探測詳細服務信息:
    • 選中靶機10.211.55.16,右鍵選擇Services,查看靶機上開啓的端口和相應服務:

      可見靶機的139端口開啓了netbios-ssn服務,445端口開啓了microsoft-ds服務~
    • 選中靶機10.211.55.16,右鍵選擇Scan,Armitage會調用Metasploit的漏洞掃描模塊,定向掃描靶機,尋找存在的漏洞,爲下一步肯定攻擊方法提供參考依據:

      可見相似前幾回實驗在Metasploit中手動配置主機號、端口號等設置如今通通直接自動化了!
      返回目錄

1.3 服務掃描和查點——基於Armitage自動化實現

metasploit中有許多相關工具,大部分都在Scanner輔助模塊,常以[service_name]_version(用以遍歷主機,肯定服務版本)和[service_name]_login(進行口令探測攻擊)命名

可輸入 search name:_version查看全部服務查點模塊

  • 在Armitage中就更簡單了!咱們選中靶機10.211.55.16,右鍵選擇Scan,Armitage會調用Metasploit的漏洞掃描模塊,定向掃描靶機,尋找存在的漏洞,爲下一步肯定攻擊方法提供參考依據:

    可見相似前幾回實驗在Metasploit中手動配置主機號、端口號等設置如今通通實現自動化~

1.3.1 網絡服務掃描
  • telent服務掃描
    use auxiliary/scanner/telent/telent_version
  • SSH服務掃描
    use auxiliary/scanner/ssh/ssh_version
  • Oracle數據庫服務查點
    msf auxiliary(ssh_version) > use auxiliary/scanner/oracle/tnslsnr_version
  • 開放代理探測 open_proxy模塊
    msf auxiliary(tnslsnr_version) > use auxiliary/scanner/http/open_proxy

返回目錄

1.3.2 口令猜想與嗅探

具體可參考個人上一篇實驗博客:2017-2018-2 20155314《網絡對抗技術》Exp5 MSF基礎應用 - John the Ripper_linux口令破解模塊:Armitage下Auxiliary輔助模塊應用

  • 首先咱們須要以特定格式設置用戶名和密碼Hash(這裏選擇用MD5在線生成):
    • 訪問MD5在線加解密網站CMD5,在上方【密文】處輸入一段字符串,下方【查詢結果】處就當即顯示出結果(只要不超過31位,不然會卡住233):
    • 分別將不一樣用戶名對應的密碼通過MD5在線加密以後獲得Hash值,得到下面這張表:

      用戶名 密碼 Hash
      admin admin 21232f297a57a5a743894a0e4a801fc3
      user user ee11cbb19052e40b07aac0ca060c23ee
      Tom password 5f4dcc3b5aa765d61d8327deb882cf99
      jtr_linux abc123 e99a18c428cb38d5f260853678922e03
      20155314 qwertyu123. 682e9cfe26d949a10009cfc9969076ad
      kxjsjc@163.com kxjsjc_wx_1553 d80b3f4f2517d9a3ecf2a1e8031f6ff1
  • 在Kali攻擊機中新建一個名爲hashes.txt的文本文件,把表中信息添加進去,每行包含一個用戶名和一個Hash,以:分隔(username:hash):
  • 在Armitage左側樹型目錄下依次選擇auxiliary->analyze->jtr_linux並雙擊打開開始配置,配置好JOHN_PATH而後點Launch
  • show options命令還能夠查看模塊的有效選項及其詳細描述:
  • Armitage會爲咱們生成一個單詞列表文件WordList,可是不知道什麼緣由它並無識別出個人hashes.txt而報錯:(
  • 此時咱們手動使用剛剛Armitage生成的單詞列表進行破解,打開終端並執行如下命令:
    john --wordlist=/tmp/jtrtmp20180502-5917-ctqwpk --format=raw-md5 hashes.txt

    能夠看到單詞列表中6個口令破解了4個。咱們還能看出,John每秒能嘗試10,013,000次(10,013KC/s)!!!
  • 至於剩下的兩個,多是我把密碼設置得太複雜的緣由吧一直沒破解出來(ー ー;)將--wordlist選項去掉採用暴力破解的方式也一直沒跑出來(ー ー;)時間緣由跑了不到10分鐘就被我掐掉了感受速度仍是比彩虹表要慢不少啊(ー ー;)

返回目錄

1.4 網絡漏洞掃描

漏洞掃描器會向目標發送大量數據包,甚至會致使目標系統拒絕服務,並且會有不少誤報或漏報,所以須要人工分析。

  1. 使用OpenVAS漏洞掃描器進行漏洞掃描

    OpenVAS是一款開放式的漏洞評估工具,主要用來檢測目標網絡或主機的安全性。與安全焦點的X-Scan工具相似,OpenVAS系統也採用了Nessus較早版本的一些開放插件。OpenVAS可以基於C/S(客戶端/服務器),B/S(瀏覽器/服務器)架構進行工做,管理員經過瀏覽器或者專用客戶端程序來下達掃描任務,服務器端負載受權,執行掃描操做並提供掃描結果。

    一套完整的OpenVAS系統包括服務器端,客戶端的多個組件。

    1. 服務器層組件

      • openvas-scanner(掃描器):負責調用各類漏洞檢測插件,完成實際的掃描操做。

      • openvas-manager(管理器):負責分配掃描任務,並根據掃描結果生產評估報告。

      • openvas-administrator(管理者):負責管理配置信息,用戶受權等相關工做。

    2. 客戶層組件

      • openvas-cli(命令行接口):負責提供從命令行訪問OpenVAS服務層程序。

      • greenbone-security-assistant(安裝助手):負責提供訪問OpenVAS服務層的web接口,便於經過瀏覽器來執行掃描任務,是使用最簡便的客戶層組件。

      • Greenbone-Desktop-Suite(桌面套件):負責提供訪問OpenVAS服務層的圖形程序界面,主要容許在Windows客戶機中。

    • 因爲本人使用的Kali中不自帶OpenVAS,須要本身安裝和配置,使用如下命令安裝:
    apt-get install openvas
    • 安裝配置OpenVAS:
    openvas-setup
  2. 查找特定服務漏洞

    Nmap是針對性掃描工具之一,其擁有不少script的腳本可供使用。

返回目錄

1.5 滲透測試信息數據庫共享

metasploit提供了對psrtgresql數據庫的支持。並提供了db_namp命令,能夠將Nmap掃描結果存入數據庫中,還提供了db_import命令,支持多種掃描結果導入。

  1. 使用網絡數據庫共享

  2. 經過RPC 服務共享

返回目錄

2 NMAP

  • NMap,也就是Network Mapper,最先是Linux下的網絡掃描和嗅探工具包。
  • nmap是一個網絡鏈接端掃描軟件,用來掃描網上電腦開放的網絡鏈接端。肯定哪些服務運行在哪些鏈接端,而且推斷計算機運行哪一個操做系統(這是亦稱 fingerprinting)。
  • Nmap 以隱祕的手法,避開闖入檢測系統的監視,並儘量不影響目標系統的平常操做。
  • 基本功能有三個:一是探測一組主機是否在線;其次是掃描主機端口,嗅探所提供的網絡服務;還能夠推斷主機所用的操做系統 。
  • 語法格式:namp [空格] 【選項|多選項|協議】 【空格】
  • Nmap包含四項基本功能:主機發現(Host Discovery);端口掃描(Port Scanning);版本偵測(Version Detection);操做系統偵測(Operating System Detection)。另外Nmap提供強大的NSE(Nmap Scripting Language)腳本引擎功能,腳本能夠對基本功能進行補充和擴展。
  • 功能架構圖

2.1 基本用法

  1. 肯定端口情況

若是直接針對某臺計算的IP地址或域名進行掃描,那麼Nmap對該主機進行主機發現過程和端口掃描。該方式執行迅速,能夠用於肯定端口的開放情況。

命令形式:nmap targethost

能夠肯定目標主機在線狀況及端口基本情況。

  1. 對主機全面掃描

若是但願對某臺主機進行完整全面的掃描,那麼可使用nmap內置的-A選項。使用了改選項,nmap對目標主機進行主機發現、端口掃描、應用程序與版本偵測、操做系統偵測及調用默認NSE腳本掃描。

命令形式:nmap –T4 –A –v targethost

其中-A選項用於使用進攻性(Aggressive)方式掃描;-T4指定掃描過程使用的時序(Timing),總有6個級別(0-5),級別越高,掃描速度越快,但也容易被防火牆或IDS檢測並屏蔽掉,在網絡通信情況良好的狀況推薦使用T4;-v表示顯示冗餘(verbosity)信息,在掃描過程當中顯示掃描的細節,從而讓用戶瞭解當前的掃描狀態。

下面詳細講解每一個具體功能。

返回目錄

2.2 主機發現(Host Discovery)

  1. 默認狀況下,Nmap會發送四種不一樣類型的數據包來探測目標主機是否在線。

    1. ICMP echo request
    2. a TCP SYN packet to port 443
    3. a TCP ACK packet to port 80
    4. an ICMP timestamp request

依次發送四個報文探測目標機是否開啓。只要收到其中一個包的回覆,那就證實目標機開啓。使用四種不一樣類型的數據包能夠避免因防火牆或丟包形成的判斷錯誤。

  1. 一般主機發現並不單獨使用,而只是做爲端口掃描、版本偵測、OS偵測先行步驟。而在某些特殊應用(例如肯定大型局域網內活動主機的數量),可能會單獨專門適用主機發現功能來完成。
    無論是做爲輔助用法仍是專門用途,用戶均可以使用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: 追蹤每一個路由節點

其中,比較經常使用的使用的是-sn,表示只單獨進行主機發現過程;
-Pn表示直接跳過主機發現而進行端口掃描等高級操做(若是已經確知目標主機已經開啓,可用該選項);
-n,若是不想使用DNS或reverse DNS解析,那麼可使用該選項。

  1. 例子
    1. 探測scanme.nmap.org
      下面以探測scanme.nmap.org 的主機爲例,簡單演示主機發現的用法。
      命令以下:

    nmap –sn –PE –PS80,135 –PU53 scanme.nmap.org

    1. 探測局域網內活動主機
      掃描局域網192.168.1.100-192.168.1.120範圍內哪些IP的主機是活動的。
      命令以下:

    nmap –sn 192.168.1.100-120

返回目錄

2.3 端口掃描(Port Scanning)

  1. 端口掃描是Nmap最基本最核心的功能,用於肯定目標主機的TCP/UDP端口的開放狀況。

  2. 默認狀況下,Nmap會掃描1000個最有可能開放的TCP端口。

  3. Nmap經過探測將端口劃分爲6個狀態:

    open:端口是開放的。
    closed:端口是關閉的。
    filtered:端口被防火牆IDS/IPS屏蔽,沒法肯定其狀態。
    unfiltered:端口沒有被屏蔽,可是否開放須要進一步肯定。
    open|filtered:端口是開放的或被屏蔽。
    closed|filtered :端口是關閉的或被屏蔽。

  4. 用法

    端口掃描用法比較簡單,Nmap提供豐富的命令行參數來指定掃描方式和掃描端口。
    具體能夠參見以下描述。

    1. 掃描方式選項

    -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 : 定製TCP包的flags。

    -sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提須要找到合適的zombie host)

    -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的狀況。

    -sO: 使用IP protocol 掃描肯定目標機支持的協議類型。

    -b : 使用FTP bounce scan掃描方式

    1. 端口參數與掃描順序

    -p : 掃描指定的端口

    實例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T表明TCP協議、U表明UDP協議、S表明SCTP協議)

    -F: Fast mode – 快速模式,僅掃描TOP 100的端口

    -r: 不進行端口隨機打亂的操做(如無該參數,nmap會將要掃描的端口以隨機順序方式掃描,以讓nmap的掃描不易被對方防火牆檢測到)。

    --top-ports :掃描開放機率最高的number個端口(nmap的做者曾經作過大規模地互聯網掃描,以此統計出網絡上各類端口可能開放的機率。以此排列出最有可能開放端口的列表,具體能夠參見文件:nmap-services。默認狀況下,nmap會掃描最有可能的1000個TCP端口)

    --port-ratio : 掃描指定頻率以上的端口。與上述--top-ports相似,這裏以機率做爲參數,讓機率大於--port-ratio的端口才被掃描。顯然參數必須在在0到1之間,具體範圍機率狀況能夠查看nmap-services文件。

  5. 例子

這裏,咱們以掃描局域網內192.168.1.100主機爲例。

命令以下:nmap –sS –sU –T4 –top-ports 300 192.168.1.100

參數-sS表示使用TCP SYN方式掃描TCP端口;-sU表示掃描UDP端口;-T4表示時間級別配置4級;--top-ports 300表示掃描最有可能開放的300個端口(TCP和UDP分別有300個端口)。

返回目錄

2.4 版本偵測(Version Detection)

  1. 版本偵測,用於肯定目標主機開放端口上運行的具體的應用程序及版本信息。
  2. 版本偵測主要分爲如下幾個步驟:
    1. 首先檢查open與open|filtered狀態的端口是否在排除端口列表內。若是在排除列表,將該端口剔除。
    2. 若是是TCP端口,嘗試創建TCP鏈接。嘗試等待片刻(一般6秒或更多,具體時間能夠查詢文件nmap-services-probes中Probe TCP NULL q||對應的totalwaitms)。一般在等待時間內,會接收到目標機發送的「WelcomeBanner」信息。nmap將接收到的Banner與nmap-services-probes中NULL probe中的簽名進行對比。查找對應應用程序的名字與版本信息。
    3. 若是經過「Welcome Banner」沒法肯定應用程序版本,那麼nmap再嘗試發送其餘的探測包(即從nmap-services-probes中挑選合適的probe),將probe獲得回覆包與數據庫中的簽名進行對比。若是反覆探測都沒法得出具體應用,那麼打印出應用返回報文,讓用戶自行進一步斷定。
    4. 若是是UDP端口,那麼直接使用nmap-services-probes中探測包進行探測匹配。根據結果對比分析出UDP應用服務類型。
    5. 若是探測到應用程序是SSL,那麼調用openSSL進一步的偵查運行在SSL之上的具體的應用類型。
    6. 若是探測到應用程序是SunRPC,那麼調用brute-force RPC grinder進一步探測具體服務
  3. 版本偵測的用法

    -sV: 指定讓Nmap進行版本偵測
    --version-intensity : 指定版本偵測強度(0-9),默認爲7。數值越高,探測出的服務越準確,可是運行時間會比較長。
    --version-light: 指定使用輕量偵測方式 (intensity 2)
    --version-all: 嘗試使用全部的probes進行偵測 (intensity 9)
    --version-trace: 顯示出詳細的版本偵測過程信息。

  4. 例子

    命令:nmap –sV 192.168.1.100對主機192.168.1.100進行版本偵測。

返回目錄

2.5 操做系統偵測(Operating System Detection)

  1. 操做系統偵測用於檢測目標主機運行的操做系統類型及設備類型等信息。

  2. Nmap擁有豐富的系統數據庫nmap-os-db,目前能夠識別2600多種操做系統與設備類型。

  3. OS偵測用法

    -O: 指定Nmap進行OS偵測。
    --osscan-limit: 限制Nmap只對肯定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)。
    --osscan-guess: 大膽猜想對方的主機的系統類型。由此準確性會降低很多,但會盡量多爲用戶提供潛在的操做系統。

  4. 例子

    命令:nmap –O 192.168.1.100

返回目錄

實驗中遇到的問題及解決過程

解決方案

返回目錄

實驗總結與體會

  

返回目錄

參考資料

返回目錄

相關文章
相關標籤/搜索