# Kali ## 目錄 1. [架設](#架設) 2. [nslookup](#nslookup) 3. [John the Ripper](#John_the_Ripper) 4. [Wireshark](#Wireshark) 5. [nmap](#nmap) 6. [ARP Spoofing](#ARP_Spoofing) 7. [Metasploit Framework](#Metasploit_Framework) 8. [Burp Suite](#Burp_Suite) 9. [ExploitDB](#ExploitDB) 10. [smtp](#smtp) 11. [OWASP(2021:A1) - Broken Access Control(無效的訪問控制)](#OWASP(2021:A1)) 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 封包 * 補充 如果要攻擊成功就必須一直執行攻擊程式碼,不能中斷發送 2. 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` 需要自己設定 所以我們就使用 `set` 把 `RHOSTS` 的參數補上,這裡我們的攻擊對象為meta靶機,輸入 `set RHOSTS <meta 靶機的 IP>` (`set` 的格式是 `set <欲設定的參數名稱> <欲設定的值>`) 之後可以再輸入一次 `show options` 確認是否有補上所有參數 當所有參數都設定好之後可以使用 `run` 或 `exploit` 來針對此漏洞進行攻擊,輸入 `run` 或 `exploit` * 補充-- `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 進行滲透測試的工具,透過中間人的方式,對使用 `http` 和 `https` 協定的封包進行操作(如暫停、查看、分析、修改等),以發現潛在的 *意外問題* 及 *崩潰的錯誤訊息* 。集結許多滲透測試工具,使用 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` 畫面,並將 `username` 和 `password` 輸入任意值並且按下 `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` 的部分可以輸入 : `admin`、 `Admin`、 `user`、 `User` 等 而在 `password` 的部分可以輸入 : `admin`、 `Admin`、 `user`、 `User`、 `123456789`、 `00000000` 之類的 * 確認是否攻擊成功 攻擊結束後,`Status` 為 `302` 的皆是可以成功 `Login` 的帳號,可以點擊任意一個看他的 `Response` 接著再回到 Proxy(點擊上方第二列的 `proxy`),按單元格上方一列的 `Forward` 進行封包傳送 回到瀏覽器,就可以看到已經用 `user` 的身分登入 ## ExploitDB 也就是弱點資料庫 這就是它的網頁 : https://www.exploit-db.com/ 運用 search 結合使用 nmap 找到的版本就能找到搜尋結果 並且還能看到破解漏洞的腳本 ## smtp 這是針對 port 25 的滲透測試 通常會先進到 msf 當中(參考上述的 [msfconsole](#Metasploit_Framework) ) 接著輸入 `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` 來看郵件地址是否存在,如果存在的話還可以對這個郵箱發送郵件 如果返回的是 `250` 或 `251` 代表存在,但如果是 `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,取得其他使用者的權限和資訊 2. 路徑遍歷 對系統預設目錄的熟悉程度非常重要。如果沒有做好系統的權限控制,hacker 就能透過更改 URL,自由訪問系統目錄中預設擺放的文件內容 ``` ex: https://www.testweb.com/profile?file=dog.png 改成 https://www.testweb.com/profile?file=../../etc/passwd ``` 3. 文件權限 跟上述的路徑遍歷有點類似,但又有點差異。路徑遍歷是指 : 對 **目錄** 的權限,而文件權限是 : 對 **文件** 的權限 因為 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-%E5%91%BD%E4%BB%A4 nmap : https://minmin0625.medium.com/%E6%BB%B2%E9%80%8F%E6%B8%AC%E8%A9%A6lab-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8hydra-nmap-%E5%9F%B7%E8%A1%8C%E9%81%A0%E7%AB%AF%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3-a21d9b8149e0 hydra : https://minmin0625.medium.com/%E6%BB%B2%E9%80%8F%E6%B8%AC%E8%A9%A6lab-%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8hydra-nmap-%E5%9F%B7%E8%A1%8C%E9%81%A0%E7%AB%AF%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3-a21d9b8149e0
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up