[Day5] Process (2021 鐵人賽 – PT)

一個滲透測試的流程,可以簡略的分成兩大階段,資訊蒐集與漏洞利用。而資訊蒐集階段則又可以分為偵查與掃描;而漏洞利用則又可以分為普通的漏洞利用與提權,這邊來與各位介紹一下這幾個階段分別具體需要實作的事情有哪些。 偵查 當我們獲取了一個目標,剛開始,我們會需要嘗試著蒐集各種與目標相關的公開情報。以公司來說,我們可以透過各種的搜尋引擎獲取機構的部分資料,例如人士、Email、電話等。很多時候這些資料對於後續的攻擊流程會有很大的幫助。 接下來我們可以試圖了解我們攻擊目標相關的資料,例如使用的作業系統版本,伺服器版本等,假設是一個指定網段的資料蒐集,除了自行的動手掃描之外,我們也可以藉由許多開放資料的平台,例如 Shodan 、 ZoomEye 等。 通常在做偵查的階段,我們也會同時的進行掃描的動作,偵查與掃描主要是為了可以讓我們更進一步的了解我們的目標,確立可以攻擊的弱點等。 掃描 在進行了一系列的偵查之後,我們就可以開始嘗試著對攻擊的目標進行資訊的掃描。通常面對一台伺服器,我們的起手式會是對端口(Port) 進行掃描,目的是觀察伺服器有開了哪一些的服務,在這邊,通常我會使用的工具是 nmap 與 rustscan 等。 如果是網頁伺服器,通常可以對網頁的目錄進行掃描,這邊常見的工具有 dirsearch 、 dirb 、 gobuster 等;部分掃描路徑的工具,也具有掃描 Sub-domain 的功能,例如 gobuster 與 ffuf 等,我們也可以觀察瀏覽器中的 header 等資訊,或是透過 Wappalyzer 工具進行分析。 偵查與掃描通常不會一次就全部的完成,例如我們掃描到了某個 Port 號,開啟了一個網頁伺服器,則可能會再透過人工方式對於這個網頁伺服器進行一些偵查的工作;而偵查完畢後,則可能更換下一個 Port 號開啟的服務進行進一步的偵查與掃描。 尋找漏洞 待我們在偵查與掃描獲得了各種的資訊,就可以試著尋找網路上對於該版本的作業系統、伺服器軟體是否有公開的弱點 (CVE),如果有相關弱點的話,是否有可以進行漏洞利用(Exploti)的腳本,在這邊,通常我會直接在 Google 上搜尋 {服務版本} Exploit,除此之外,也可以透過 exploit-db 、 searchsploit 以及 Github 等方式查找相關的利用方式。 很多時候,我們查找到了某些的漏洞,卻不一定可以馬上地進行使用。舉例來說,我們發現了某個 CMS 在相應版本中的漏洞,而它的使用條件是需要先進行登入,在這種條件下,我們可以先暫存著相關的資訊,以備不時之需,並試圖尋找與開發其他漏洞。 漏洞利用 尋找完相關的 Exploit 腳本後,我們就可以試著執行這些腳本,達到漏洞利用的效果。很多時候,我們也可能需要串接多個不同的漏洞,才能達到遠端命令執行 (RCE)。 當然在大多數情況下,我們不一定有辦法尋找到相對應版本的漏洞進行利用,這種時候就需要透過人工對各個目標進行測試。這種情境下就會比較類似 CTF 的思路,以網頁為例,通常就會以 OWASP Top 10 上常出現的漏洞開始下手進行測試。而 Binary 的 Protocol 則有可能會需要使用到 CTF 中, pwn 的相關技術,進行 Binary Exploitation 利用 Buffer Overflow 等。 ...

2021-09-19 · 1 分鐘 · steven

[Day4] Tools And Environment (2021 鐵人賽 – PT)

今天來介紹一下滲透測試常用的環境與工具,正所謂工欲善其事,必先利其器。準備好自己熟悉、習慣的作業系統與程式環境,對於後續的各種事情都可以事半功倍。 虛擬機 通常,對於滲透測試相關的設備與環境,我們都會使用虛擬機(Virtual Machines),目前常見的軟體有 VirtualBox 、 VMWare 、 Parallel Desktop 與 Qemu 等。大家可以挑選自己習慣的環境,除了使用習慣上,基本上以初學者來講,虛擬化環境沒有太大的差別,如果各位仍沒有任何偏好的化,我會建議大家從 VirtualBox 開始。如果需要使用 VMWare 的話,也請務必採用付費的 Workstation 或 Fusion 版本,才能方便使用完整版的功能,例如 Snapshot 作業系統 作業系統方面,通常我會建議至少同時需要準備一個 Linux 的作業系統,以及一個 Windows 的作業系統,這樣比較能快速的應付各種的需求與測試。作業系統的版本與偏好,則也是看大家的習慣而定。 以 Linux 作業系統為例,許多人都會推薦使用 Kali Linux 與 Parrot OS,但其實我個人反而比較喜歡乾淨的 Ubuntu 作業系統, Kali,Parrot Linux 最大的特色與優點是,他集成了非常多常見的紅藍隊工具,可以讓使用者快速的上手,免去了各種安裝的麻煩;相對之下,Kali Linux 的缺點則是,它太像一個軍火庫了,裡面的工具過多,也常常得使新手產生混亂。而對於某些需要指定特殊版本的程式,在 Kali 上也有可能會出現一些小問題,但本次鐵人賽主要使用的 Linux 環境,我預計仍會採用 Kali Linux,因為可以省去許多安裝環境的麻煩。 而 Windows 環境就比較自由一點了,通常建議可以使用 Windows 10 的 Pro 版本以上,或是 Windows Server 的各種發行板,主要 Windows 的作業系統是用來處理一些,面對到 Windows Server 的靶機,我們可以在自己的 Windows 作業系統上做各種的實驗與演練,待測試完成後,再將指令與程式攻擊至靶機,以本次鐵人賽而言,預計都會以 Linux 的作業系統為主,如果想要手把手跟著做的朋友們,不需要急著安裝也沒有關係! 程式 很多人都在詢問,想要當一駭客到底要學會什麼程式語言,要學會哪些工具。我覺得,如果要成為一位厲害的資安技術人員,不太可能單靠學會幾樣的工具與程式語言就能應付所有的環境。關於程式方面,這邊大概列一些最最基本的軟體,主要提供給非使用 Kali Linux 作業系統的使用者,以利後續的其他工具安裝。 ...

2021-09-19 · 1 分鐘 · steven

[Day3] Practice Resources (2021 鐵人賽 – PT)

CTF 通常會依照各種領域區分, Web 、 Reverse 、 Pwn 、 Crypto 等。而滲透測試如果一定要區分在這些領域的話,應該會比較偏向 Misc。滲透測試通常都會是以組合技為主,所以 CTF 的各種領域最好都要有基礎的了解。 CTF 資源 以新手導向的 CTF 資源,我推薦 picoCTF,上面的題目都非常的新手友善,關於 picoCTF 的解題內容,也歡迎觀看隔壁棚,我的隊友 Yvonne 的鐵人賽文章。 除了 picoCTF 之外,對於初學者學習 CTF 類資源,又與 PT 叫相近的,也推薦大家可以使用 RootMe。 靶機資源 有了基礎的 CTF 各領域技術後,接下來就可以進入練習滲透測試技能的階段。在這邊,我主要推薦四大平台: TryHackMeTryHackMe 是這三個網站中,筆者最推薦的一個平台,上面有數以百計的 Linux 與 Windows 機器,也有一系列的滲透測試相關教學,可以依照著指示與提示,手把手的帶著大家解題,算是三者中對於新手最友善的平台。 其免費版就有不少的機器可以使用,而付費版則有更多課程與靶機。感謝 飛飛 ㄉ錢包贊助 QAQ。Vulnhub- Vulnhub 上有許多靶機的虛擬機 ova 檔案,可以部屬在自己的電腦中 不過對於電腦效能有限的人可能會有一點不友善 另外也可以將 ova 檔案部屬到雲端平台上進行練習HackTheBox- HackTheBox 是網路上最多人推薦的平台,但筆者覺得他也有些許的缺點 QQ 其上面免費版的靶機通常都會是多人共用,(數人到數十人不等)很多時候會造成互相的干擾,除非使用 VIP+ 的方案他是一個綜合性的資安網站,除了滲透測試的靶機之外,也有許多軟硬體相關的 CTF 題目 在此我建議,各平台的靶機,如果有機會都可以去嘗試看看。如果只選擇一個平台的,一定會遇到一些的盲點。本次鐵人賽的內容前半主要會以 TryHackMe 上的靶機為主,預計後半可能會刻金買 HackTheBox 來玩。 證照資源 與滲透測試相關的證照,最有名的就是 OSCP 證照,是由 Offensive Security 提供的 Penetration Testing with Kali Linux (PEN-200)。 它算是少數資安領域中的實做型證照,考試內容為在 24 小時內打下 5 台指定的靶機,並取得 root / System 權限,非常推薦大家對於滲透測試有了一定的認識後報考。 ...

2021-09-18 · 1 分鐘 · steven

[Day2]What is Pentest (2021 鐵人賽 – PT)

滲透測試簡介 今天來跟各位介紹一下,什麼是滲透測試。滲透測試(Penetration Test),簡稱 Pentest (筆測試)、PT,是公司、機構希望尋找以駭客的思維試圖入侵自己的系統,嘗試尋找出其設備之中的弱點。 攻擊方可稱為紅隊,紅隊會嘗試透過各種方式,掃描與試圖入侵公司的設備。除了網頁之外,包含任何軟硬體都可以是滲透測試的目標。為什麼一間公司會需要做滲透測試呢?難道透過足夠高級的防火牆、防毒等防護設備不夠嗎?事實上,滲透測試主要針對的與處理的對象,是在嘗試找出機構內的軟硬體是否有設計上的缺陷,或年久失修等。 滲透測試與弱點掃描 許多人可能會聽過另外一個名詞:弱點掃描,弱點掃描可以是滲透測試的一環,但弱點掃描並不能完全地等於滲透測試。通常的弱點掃描都是透過現有的程式,針對系統做全自動化的掃瞄。相對於滲透測試而言,其成本較低,但效果也較差,因為比較無法針對特定的對象進行客製化的服務,而滲透測試則是可以針對指定的對象,給予最適合的需求與服務。 滲透測試相關指引 滲透測試與各種資安技能一樣,都有許多相關的規範可以參考,但大多數的規範也都可以拿來參考使用,常見的規範與資源有以下幾項。 OWASP Testing GuideOWSAS 全名 Open Web Application Security Project®,直接的翻譯為「開放網路安全計畫」,相信各位對 OWASP 應該都不陌生, OWASP 除了最著名的 Web Top 10 之外,還有非常多其他的資源可以取用。OSSTMM- OSSTMM 全名是 The Open Source Security Testing Methodology ,是 The Institute for Security and Open Methodologies (ISECOM) 提出的。PTES- PETS 是 寵物 Penetration Testing Execution Standard。 滲透測試與 CTF 剛開始學習資安的新手,如果是以攻擊者為角度的資安,通常都會從 CTF 入手,CTF 面臨的通常都是以特定的漏洞包裝的題目,訓練大家有自行挖掘漏洞的能力。而通常簡易的滲透測試,除了挖掘漏洞之外,我們更常會運用現有的資源來進行攻擊與測試,例如已經公開 Exploit 的 CVE 漏洞等。 在 CTF 中,通常比較不會出現一些枚舉,暴力破解等相關的技術;因為往往這對於純研究資安技術的領域而言是一件滿無聊的事情,只要字典檔夠充足、時間足夠的狀況下就可以暴力破解、搜尋出來。但是現實生活中的場域就非常不一樣了,現實生活中常常因為使用者的疏漏,使用各種的弱密碼;忘記刪除某些測試的檔案。這種以「人」為主的弱點,以技術的角度來說,通常都會比 CTF 簡單滿多,也都是 PT 需要進行考量的部分。 滲透測試的流程 在滲透測試開始之前,最最最最重要的事情是請於滲透測試前,取得對方的同意,定義好滲透測試的目標,千萬要保護好自己,也要保護好客戶。 ...

2021-09-17 · 1 分鐘 · steven

[Day1] Motivation (2021 鐵人賽 - Cloud)

哈囉大家好,打ㄍㄟ厚,我是目前就讀天大地大台科大的 Steven Meow,這是我第一次參加鐵人賽,希望可以順利的持續30天,把文章給順利寫完! 如同簡介所述,現在的網路上的資安相關教學,大多數技術層面的都以 CTF 為主。我覺得 CTF 雖然有時候很好玩,但常常會出現一些非常刁鑽的題目,使得新手在接觸了不適合的題目後,就開始害怕資安;而這些 CTF 題目也時常會與現實世界脫節,打完了 CTF 後卻不知道可以運用在什麼地方。曾經有某軟體公司的從業人員跟我說,非常多學生時期在玩 CTF 的人,畢業後,卻跑去當碼農做軟體開發,因為在現實生活中不知道如何運用。我覺得這是一種滿可惜的事情 QQ。 本系列的文章預計會介紹以滲透測試為主的內容,帶大家轉換 CTF 的思維,接觸現實世界中常出現的資安漏洞。在大多數的情景下,這些漏洞都會比 CTF 的題目簡單很多。最最重要的是轉換思維,善加的運用手邊現有的資源與工具!預計的文章架構如下: 滲透測試介紹 工具介紹 練習平台介紹 實戰介紹 在前幾天的時間,會先與各位分享滲透測試的基礎觀念,以及相關使用的工具與環境;再來會介紹提供初學者使用的各種練習平台;接下來就會進入實戰演練,也就是打靶機的部分。我個人喜歡做中學的感覺,透過真正的實戰,並在過程中學習,我覺得效果會比起單純教科書上的紙上談兵好很多!希望透過這種方式可以對大家有幫助! 除此之外,我也有報名 IT管理組的比賽,題目是「真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?」內容主要會介紹 Google Cloud 相關的概念與使用方法,比起這邊的文章會更理論一點,也請大家多多支持與愛護!

2021-09-16 · 1 分鐘 · steven