Surveillez les connexions sur votre ordinateur avec WinlogonView — guide complet RSSI

Surveillez les connexions sur votre ordinateur avec WinlogonView — guide complet RSSI

1. Introduction & objectifs

Ce tutoriel explique en détail comment surveiller, analyser et répondre aux connexions sur un poste ou serveur Windows à l’aide de WinlogonView (outil NirSoft). Le contenu est conçu pour les équipes techniques (RSSI, SOC, administrateurs) et fournit :

  • une procédure clic-par-clic pour télécharger, exécuter et configurer WinlogonView ;
  • une description complète des colonnes et filtres à utiliser ;
  • des cas concrets d’utilisation (détection d’accès RDP, comptes locaux inattendus, sessions persistantes) ;
  • des scripts PowerShell prêts à déployer pour la surveillance automatisée et l’alerte ;
  • une étude de cas opérationnelle traitée de bout en bout.

Objectif : permettre à vos équipes de détecter rapidement des logons suspects, d’enregistrer les preuves et d’intégrer la collecte dans un flux d’investigation ou un SIEM.

2. Qu’est-ce que WinlogonView et pourquoi l’utiliser ?

WinlogonView est un utilitaire léger développé par NirSoft qui extrait et affiche les événements de logon/logoff depuis le journal d’événements Windows et la base de registre pertinente (historique local). Avantages :

  • Interface légère et portable (pas d’installation obligatoire).
  • Affiche le nom d’utilisateur, l’heure de logon, le type de session, le mécanisme d’authentification et la durée.
  • Permet l’export CSV/HTML/texte pour ingestion ou preuve.
  • Utile pour enquête initiale et audits rapides lorsque l’accès à Event Viewer est trop verbeux.

Limitation : WinlogonView ne remplace pas une analyse forensique complète — il fournit un aperçu rapide et des exports exploitables.

3. Pré-requis et recommandations de sécurité avant installation

  • Accès administrateur local recommandé pour lecture complète des journaux.
  • Vérifier la politique antivirus de l’entreprise : NirSoft peut être signalé comme outil admin (false positive). Obtenir une autorisation préalable et inscrire l’exécutable en exception si nécessaire.
  • Prévoir un poste d’analyse isolé pour manipuler preuves si incident en cours.
  • Sauvegarder (exporter) les journaux Windows avant manipulation : Windows Logs → Security → Save All Events As….
  • Adopter la chaîne de custody si le système est potentiellement compromis (documenter qui fait quoi).

4. Téléchargement, installation et exécution étape par étape

Lien officiel WinlogonView (NirSoft) — télécharger uniquement depuis le site officiel :
WinlogonView — https://www.nirsoft.net/utils/winlogonview.html

4.1 Télécharger l’outil

  1. Ouvrez votre navigateur d’administration (Chrome/Edge/Firefox).
  2. Tapez ou copiez-collez dans la barre d’adresse : https://www.nirsoft.net/utils/winlogonview.html → appuyez Entrée.
  3. Sur la page NirSoft, descendez jusqu’à la section Download WinlogonView.
  4. Cliquez sur le lien Download WinlogonView (in ZIP file) → le fichier ZIP sera téléchargé dans le dossier Téléchargements.

4.2 Vérifier le fichier et le dézipper (pas à pas)

  1. Ouvrez Explorateur de fichiersC:\Users\<VotreCompte>\Downloads.
  2. Clic droit sur winlogonview.zip → sélectionnez Extraire tout….
  3. Dans la fenêtre Extraire les fichiers, choisissez un dossier d’extraction sûr, par exemple C:\Outils\WinlogonView\ → cliquez Extraire.

4.3 Exécuter WinlogonView (pas à pas)

  1. Naviguez vers le dossier d’extraction : C:\Outils\WinlogonView\.
  2. Clic droit sur WinLogonView.exeExécuter en tant qu’administrateur. (Saisissez les identifiants admin si demandés.)
  3. À la première exécution, Windows SmartScreen ou l’antivirus peut bloquer :
    • Si SmartScreen affiche un avertissement → cliquez Informations complémentairesExécuter quand même (après validation que l’origine est NirSoft).
    • Si l’antivirus bloque, suivez la procédure interne : mettre le fichier en liste blanche dans la console AV (procédure à documenter et approbation requise).

Remarque opérationnelle : pour les environnements règlementés, exécuter l’outil depuis un poste d’investigation et non directement sur la machine de production si possible.

5. Navigation dans l’interface WinlogonView — explications détaillées

À l’ouverture, l’interface présente une table. Colonnes principales (terminologie conforme à WinlogonView) :

  • Logon ID : identifiant de session (utile pour corrélation).
  • User : nom de compte utilisateur (DOMAIN\User ou HOST\User).
  • Logon Time : date/heure d’ouverture de session.
  • Logoff Time : date/heure de fermeture si disponible.
  • Duration : durée de la session.
  • Logon Type : type d’ouverture (expliqué ci-dessous).
  • Authentication Package : méthode d’authentification (NTLM, Kerberos, etc.).
  • Workstation Name : nom de poste d’origine si applicable.
  • Process Name / Process Path : si disponible, processus ayant initié la session.
  • Source IP : si la connexion provient d’un réseau (RDP), l’IP d’origine peut apparaître (selon logs).

5.1 Signification des Logon Types (traduction et usage)

  • 2 : Interactive (connexion locale).
  • 3 : Network (accès réseau, ex. SMB).
  • 4 : Batch (tâches planifiées).
  • 7 : Unlock (déverrouillage workstation).
  • 10 : RemoteInteractive (RDP).
  • 11 : CachedInteractive (connexion avec credential mis en cache).

Procédure recommandée : trier par Logon Time (clic sur l’en-tête) pour repérer pics d’activité, puis filtrer par Logon Type = 10 pour lister les connexions RDP.

5.2 Filtres & recherche (pas à pas)

  1. Dans la barre, cliquer sur OptionsAdvanced Options → activer Load logon sessions from Event Log and from Registry.
  2. Pour filtrer : menu EditFind (Ctrl+F) → saisir un nom d’utilisateur ou une IP.
  3. Pour filtrer par type : ViewFilter → sélectionnez Logon Type → cochez les types souhaités → OK.

5.3 Export & sauvegarde (preuve)

  • Export CSV : sélectionner lignes (Ctrl+A pour tout) → FileSave Selected Items → choisir format CSV → entrer chemin C:\Investigation\winlogon_export.csvSave.
  • Export HTML : FileSave Selected Items → choisir HTML pour rapport visuel.
  • Copy to Clipboard : sélectionner une ligne → EditCopy Selected Items → coller dans un document d’incident.

6. Cas d’usage concrets et procédures étape par étape

6.1 Détecter une connexion RDP suspecte

Objectif : identifier des connexions RDP (Logon Type 10) hors horaire ou depuis IP étrangères.

Procédure :

  1. Ouvrir WinlogonView (voir section 4).
  2. Trier sur colonne Logon Type → cliquer sur l’en-tête pour trier.
  3. Rechercher les lignes où Logon Type = 10 (RemoteInteractive) → si la colonne Source IP est disponible, notez l’IP.
  4. Exporter ces lignes : sélectionner les lignes → File → Save Selected ItemsC:\Investigations\RDP_sessions.csv.
  5. Pour chaque IP détectée, effectuer une vérification DNS/reverse : ouvrir PowerShell et exécuter :
Resolve-DnsName -Name <IP> -ErrorAction SilentlyContinue
  1. Si IP externe inconnue → bloquer l’IP sur le firewall / NAC, et isoler la machine concernée.

6.2 Identifier des comptes locaux non autorisés

  1. Dans WinlogonView, trier par User.
  2. Rechercher comptes avec noms inhabituels (ex. : svc_*, admin2, support_local).
  3. Exporter et comparer avec alphabet des comptes approuvés (fichier approved_accounts.csv) via Excel ou script PowerShell.

6.3 Corréler logon avec processus suspects

  1. Repérer session avec Duration très courte mais activité réseau élevée.
  2. Noter Logon ID et Process Name (si présent).
  3. Sur le poste, lancer (en tant qu’admin) :
tasklist /SVC | findstr <ProcessName>
netstat -ano | findstr <PID>
  1. Si le PID correspond à un exécutable inconnu, faire une capture MD5/SHA256 :
Get-FileHash -Path "C:\Path\to\process.exe" -Algorithm SHA256

7. Scripts PowerShell pour surveillance et alerte — code complet & déployable

Remarque : ces scripts sont pensés pour un usage interne sur vos postes/serveurs. Ils ne contiennent aucune instruction pour exploitation offensive. Tous les scripts stockent des logs localement et peuvent être adaptés pour envoi au SIEM.

7.1 Script : Export journalier des sessions WinlogonView (via Event Log)

Ce script exporte toutes les sessions RDP (EventID 4624 avec LogonType 10) des dernières 24 heures et les écrit en CSV. À exécuter en tâche planifiée.

Fichier : Export-RDPSessions.ps1

# Export-RDPSessions.ps1
# Export RDP logons (4624 with LogonType 10) from Security event log for last 24 hours
$now = Get-Date
$since = $now.AddDays(-1)
$outCsv = "C:\Monitoring\RDP_Logons_$((Get-Date).ToString('yyyyMMdd_HHmmss')).csv"
$events = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id = 4624
    StartTime = $since
} -ErrorAction SilentlyContinue

$results = @()
foreach ($evt in $events) {
    $xml = [xml]$evt.ToXml()
    $data = @{
        TimeCreated = $evt.TimeCreated
        TargetUserName = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'TargetUserName' } | Select-Object -ExpandProperty '#text'
        TargetDomainName = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'TargetDomainName' } | Select-Object -ExpandProperty '#text'
        LogonType = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'LogonType' } | Select-Object -ExpandProperty '#text'
        IpAddress = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'IpAddress' } | Select-Object -ExpandProperty '#text'
        ProcessName = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'ProcessName' } | Select-Object -ExpandProperty '#text'
        LogonId = $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'TargetLogonId' } | Select-Object -ExpandProperty '#text'
    }
    if ($data.LogonType -eq '10') {
        $results += New-Object PSObject -Property $data
    }
}
$results | Export-Csv -Path $outCsv -NoTypeInformation -Encoding UTF8
Write-Host "Exported $($results.Count) RDP sessions to $outCsv"

Déploiement (étape par étape) :

  1. Copier Export-RDPSessions.ps1 dans C:\Monitoring\.
  2. Ouvrir Task SchedulerCreate Task.
  3. Onglet General : nom Export RDP Sessions Daily ; cocher Run whether user is logged on or not ; cocher Run with highest privileges.
  4. Onglet TriggersNew → Begin the task: On a schedule → Daily → Recur every: 1 day → Choose time (ex : 02:05) → OK.
  5. Onglet ActionsNew → Action: Start a program → Program/script: powershell.exe → Add arguments:
-ExecutionPolicy Bypass -File "C:\Monitoring\Export-RDPSessions.ps1"

OK.

  1. Onglet Conditions/Settings : configurer selon politique. → OK.
  2. Entrez credentials d’un compte admin pour la tâche.

7.2 Script : Détecter nouvelles IPs RDP et envoyer alerte (écrire fichier + notifier SIEM)

Ce script compare les IPs RDP extraites à la précédente liste et écrit un fichier d’alerte si une nouvelle IP apparaît.

Fichier : Detect-NewRDPIPs.ps1

# Detect-NewRDPIPs.ps1
$csvFolder = "C:\Monitoring\"
$lastCsv = Get-ChildItem -Path $csvFolder -Filter "RDP_Logons_*.csv" | Sort-Object LastWriteTime -Descending | Select-Object -First 2
if ($lastCsv.Count -lt 2) { Write-Host "Not enough CSVs to compare"; exit 0 }

$new = Import-Csv $lastCsv[0].FullName
$old = Import-Csv $lastCsv[1].FullName

$newIps = $new | Select-Object -ExpandProperty IpAddress | Where-Object { $_ -and $_ -ne '::1' -and $_ -ne '127.0.0.1' } | Sort-Object -Unique
$oldIps = $old | Select-Object -ExpandProperty IpAddress | Where-Object { $_ -and $_ -ne '::1' -and $_ -ne '127.0.0.1' } | Sort-Object -Unique

$newOnly = $newIps | Where-Object { $_ -notin $oldIps }

if ($newOnly) {
    $alertFile = "C:\Monitoring\Alerts\NewRDPIPs_$((Get-Date).ToString('yyyyMMdd_HHmmss')).txt"
    $newOnly | Out-File -FilePath $alertFile -Encoding UTF8
    Write-Host "New RDP IPs detected: $($newOnly -join ', ') - alert written to $alertFile"
    # Option: forward alert file to SIEM ingestion directory or call API
    # Example: copy to \\SIEMServer\inbox\
    # Copy-Item -Path $alertFile -Destination "\\s1-siem\inbox\"
} else {
    Write-Host "No new RDP IPs"
}

Déploiement :

  • Créer dossier C:\Monitoring\Alerts\ et planifier l’exécution 5 minutes après l’export quotidien avec Task Scheduler.

8. Intégration avec SIEM / export et automatisation

  • Export CSV/JSON : WinlogonView → File → Save Selected Items → CSV. Configuration recommandée : UTF-8, séparateur ; si environnement francophone.
  • Intégration : copier le CSV vers un dossier surveillé par un forwarder (Filebeat, NXLog) ou directement vers un share \\SIEM\inbox\.
  • Automatisation : planifier Task Scheduler pour exécuter un PowerShell qui lance WinlogonView en mode console (WinlogonView supporte ligne de commande) et exporte automatiquement. Exemple CLI :
WinLogonView.exe /scomma C:\Monitoring\winlogon_export.csv

(Vérifier la syntaxe avec l’exécutable présent.)

9. Bonnes pratiques opérationnelles et limites

  • Autorisation : toujours obtenir l’accord de la direction avant de déployer des outils NirSoft sur postes clients.
  • False positives : sessions légitimes (VPN reconnects, mises à jour services) peuvent apparaître comme suspicion ; faire corrélation avec support tickets et horaires métiers.
  • Conservation des logs : centraliser logs Windows Security sur un SIEM pour corrélation (Event IDs à suivre : 4624, 4634, 4672, 4776, 4778, 4779).
  • Limitation : WinlogonView ne remplace pas l’analyse complète des Event Logs ; utiliser en complément d’Event Viewer et d’outils EDR/EDR.

10. Étude de cas complète — Détection → Investigation → Remédiation

Contexte

  • Serveur SRV-APP01 accessible via RDP ; alerte SOC : utilisateur se plaint d’accès non autorisé.
  • But : détecter, collecter preuves, bloquer IP, restaurer sessions et rapporter.

Étapes (procédure opérationnelle détaillée)

A. Alerte et première action (0–10 min)

  1. SOC reçoit mail : “Connexion suspecte” → active ticket.
  2. SOC demande à l’utilisateur de déconnecter immédiatement et d’isoler le poste.
  3. SOC ouvre WinlogonView sur SRV-APP01 (exécution en admin).

B. Extraction rapide avec WinlogonView (10–20 min)

  1. Ouvrir WinlogonView → dans la colonne Logon Type trier et filtrer sur 10.
  2. Repérer la session à l’heure suspecte — noter Logon ID, User, Time, Source IP.
  3. Exporter ligne vers C:\Investigations\SRV-APP01_RDP.csv.
  4. Capture écran de la ligne : Alt+PrintScreen → coller dans Word / sauvegarder PNG.

C. Vérification et corrélation (20–60 min)

  1. Avec la Source IP détectée, exécuter sur SOC :
Test-NetConnection -ComputerName <IP> -Port 3389
  1. Rechercher Event Log 4624 pour la même Logon ID :
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddHours(-2)} | Where-Object { $_.ToXml() -like '*<Data Name="TargetLogonId">0x123456</Data>*' }
  1. Si corrélation ok → bloquer IP sur firewall (procédure CLI/GUI selon équipement).
    • Exemple FortiGate GUI : Policy & Objects → IPv4 Policy → Edit deny rule → Add Source IP → Save.

D. Collecte forensic (60–180 min)

  1. Créer image disque et hash (voir section 3).
  2. Exporter Security Event Log : Event Viewer → Security → Save All Events As… → SRV-APP01_Security.evtx.
  3. Remettre copies dans dossier \\Forensics\SRV-APP01\ avec hash.

E. Remédiation (3–24h)

  1. Réinitialiser le mot de passe de l’utilisateur impacté ; forcer logout de toutes sessions.
  2. Scanner serveur avec EDR/AV ; appliquer updates.
  3. Si criminalité avérée → notifier autorités & assureur.

F. Rapport & leçons (24–48 h)

  1. Générer rapport incident avec exports WinlogonView, captures écran, hashes, timeline.
  2. Revue post-mortem : appliquer MFA pour RDP, limiter scope RDP via firewall, sensibiliser.

11. Checklist opérationnelle

  • Autorisation préalable obtenue pour exécution des outils admin.
  • Téléchargement WinlogonView depuis NirSoft : https://www.nirsoft.net/utils/winlogonview.html
  • Exécution en mode administrateur et ajout en exception AV si requis.
  • Export CSV/HTML des sessions pertinentes sauvegardé dans répertoire d’investigation.
  • Correlation avec Event Logs (IDs 4624, 4634, 4672) et capture evidences (.evtx).
  • Script d’export quotidien déployé (Task Scheduler + Export-RDPSessions.ps1).
  • Alerte automatique en cas de nouvelle IP détectée (Detect-NewRDPIPs.ps1).
  • Transfert sécurisé des preuves vers dossier SIEM/forensic.
  • Rapport d’incident généré et partage aux parties prenantes.

Conclusion

La surveillance des connexions locales et distantes est un élément essentiel d’une posture de cybersécurité mature. WinlogonView offre une première couche d’analyse rapide et exploitable ; les scripts et procédures fournis permettent d’automatiser la détection et l’alerte. Pour une protection complète, intégrer ces processus à un SIEM et coupler avec EDR/EDR est indispensable.

Pour un déploiement professionnel (audit, intégration SIEM, mise en place de playbooks IR et automatisation du monitoring), contactez nos experts en cliquant sur le bouton ci-dessous. Une évaluation gratuite du plan de monitoring et un proof-of-concept d’intégration peuvent être proposés.

Liens externes recommandés

Lectures recommandées

Index