標籤:

滲透技巧——Windows下的剪貼板

0x00 前言

在Windows系統下,剪貼板是一個常見的功能,這其中有哪些可被利用的地方呢?本文將嘗試整理這部分內容。

0x01 簡介

本文將要介紹以下內容:

· 寫入剪貼板的方法

· 讀取剪貼板的方法

· 利用思路

0x02 剪貼板簡介

剪貼板是指windows操作系統提供的一個暫存數據和共享數據的模塊,可理解為數據中轉站

剪貼板的內容保存在內存中,所以系統重啟後,保存的數據丟失

XP系統支持剪貼板查看器clipbrd.exe(Win7後移除),可查看剪貼板內容

剪貼板查看器clipbrd.exe不需要安裝,可直接在其他系統(例如Win7)下使用

複製數據後,在剪貼板查看器clipbrd.exe中實時顯示複製的內容,如下圖

0x03 寫入剪貼板的方法

1、Ctrl+C

複製數據,或者通過快捷鍵Ctrl+C,數據保存到剪貼板中

2、cmd下的方法

將whoami輸出的內容複製到剪貼板上:

whoami|clip

如下圖

將11.txt的內容複製到剪貼板上:

clip<11.txt

如下圖

3、程序調用API實現

c++測試代碼如下:

#include <windows.h>BOOL CopyToClipboard(char* pszData){ if(::OpenClipboard(NULL)) { ::EmptyClipboard(); HGLOBAL clipbuffer; char *buffer; clipbuffer = ::GlobalAlloc(GMEM_DDESHARE, strlen(pszData)+1); buffer = (char *)::GlobalLock(clipbuffer); strcpy_s(buffer,strlen(pszData)+1, pszData); ::GlobalUnlock(clipbuffer); ::SetClipboardData(CF_TEXT, clipbuffer); ::CloseClipboard(); return TRUE; } return FALSE;}int main(int argc, char* argv[]){ CopyToClipboard("clipcopydatatest"); return 0;}

執行如下圖

0x04 讀取剪貼板的內容

1、Ctrl+V

粘貼數據,或者通過快捷鍵Ctrl+V,讀取剪貼板中保存的數據

2、讀取工具

剪貼板查看器clipbrd.exe

3、程序調用API實現

c++測試代碼如下:

#include <windows.h>BOOL GetTextFromClipboard(){ if(::OpenClipboard(NULL)) { HGLOBAL hMem = GetClipboardData(CF_TEXT); if(NULL != hMem) { char* lpStr = (char*)::GlobalLock(hMem); if(NULL != lpStr) { printf("%s",lpStr); ::GlobalUnlock(hMem); } } ::CloseClipboard(); return TRUE; } return FALSE;}int main(int argc, char* argv[]){ GetTextFromClipboard(); return 0;}

成功讀取剪貼板內容,執行如下圖

註:

也可以模擬鍵盤輸入Ctrl+V,獲得剪貼板內容

0x05 利用思路

1、實時捕獲剪貼板內容

滲透測試中,在取得系統控制許可權後,會嘗試讀取用戶的剪貼板內容,獲得有價值的信息

而實際利用上,最好能夠實時捕獲剪貼板的內容,配合鍵盤記錄,能夠全面監控用戶的登錄輸入內容

在程序實現上,可以加一個循環判斷,如果剪貼板內容改變,就記錄下來

(1) 使用c++讀取當前系統的剪貼板信息

代碼參考上節內容,加入循環判斷,寫入文件的功能,代碼暫略

(2) 使用powershell讀取當前系統的剪貼板信息

參考地址:

github.com/EmpireProjec

測試如下圖

2、Pastejacking

用作釣魚網站,欺騙用戶複製網址中的一段內容,劫持copyTextToClipboard事件,在複製的內容中加入惡意代碼

複製內容echo "not evil",實際剪貼板獲得的內容為echo "evil"

測試如下圖

3、修改配置允許IE瀏覽器讀取剪貼板內容

頁面內容:

<!DOCTYPE html><html><script type="text/javascript">var content = clipboardData.getData("Text");if (content!=null) { document.write(content);}else { document.write(No text found in clipboard.);}</script></html>

用戶通過IE瀏覽器訪問,默認情況下會彈框提示是否允許此網頁訪問剪貼板

如下圖

選擇允許訪問,網頁獲得剪貼板內容,如下圖

註:

Chrome、Firefox瀏覽器不允許通過getData訪問用戶的剪貼板內容

如果獲得了用戶系統的許可權,可以修改IE配置,允許網頁訪問剪貼板

修改方式如下:

Internet選項 -> 安全 -> 自定義級別

設置 -> 腳本 -> 允許對剪貼板進行編程訪問 -> 啟用

如下圖

對應註冊表鍵值HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settingsones3下的1407

· 0表示允許

· 1表示提示

· 3表示禁止

修改註冊表設置允許訪問剪貼板的命令為:

REG ADD "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settingsones3" /v 1407 /t REG_DWORD /d 00000000 /f

重啟IE瀏覽器後,配置生效

訪問網頁自動獲得剪貼板內容,如下圖

0x06 小結

本文介紹了Windows系統下剪貼板在滲透測試中的相關利用技巧,通過實例演示後滲透階段的利用方法

本文為 3gstudent 原創稿件, 授權嘶吼獨家發布,如若轉載,請聯繫嘶吼編輯: 4hou.com/technology/102 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

零知識證明與公鑰密碼體制有何聯繫,是不是公鑰密碼體制本身的簽名就是一種零知識證明?
安全預警:Xshell 5官方版本被植入後門,更新即中招(國內已有用戶受影響)
腳本木馬查殺原理的簡單探討
這名黑客說,他能看到明星整容前的樣子
參加 DEF CON、Black Hat 這樣的大會是一種怎樣的體驗?

TAG:信息安全 |