首页 科技内容详情
Windows RDP协议 Fuzzing 破绽挖掘研究

Windows RDP协议 Fuzzing 破绽挖掘研究

分类:科技

网址:

反馈错误: 联络客服

点击直达

Usdt第三方支付平台

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

0x01 基本先容

本文形貌了我在Fuzzing Windows RDP 客户‘hu’端和服务端方面所做的一些实验和挑战,以及Crsahs剖析。

Microsoft 的远程桌面协议 (RDP) 连续受《shou》到平安社区的关注。从 2019 年发现的几个可能危及数百万面向互联网的服务端的要害破绽,到RDP 被攻击者用作主要的初始接见向量之一。

我对这个目的最初的兴趣是与 VM 相关的。由于毗邻到 Azure Windows 机械或 Hyper-V 虚拟机的默认方式是 RDP,以是我以为 RDP 是对照主要的目的。

我很快就发现了〖liao〗 Park、Jang、Kim 和 Lee在 BlackHat Europe 2019 上揭晓的关于 RDP Fuzzing的精彩分享。演讲者在短短几个小时内使用一个并不高效的 fuzzer 发现了几个破绽,因此我决议在他们的事情基础上举行构建新的挖掘工具,将 fuzzing 能力扩展到其他方面,改善其性能并挖掘到我自己的 RDP 远程代码执行 (RCE)破绽。

不幸的是,并不是所有的Fuzzing工具都能挖到严重的破绽。我现在『zai』还没有挖到 RDP 的RCE破绽,但我确实想法找到了一些bugs,并更好地领会了协议、其组件以及Fuzzing历程和工具。我开发的Fuzzing框架足够通用,有助于对其他目的举行Fuzzing。

在这篇文章中,我将分享我执行上述所有操「cao」作的历程。首先,我将概述 RDP 和开发的Fuzzing设置,然后将分享我临的挑战以及若那边理的方式,最后,我将回首在此历程中发现的几个破绽。

1.RDP 协议

远程桌面协议是用于远程接见 Windows 盘算机的通用协议,Malwaretech 最近将其述为“协《xie》议的协议”。RDP 允许在每个毗邻中运行多个通道,而且每个通道都有差其余用途。这意味着每个通道都有自己的代码来处置其数据、自己的结构界说和数据流。这实质上意味着 RDP 中确实存在多种协议。

RDP 毗邻中的通道

RDP 通道可以是静态的,也可以是动态的,但对于我们的目的而言,两者之间的区别并不主要。若是你想领会更多关于RDP毗邻的内部运作原理,我建议你阅读下文。

2.RDP Fuzz的挑战

在“尺度”Fuzzing场景中,有一个程序读取由Fuzzer控制的输入,输入可以是文件或任何类型的数据流。然后程序处置数据,同时Fuzzer监视天生的数据的代码笼罩率。基于该笼罩局限,Fuzzer对输入举行变异,再次将变异的输入发送到程序,然后重复该历程。

RDP Fuzzing是差其余,由于我必须始终有一个 RDP 毗邻处于流动状态。Fuzzer可以输入到程序中的数据需要作为协议数据单元 (PDU) 发送到特定通道(在Fuzzing时代也应处于流动状态)的顶部,并在开放毗邻中举行。如前所述,每个通道都有自己的协议,因此需要逐个通道举行Fuzzing。这给Fuzzing历程带来了以下挑战(这也可能适用于其他协议/网络相关的Fuzzing):

客户端-服务端架构——在传统的Fuzzing中,Fuzzer可以简朴地运行目的应用程序并提供其输入。在客户端-服务端场景中,目的应用程序在毗邻的一侧运行,而输入从另一侧发送。在RDP的情形下,双方通常在差其余机械上。

状态性- RDP 是一种有状态协议,这意味着你必须在对测试用例举行Fuzzing时思量毗邻的状态。这会严重影响Fuzzing的稳固性。

多输入Fuzzing——当对接受文件作为输入的目的举行Fuzzing(文件花样Fuzzing)时,Fuzzer对目的的所有输入都包罗在单个文件中。相反,当你对协议举行Fuzzing时,你可能需要发送一些延续的新闻才气到达有用的代码路径。

寻找目的代码——当你使用笼罩率指导的Fuzzing时,你通常需要向Fuzzer解释它需要在什么时刻最先监控代码笼罩率(即,处置你输入的目的函数是什么?)。RDP 有许多认真其操作的组件,在某些情形下,找到准确的位置可能是一项艰难的义务。

这四个挑战是我预计Fuzzing RDP的主要挑战。在文中,我将讨论若何战胜这些挑战,以及在事情后期泛起的其他挑战。

0x02 Fuzzing手艺细节

在本节中,我将先容手{shou}艺细节,以及在事情历程中遇到的挑战。还将注释若何解决它们以实现有用的Fuzzing设置。我在 GitHub 上确立了一个事情存储库,其中包罗我在此事情中编写的所有代码。

1.客户端-服务端架构

在这个事情中,我想要Fuzzing Windows 的 RDP 服务端及其 RDP 客户端。对 RDP 服务端举行Fuzzing的念头很显著:攻击者可以使用它来远程入侵 Windows 服务端并获得对其的接见权限。对 RDP 客户端(duan)举行Fuzzing的念头是差其余,若是攻击者已经获取了 RDP 服务端权限的场景,然后守候受害 RDP 客户端毗邻过来。一旦受害者毗邻上,攻击者也可以通过 RDP 客户端获取受害者的机械权限。当治理员毗邻到他们治理的服务端时可能会发生这种情形,由于 Hyper-V 行使 RDP 接见其虚拟机,甚至可以用〖yong〗作 VM 逃逸。

RDP 的 fuzzer 需要具有以下基本组件:

◼检测引擎跟踪代码笼罩并检测溃逃

◼变异引擎发生新输入

◼输入馈送器通过适当的目的通道发送fuzzer的测试『shi』用例

◼目的二进制文件状态由检测引擎跟踪

客户端和服务端的Fuzzing设置差异,但也有一些相似之处。

基本Fuzzing设置

在目的方面,有以下内容:

◼Fuzzer – 定制的 afl-fuzz.exe

◼检测引擎——定制的 winafl.dll,使用定制的 DynamoRIO 和in_app检测模式

◼输入 ——被写入目的和输入发送者共享目录中的中央文件的变异 PDU

在输入发送方,有一 yi[个组件:

◼署理——读取中央文件并在目的通道上发送输入

将输入的天生与向目的的传输星散,允许输入在被目的处置之前从 RDP 毗邻的一侧移动到另一侧。此外,我使用 WinAFL 的应用内检测模式来不中止正常的执行流程。

为了使笼罩指导的Fuzzing事情,输入和它们触发的代码路径之间必须存在逐一对应的关系。为了实现这一点,我开发了“background fuzzing”,它将Fuzzer PDU 与通例 PDU 区脱离来,而且只跟踪前者的代码路径。这是必不能少的,由于我只希望Fuzzer跟踪我自己测试用例的笼罩局限,而不是通过毗邻发送的随机 PDU。

为了说明这一点,让我看看在Fuzzing将音频从 RDP 服务端重定向到客户端的RDPSND虚拟通道时,类似的事情会是什么样子。凭证官方文档,每个 PDU 的第一个字节示意发送的新闻类型。


资料泉源:[ MS-RDPEA ]

msgType字段支持的值为0x01到0x0D。在这种情形下,可以通过以下方式使用第一个字节的最高有用“yong”位作为fuzz符号:

◼在发送 PDU 之前,署剖析转换第一个字节的最高有用位。

◼WinAFL 在处置新闻之前检查第一个字节的最高有用位。若是该位打开,WinAFL 将关闭该位并跟踪此新闻的代码笼罩率。若是该位关闭,WinAFL 将忽略该新闻而且不跟踪任何笼罩局限。

在领会了客户端设置和服务端设置之间的相似之处之后,让我看看它们之间的区别,先从客户端最先。

2.客户端Fuzz设置

Windows RDP 客户端是mstsc.exe,但处置虚拟通道数据的大部门逻辑都在客户端加载的mstscax.dll中。

Hyper-V 虚拟机的远程接见客户端vmconnect.exe也使用mstscax.dll作为其焦点功效。


Windows RDP 客户端

为了简朴和高效,我在统一台机械上同时执行客户端和服务端(目的和署理)(使用客户端毗邻到 localhost/127.0.0)。为了允许并行Fuzzing,我还使用了mimikatz来修补服务端,使其允许并发 RDP 毗邻。


这些是对客户端举行Fuzzing时的设置组件:

◼目的 - mstsc.exe和mstscax.dll的目的模块

◼检测「ce」引擎 – 确立客户端历程的 DynamoRIO 和 winafl.dll,讲述代码笼罩率的 DynamoRIO 客户端

◼变异引擎——在统一台机械上运行的 AFL-Fuzz 并将新的测试用例写入文件

◼输入馈送器——我的 RDPFuzzAgent,它打开服务端的句柄并在选定的虚拟通道上发送 PDU。署理从 AFL-Fuzz 确立的文件中获取每个测试用例,并将它们发送到目的通道上。

使用这些组件,我能够实现约莫每秒 50-100 次执行的执行速率。

3.服务端Fuzz设置

为了找到包罗 RDP 服务端主要逻辑的目的二进制文件,可以简朴地查看远程桌面服务服务。

PS C:\> gci HKLM:\SYSTEM\CurrentControlSet\Services\$((Get-Service -Name "Remote Desktop Services").Name)
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService
Name                           Property
----                           --------
Parameters                     ServiceDll             : C:\Windows\System32\termsrv.dll
. . .

RDP 服务端的主要逻辑确着实termrv.dll 中,它通过以下下令加载到svchost.exe历程中:C:\Windows\System32\svchost.exe -k NetworkService -s TermService。

最初对服务端举行Fuzzing的设计与客户端类似,即在需要运行多个TermService实例的统一台机械上并行地对目的的几个实例举行Fuzzing。效果证实这是一项异常具有挑战性的义务,由于 Windows 默认不支持此操作。当我实验手动执行此操作时,我在termrv.dll中看到了一些指向TermService及其注册表项的硬编码字符串,因此我决议将精神集中在其他地方,只使用多个 VM 并行fuzz服务端。

在客户端Fuzzing设置中,我使用服务端API 挪用WTSVirtualChannelWrite()将Fuzzing输入发送到目的模块。不幸的是,我找不到类似的 API 来让通过 RDP 毗邻向服务端发送输入。

因此,我选择使用 Ubuntu 机械的定制FreeRDP,是一个开源 RDP 客户端工具,将输入发送到fuzz服务端。请注重,这不是Fuzzing的理想设置,这些限制导致服务端Fuzzing的速率约莫是客户端Fuzzing的 1/10。


服务端fuzz统计

这些是对服务端举行Fuzzing时的设置组件:


◼目的文件——取决于被Fuzzing的通道。可以是termrv.dll、audiodg.exe、rdpinput.exe等。

◼检测引擎 - 在此设置中,Fuzzer无法控制目的历程的初始化。因此,为了跟踪代码笼罩率,必须检测一个正在运行的目的。WinAFL Fuzzer 有几个可以使用的检测引擎,我选择 DynamoRIO 是由于它的可扩展性和稳健性。

◼DynamoRIO(包罗WinAFL)不支持‘chi’直接毗邻到流动历程。

◼值得注重的是,此附加功效为之前使用 WinAFL 无法fuzz的历程打开了大门——用户无法控制其确立的历程。稀奇是,它允许对 Windows 服务举行Fuzzing。

◼变异引擎——AFL-Fuzz 在 Windows 机械上运行,并将新的测试用例写入共享文件夹中的文件。

◼输入馈送器——我们构建的FreeRDP毗邻到Windows盘算机上的服务器,监视共享文件夹中的新测试用例,并在目的RDP通道上发送每个测试用例。

4.状态性

在运行第一个通道(对客户端举行Fuzzing)时,我遇到了一个问题:只要在客户端检测到两条无效新闻,它就会立刻终止毗邻。

为了阻止这个问题,我在署理的逻辑中引入了一些强制协议语法,即限制允许输入的空间。

◼新闻巨细限制

-最小值、最大值

-分片(例如,若是新闻包罗一个由 4 字节元素组成的可变长度数组,则它应该可以被 4 整除)

Allbet电脑版下载

欢迎进入Allbet电脑版下载(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

◼数据值限制

-只允许特定值

-最小值和最大值

-值必须是 PDU 巨细

-每个 PDU 中的值必须差异

我从 Microsoft 的RDP 及其扩展文档中提取了一些 RDP 语法,一些从相关二进制文件的逆向中提取,其余从跟踪失败的目的执行中提取。

例如,此逻辑可用于仅允许以受支持的msgTypes之一开头的新闻,后跟 PDU 的巨细和唯一标识符,而且其总巨细介于 22 和 122 之间,其余为 2 模 4 .

值得一提的是,通过执行这些强制措施,现实上限制了变异引擎为所欲为更改测试用例的能力,因此可能会遗漏某些变异。出于这个缘故原由,我实验尽可能少地强制执行,同时仍然确保毗邻不会经常关闭。

这里的另一个重点是,在处置此类问题时,这些语法强制并不是唯一的选择。在一个特定通道 (GFX) 的情形下,我转而patch正在Fuzzing的现实目的函数,以便在一组无效新闻的情形下它不会关闭毗邻。这使我能够继续fuzz无效新闻并始终保持毗邻打开。在这里,你也有可能发现不会在原始代码中重现的crashs。这是一个很好的例子,说明Fuzzing需要在确保获得足够的执行速率的同时仍然保持目的程序的原始功效以及变异引擎的自由之间的玄妙平衡。

5.多输入Fuzzing

大多数bug都依赖于「yu」一系列新闻而不是单个新闻。我发现的大多数bugs都涉及至少两条新闻,这并非巧合。

为了发现这些bugs,我引入了多输入Fuzzing。我使用了一个Fuzzer字典来识别新新闻的最先及其类型。然后,署理将凭证这些字典单词将输入拆分为多个 PDU,并一个接一个地发送。

因此,多输入输入可能如下所示:

___cmd07 < 1st PDU data>
___cmd02 < 2nd PDU data>
___cmd03 < 3rd PDU data>

署理将其转换为msgType 7、2和 3 的三个新闻,以及它们各自的内容。

为了保持Fuzzer确立的输入与其触发的代码笼罩率之间的逐一对应关系,我引入了第二个符号来标识序列中的最后一条新闻。只有当 WinAFL 识别出带有“最后一个序列”符号的挪用竣事时,它才会完成循环并确立下一个输入。

虽然多输入Fuzzing对当前事情至关主要而且富有成效,但我还发现有需要限制每个测试用例的 PDU 数目。由于Fuzzer重复相同的新闻 100 次会导致与发送一次差其余代码序列。

6.Crashs重现问题

经由约莫一周的Fuzzing,第一次溃逃泛起了。然则,当我再次实验运行相同的输入时,溃逃并没有重现。这种情形经常发生,很可能是由于协议的状态性子。换句话说,一个测试用例让客户端进入一个特定的状态,然后被后续的测试用例“行使”来《lai》使目的溃逃。

为了明白不能重现的溃逃,我修改了 WinAFL 以在检测到溃逃时确立目的历程的内存转储。

7.Crashs自动化剖析

在溃逃时确立转储解决了一个问题,但造成了另一个问题:一旦发现溃逃,很可能会『hui』重复遇到。通常,WinAFL 会实验检测相同的溃逃并仅通知“特殊的溃逃”,然则我的多新闻Fuzzing使这种检测变得异常难题。思量单个新闻导致目的溃逃的情形。fuzzer 可以在最后确立任何一组新闻。这些新闻集中的每一个都市使目的溃逃,而且还会导致差其余笼罩位图,由于新闻及其处置方式差异,这将导致 WinAFL 每次都讲述一个特殊的溃逃。

出于两个缘故原由,我必须自动剖析溃逃。首先,手动剖析每个溃逃【tao】的事情很繁琐,其次,磁盘很快被内存转储填满。

为了战胜这个问题,我编写了一个 WinDBG 脚原天职析溃逃并从中提取溃逃客栈。然后,我运行了一个 PowerShell 剧本,该剧本定期剖析溃逃并仅保留那些包罗新客栈的溃逃,并通过电子邮件向我发送新闻。

在客户端Fuzzing设置中,从Fuzzer确立目的(mstsc.exe)的那一刻,到确立毗邻并可以发送第一条新闻的那一刻,破费了 10 多秒钟。因此,在不重新启动目的的情形下执行尽可能多的迭代至关主要。我通过使用AFL-Fuzz的-fuzz_iterations参数并提供尽可能多的迭代来实现这一点。

8.多通道Fuzzing

与多输入Fuzzing一样,某些逻辑需要差异通道上的一系列新闻。例如,如下面文档中所述,使用多个通道支持从客户端向服务端发送相机数据。


资料泉源:[ MS-RDPECAM ]

因此,若是希望通过发送输入来fuzz服务端,必须至少在两个差其余通道上这样做。

我的解决方案也很相似:fuzzer 字典确定了要发送新闻的通道。

9.定位相关代码

由于 RDP 在 Windows 中有许多差其余组件,甚至定位需要Fuzzing的目的函数都具有挑战性。

PS C:\> gci -Include *.exe, *.dll, *.sys -Recurse C:\Windows\ -ErrorAction SilentlyContinue | ?{[System.Diagnostics.FileVersionInfo]::GetVersionInfo($_).FileDescription -match "RDP|Remote Desktop"} | Measure-Object | select count
Count
-----
  191

为了快速做到这一点,我确立了一个小型数据库,其中包罗可能与我的事情相关的所有符号文件。

我的想法是下载与我的 Windows 版真相关的所有 PDB,从中提取所有函数名称并将它们转储到一个文件中(链接回 exe/sys/dll),以便可以快速搜索函数名称和定位与我当前目的通道相关的功效。

由于险些所有动态通道吸收『shou』函数都匹配以下模式C< class-name >::OnDataReceived,我们可以快速查看这些函数的列表并找出可能与我们所针对的通道相关的内容。

0x03 Crashs破绽剖析

在本节中,我将分享我在该事情中发现的两个bugs的手艺细节。

1.AUDIO_PLAYBACK 通道(服务端→客户端)

该AUDIO_PLAYBACK_DVC虚拟通道用于输“shu”出从客户端上输入的服务端数据。它的正常流程包罗两个序列:初始化和数据传输。在协议的正常使用〖yong〗中,初始化序列在最先时发生一次,然后是许多数据传输序列。

◼初始化序列——用于确立以下数据序列中使用的版本和花样


资料泉源:[ MS-RDPEA ]

◼数据传输序列——来自服务端的数据将在客户端输出


资料泉源:[ MS-RDPEA ]

Wave和WaveInfo PDU包罗初始化序列中交流的花样数组的索引,用于确定传输音频数据的花样。 



资料泉源:[ MS-RDPEA ]

当花样发生转变时ーー例如,Wave 或 WaveInfo PDU 的 de[索引与上次使用的索引差异,客户端会验证新索引是否有用。

// in mstscax!CRdpAudioController::OnNewFormat
if ( (unsigned int)new_format_index >= this->formatArray_size )

然则,只要花样索引保持稳固,就会跳过此验证,下面是相关部门的伪代码。

// in mstscax!CRdpAudioController::OnWaveData
last_format_index = this->last_format_index;
format_index_from_pdu = *((_WORD *)pdu + 3); //pdu is controlled by the server
if ( last_format_index != format_index_from_pdu )
{
    CRdpAudioController::OnNewFormat(this, (__int64 *)format_index_from_pdu); // this is where the bound check is being made
                                                                              // but only if the format index is different than the last index
    last_format_index = *((unsigned __int16 *)pdu + 3);
    this->last_format_index = last_format_index;
}
formats_array = (AUDIO_FORMAT **)this->formatArray;
current_format = formats_array[last_format_index]->wFormatTag; // crashes here

在客户端触发此破绽的流程如下:


破绽流程

◼服务端向客户端发送具有0x1A花样的服务端花样 PDU,客户端分配具有此巨细的花样数组。

◼服务端向客户端发送一个Wave2 PDU,该PDU使用数组中的花样0x5和数据。

-客户端检查此花样是否与上次发送的花样相同。

-若是是,它使用最后一个解码器;若是不是,它将从花样数组加载新的解码器函数指针。

◼服务端再次向客户端发送服务端音频花样 PDU——这次只有0x2,导致客户端释放之前的花样数组并分配一个具有新巨细的新花样。

◼服务端最终使用最后使用的花样0x5发送另一个Wave2 PDU。

-由于花样没有改变,客户端不执行任何有用性检查。

-然后,客户端执行越界读取,实验从 2 花样数组中读取第6种花样造成溃逃。

这允许攻击者使用分外的服务端音频花样 PDU 重新分配花样数组,然后‘hou’指定以前有用和使用的无效索引,导致客户端读取花样数组的界限并溃逃。

请注重,此bugs在很洪水平上依赖于多输入Fuzzing,若是没有此功效,我们将无法找到它。

2.AUDIO_INPUT 通道(客户端→服务端)

所述AUDIO_INPUT虚拟信道用于从所述客户端发送的声音输入到服务端。在服务端端,音频输入数据由提升的audiodg.exe历程处置。

在AUDIO_PLAYBACK_DVC通道中,客户端和服务端首先交流它们支持的一系列声音花样。


资料泉源:[ MS-RDPEAI ]

所述声音花样的PDU最先的9个字节的报头,其包罗指令,花样编号,和该分组的巨细,接着花样的阵列,每个可变长度,加上附加数据的一个可选的字段。


资料泉源:[ MS-RDPEAI ]

处置声音花样 PDU的代码在rdpendp.dll 中。它首先验证数据包巨细至少为九个字节,然后读取头部并验证头部的巨细不大于数据包的巨细。

// in rdpendp!CAudioInputHandler::OnFormatsReceived
  if ( size < 9 )
  {
    // ...
  }
  // ...
  size_from_msg = *(_DWORD *)(data + 5);
  if ( size_from_msg > size )
  {
    // ...
  }

然后相同的函数从header读取的巨细中减去 9,并读取header中指定的花样数,只要剩余长度足够大。header的巨细不受整数下溢珍爱,这可能会导致减法溢出,并导致程序从数据包末尾读取“formats”。

// in rdpendp!CAudioInputHandler::OnFormatsReceived
underflowed_size = size_from_pdu - 9;
format_definition_offset = (unsigned __int16 *)(pdu + 9);
if ( num_formats )
{
    while ( underflowed_size >= 0x12 )
    {
        format_definition_size = format_definition_offset[8];
        total_format_size = format_definition_size + 18;
        if ( underflowed_size < (unsigned __int64)(format_definition_size + 18) )
            break;
        (*class_fomats_array)[format_index] = (struct SNDFORMATITEM *)operator new[](total_format_size);
        local_format = (*class_fomats_array)[format_index];
        if ( !local_format )
        {
            status = E_OUTOFMEMORY;
            goto CLEAN_AND_RETURN;
        }
        memcpy_0(local_format, format_definition_offset, total_format_size);
        format_definition_offset = (unsigned __int16 *)((char *)format_definition_offset + total_format_size);
        underflowed_size -= total_format_size;
        if ( ++format_index >= num_formats )
            goto LABEL_50;
    }
    goto INVALID_ARG_EXIT;
}

0x04 研究总结

在这篇文章中,我纪录了我实验解决具有挑战性的Fuzzing目的的历程:Windows 的 RDP 客户端和服务端。我想分享我的历程有几个缘故原由。

首先,我以为纵然{ran}你无法实现最初的目的(例如 RCE),分享流程也很主要。这可以辅助你反思自己的流程——哪些看起来运作『zuo』优越,哪些可以改善。

其次,只管设置Fuzzing环境可能是一个庞大的历程,但我以为这是一个值得追求的目的——纵然是像我在〖zai〗这里提出的更具挑战性的目的。RDP 是一个异常庞大的协议,具有许多组件和差其余代码库。Shodan.io搜索跨越 400 万台使其成为攻击者异常有利可图的目的。


泉源:shodan.io

只管 Microsoft 近年来在珍爱其产物方面做了一些精彩的事情,但我以为 RDP 组件中仍有许多破绽可以举行挖掘。依附我在此历程中获得的明白以及此处共享的信息,我可以推动未来的研究。未来的事情可能是提高Fuzzing的性能,将其扩展到我没有时机举行Fuzzing的其他通道和函数,使用基于模拟器的Fuzzing,甚至对代码的部门举行手动逆向剖析。

最后,为了展示我的Fuzzing的通用性,我已经将其应用于几个 RPC 服务端,并取得了一些开端功效。

本文翻译自:https://www.cyberark.com/resources/threat-research-blog/fuzzing-rdp-holding-the-stick-at-both-ends

皇(huang)冠网址www.huangguan.us)是一个开放皇冠正网即时比分、皇冠网址的平台。皇冠网址(www.huangguan.us)提供最新皇冠登录,皇冠APP下载包含新皇冠体育代理、会员APP。

  • USDTOTC(www.usdt8.vip) @回复Ta

    2021-09-17 00:00:41 

    澳5官网www.a55555.net)是澳洲幸运5彩票官方网站,开放澳洲幸运5彩票会员开户、澳洲幸运5彩票代理开户、澳洲幸运5彩票线上投注、澳洲幸运5实时开奖等服务的平台。
    万年不评论,这个太好了

  • a55555.net @回复Ta

    2021-09-26 00:01:57 

    我以为对照好的是,它的刷头接纳入口杜邦软毛,虽然震感太强,然则在最基础的做工用料上,大厂的基础照样有的。心情阳光明媚啊

发布评论