Le rançongiciel Petya est apparu fin juin en Ukraine pour ensuite se propager rapidement partout dans le monde.
Il s’agirait d’une variante de WannaCrypt qui était apparu en début d’année.
Se protéger
Si vous n’avez pas encore été infectée, vous devez vérifier que vos postes disposent des dernières mises à jour et de les installer si ce n’est pas le cas.
Pour agir rapidement vous pouvez installer uniquement la KB qui correspond à votre système d’exploitation en regardant la liste sur cette article https://blog.piservices.fr/post/2017/05/30/securite-kb-pour-wanna-cry et de se rendre sur le catalogue de Microsoft pour le télécharger http://www.catalog.update.microsoft.com/home.aspx.
Vérifier avec WSUS
Si vous disposez d’un serveur WSUS vous pouvez vérifier depuis la console si votre parc informatique est protégé. Pour se faire il faut se rendre dans l’onglet Updates -> Security Updates -> Search
Dans la fenêtre qui apparaît vous devez rentrer la KB souhaitez par exemple : 4012212
Lorsque vous regardé le report de la KB (en double cliquant dessus) vous verrez :
- La description de la KB
- Les groupes qui approuvent cette KB
- L’état de déploiement par rapport à vos machines
Microsoft a également sorti un script qui permet de savoir si votre machine dispose du patch ou non. Le seul prérequis est de disposer au minimum de Windows PowerShell 2.0. https://support.microsoft.com/fr-be/help/4023262/how-to-verify-that-ms17-010-is-installed
Voici le script :
[reflection.assembly]::LoadWithPartialName("System.Version")
$os = Get-WmiObject -class Win32_OperatingSystem
$osName = $os.Caption
$s = "%systemroot%\system32\drivers\srv.sys"
$v = [System.Environment]::ExpandEnvironmentVariables($s)
If (Test-Path "$v") { Try { $versionInfo = (Get-Item $v).VersionInfo $versionString = "$($versionInfo.FileMajorPart).$($versionInfo.FileMinorPart).$($versionInfo.FileBuildPart).$($versionInfo.FilePrivatePart)" $fileVersion = New-Object System.Version($versionString) } Catch { Write-Host "Unable to retrieve file version info, please verify vulnerability state manually." -ForegroundColor Yellow Return } }
Else { Write-Host "Srv.sys does not exist, please verify vulnerability state manually." -ForegroundColor Yellow Return }
if ($osName.Contains("Vista") -or ($osName.Contains("2008") -and -not $osName.Contains("R2"))) { if ($versionString.Split('.')[3][0] -eq "1") { $currentOS = "$osName GDR" $expectedVersion = New-Object System.Version("6.0.6002.19743") } elseif ($versionString.Split('.')[3][0] -eq "2") { $currentOS = "$osName LDR" $expectedVersion = New-Object System.Version("6.0.6002.24067") } else { $currentOS = "$osName" $expectedVersion = New-Object System.Version("9.9.9999.99999") } }
elseif ($osName.Contains("Windows 7") -or ($osName.Contains("2008 R2"))) { $currentOS = "$osName LDR" $expectedVersion = New-Object System.Version("6.1.7601.23689") }
elseif ($osName.Contains("Windows 8.1") -or $osName.Contains("2012 R2")) { $currentOS = "$osName LDR" $expectedVersion = New-Object System.Version("6.3.9600.18604") }
elseif ($osName.Contains("Windows 8") -or $osName.Contains("2012")) { $currentOS = "$osName LDR" $expectedVersion = New-Object System.Version("6.2.9200.22099") }
elseif ($osName.Contains("Windows 10")) { if ($os.BuildNumber -eq "10240") { $currentOS = "$osName TH1" $expectedVersion = New-Object System.Version("10.0.10240.17319") } elseif ($os.BuildNumber -eq "10586") { $currentOS = "$osName TH2" $expectedVersion = New-Object System.Version("10.0.10586.839") } elseif ($os.BuildNumber -eq "14393") { $currentOS = "$($osName) RS1" $expectedVersion = New-Object System.Version("10.0.14393.953") } elseif ($os.BuildNumber -eq "15063") { $currentOS = "$osName RS2" "No need to Patch. RS2 is released as patched. " return } }
elseif ($osName.Contains("2016")) { $currentOS = "$osName" $expectedVersion = New-Object System.Version("10.0.14393.953") }
elseif ($osName.Contains("Windows XP")) { $currentOS = "$osName" $expectedVersion = New-Object System.Version("5.1.2600.7208") }
elseif ($osName.Contains("Server 2003")) { $currentOS = "$osName" $expectedVersion = New-Object System.Version("5.2.3790.6021") }
else { Write-Host "Unable to determine OS applicability, please verify vulnerability state manually." -ForegroundColor Yellow $currentOS = "$osName" $expectedVersion = New-Object System.Version("9.9.9999.99999") }
Write-Host "`n`nCurrent OS: $currentOS (Build Number $($os.BuildNumber))" -ForegroundColor Cyan
Write-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor Cyan
Write-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor Cyan
If ($($fileVersion.CompareTo($expectedVersion)) -lt 0) { Write-Host "`n`n" Write-Host "System is NOT Patched" -ForegroundColor Red }
Else { Write-Host "`n`n" Write-Host "System is Patched" -ForegroundColor Green }
#
Voici le résultat de se script exécuté sur un poste patché et non patché.
Information :
Si vous êtes déjà touché par le rançongiciel, la première chose à faire est d’isoler tous les équipements identifiés comme étant contaminés en les débranchant du réseau afin de contenir l’action du programme. De plus vous devez si possible mettre en veille prolongé la machine ou de la mettre hors tension pour arrêter l’action du programme et de ne surtout pas payer la rançon.
Vous pouvez lire également deux notes de l’Agence Nationale de la Sécurité des Systèmes d’Information (ANSSI) qui permet de savoir quelle attitude adopter avant et après une attaque rançongiciel.
http://www.cert.ssi.gouv.fr/site/CERTFR-2017-INF-001/CERTFR-2017-INF-001.html
http://www.ssi.gouv.fr/actualite/alerte-campagne-de-rancongiciel-3/
Suite à l'attaque du virus Wanna Cry, tout le monde a souhaité corriger la faille de sécurité au plus vite.
Avec tout ce qu'on a pu lire ou trouver sur internet on ne sait plus vraiment qui fait quoi et si nous sommes réellement protégé.
Liste des KB de Sécurité
Voici la liste des KB de sécurité couvrants la faille (pour information les KB se remplacent d'un mois à l'autre : exemple la KB du mois d'avril remplace celle de Mars):
- Pour Windows XP, Vista, 8, Windows Server 2003 et 2008 :
- Mars 2017
- KB4012598
- Pour Windows 7 SP1 et Windows Server 2008 R2 SP1:
- Mars 2017
- Security only update : KB4012212
- Monthly Rollup : KB4012215
- Preview of Monthly Rollup : KB4012218
- Avril 2017
- Security only update : KB4015546
- Monthly Rollup : KB4015549
- Preview of Monthly Rollup : KB4015552
- Mai 2017
- Security only update : KB4019263
- Monthly Rollup : KB4019264
- Preview of Monthly Rollup : KB4019265
- Pour Windows Server 2012 :
- Mars 2017
- Security only update : KB4012214
- Monthly Rollup : KB4012217
- Preview of Monthly Rollup : KB4012220
- Avril 2017
- Security only update : KB4015548
- Monthly Rollup : KB4015551
- Preview of Monthly Rollup : KB4015554
- Mai 2017
- Security only update : KB4019214
- Monthly Rollup : KB4019216
- Preview of Monthly Rollup : KB4019218
- Pour Windows 8.1 et Windows 2012 R2 :
- Mars 2017
- Security only update : KB4012213
- Monthly Rollup : KB4012216
- Preview of Monthly Rollup : KB4012219
- Avril 2017
- Security only update : KB4015547
- Monthly Rollup : KB4015550
- Preview of Monthly Rollup : KB4015553
- Mai 2017
- Security only update : KB4019213
- Monthly Rollup : KB4019215
- Preview of Monthly Rollup : KB4019217
- Pour Windows 10 (Release 1511) :
- Mars 2017
- KB4013198
- KB4016636
- Avril 2017
- KB4015219
- Mai 2017
- KB4019473
- Pour Windows 10 (Release 1607) :
- Mars 2017
- KB4013429
- KB4015438
- KB4016635
- Avril 2017
- KB4015217
- Mai 2017
- KB4019472
- KB4023680
- Pour Windows 10 LTSB :
- Mars 2017
- KB4012606
- KB4016637
- Avril 2017
- KB4015221
- Mai 2017
- KB4019474
En espérant que cela pourra vous servir.
Pour télécharger les KB : http://www.catalog.update.microsoft.com/home.aspx
Attention ne s'applique qu'à partir de Windows Server 2012 et Windows 8.
Comment connaitre rapidement les configurations DHCP du domaine? Eh bien, avec Powershell.
Lister les serveurs DHCP du domaine:
Pour lister les serveurs DHCP du domaine vous pouvez utiliser la commande:
Get-DhcpServerInDC
Cette commande vous retournera par défaut :
- l'adresse IP du ou des serveurs
- Le nom Dns du ou des serveurs
Lister les scopes DHCP:
Pour lister les scopes DHCP et leurs configurations vous pouvez utiliser la commande suivante:
Get-DhcpServerv4Scope
Par défaut cette commande vous retournera les éléments suivants:
- L'étendue
- Le masque sous réseau
- Le Nom du scope
- L'état (Actif ou Inactif)
- L'adresse IP de début
- L'adresse IP de fin
- La durée des baux
Bien sur il est possible de récupérer d'autres informations si vous le souhaitez.
Obtenir des informations sur les scopes:
Pour obtenir des informations sur l'utilisation des scopes vous pouvez utiliser la commande suivante:
Get-DhcpServerv4ScopeStatistics
Cette commande retourne :
- L'étendue
- Le nombre d'adresses libres
- Le nombre d'adresses utilisées
- Le pourcentage d'utilisation
- Le nombre d'adresses réservées
- Le nombre d'adresses en attente de distribution (normalement 0)
- Le nom de l'étendue globale
Peut on scripter tout ça?
Il vous est possible d'exécuter toutes ces commandes à distance via "invoke-command" ou "Enter-PSSession" sauf la commande "Get-DhcpServerInDC".
Donc il est possible de scripter toutes ces commandes et avoir une belle extraction sans se connecter au serveur à condition de déjà posséder la résultante de "Get-DhcpServerInDC".
Sinon vous pouvez aussi exécuter un script depuis le serveur, mais bon ça, c'est quand même moins "Secure".
Plus d'informations sur :
https://technet.microsoft.com/library/jj590751(v=wps.620).aspx
AppLocker est une fonctionnalité permettant de spécifier les utilisateurs ou groupes de votre organisation pouvant exécuter des applications particulières en fonction de l’identité unique des fichiers. Si vous utilisez AppLocker, vous pouvez créer des règles pour autoriser ou refuser l’exécution d’applications.
AppLocker peut, par exemple, être utilisé dans le cadre d’un déploiement d’une infrastructure PKI d’entreprise à deux niveaux afin de sécuriser l’autorité de certification racine.
Cependant, sur la version Windows Server 2016 et il n’est actuellement pas possible de programmer le démarrage automatique du service AppIDSvc via l’interface graphique, ni même par GPO comme indiqué par Microsoft.
L’erreur suivante apparait quand on essaye d’appliquer le paramètre “Démarrage automatique” :
Afin que le service AppIDSvc se lance de manière automatique à chaque démarrage il faut modifier la clé de registre suivante:
Valeur: Start=2
Clé: HKLM\SYSTEM\CurrentControlSet\Services\AppIDSvc
Une fois la clé modifiée, redémarrez le service.
Le service est maintenant en démarrage automatique: