2023年12月26日 星期二

掌握ChatGPT進行道德駭客攻擊和滲透測試

作者:林國龍

精誠資訊 恆逸教育訓練中心 資深講師 


在瞬息萬變的資訊安全工作領域中,專業人士需要快速有效率的因應各種資安威脅與挑戰,透過善用 ChatGPT,我們可以利用 ChatGPT 的文本生成功能,來協助執行滲透測試的專門任務,藉此提高資安工作者的產能,進而讓安全評估更加精準有效率。 

ChatGPT的簡介

ChatGPT 是由美國人工智慧研究實驗室 OpenAI 研發的聊天機器人程式產品。"Chat" 是英文 "聊天" 的意思,而 "GPT" "Generative Pre-trained Transformer" 的縮寫,中文可以翻譯為 "生成式預訓練轉換器"。這是一種人工智慧模型,它能理解和用人類的語言進行交談。

ChatGPT GPT 系列的一部分,並且它被設計用於處理自然語言對話。

何謂 GPT ?

GPT Generative就是指它具備生成文本的能力,有種像是一個文本生成引擎的感覺,你給他一些開頭文字,他就能接著寫出自然且有邏輯的文章。 

接著是Pre-trained,這是GPT之所以厲害的原因:它已經預先在龐大的文本資料上接受過訓練,學會了豐富的語言知識,就像讀了整個網際網路的書,掌握了各種行業的專業術語,是一個精通所有行業的學霸。 

最後,Transformer,這個是GPT處理文字的神奇工具,能夠「變形」自己的風格,靈活地轉換和運用文字,不僅僅是生成單獨的句子,還能構建整段通順的文章內容。

總結來說,GPT就是一個能夠生成自然語言文本的超級模型,它的優勢在於預先訓練的語言知識和生成能力,一個能將文本處理和生成功能結合在一起的IT神器。

滲透測試(ethical hacking

是一種透過模擬攻擊的手法來評估系統安全性的技術。這個過程包括資訊收集、弱點掃描、弱點利用與提權,以及最終的報告撰寫。 

首先,資訊收集是滲透測試的起點。這涉及搜集目標系統的所有可用資訊,包括網路架構、系統配置、應用程式和用戶信息。透過這些資訊,測試者能夠審查可用於攻擊的情報,為後續步驟做好準備。 

接著是弱點掃描,這階段使用各種工具來掃描和識別系統的弱點。這可能包括開放的連接埠、未更新的軟體、或其他潛在的漏洞。透過弱點掃描,滲透測試人員能夠確定系統的問題並進一步測試其安全性。 

當發現弱點後,接下來是弱點利用與提權。在這個階段,滲透測試人員利用找到的弱點來獲得並維持對目標系統的存取權。這可能包括入侵系統、竊取資訊或模擬真實攻擊的情境,以評估系統的抵抗能力。 

最終,報告撰寫是滲透測試的結束階段。在報告中,詳細說明發現的問題,包括弱點的詳細資訊、風險評估和修復建議。這能夠提供給系統擁有者和管理者一個清晰的了解,協助他們改進和加強系統的安全性。 

ChatGPT 在滲透測試領域的應用

首先,自動偵察和掃描ChatGPT的強項之一。透過內建的網路掃描工具,ChatGPT能夠根據需求自動生成Nmap語法,進行目標網路的探索,同時識別開放的服務。這使得偵察過程更加自動化和迅速,提高了測試的效率。 

其次,自動漏洞掃描ChatGPT的另一個優勢。透過整合漏洞掃描工具如NessusOpenVASChatGPT可以自動識別和利用已知的軟體漏洞。這有助於快速發現系統的弱點,提供測試人員更多時間進行深入的分析和修復工作。 

第三,ChatGPT能夠執行密碼破解和暴力攻擊,這對於評估系統的安全性至關重要。利用類似John the RipperHydra的密碼破解工具,ChatGPT能夠嘗試破解目標系統的密碼,揭示可能存在的弱點。

最後,ChatGPT在分析Web應用程式方面也有卓越表現。它能夠分析Web應用程式並發現潛在的弱點,從而提供有價值的洞察,協助測試人員更好地理解和評估Web應用程式的安全性。

以下,我們就自動偵察和掃描做一些簡單的示範:

若需要在 Kali Linux 的指令環境中整合 ChatGPT,我們需要透過一些指令先安裝一些相關套件:

套件需要線上安裝,所以先用 ping -c2 www.google.com 測試網際網路連線是否正常:


使用 sudo pip install shell-gpt 安裝sgpt,"sgpt"是一個用於與GPT模型進行交互的指令工具。在這種情況下,"--chat" 選項用於指定聊天模式 "--chat" 選項後面的 "demo" 為這次對話的識別字串。



安裝完成後,測試使用 sgpt 指令,因為沒有 API_KEY 所以出現錯誤訊息:



透過 export 指令定義 OPENAI_API_KEY環境變數後,即可正常運作。如下圖所示:ChatGPT能夠根據我們提出的需求,自動生成適當的 Linux 指令語法



我們透過 sgpt --chat demo --shell "use nmap and ping sweep the 172.16.0.0/24 network." 語法,讓 ChatGPT根據需求自動生成Nmap語法,進行對 172.16.0.0/24 網段的 ping 主機掃描,以確定哪些主機是開機的。這使得掃描過程更加自動化和迅速,提高了測試的效率。



我們透過 sgpt --chat demo --shell "Place only the IP addresses into a file called hosts.txt, then display the results." 語法,讓 ChatGPT根據需求自動生成Nmap語法,將主機掃描的結果儲存於 hosts.txt 檔案中,並將結果顯示於標準輸出畫面中。



 我們透過 sgpt --chat demo --shell "Run a nmap scan using -sT -p 80 against hosts.txt. If port 80 is open on a host, placet only the IP addresses into a file called webs.txt, then display the results." 語法,讓 ChatGPT根據需求自動生成Nmap語法,掃描列於 hosts.txt 檔案中的所有主機是否有開啟 TCP Port 80,若有開 Port 將該主機 IP 存放於 webs.txt檔案中,並將結果顯示於標準輸出畫面中,指令直接執行的結果不盡如人意,雖然指令語法上沒有錯誤訊息,可是結果卻不是我們要的,這也是使用 Chatgpt 時,常見的問題之一,所以駕馭這類強大的工具,還是需要一定程度的滲透測試基礎背景知識


我們將其自動產生的指令取前半段直接執行的結果如下:連接埠若有開,掃描的結果 IP 將位於 open 的上面第四行位置。



於是我們將指令稍作調整後,執行的結果如下所示:



透過上面的實機示範,我們可以見識到 ChatGPT 強大的一面,許多以往我們要花很多時間去構思的指令或程式碼,現在都可以由 ChatGPT 自動幫我們產生,就這個部份的確可以在滲透測試過程中,省下許多基礎作業的時間,不過我們也發現,很多情況中雖然指令語法上沒有錯誤訊息,可是結果卻不是我們要的。所以,將ChatGPT 當作一個得力的助手的確很有用,但是駕馭該工具的還是需要一定的技術能力。


影片介紹



推薦課程

GPTEH-GPT】:掌握ChatGPT進行道德駭客攻擊和滲透測試
【EC-Council-CEH】:EC-Council CEH駭客技術專家認證課程


0 意見:

張貼留言