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
- Ouvrez votre navigateur d’administration (Chrome/Edge/Firefox).
- Tapez ou copiez-collez dans la barre d’adresse :
https://www.nirsoft.net/utils/winlogonview.html→ appuyez Entrée. - Sur la page NirSoft, descendez jusqu’à la section Download WinlogonView.
- 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)
- Ouvrez Explorateur de fichiers →
C:\Users\<VotreCompte>\Downloads. - Clic droit sur
winlogonview.zip→ sélectionnez Extraire tout…. - 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)
- Naviguez vers le dossier d’extraction :
C:\Outils\WinlogonView\. - Clic droit sur
WinLogonView.exe→ Exécuter en tant qu’administrateur. (Saisissez les identifiants admin si demandés.) - À la première exécution, Windows SmartScreen ou l’antivirus peut bloquer :
- Si SmartScreen affiche un avertissement → cliquez Informations complémentaires → Exé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)
- Dans la barre, cliquer sur Options → Advanced Options → activer
Load logon sessions from Event Log and from Registry. - Pour filtrer : menu Edit → Find (Ctrl+F) → saisir un nom d’utilisateur ou une IP.
- Pour filtrer par type : View → Filter → sélectionnez
Logon Type→ cochez les types souhaités → OK.
5.3 Export & sauvegarde (preuve)
- Export CSV : sélectionner lignes (Ctrl+A pour tout) → File → Save Selected Items → choisir format CSV → entrer chemin
C:\Investigation\winlogon_export.csv→ Save. - Export HTML : File → Save Selected Items → choisir HTML pour rapport visuel.
- Copy to Clipboard : sélectionner une ligne → Edit → Copy 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 :
- Ouvrir WinlogonView (voir section 4).
- Trier sur colonne Logon Type → cliquer sur l’en-tête pour trier.
- Rechercher les lignes où Logon Type = 10 (RemoteInteractive) → si la colonne Source IP est disponible, notez l’IP.
- Exporter ces lignes : sélectionner les lignes → File → Save Selected Items →
C:\Investigations\RDP_sessions.csv. - Pour chaque IP détectée, effectuer une vérification DNS/reverse : ouvrir PowerShell et exécuter :
Resolve-DnsName -Name <IP> -ErrorAction SilentlyContinue
- 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
- Dans WinlogonView, trier par User.
- Rechercher comptes avec noms inhabituels (ex. :
svc_*,admin2,support_local). - 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
- Repérer session avec Duration très courte mais activité réseau élevée.
- Noter Logon ID et Process Name (si présent).
- Sur le poste, lancer (en tant qu’admin) :
tasklist /SVC | findstr <ProcessName>
netstat -ano | findstr <PID>
- 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) :
- Copier
Export-RDPSessions.ps1dansC:\Monitoring\. - Ouvrir Task Scheduler → Create Task.
- Onglet General : nom
Export RDP Sessions Daily; cocher Run whether user is logged on or not ; cocher Run with highest privileges. - Onglet Triggers → New → Begin the task: On a schedule → Daily → Recur every: 1 day → Choose time (ex : 02:05) → OK.
- Onglet Actions → New → Action: Start a program → Program/script:
powershell.exe→ Add arguments:
-ExecutionPolicy Bypass -File "C:\Monitoring\Export-RDPSessions.ps1"
→ OK.
- Onglet Conditions/Settings : configurer selon politique. → OK.
- 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-APP01accessible 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)
- SOC reçoit mail : “Connexion suspecte” → active ticket.
- SOC demande à l’utilisateur de déconnecter immédiatement et d’isoler le poste.
- SOC ouvre WinlogonView sur
SRV-APP01(exécution en admin).
B. Extraction rapide avec WinlogonView (10–20 min)
- Ouvrir WinlogonView → dans la colonne Logon Type trier et filtrer sur
10. - Repérer la session à l’heure suspecte — noter Logon ID, User, Time, Source IP.
- Exporter ligne vers
C:\Investigations\SRV-APP01_RDP.csv. - Capture écran de la ligne :
Alt+PrintScreen→ coller dans Word / sauvegarder PNG.
C. Vérification et corrélation (20–60 min)
- Avec la Source IP détectée, exécuter sur SOC :
Test-NetConnection -ComputerName <IP> -Port 3389
- 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>*' }
-
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)
- Créer image disque et hash (voir section 3).
- Exporter Security Event Log : Event Viewer → Security → Save All Events As… →
SRV-APP01_Security.evtx. - Remettre copies dans dossier
\\Forensics\SRV-APP01\avec hash.
E. Remédiation (3–24h)
- Réinitialiser le mot de passe de l’utilisateur impacté ; forcer logout de toutes sessions.
- Scanner serveur avec EDR/AV ; appliquer updates.
- Si criminalité avérée → notifier autorités & assureur.
F. Rapport & leçons (24–48 h)
- Générer rapport incident avec exports WinlogonView, captures écran, hashes, timeline.
- 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
- WinlogonView (NirSoft) — https://www.nirsoft.net/utils/winlogonview.html
- NirSoft — page officielle des utilitaires — https://www.nirsoft.net/
- Microsoft — Guide pour consulter les journaux d’événements : https://learn.microsoft.com/en-us/windows/win32/eventlog/viewing-event-logs
- Microsoft — Event IDs (4624, 4634, 4672) documentation : https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4624
- Volatility (mémoire forensic) — https://www.volatilityfoundation.org/
- Sysinternals (procmon, autoruns) — https://learn.microsoft.com/sysinternals/