Envoi dâun Message Popup Ă une Machine Distante (Linux et Windows)
Ce tutoriel vous guide dans lâenvoi dâun message popup (affichage dâune notification ou dâune alerte) sur une machine distante, quâelle soit sous Linux ou Windows. Lâobjectif est dâafficher le message suivant : "Salut, ceci est de Platon-y".
đŻ Sommaire
- Introduction et Pré-requis
- Partie 1 : Envoi dâun Message sur Linux avec
zenity
- Partie 2 : Envoi dâun Message sur Linux avec
notify-send
- Partie 3 : Envoi dâun Message en Mode Console avec
wall
- Partie 4 : Envoi dâun Message sur Windows avec
smbclient
- Partie 5 : Envoi dâun Message sur Windows avec
msg.exe
- Script Bash Multiplateforme pour Automatisation
đ Introduction et PrĂ©-requis
Pour réussir cette opération, vous devez :
- Disposer de lâadresse IP de la machine cible.
- Avoir les droits dâaccĂšs nĂ©cessaires pour se connecter aux machines (SSH pour Linux, accĂšs rĂ©seau SMB pour Windows).
- ConnaĂźtre la configuration de la machine cible : session graphique (pour
zenity
etnotify-send
) ou uniquement console.
Partie 1 : Envoi dâun Message sur Linux avec zenity
Objectif
Utiliser zenity
pour afficher un message graphique sur la machine Linux cible, si elle dispose dâune session graphique active.
Ătapes
- Assurez-vous que
zenity
est installé sur la machine cible :
sudo apt update && sudo apt install zenity
Ensuite, envoyez le message :
ssh utilisateur@IP_CIBLE "DISPLAY=:0 zenity --info --text='Salut, ceci est de Platon-y'"
Cette commande utilise DISPLAY=:0
pour afficher le message sur lâĂ©cran principal.
Partie 2 : Envoi dâun Message sur Linux avec notify-send
Objectif
Utiliser notify-send
pour afficher une notification systĂšme. notify-send
est souvent installé par défaut sur les distributions Linux.
Ătapes
ssh utilisateur@IP_CIBLE "DISPLAY=:0 notify-send 'Salut, ceci est de Platon-y'"
Comme pour zenity
, DISPLAY=:0
est utilisĂ© pour indiquer oĂč afficher la notification.
Partie 3 : Envoi dâun Message en Mode Console avec wall
Objectif
Utiliser wall
pour envoyer le message dans la console de tous les utilisateurs connectés. Utile pour les machines sans interface graphique.
Ătapes
ssh utilisateur@IP_CIBLE "echo 'Salut, ceci est de Platon-y' | wall"
Cette commande affiche le message sur tous les terminaux actifs de la machine cible.
Partie 4 : Envoi dâun Message sur Windows avec smbclient
Objectif
Utiliser smbclient
pour envoyer un message Ă une machine Windows via le protocole SMB.
Ătapes
echo "Salut, ceci est de Platon-y" | smbclient -M IP_CIBLE
Note : La machine Windows doit ĂȘtre configurĂ©e pour accepter les messages SMB.
Partie 5 : Envoi dâun Message sur Windows avec msg.exe
Objectif
Utiliser msg.exe
pour envoyer un message aux utilisateurs dâune machine Windows.
Ătapes
net rpc -S IP_CIBLE -U "DOMAINE\\Utilisateur" -c "msg * Salut, ceci est de Platon-y"
Cette commande utilise net rpc
pour envoyer un message via msg.exe
à tous les utilisateurs connectés à la machine cible.
Script Bash Multiplateforme pour Automatisation
Ce script dĂ©tecte le type de machine (Linux ou Windows) et choisit la mĂ©thode dâenvoi appropriĂ©e pour afficher le message âSalut, ceci est de Platon-yâ :
#!/bin/bash
IP_CIBLE="192.168.1.100"
USER_LINUX="utilisateur_linux"
USER_WINDOWS="utilisateur_windows"
DOMAINE_WINDOWS="WORKGROUP"
if ping -c 1 $IP_CIBLE &> /dev/null; then
echo "Connexion réussie à $IP_CIBLE."
if ssh -o ConnectTimeout=3 $USER_LINUX@$IP_CIBLE "echo test" &> /dev/null; then
ssh $USER_LINUX@$IP_CIBLE "DISPLAY=:0 zenity --info --text='Salut, ceci est de Platon-y'" || \
ssh $USER_LINUX@$IP_CIBLE "DISPLAY=:0 notify-send 'Salut, ceci est de Platon-y'" || \
ssh $USER_LINUX@$IP_CIBLE "echo 'Salut, ceci est de Platon-y' | wall"
elif echo "Salut, ceci est de Platon-y" | smbclient -M $IP_CIBLE &> /dev/null; then
echo "Message envoyé via SMB sur Windows."
elif net rpc -S $IP_CIBLE -U "$DOMAINE_WINDOWS\\$USER_WINDOWS" -c "msg * Salut, ceci est de Platon-y" &> /dev/null; then
echo "Message envoyé via RPC sur Windows."
else
echo "Type de machine non reconnu ou Ă©chec de l'envoi."
fi
else
echo "La machine $IP_CIBLE ne répond pas."
fi
Ce script essaie chaque mĂ©thode jusquâĂ ce quâune commande fonctionne, garantissant une couverture maximale pour lâenvoi du message.
đ„ Bonus : MĂ©thodes Alternatives pour Message Popup
Pour ceux qui aiment explorer dâautres moyens dâenvoyer des messages, voici quelques astuces alternatives. Ces mĂ©thodes sont rĂ©servĂ©es Ă des tests en environnement contrĂŽlĂ© et sont particuliĂšrement utiles dans les simulations Red Team.
1. Script PowerShell Caché pour Windows
Exécutez ce script pour afficher une boßte de message en arriÚre-plan via PowerShell :
powershell -command "[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Salut, ceci est de Platon-y')"
Astuce furtive : Utilisez powershell -windowstyle hidden
pour exĂ©cuter la commande en mode cachĂ©, sans que la fenĂȘtre PowerShell soit visible.
2. Notifications Toasts sur Windows 10+
Créez une notification toast en utilisant PowerShell et un script XML.
- Créez un fichier XML de notification (par ex.,
notif.xml
) avec le contenu suivant :
<toast>
<visual>
<binding template="ToastGeneric">
<text>Message de Platon-y</text>
<text>Salut, ceci est de Platon-y</text>
</binding>
</visual>
</toast>
- Envoyez la notification avec PowerShell :
powershell -command "New-BurntToastNotification -Xml (Get-Content notif.xml)"
Note : Assurez-vous que le module BurntToast
est installé avec Install-Module -Name BurntToast
.
3. Messages sur le Port SMB (445)
Si le port 445 (SMB) est ouvert, utilisez cette méthode pour écrire un message dans un partage ouvert :
smbclient //IP_CIBLE/partage$ -U utilisateur -c "echo 'Message : Salut de Platon-y' > Alerte.txt"
Ce message apparaĂźtra dans le partage et peut attirer l'attention.
4. Notifications via D-Bus sur Linux
Les systĂšmes Linux modernes utilisent D-Bus pour les notifications systĂšme. Envoyez une alerte par D-Bus :
dbus-send --session --dest='org.freedesktop.Notifications' --type=method_call \
--print-reply /org/freedesktop/Notifications org.freedesktop.Notifications.Notify \
string:"" uint32:0 string:"" string:"Alerte Platon-y" string:"Salut, ceci est de Platon-y" array:string:"" dict:string:string:"" int32:5000
Cette commande envoie une notification directement via D-Bus.
5. Messages In-App (Slack, Teams)
Si des applications comme Slack ou Teams sont utilisĂ©es, envoyez des notifications directement dans lâapplication via leur API.
import requests
url = "https://slack.com/api/chat.postMessage"
token = "YOUR_SLACK_TOKEN"
headers = {
"Authorization": f"Bearer {token}"
}
data = {
"channel": "#general",
"text": "Salut, ceci est de Platon-y"
}
response = requests.post(url, headers=headers, data=data)
Utilisez un jeton dâAPI Slack pour envoyer le message directement dans un canal cible.