国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief

這篇具有很好參考價(jià)值的文章主要介紹了從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

導(dǎo)語:在本文中,我將描述我編寫的一個(gè)工具,能使用API鉤子從Microsoft RDP客戶端提取明文憑據(jù),而且如果是在已經(jīng)受感染用戶的權(quán)限下操作(比如網(wǎng)絡(luò)釣魚導(dǎo)致),并且該用戶已打開RDP會(huì)話,則可以提取明文憑據(jù)而無需提權(quán)。

介紹

遠(yuǎn)程桌面(RDP)是用于管理Windows Server的最廣泛使用的工具之一,除了被管理員使用外,也容易成為攻擊者的利用目標(biāo)。登錄到RDP會(huì)話的憑據(jù)通常用于是具有管理權(quán)限的,這也使得它們成為紅隊(duì)行動(dòng)的一個(gè)理想目標(biāo)。站在傳統(tǒng)的角度看,許多人傾向于使用LSASS進(jìn)行憑據(jù)盜竊,但是lsass.exe通常受到EDR和防病毒產(chǎn)品的監(jiān)視,而且對(duì)LSASS的操作通常需要權(quán)限訪問,于是我們自然就會(huì)考慮,有沒有一種更容易的替代方案?

在本文中,我將描述我編寫的一個(gè)工具,能使用API鉤子從Microsoft RDP客戶端提取明文憑據(jù),而且如果是在已經(jīng)受感染用戶的權(quán)限下操作(比如網(wǎng)絡(luò)釣魚導(dǎo)致),并且該用戶已打開RDP會(huì)話,則可以提取明文憑據(jù)而無需提權(quán)。

API鉤子

簡(jiǎn)單來說,API鉤子是通過將程序重定向到另一個(gè)函數(shù)來攔截程序中函數(shù)調(diào)用的過程。這是通過重新編寫目標(biāo)函數(shù)的內(nèi)存代碼來實(shí)現(xiàn)的。有幾種API掛鉤方法,技術(shù)都比較復(fù)雜,細(xì)述的話需要單獨(dú)的篇章。

而就本文而言,我們將使用到的是Microsoft Detours庫(kù),該庫(kù)是開源的,并且支持32位和64位進(jìn)程。其他框架(如Frida)也能提供類似的功能,但是Detours是非常輕量級(jí)的。為了演示這個(gè)庫(kù)有多么強(qiáng)大,我們將使用它為MessageBox函數(shù)創(chuàng)建一個(gè)鉤子。

鉤住函數(shù)之前,我們需要做兩件事,一個(gè)是包含原始函數(shù)地址和被鉤住函數(shù)地址的目標(biāo)指針,為了使鉤子正常工作,目標(biāo)函數(shù)和被鉤住的函數(shù)都應(yīng)具有相同數(shù)量的參數(shù)、參數(shù)類型和調(diào)用約定。

在下面的示例中,我們鉤住了MessageBox調(diào)用并修改了傳遞給原始函數(shù)的參數(shù)。

#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();
}

運(yùn)行程序,第二個(gè)消息框應(yīng)為Unhooked,但由于我們將其鉤住并修改了參數(shù),所以消息框如下圖所示:
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief

尋找要鉤住的函數(shù)

在進(jìn)行任何掛鉤之前,我們需要確定感興趣的函數(shù)。這些函數(shù)最好將我們感興趣的數(shù)據(jù)作為參數(shù);在本例中,是服務(wù)器主機(jī)名/IP、用戶名和密碼。對(duì)于這種情況,API監(jiān)視器是一個(gè)非常強(qiáng)大的工具,它允許你附加到一個(gè)進(jìn)程,記錄所有API調(diào)用并瀏覽結(jié)果。

為此,我們將API監(jiān)視器附加到mstsc.exe并啟動(dòng)一個(gè)示例連接:
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
現(xiàn)在,我們可以在所有API調(diào)用中搜索作為用戶名提供的字符串。在本例中,幾個(gè)API調(diào)用都包含此字符串,但是最值得注意的一個(gè)是CredIsMarshaledCredentialW。
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
通過MSDN,我們可以看到它只使用一個(gè)指向C Unicode字符串的long指針類型的參數(shù)。
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
為了確保通過掛鉤此函數(shù)獲得正確的數(shù)據(jù),我們將Windbg附加到mstsc.exe,并在CredIsMarshaledCredentialW處設(shè)置一個(gè)斷點(diǎn)。嘗試登錄時(shí),我們可以看到傳遞給該函數(shù)的第一個(gè)參數(shù)是Unicode字符串的地址。
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
按照相同的方法搜索密碼字符串,然后可以看到對(duì)CryptProtectMemory的調(diào)用,并帶有指向密碼字符串的指針。

從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
根據(jù)API監(jiān)視器,CryptProtectMemory位于Crypt32.dll中,由于該函數(shù)是在最新版本的Win10上由dpapi.dll導(dǎo)出的,因此位置不正確。為了確保我們?cè)诖薃PI調(diào)用上也具有正確的數(shù)據(jù),我們將Windbg附加到進(jìn)程,并為CryptProtectMemory函數(shù)設(shè)置一個(gè)斷點(diǎn)。
從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief
通過檢查內(nèi)存,我們可以假定傳遞的參數(shù)是指向結(jié)構(gòu)的指針。由于我們所需要的信息只是結(jié)構(gòu)的開始,因此不必完全解析它。與前面的示例相反,該函數(shù)有多個(gè)調(diào)用,其中不包含我們所需要的信息。我們可以觀察到前4個(gè)字節(jié)中包含了密碼字符串的大小,從內(nèi)存中讀取大小,并比較它是否大于0x2,如果條件為true,則意味著結(jié)構(gòu)中包含密碼并可提取。

SspiPrepareForCredRead遵循相同的過程,該過程接收IP地址作為第二個(gè)參數(shù)。

從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief

RdpThief演示

現(xiàn)在,我們清楚地了解了需要掛鉤哪些函數(shù)以提取信息,這些信息可以作為實(shí)現(xiàn)類似于RdpThief的功能的基礎(chǔ)。

RdpThief本身是一個(gè)獨(dú)立的DLL,當(dāng)注入mstsc.exe進(jìn)程時(shí),它將執(zhí)行API鉤子,提取明文憑據(jù)并將其保存到文件中。它附帶一個(gè)攻擊者腳本,負(fù)責(zé)管理狀態(tài)、監(jiān)視新進(jìn)程并將shellcode注入mstsc.exe。DLL已使用sRDI項(xiàng)目轉(zhuǎn)換為shellcode。啟用后,RdpThief將每5秒獲取一次進(jìn)程列表,搜索mstsc.exe后注入其中。

當(dāng)將攻擊者腳本加載到Cobalt Strike上時(shí),將提供三個(gè)新命令:

rdpthief_enable:?jiǎn)⒂脤?duì)新的mstsc.exe進(jìn)程的心跳檢查并將其注入。

rdpthief_disable:禁用新mstsc.exe的心跳檢查,但不會(huì)卸載已加載的DLL。

rdpthief_dump:打印提取的憑據(jù)(如果有的話)。

可以在此視頻中找到RdpThief的簡(jiǎn)單演示。

RdpThief工具源代碼在此。文章來源地址http://www.zghlxwxcb.cn/news/detail-433553.html

到了這里,關(guān)于從遠(yuǎn)程桌面客戶端提取明文憑證的工具RdpThief的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ChatGPT桌面客戶端支持gpt4模型,附使用說明

    ChatGPT桌面客戶端支持gpt4模型,附使用說明

    #軟件核心功能: 1、支持OpenAI官方秘鑰及API2D雙秘鑰使用;如果全局魔法,可以自己用官方秘鑰;沒魔法國(guó)內(nèi)可直接使用API2D秘鑰; 2、內(nèi)置GPT4模型選項(xiàng),如果你的官方秘鑰支持可直接使用;你也可以注冊(cè)API2D秘鑰進(jìn)行使用(非推廣,這真是國(guó)內(nèi)最簡(jiǎn)單的方式了); 3、支持連

    2024年02月07日
    瀏覽(22)
  • 一個(gè)現(xiàn)代化輕量級(jí)的跨平臺(tái)Redis桌面客戶端

    大家好,我是 Java陳序員 。 Redis 作為一款高性能的非關(guān)系型數(shù)據(jù)庫(kù),可是深受開發(fā)者的喜愛,無論是什么開發(fā),都能看到 Redis 的身影。 今天,給大家介紹一款跨平臺(tái)的 Redis 客戶端連接工具,功能強(qiáng)大,界面美觀! 關(guān)注微信公眾號(hào):【Java陳序員】,獲取開源項(xiàng)目分享、AI副

    2024年04月08日
    瀏覽(90)
  • SSH客戶端連接遠(yuǎn)程服務(wù)器

    目錄 一、什么是客戶端連接遠(yuǎn)程服務(wù)器 二、什么是服務(wù)端連接遠(yuǎn)程服務(wù)器 三、查看網(wǎng)絡(luò)信息 1、圖形程序查看網(wǎng)絡(luò)信息 2、命令查看網(wǎng)絡(luò)信息 四、SSH客戶端(Linux) 五、SSH客戶端(windows) 六、SSH遠(yuǎn)程服務(wù)器 發(fā)起連接的一方,計(jì)算機(jī)或設(shè)備(稱為客戶端)與另一個(gè)計(jì)算機(jī)或

    2024年02月16日
    瀏覽(17)
  • Config:客戶端連接服務(wù)器訪問遠(yuǎn)程

    Config:客戶端連接服務(wù)器訪問遠(yuǎn)程

    springcloud-config: springcloud-config push ? ?pom ? ? ?

    2024年02月11日
    瀏覽(27)
  • 云備份客戶端——客戶端整體設(shè)計(jì)框架以及實(shí)用類工具實(shí)現(xiàn)

    客戶端要實(shí)現(xiàn)的功能和服務(wù)端相比相對(duì)簡(jiǎn)單,客戶端要實(shí)現(xiàn)的功能是 自動(dòng)對(duì)指定文件中的文件進(jìn)行備份,也就是定時(shí)對(duì)指定文件進(jìn)行掃描,根據(jù)文件信息判斷文件,符合要求(新文件或者被修改過的文件)進(jìn)行上傳 因此我們客戶端大概需要實(shí)現(xiàn)下面三個(gè)模塊 數(shù)據(jù)管理模塊:

    2024年02月09日
    瀏覽(27)
  • C# 客戶端程序 Visual Studio 遠(yuǎn)程調(diào)試方法

    C# 客戶端程序 Visual Studio 遠(yuǎn)程調(diào)試方法

    傳統(tǒng)桌面客戶端的遠(yuǎn)程調(diào)試相比 UWP , ASP 等項(xiàng)目來說,配置比較麻煩,因?yàn)樗欠遣渴鸬膽?yīng)用程序,原理是復(fù)制編譯的文件到遠(yuǎn)程計(jì)算機(jī),通過網(wǎng)絡(luò)來連接和 VS 的通信,本文主要講述 WPF , WinForm 應(yīng)用程序的遠(yuǎn)程調(diào)試。 下載適合 Visual Studio 版本的最新遠(yuǎn)程工具。 最新的遠(yuǎn)程工

    2024年02月08日
    瀏覽(29)
  • 客戶端負(fù)載均衡工具Ribbon

    客戶端負(fù)載均衡工具Ribbon

    Ribbon介紹 目前主流的負(fù)載方案分為以下兩種: 集中式負(fù)載均衡,在消費(fèi)者和服務(wù)提供方中間使用獨(dú)立的代理方式進(jìn)行負(fù)載,有硬件的(比如 F5),也有軟件的(比如 Nginx)。 客戶端根據(jù)自己的請(qǐng)求情況做負(fù)載均衡,Ribbon 就屬于客戶端自己做負(fù)載均衡。 Spring Cloud Ribbon是基于

    2024年02月09日
    瀏覽(21)
  • elasticsearch 客戶端工具ESClientRHL

    elasticsearch 客戶端工具Elasticsearch-ESClientRHL Elasticsearch-ESClientRHL: EsClientRHL是一個(gè)可基于springboot的elasticsearch 客戶端調(diào)用封裝工具,通過elasticsearch官網(wǎng)推薦的RestHighLevelClient實(shí)現(xiàn),內(nèi)置了es索引結(jié)構(gòu)工具、es索引數(shù)據(jù)增刪改工具、es查詢工具、es數(shù)據(jù)分析工具或者es用法腳手架,能夠

    2024年02月15日
    瀏覽(21)
  • 做個(gè)小工具-WebSocket客戶端

    做個(gè)小工具-WebSocket客戶端

    由于工作的原因經(jīng)常需要用到一些socket,串口等調(diào)試工具,但是好多工具要么只有其中幾個(gè)或者各種收費(fèi),不斷提醒捐助等。所以還是自己做一個(gè)吧。畢竟也不復(fù)雜。今天先做個(gè)WebSocket客戶端。WebSocket使用了開源組件WatsonWebsocket。 先上圖 View的代碼 ViewModel的代碼 servervice的代

    2024年02月15日
    瀏覽(21)
  • SpringCloud系列篇:核心組件之聲明式HTTP客戶端組件【遠(yuǎn)程消費(fèi)】

    SpringCloud系列篇:核心組件之聲明式HTTP客戶端組件【遠(yuǎn)程消費(fèi)】

    接下來看看由輝輝所寫的關(guān)于SpringCloud的相關(guān)操作吧 目錄 ????Welcome Huihui\\\'s Code World ! !???? 一.?遠(yuǎn)程消費(fèi)組件是什么 二.?遠(yuǎn)程消費(fèi)組件的詳解 場(chǎng)景模擬 代碼實(shí)操 1.生產(chǎn)者 2.消費(fèi)者 3.復(fù)雜參數(shù)的處理 DTO 屬性賦值 ???????? 聲明式HTTP客戶端組件是一種用于簡(jiǎn)化HTTP請(qǐng)求的

    2024年02月02日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包