Kali

目錄

  1. 架設
  2. nslookup
  3. John the Ripper
  4. Wireshark
  5. nmap
  6. ARP Spoofing
  7. Metasploit Framework
  8. Burp Suite
  9. ExploitDB
  10. smtp
  11. OWASP(2021:A1) - Broken Access Control(無效的訪問控制)
  12. 參考文獻

架設

參考別人寫的這篇 https://ithelp.ithome.com.tw/articles/10298620
下方的實作也是參考這篇之後寫的(他的圖文並茂但我的只有字)

nslookup

用來找到一個網站的 IP 位置
直接在 kali 的終端機當中輸入就可以使用
nslookup <網站>
這樣就會返回此網站的 IP 位置

John_the_Ripper

一個破解密碼的工具,幾乎所有封包都能辨識,而且擁有過濾的功能,所以可以選擇針對特定 IP 或通訊協定進行分析

執行流程

先打開 kali 的終端機,然後依序執行以下步驟

  • 前置作業 :
cd /usr/share/wordlists # 先進到這個目錄底下
ll # 可以檢查這個目錄下包含哪些東西(包含隱藏檔案,外加詳細資訊)(ls -al的縮寫)
sudo gunzip rockyou.txt.gz # 解壓縮這個檔案
ls # 查看目前目錄的文件
more rockyou.txt # 顯示更多這個檔案的內容
cd ~ # 返回家目錄
sudo adduser test1 # 增加一個使用者名叫 test1
# 密碼請設 rockyou.txt 包含的
# 之後就一直按 <enter> 直到問 y/n 的時候選 y
sudo adduser test2 # 再增加一個使用者名叫 test2(步驟跟上面一樣)
cat /etc/passwd # 查看使用者列表(確認是否有成功建立 test1, test2)
  • 開始搞解密的東東 :
sudo -i # 進入root模式
cd /home/kali # 到/home/kali這個目錄底下
unshadow /etc/passwd /etc/shadow > mypasswd.txt # 使用 unshadow 取出使用者、密碼檔案

因為shadow檔存著使用者的密碼,所以必須進到 root 才能對其進行操作
前面我們使用過 cat /etc/passwd 查看過使用者了,但密碼被分開儲存到 /etc/shadow 之中
/etc/passwd /etc/shadow > mypasswd.txt 是代表將使用者列表和密碼合併,存到 mypasswd.txt 這個檔案中

  • 執行 John the Ripper :
john --wordlist=/usr/share/wordlists/rockyou.txt --format="crypt" mypasswd.txt

--wordlist= 後面接設定要遍歷的密碼檔
--format="<解什麼樣的加密法>" Linux 是使用 crypt,而 windows 則是 LR

Wireshark

一個即時捕獲網路封包的工具,可以用來封包解析,查看封包的詳細資訊,而且支援好幾百種的通訊協定,幾乎所有封包都能辨識,並且擁有過濾的功能,所以可以選擇針對特定 IP 或通訊協定進行分析

執行流程

  • 前置作業
    先進入 kali 並且點擊左上角的 kali icon,搜索 wireshark 並且打開
    進入之後會詢問我們想捕獲的封包對象,我們選擇 eth0 (乙太網路)
    進到頁面我們可以看到上面有一排列表,這些代表的資訊分別是 :

    • No. : 捕獲到的封包編號(順序)
    • Time : 封包被捕獲到的時間
    • Source : 封包的來源端 IP
    • Destination : 封包的目的端 IP
    • Protocol : 封包的通訊協定
    • Length : 封包的長度
    • Info : 封包的簡略內容
  • 了解如何看裡面的內容
    接著我們可以試試在終端機 ping 我們的靶機(OWB)的 ip 位置,這時就能發現 wireshark 開始捕獲到封包,並且通訊協定為ICMP,主要是用來確定封包是否及時到達目的地
    然後我們可以打開瀏覽器,可以發現我們捕獲到許多封包以及不同的通訊協定
    其中我們可以看到有通訊協定是 [SYN] , [SYN, ACK] , [ACK],這是代表正在進行 TCP 三向交握

  • 補充 : TCP 三向交握
    用來看指定的 port 服務是否有啟動

    • 如果有,則執行以下步驟:
    1. Source(來源端) 指定一個 port 號,並傳送一個 [SYN] 給 Destination(目的端)
    2. Destination(目的端)回傳 [SYN、ACK]
    3. Source(來源端)再將 [ACK] 回傳給 Destination(目的端),表示連線確認
    • 如果沒有
      則步驟2的 Destination(目的端)會回傳 [RST],表示放棄連線或重連
  • 實際運用
    回到瀏覽器在網址列的地方打上 owb 的 IP 位址就可以進入到 owaspbwa 的畫面,之後點擊「Damn Vulnerable Web Application,簡稱DVWA」,這是用 PHP/MySQL 為基礎的網頁,進行網頁檢測的練習和測試
    因為這個 DVWA 的登入沒有使用加密,所以能直接在通訊封包裡看到輸入的帳密明文,所以這裡我們要故意登入失敗,才能捕獲到它的封包
    這邊帳密可以隨便輸入,然後按下「Login」
    之後就可以回到 wireshark
    在過濾器輸入 http 並且找到一個有使用 POST 的封包(在 info),且來源端為 kali 的 IP,目的端為 owb 靶機的 IP
    點開來就能在下面發現更多詳細內容,在內容部分找到 HTML Form URL Encoded: application/x-www-form-urlecoded 就可以看到帳密的明文
    如果還想看更多資訊可以對該封包 按右鍵 --> Follow --> TCP Stream

nmap

Network Mapper (網絡映射器)的簡稱,主要用來進行網路探測,可以檢測目標主機是否啟動、哪些 port 號開著、其服務為何、OS版本、裝置類型等,常被網路管理員用來進行網路監控管理,以評估網路安全。而 hacker 也很喜歡使用,因為可以搜集到該目標主機目前的狀態及資訊,較好計劃該如何進行攻擊

執行流程

  • 前置作業
    在 kali 打開終端機以及 wireshark

  • 實際運用
    然後在終端機輸入 sudo nmap <meta 靶機的IP> 可以偵查 meta 靶機有哪些 port 號是開著的
    這時會看到 wireshark 突然捕獲到一堆封包,因為 nmap 會對所有常見的 port 號進行TCP三向交握,只要看封包回傳的狀態為何,就可以得知有哪些 port 號是開著的(預設是偵查 1000 個常見的 port 號)

    • 如果要同時偵查多個 IP,只要在 IP 的位置用空格隔開就好,像這樣 :
      sudo nmap <IP-1> <IP-2> ...
    • 如果想偵查某個特定範圍的IP,就使用 -,代表 從...到... ,像這樣是偵查 10.0.2.5~10.0.2.15 這個範圍的IP :
      sudo nmap 10.0.2.5-15
    • 另外除了可以指定 IP,我們也可以指定 port,只需帶入參數 -p,像這樣是指定偵查 port 號 80(只會列出 port 號 80 的偵查結果) :
      sudo nmap -p 80 <IP>
    • 我們也可以指定要偵查的 port 號範圍,像這邊指定偵查 80~150 的 port 號 :
      sudo nmap -p 80-150 <IP>
    • 或是帶參數-F,快速偵查目前最常見的 100 個 port 號 :
      sudo nmap -F <IP>
    • 如果只想偵查前 10 個最常見的 port 號,你可以放入參數 -top <偵查數量> :
      sudo nmap -top 10 <IP>
    • 如果想一次偵查所有 port 號(1~65535),可以放入參數 -p-,代表從1~65535的 port 號 :
      sudo nmap -p- <IP>
    • 也可以帶參數-v,顯示偵查的詳細資訊 :
      sudo nmap -v <IP>
    • 也可以放入參數 -O,用來顯示作業系統資訊
    • 或是可以放入參數 -sV 來列出提供的服務版本
    • 重要的是,也可以放入 -sS,為了不讓偵測過程中,不完成 TCP 三向交握
    • -A 是偵測 port 所運行的服務版本與作業系統
    • 最後,也可以放入參數 -oA 把掃描的結果輸出為純文字檔、grep格式或XML
  • 補充 目前常用的 port 號 :

    • 20 FTP : 檔案傳輸協定,用於傳輸數據
    • 21 FTP : 檔案傳輸協定,用於傳輸命令
    • 22 SSH : 加密過的遠程連線
    • 23 Telnet : 簡易的遠端連線協定,不安全,不推薦使用
    • 25 SMTP : 未加密的 mail 協定,不安全
    • 53 DNS : 域名服務
    • 80 HTTP : 未經加密的傳輸協定,不安全
    • 110 POP3 : 未加密的 mail 協定,不安全
    • 123 NTP : 網絡時間協定
    • 143 IMAP : 未加密的 mail 協定,不安全
    • 443 HTTPS : 有加密的傳輸協定
    • 465 SMTPS : 有加密的 mail 協定
    • 631 CUPS : 印刷服務器
    • 993 IMAPS : 有加密的 mail 協定
    • 995 POP3 : 有加密的 mail 協定

ARP_Spoofing

也就是 ARP 欺騙
透過發送大量的 ARP 通訊封包進行誤導,將原本指定傳送封包的 IP MAC 位址竄改成 hacker 所在的 IP MAC 位址,使受害主機相信某個 IP 與某個 MAC 位址相關聯。執行過程中,hacker 可以取得這個封包的資訊,並對其進行竄改,再轉送回正確的 IP 位址,也可以什麼都不做將服務阻斷

執行流程

有 2 種方法 : 指令、GUI(ettercap)

  1. 指令版
  • 前置作業
    首先,一樣打開終端機,並且更新以及下載這些套件
    sudo apt-get update : 將套件庫進行更新
    sudo apt install dsniff -y : 安裝dsniff,這是一套橋接欺騙工具,可以製造封包進行注入
    接著打開 meta 靶機,輸入 arp -a,查看遭攻擊前的 ARP 緩存為何
    然後打開 kali 中的 wireshark 查看接收到的封包

  • 實際運用
    輸入以下指令進行攻擊
    sudo arpspoof -i eth0 -t <meta 靶機的IP> <要取代的IP>
    meta 靶機的 IP 就是在 meta 靶機輸入 ifconfig 得到的 IP
    要取代的 IP 就是用 arp -a 看到的 IP
    這樣當我們在 meta 靶機 ping 要取代的 IP 時就會先傳送封包給我們的攻擊機(kali 那台)
    我們可以透過 wireshark 看到我們一直對 meta 靶機發送訊息,告訴她錯誤的資訊
    然後回到 meta 靶機,一樣輸入 arp -a 可以看到 <被取代的 IP> 後面的 MAC 位置被替換為 kali 終端機的 MAC 位置
    這就代表當 meta 靶機要對 <被取代的 IP> 傳送封包時,會先經過我們的kali VM,才會傳送到 <被取代的 IP>

  • 確認是否真的攻擊成功
    在 meta 靶機上輸入 ping <被取代的 IP>
    然後我們應該要在 wireshark 上看到從 meta 靶機截獲的 ICMP 封包

  • 補充
    如果要攻擊成功就必須一直執行攻擊程式碼,不能中斷發送

  1. GUI(也就是使用 ettercap)
    ettercap,一個專門用來執行中間人攻擊(MITM)的工具,有許多攻擊手法,但我們現在先用裡面的 ARP Spoofing
  • 實際運用
    先進入 kali 並且點擊左上角的 kali icon,搜索 ettercap-graphical 並且打開
    這時應該會需要輸入密碼,就輸入 kali 的密碼就可以了
    接著進到介面,點擊右上角的 accept 才會進到可以執行的地方
    然後點擊左上角的放大鏡,搜索有哪些 IP 可以使用的
    跑完之後按旁邊的列表 Hosts List),查看有哪些 IP 開著
    接著點擊 <要取代的 IP> 並且點擊中下方的 Add to Target 1
    然後點擊 <meta 靶機的 IP> 並且點擊中右下方的 Add to Target 2
    正常來說我們可以在下方的執行表看到 Host... added to Target...
    最後點擊右上角的地球符號,裡面可以選擇不同攻擊方式,這裡我們使用 ARP
    這樣就攻擊完成了

  • 確認是否真的攻擊成功
    在 meta 靶機上輸入 telnet <被取代的 IP> 或是 ftp <被取代的 IP>
    然後我們應該要在 wireshark 上看到從 meta 靶機截獲的 TCP 封包
    同時我們也可以在 ettercap 當中查看 :
    點擊右上角的 三個點 > View > connections

Metasploit_Framework

一個開源、知名、強大的滲透測試工具,常被用來驗證系統上的安全漏洞。並且除了可以使用現有的 模組(modules)有效負載(payloads) 進行測試,也可以自己用 Ruby 編寫一個,再放到其對應的資料夾

小補充 :
可以先在 kali 終端機用 cd /usr/share/metasploit-framework/modules 查看有甚麼模組可以使用(會用藍色字顯示)

執行流程

  • 前置作業-1
    有 2 種方法開啟 metasploit framework : 點擊左上角的 kali icon,搜尋 metasploit framework 或是在終端機輸入 msfconsole
    開啟成功時會出現一張可愛的圖片(每次都不太一樣),然後會出現 msf6 > 開頭

  • 了解我們要做甚麼
    使用 meta 靶機的 Samba usermap script 漏洞進行攻擊,取得對它終端機進行操作的權限。Samba 就是網路芳鄰的概念,讓你在區域網路內共享主機資料,這是利用 Samba 版本 3.0.20 到 3.0.25rc3 中的終端機漏洞,讓 hacker 拿到受害者本機的最高權限,藉此竊取一些機密文件,也因為他在身分驗證之前映射用戶名,所以不需要進行身分驗證就可以使用這個漏洞

  • 前置作業-2
    在 kali 終端機輸入 sudo nmap -sV -sS -A <你meta靶機的IP> ,這是使用 nmap 偵查 meta 靶機的 Samba 版本為何
    執行之後可以往上滑到大約 139&445 左右的地方看到該主機的 Samba 版本是3.0.20,所以可以執行上述漏洞

  • 補充介紹 模組

    • Payloads : 攻擊成功後,指定進行的下一步動作
    • Auxiliary : 用來執行特定的工作(eg : 資料蒐集、網路掃描等)
    • Encoders : 加密 payloads 以及 attack vectors,避免被防毒軟體和防火牆偵測到
    • NOPs : 使 payloads 穩定
    • Exploits : 真正進行攻擊的程式碼
  • 補充介紹 常見基本指令 (使用時可以透過路徑或是列表中的編號)

    • searsh : 尋找特定模組
    • info : 列出特定模組的相關資訊
    • use : 選擇一個特定模組並開始操作
    • show : 顯示指定的內容
    • set : 設定一個值
    • run / exploit : 開始執行模組的攻擊
    • back : 取消使用模組,回到msf >
  • 實際運用
    先輸入 search usermap 搜尋要運行的模組
    可以發現有個編號 0,那就是我們要執行的模組
    接著使用 info, 查看這個模組的詳細內容,輸入 info 0
    再使用 use,選擇使用這個模組,輸入 use 0
    如果使用成功,在 msf6 後面會多出模組的路徑
    大概會長這樣(msf6 exploit(multi/samba/usermap_script))
    接著使用 show 查看執行所需的參數有哪些,輸入 show options
    然後就可以看到,已經有些是已經設定好的,但 RHOSTS 需要自己設定
    所以我們就使用 setRHOSTS 的參數補上,這裡我們的攻擊對象為meta靶機,輸入 set RHOSTS <meta 靶機的 IP>
    (set 的格式是 set <欲設定的參數名稱> <欲設定的值>)
    之後可以再輸入一次 show options 確認是否有補上所有參數
    當所有參數都設定好之後可以使用 runexploit 來針對此漏洞進行攻擊,輸入 runexploit

  • 補充 show 之後的不同參數

    • RHOSTS : 想攻擊的主機 IP 位址
    • RPORT : 想對哪個 port 號進行攻擊
    • LHOST : 本機的 IP 位址
    • LPORT : 想使用哪個 port 號發動攻擊
  • 確認是否攻擊成功
    在上述流程執行好之後應該就能對 meta 靶機的終端機進行操作
    可以藉由輸入 whoami(who am i 的縮寫)查看是否顯示 root,如果有則代表攻擊成功,或者也可以用 ifconfig 查看目前的 IP 位置確認攻擊目標是否正確

  • 接續動作
    確認沒問題之後就可以竊取機密資料(畢竟都拿到最高權限了),像這裡示範的是印出 /etc/shadow,這個檔案存的是經雜湊(hash)過的使用者密碼,我們可以複製回 kali 裡使用 Ophrack 進行暴力破解
    輸入 cat /etc/shadow 就可以了

  • 重要補充
    Metasploit Framework 上現有的模組都是已經被發現,並解決的漏洞,但其實也可以自己用 Ruby 編寫一個模組,驗證發現到的問題是不是一個還沒被發現的漏洞

Burp_Suite

一個能攔截封包、對 web 進行滲透測試的工具,透過中間人的方式,對使用 httphttps 協定的封包進行操作(如暫停、查看、分析、修改等),以發現潛在的 意外問題崩潰的錯誤訊息 。集結許多滲透測試工具,使用 Java 編寫並提供 GUI 介面方便操作

  • 了解我們要做甚麼
    使用 owb 靶機 中的 OWASP Mutillidae II 靶場 進行攻擊。這個靶場提供了 OWASP TOP 10 裡的漏洞,並分成三種安全等級,讓我們初學者可以循序漸進進行攻防練習
    現在我們要用的是 SQL Injection(2013:A1)Bypass Authentication/Login 攻擊,並使用 Burp Suite Proxy 進行封包攔截,再使用 Intruder 進行字典檔遍歷,找出可以登入的帳號密碼

執行流程

  • 前置作業 & 實際攻擊
    點擊左上角的 kali icon,搜尋 burpsuite 並且開啟
    因為只是練習不需要儲存結果,所以接著點擊 temporary project 並按右下角的 Next
    接著選擇 Use Burp defaults,再按右下角的 Start Burp
    就會看到 Burp Suite 的主畫面
    開啟 OWASPBWA 靶機,登入後輸入 ifconfig,確認 IP 位址(之後就不會用到了,但也不能關閉)
    之後回到 kali 開啟 firefox
    在網址列的地方輸入 <owb 靶機的 IP 位址> 就會進到 owaspbwa 的畫面,點擊 OWASP Mutillidae II(應該是右列第 2 個)
    接著點擊左上方的 OWASP 2013 > A1 - Injection(SQL) > SQLi - Bypass Authentication > Login
    因為 Burp Suite proxy 預設的連接端口為 127.0.0.1:8080,所以要在 Firefox 設定一個 proxy
    所以在 Firefox 中我們按右上角的三橫線(工具列),下面會出現 settings
    進去之後滑到最下面,會看到 Network Settings,點擊 Settings...
    勾選 Manual proxy configuration,並在 HTTP Proxy 的地方輸入 127.0.0.1,右方的 port 號8080,這樣就設定完成了
    接著回到 Burp Suite,點擊上方第二列的 proxy 接著按下方一列的 intercept 然後再點擊下方一列的 Intercept is off 把它變成 Intercept is on
    然後就可以回到剛剛 Firefox 當中的 Login 畫面,並將 usernamepassword 輸入任意值並且按下 Login
    這時 Burp Suite 會收到剛剛按下 Login 的封包,而瀏覽器的部分不會跳轉,會一直在 等待這個封包
    此時再對左側那一大片區域(封包畫面)按右鍵,點擊 Send to Intruder,將封包資訊傳到 Intruder 執行動作
    這時點擊上方第二列的 Intruder 然後再按下方的 positions,就會看到剛剛的封包資訊
    先按 clear §,取消所有被 § 標記的地方
    接著再把封包資訊最後面的 username 以及 password 後方的訊息用 add § ,代表將我們剛剛輸入的名稱以及密碼用 § 標記起來
    然後在上方的 attack type 中選擇 cluster bomb
    再點進第四行的 Payloads 裡(上面最靠近單元格的地方),將 Payload Sets 設為 1,代表 username,也就是剛剛第一個用 § 包起來的部分
    並在 Payload Options 使用 add 新增可能是 username 的值
    再將 Payload set 設為 2,指的是 password,也就是第二個被 § 包起來的部分
    一樣在 Payload Options 裡新增可能是 password 的值。
    最後點擊右上角的 Start attack 開始攻擊

  • 補充 查找 Burp Suite proxy 預設的連接端口
    Burp Suite 當中點擊上方第二列的 proxy 接著按下方一列的 proxy settings 就會看到 proxy listeners 這欄裡出現預設的連接端口為 127.0.0.1:8080

  • 補充Payload Options
    輸入值的時候可以手動輸入,也可以用 load 匯入字典檔(網路上下載應該很多),但如果是使用字典檔可能會跑比較久
    關於手動輸入,在 username 的部分可以輸入 : adminAdminuserUser
    而在 password 的部分可以輸入 : adminAdminuserUser12345678900000000 之類的

  • 確認是否攻擊成功
    攻擊結束後,Status302 的皆是可以成功 Login 的帳號,可以點擊任意一個看他的 Response
    接著再回到 Proxy(點擊上方第二列的 proxy),按單元格上方一列的 Forward 進行封包傳送
    回到瀏覽器,就可以看到已經用 user 的身分登入

ExploitDB

也就是弱點資料庫
這就是它的網頁 : https://www.exploit-db.com/
運用 search 結合使用 nmap 找到的版本就能找到搜尋結果
並且還能看到破解漏洞的腳本

smtp

這是針對 port 25 的滲透測試
通常會先進到 msf 當中(參考上述的 msfconsole )
接著輸入 search smtp_version 找到之後可以直接用 use 0 來使用
然後輸入 show options 來查看有哪些參數
可以看到只需要使用到 IP 就可以了
因此我們輸入我們要的 IP 位置 : set RHOSTS <IP>
之後就可以輸入 run 來執行
可以發現 目標郵箱 之類的訊息


另外,也可以使用 smtp_enum 來爆破目標郵箱的用戶名
首先一樣使用 search smtp_enum 來找到這個模組,並且用 use 0 來使用
然後一樣用 show options 來看有哪些參數
一樣可以發現只需要用到 IP 而已
所以輸入我們要的 IP 位置 : set RHOSTS <IP>
但因為默認的 file 不一定有辦法執行,所以也可以用 set USER_FILE 來使用
輸入 set USER_FILE /usr/share/wordlists/seclists/Usernames/top-usernames-shortlist.txt
設置好 IP 以及執行檔案之後,就可以輸入 run 來運作
可能就會發現一些用戶名,比較隱私的像是 root, administrator 之類的
接著就會使用 hydra 之類的來爆破 SSH 的密碼(通常是 port 22,但也可以用 nmap 來搜尋)

以下是 2 種方式
使用終端機或 UI

  • 終端機
    hydra -I <用戶名> -P /usr/share/wordlists/rockyou.txt ssh://<IP> -t 20
    接著使用 ssh 來登入
    ssh <用戶名>@<IP 位置>
    再輸入密碼即可登入

  • UI
    在 kali icon 中搜尋 Hydra 就能看到第一個 hydra-graphical
    可以在 hydra 上方的工具列看到有 5 個選項

    首先看到上方工具列的第 1 項 Target
    主要是選擇目標
    最上面 single target 的部分需要填入目標的 IP(這是針對單一目標)
    如果要針對多個目標需要填寫 target list(需要以檔案形式匯入)
    接著往下,會有 port 可以填寫
    然後 port 下方會有 protocol(協定) 可以填寫
    然後再往下看,可以勾選 show attempts,這是顯示攻擊的過程

    接著看到上方工具列的第 2 項 passwords
    主要是決定怎麼破解
    username 的部分就是要針對哪個單一使用者來破解
    而 username list 的部分就是提供多個使用者名稱,一樣是只能匯入檔案
    接著下方的 password 可以填寫單一密碼來試試看
    而 password list 就是進行多次密碼猜測攻擊
    通常都會使用 list,但一樣要匯入檔案

    然後看到上方工具列的第 3 項 tuning
    主要是設定運行資源
    重要的就是 exit after first
    這是找到一個符合的帳號密碼就會停止攻擊
    要記得勾選

    然後看到上方工具列的第 4 項 specific
    主要是設定客製化的攻擊
    像是特定網站,特定設備之類的

    最後看到上方工具列的第 5 項 start
    主要就是開始執行
    start 就是依照我們設定的開始攻擊
    stop 就是停止
    save 就是儲存執行過程 & 結果
    clear 就是清除

    接著我們就可以實際測試
    使用 kali 作為攻擊端
    metasploitable 做為測試端

    先把 2 個都打開
    meta 的帳密是 : msfadmin
    kali 的帳密是 : kali
    接著先看 meta 的 IP 位置
    輸入 : ifconfig 就可以看到
    接著就可以開始使用 kali 攻擊了
    首先使用 nmap 掃描這個 IP 的不同端口
    nmap -sS -A -p- <IP>
    可能會需要等一段時間(2~3分鐘左右)
    接著就能看到掃描結果
    前方的數字就是 port
    然後我們用 telnet(port 23) 當作測試
    首先進入 kali icon 輸入 hydra 就會看到 hydra-graphical
    點開來,在 single target 輸入我們 meta 的 IP
    接著在下方的 port 輸入 23(因為要攻擊的是 port 23)
    並且把 protocol 改成 telnet
    然後也要把下方的 show attempts 勾起來,才會顯示攻擊過程

    接著就到 passwords 在 username list 以及 password list 中都放入我們建立好的字典(rockyou.txt)(已經是建立好的)
    位置在 : file system/usr/share/wordlists/rockyou.txt
    (其實也可以使用其他的字典檔案)

    然後 tuning 的部分需要勾選 exit after first

    最後就到 start 點選 start 就會開始攻擊
    最後應該就會顯示破解的結果
    包含 login 以及 password


除此之外,也可以使用 telnet(可能會在 port 23) 來看是否能偽造釣魚郵件
輸入 telnet <IP位置 或 網址> <25(也就是smtp 的 port)>
假設此時返回的訊息為 220 則代表成功連接
接下來就能使用 smtp 的協議來做事了

  • 首先,連接成功時,必須提供連接的域名,也就是郵件是從哪個服務器來的
    所以輸入 EHLO <IP 或 網址>
    如果此時返回 250 代表成功
    並且因為是使用 EHLO,所以也會返回自己支持的各種擴展的列表

  • 接著需要使用 MAIL FROM 來向郵件服務器提供郵件的來源信箱
    MAIL FROM:admin@xxx.com 代表偽造管理員的身分來發送郵件
    如果此時返回 250 代表成功

  • 還可以使用 RCPT TO 來看郵件地址是否存在,如果存在的話還可以對這個郵箱發送郵件
    如果返回的是 250251 代表存在,但如果是 5xx 代表不存在

  • 另外,也可以使用 DATA 來偽造郵件內容,假設返回 354 代表已經準備好可以對這個郵箱發送郵件了

  • 正文的部分,使用 "" 來包住正文,結束正文後需要另外發送 . 表示正文結束
    如果成功的話會返回 250

  • 最後使用 QUIT 退出 TCP 協定,如果返回 211 代表成功斷連

OWASP(2021:A1)

也就是 Broken Access Control(無效的訪問控制)
說明 : https://hackmd.io/@asd0713/ByVDgyqRh

常見的漏洞有 :

  1. URL ID
    有些 URL 後面會加上 id=XXX,而這 ID 可能是一串數字、亂碼、雜湊值等,指的可能是使用者 ID,也有可能是指某筆資料的 ID
eg:
https://www.testweb.com/profile?id=1234    # 使用者
https://www.testweb.com/profile?id=c14123-255d-8c1w-q82134te32    # 某筆資料

而 URL 在網址列是可以手動做更改的,所以如果沒做好權限的控制,hacker 就可以經由更改 ID,取得其他使用者的權限和資訊

  1. 路徑遍歷
    對系統預設目錄的熟悉程度非常重要。如果沒有做好系統的權限控制,hacker 就能透過更改 URL,自由訪問系統目錄中預設擺放的文件內容
ex:
https://www.testweb.com/profile?file=dog.png
                  改成
https://www.testweb.com/profile?file=../../etc/passwd
  1. 文件權限
    跟上述的路徑遍歷有點類似,但又有點差異。路徑遍歷是指 : 對 目錄 的權限,而文件權限是 : 對 文件 的權限
    因為 Linux 的權限簡單來說就是你可以訪問 這個目錄,但不一定可以訪問 其他目錄內的文件,和它的權限 -r 有關
  • 了解我們要做甚麼
    這次要做的是 目錄遍歷
    使用 OWB靶機 中的 OWASP Mutillidae II 靶場 練習,這靶場提供了OWASP TOP10 裡的漏洞,並分成 3 種安全等級,讓初學者可以循序漸進進行攻防練習
    這邊使用 OWB靶機(使用 2013 的漏洞)

執行流程

  • 前置作業 & 實際攻擊
    (跟上面那個差不多因為都是使用 burpsuite)
    點擊左上角的 kali icon,搜尋 burpsuite 並且開啟
    因為只是練習不需要儲存結果,所以接著點擊 temporary project 並按右下角的 Next
    接著選擇 Use Burp defaults,再按右下角的 Start Burp
    就會看到 Burp Suite 的主畫面
    開啟 OWASPBWA 靶機,登入後輸入 ifconfig,確認 IP 位址(之後就不會用到了,但也不能關閉)
    之後回到 kali 開啟 firefox
    在網址列的地方輸入 <owb 靶機的 IP 位址> 就會進到 owaspbwa 的畫面,點擊 OWASP Mutillidae II(應該是右列第 2 個)
    接著點擊左上方的 OWASP 2013 > A4 - Insecure Direct Object References > Text File Viewer\
    因為 Burp Suite proxy 預設的連接端口為 127.0.0.1:8080,所以要在 Firefox 設定一個 proxy
    所以在 Firefox 中我們按右上角的三橫線(工具列),下面會出現 settings
    進去之後滑到最下面,會看到 Network Settings,點擊 Settings...
    勾選 Manual proxy configuration,並在 HTTP Proxy 的地方輸入 127.0.0.1,右方的 port 號8080,這樣就設定完成了
    接著回到 Burp Suite,點擊上方第二列的 proxy 接著按下方一列的 intercept 然後再點擊下方一列的 Intercept is off 把它變成 Intercept is on
    然後就可以回到剛剛 Firefox 中,我們可以會看到左上角有個 Security Level: 0
    在頁面中間可以在 Text File Name 選取任意一個檔案,之後點擊 View File
    這時 Burp Suite 會收到剛剛按下 View File 的封包,而瀏覽器的部分不會跳轉,會一直在 等待這個封包
    然後在 Burp Suite 會看到一串 URL,是剛剛選擇的 File 的所在位置,因為它是用 textfile 來控制要顯示的文件
    所以我們可以將它改成 ../../etc/passwd,並點擊 Forward 進行封包傳送
    回到 FireFox 中我們就可以看到 OWB靶機/etc/passwd 內容

  • 補充(更改網名)
    ../../ 代表 : 從家目錄退到 home,再退到根目錄

  • 確認是否攻擊成功
    可以到 OWB靶機 輸入 cat /etc/passwd,對照一下內容是否一樣

  • 進階
    如果要測試更高等級的內容我們可以先將 Proxy 的 Intercept is on 關閉
    接著回到 FireFox 中點擊 Toggle Security 2 次把 Level 升到 5
    然後就可以重複上述的動作,這時我們回到 FireFox 當中會看到錯誤訊息
    因為在 level 5 當中有設下一些防護機制
    詳細查看的部分可以參考原文 : https://ithelp.ithome.com.tw/articles/10304631
    主要是需要有 php 的基礎,但因為我目前也還沒有所以解不出來 QQ

參考文獻

原文網址 : https://ithelp.ithome.com.tw/users/20141088/ironman/5548
系列文章中的 Day 11 ~ Day 20

smtp :
https://www.sqlsec.com/2017/08/smtp.html#RCPT-TO-命令

nmap :
https://minmin0625.medium.com/滲透測試lab-如何使用hydra-nmap-執行遠端暴力破解-a21d9b8149e0

hydra :
https://minmin0625.medium.com/滲透測試lab-如何使用hydra-nmap-執行遠端暴力破解-a21d9b8149e0