滲透技巧——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讀取當前系統的剪貼板信息
參考地址:
https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-ClipboardContents.ps1
測試如下圖
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 原創稿件, 授權嘶吼獨家發布,如若轉載,請聯繫嘶吼編輯: http://www.4hou.com/technology/10253.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※零知識證明與公鑰密碼體制有何聯繫,是不是公鑰密碼體制本身的簽名就是一種零知識證明?
※安全預警:Xshell 5官方版本被植入後門,更新即中招(國內已有用戶受影響)
※腳本木馬查殺原理的簡單探討
※這名黑客說,他能看到明星整容前的樣子
※參加 DEF CON、Black Hat 這樣的大會是一種怎樣的體驗?
TAG:信息安全 |