申博注册:从远程桌面客户端提取明文凭据的东西RdpThief | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

申博_安全工具 申博 145次浏览 已收录 0个评论

申博官网

申博官网是菲律宾申博娱乐开设的老品牌网站,海内外客户的选择对象。申博官网便是质量保证,申博官网24小时服务客服竭诚为您解答!申博官网开户只需几秒钟即可完成,申博官网为您营造良好的娱乐环境,只等待您的加入!

,

引见

远程桌面(RDP)是用于治理Windows Server的最普遍运用的东西之一,除了被治理员运用外,也轻易成为攻击者的应用目的。登录到RDP会话的凭证一般用因而具有治理权限的,这也使得它们成为红队行为的一个抱负目的。站在传统的角度看,许多人倾向于运用LSASS举行凭证偷窃,然则lsass.exe一般遭到EDR和防病毒产物的看管,而且对LSASS的操纵一般须要权限接见,因而我们天然就会斟酌,有无一种更轻易的替换计划?

在本文中,我将形貌我编写的一个东西,能运用API钩子从Microsoft RDP客户端提取明文凭证,而且假如是在已禁受感染用户的权限下操纵(比方收集垂纶致使),而且该用户已翻开RDP会话,则能够提取明文凭证而无需提权。

API钩子

简朴来讲,API钩子是经由历程将顺序重定向到另一个函数来阻拦顺序中函数挪用的历程。这是经由历程从新编写目的函数的内存代码来完成的。有几种API挂钩要领,手艺都比较复杂,细述的话须要零丁的篇章。

而就本文而言,我们将运用到的是Microsoft Detours库,该库是开源的,而且支撑32位和64位历程。其他框架(如Frida)也能供应相似的功用,然则Detours是异常轻量级的。为了演示这个库有何等壮大,我们将运用它为MessageBox函数建立一个钩子。

钩住函数之前,我们须要做两件事,一个是包括原始函数地点和被钩住函数地点的目的指针,为了使钩子一般事情,目的函数和被钩住的函数都应具有雷同数目的参数、参数范例和挪用商定。

鄙人面的示例中,我们钩住了MessageBox挪用并修改了通报给原始函数的参数。

#include "pch.h"
#include <Windows.h>
#include <iostream>
#include <detours.h>
 
static int(WINAPI * TrueMessageBox)(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType) = MessageBox;
int WINAPI _MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType) {
     return TrueMessageBox(NULL, L"Hooked", L"Hooked", 0);
 }
int main()
{
// Hook MessageBox
DetourRestoreAfterWith();
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)TrueMessageBox, _MessageBox); // Two Arguments DetourTransactionCommit();
MessageBox(NULL, L"We can't be hooked", L"Hello", 0); // Detach Hooked Function
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourDetach(&(PVOID&)TrueMessageBox, _MessageBox); DetourTransactionCommit();
}

运转顺序,第二个音讯框应为Unhooked,但因为我们将其钩住并修改了参数,所以音讯框如下图所示:

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

寻觅要钩住的函数

在举行任何挂钩之前,我们须要肯定感兴趣的函数。这些函数最好将我们感兴趣的数据作为参数;在本例中,是服务器主机名/IP、用户名和暗码。关于这类状况,API看管器是一个异常壮大的东西,它许可你附加到一个历程,纪录一切API挪用并阅读效果。

为此,我们将API看管器附加到mstsc.exe并启动一个示例衔接:

如今,我们能够在一切API挪用中搜刮作为用户名供应的字符串。在本例中,几个API挪用都包括此字符串,然则最值得注意的一个是CredIsMarshaledCredentialW。

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

经由历程MSDN,我们能够看到它只运用一个指向C Unicode字符串的long指针范例的参数。

新型勒索软件PureLocker现身,被Cobalt、FIN6等多个威胁组织使用

Intezer和IBM X-Force研究团队近期发现了一类新的勒索软件——PureLocker,它由一位资深的恶意软件即服务(MaaS)供应商在暗网上出售,并被Cobalt、FIN6等多个威胁组织使用。攻击者利用它对企业的生产服务器发起定向勒索攻击。 PureLocker与“more_eggs”后门恶意软件密切相关,它由PureBasic编程语言编写,针对的操作系统包括Windows和Linux。 PureLocker逃避检测的技术十分巧妙,出现几个月后才被安全人员发现,下面将介绍PureLocker的一些技术细节。 初步分析 分析的Windows样本是

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

为了确保经由历程挂钩此函数取得准确的数据,我们将Windbg附加到mstsc.exe,并在CredIsMarshaledCredentialW处设置一个断点。尝试登录时,我们能够看到通报给该函数的第一个参数是Unicode字符串的地点。

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

依据雷同的要领搜刮暗码字符串,然后能够看到对CryptProtectMemory的挪用,并带有指向暗码字符串的指针。

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

依据API看管器,CryptProtectMemory位于Crypt32.dll中,因为该函数是在最新版本的Win10上由dpapi.dll导出的,因而位置不准确。为了确保我们在此API挪用上也具有准确的数据,我们将Windbg附加到历程,并为CryptProtectMemory函数设置一个断点。

申博注册:从远程桌面客户端提取明文凭据的东西RdpThief

经由历程搜检内存,我们能够假定通报的参数是指向构造的指针。因为我们所须要的信息只是构造的最先,因而没必要完整剖析它。与前面的示例相反,该函数有多个挪用,个中不包括我们所须要的信息。我们能够观察到前4个字节中包括了暗码字符串的大小,从内存中读取大小,并比较它是不是大于0x2,假如前提为true,则意味着构造中包括暗码并可提取。

SspiPrepareForCredRead遵照雷同的历程,该历程吸收IP地点作为第二个参数。

RdpThief演示

如今,我们清楚地了解了须要挂钩哪些函数以提取信息,这些信息能够作为完成相似于RdpThief的功用的基本。

RdpThief自身是一个自力的DLL,当注入mstsc.exe历程时,它将实行API钩子,提取明文凭证并将其保存到文件中。它附带一个攻击者剧本,担任治理状况、看管新历程并将shellcode注入mstsc.exe。DLL已运用sRDI项目转换为shellcode。启用后,RdpThief将每5秒猎取一次历程列表,搜刮mstsc.exe后注入个中。

当将攻击者剧本加载到Cobalt Strike上时,将供应三个新敕令:

  • rdpthief_enable:启用对新的mstsc.exe历程的心跳搜检并将其注入。
  • rdpthief_disable:禁用新mstsc.exe的心跳搜检,但不会卸载已加载的DLL。
  • rdpthief_dump:打印提取的凭证(假如有的话)。

能够在此视频中找到RdpThief的简朴演示。

RdpThief东西源代码在此。

本文翻译自:https://www.mdsec.co.uk/2019/11/rdpthief-extracting-clear-text-credentials-from-remote-desktop-clients/​


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明申博注册:从远程桌面客户端提取明文凭据的东西RdpThief
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址