Update (7. März 2022): Wir haben einen Fehler in der Analyse von IsaacWiper behoben. Er verwendet das Mersenne Twister PRNG und nicht das Isaac PRNG, wie ursprünglich geschrieben.

ESET-Forscher haben, mit Beginn der Feindseligkeiten zwischen Russland und der Ukraine, mehrere Malware-Familien entdeckt, die auf ukrainische Organisationen abzielten.

  • Am 23. Februar 2022 richtete sich eine destruktive Kampagne mit HermeticWiper gegen mehrere ukrainische Organisationen.
  • Dieser Cyberangriff erfolgte einige Stunden vor dem Beginn des Angriffs russischer Streitkräfte auf die Ukraine.
  • Die Angriffsvektoren variierten von einer betroffenen Organisation zur anderen. Wir konnten einen Fall bestätigen, in dem der Wiper per GPO (Windows Gruppenrichtlinien) verteilt wurde. In einem anderen betroffenen Netzwerk haben wir außerdem einen Wurm entdeckt, der verwendet wurde, um den Wiper zu verbreiten.
  • Malware-Artefakte deuten darauf hin, dass die Angriffe seit mehreren Monaten geplant waren.
  • Am 24. Februar 2022 begann ein zweiter zerstörerischer Angriff auf ein ukrainisches Regierungsnetzwerk mit einem anderen Wiper, den wir IsaacWiper genannt haben.
  • ESET Research war noch nicht in der Lage, diese Angriffe einer bekannten Gruppierung zuzuordnen.

Zerstörerische Angriffe in der Ukraine

Wie in diesem ESET Research-Tweet und im WLS-Blogpost zu Hermetic Wiper erwähnt, haben wir einen zerstörerischen Angriff auf Computer in der Ukraine aufgedeckt, der am 23. Februar 2022 um 14:52 Uhr UTC begann. Dies folgte auf verteilte Denial-of-Service-Angriffe (DDoS) gegen große ukrainische Websites und erfolgte nur wenige Stunden vor der russischen Militärinvasion.

Diese zerstörerischen Angriffe nutzten mindestens drei Komponenten:

  • HermeticWiper: macht ein System funktionsunfähig, indem es seine Daten beschädigt
  • HermeticWizard: verteilt HermeticWiper in einem lokalen Netzwerk über WMI und SMB
  • HermeticRansom: Ransomware in Go geschrieben

HermeticWiper wurde auf Hunderten von Systemen in mindestens fünf ukrainischen Organisationen beobachtet.

Am 24. Februar 2022 entdeckten wir einen weiteren neuen Datenwiper in einem ukrainischen Regierungsnetzwerk. Wir haben ihn IsaacWiper genannt und bewerten derzeit mögliche Verbindungen, falls vorhanden, mit HermeticWiper. Wichtig ist hierbei, dass er in einer Organisation gefunden wurde, die nicht von HermeticWiper betroffen war.

Attribution

Zu diesem Zeitpunkt haben wir keine greifbare Verbindung zu einem bekannten Bedrohungsakteur gefunden. HermeticWiper, HermeticWizard und HermeticRansom haben keine signifikante Code-Ähnlichkeit mit anderen Samples in der ESET-Malware-Sammlung. IsaacWiper ist ebenfalls noch nicht zugeordnet.

Zeitleiste

HermeticWiper und HermeticWizard sind mit einem Code-Signing-Zertifikat (siehe Abbildung 1) signiert, das auf Hermetica Digital Ltd am 13. April 2021 ausgestellt wurde. Wir haben die ausstellende CA (DigiCert) aufgefordert, das Zertifikat zu widerrufen, was sie am 24. Februar 2022 getan hat.

Abbildung 1. Code-Signing-Zertifikat, das Hermetica Digital Ltd zugewiesen wurde

Laut einem Bericht von Reuters scheint es, dass dieses Zertifikat nicht von Hermetica Digital gestohlen wurde. Es ist wahrscheinlicher, dass sich die Angreifer stattdessen als das zypriotische Unternehmen ausgegeben haben, um dieses Zertifikat von DigiCert zu erhalten.

ESET-Forscher glauben mit hoher Sicherheit, dass die betroffenen Organisationen lange vor dem Ausrollen des Wipers kompromittiert wurden. Dies basiert auf mehreren Fakten:

  • Zeitstempel, wann die HermeticWiper PE kompiliert wurde - der älteste ist der 28. Dezember 2021
  • Ausstellungsdatum des Code-Signing-Zertifikats vom 13. April 2021
  • Die Verteilung von HermeticWiper per GPO in mindestens einem Fall deutet darauf hin, dass die Angreifer zuvor Zugriff auf einen der Active Directory-Server dieses Opfers hatten.

Die Ereignisse sind in der Zeitleiste in Abbildung 2 zusammengefasst.

Abbildung 2. Zeitleiste wichtiger Ereignisse

Erster Zugriff

HermeticWiper

Der ursprüngliche Zugriffsvektor ist derzeit unbekannt, aber wir haben Überreste einer lateralen Bewegung innerhalb der Zielorganisationen beobachtet. In einem Fall wurde der Wiper über die Standarddomänenrichtlinie (GPO) bereitgestellt, wie der Pfad auf dem System zeigt:

C:\Windows\system32\GroupPolicy\DataStore\0\sysvol\<redacted>\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\cc.exe

Dies deutet darauf hin, dass die Angreifer wahrscheinlich die Kontrolle über den Active Directory-Server übernommen haben.

In anderen Fällen sieht es so aus, dass Impacket zum Verteilen von HermeticWiper verwendet wurde. In einem Symantec-Blogbeitrag heißt es, dass der Wiper über die folgende Befehlszeile bereitgestellt wurde:

cmd.exe /Q /c move CSIDL_SYSTEM_DRIVE\temp\sys.tmp1 CSIDL_WINDOWS\policydefinitions\postgresql.exe 1> \\127.0.0.1\ADMIN$\__1636727589.6007507 2>&1

Der letzte Teil ist identisch mit dem Standardverhalten in der wmiexec.py von Impacket, die auf GitHub zu finden ist.

Schließlich wurde ein benutzerdefinierter Wurm namens HermeticWizard verwendet, um HermeticWiper über SMB und WMI in den kompromittierten Netzwerken zu verbreiten.

IsaacWiper

Auch hier ist der ursprüngliche Zugriffsvektor ist derzeit unbekannt. Es ist wahrscheinlich, dass die Angreifer Tools wie Impacket verwendeten, um sich im Netzwerk zu bewegen. Auf einigen Rechnern haben wir auch beobachtet, dass RemCom, ein Fernwartungstool, zur gleichen Zeit wie IsaacWiper eingesetzt wird.

Technische Analyse

HermeticWiper

HermeticWiper ist eine ausführbare Windows-Datei mit vier eingebetteten Treibern. Dies sind legitime Treiber aus der EaseUS Partition Master Software, die von CHENGDU YIWO Tech Development Co. signiert wurd. Sie werden für Low-Level-Datenträgervorgänge verwendet. Folgende Dateien wurden beobachtet:

  • 0E84AFF18D42FC691CB1104018F44403C325AD21: x64-Treiber
  • 379FF9236F0F72963920232F4A0782911A6BD7F7: x86-Treiber
  • 87BD9404A68035F8D70804A5159A37D1EB0A3568: x64 XP-Treiber
  • B33DD3EE12F9E6C150C964EA21147BF6B7F7AFA9: x86 XP-Treiber

Abhängig von der Betriebssystemversion wird einer dieser vier Treiber ausgewählt und in C:\Windows\System32\drivers\<4 zufällige Buchstaben>.sys abgelegt. Diese Datei wird durch einen eigens dafür erstellten Dienst geladen.

HermeticWiper deaktiviert dann den Volumeschattenkopie-Dienst (Volume Shadow Copy Service, VSS) und löscht sich selbst von der Festplatte, indem er seine eigene Datei mit zufälligen Bytes überschreibt. Diese antiforensische Maßnahme soll wahrscheinlich die Analyse des Wipers in einer Post-Incident-Analyse verhindern.

Es ist interessant festzustellen, dass die meisten Dateioperationen auf einer niedrigen Ebene mit DeviceIoControl-Aufrufen ausgeführt werden.

Die folgenden Speicherorte werden mit zufälligen Bytes überschrieben, die von der Windows-API-Funktion CryptGenRandom generiert werden:

  • Der Master Boot Record (MBR)
  • Die Masterdateitabelle (MFT)
  • $Bitmap und $LogFile auf allen Laufwerken
  • Die Dateien mit den Registrierungsschlüsseln (NTUSER*)
  • C:\Windows\System32\winevt\Logs

Darüber hinaus werden Ordner und Dateien in den  Ordnern Windows, Programme, Programme (x86), PerfLogs, Boot,  System Volume Information und AppData mithilfe eines  FSCTL_MOVE_FILE-Vorgangs rekursiv gelöscht. Diese Technik scheint ziemlich ungewöhnlich zu sein  und dem sehr ähnlich zu sein, was im Windows Wipe-Projekt auf GitHub implementiert ist  (siehe wipe_extent_by_defrag  Funktion). Es löscht auch symbolische Links und große Dateien in den Ordnern "Eigene Dateien" und "Desktop", indem sie mit zufälligen Bytes überschrieben werden.

Schließlich wird der Computer neu gestartet. Es kann jedoch nicht gestartet werden, da der MBR, der MFT und die meisten Dateien gelöscht wurden. Wir glauben, dass es nicht möglich ist, die betroffenen Maschinen wiederherzustellen.

HermeticWizard

Auf der Suche nach anderen Beispielen, die mit demselben Codesignaturzertifikat (Hermetica Digital Ltd) signiert sind, haben wir eine neue Malware-Familie gefunden, die wir HermeticWizard genannt haben.

Es ist ein Wurm, der am 23. Februar 2022 UTC um 14:52:49 Uhr auf einem System in der Ukraine eingesetzt wurde. Es ist eine in C++ entwickelte DLL-Datei, die die Funktionen DllInstall, DllRegisterServer, und DllUnregisterServer exportiert. Der Name der Export-DLL lautet Wizard.dll. Es enthält drei Ressourcen, bei denen es sich um verschlüsselte PE-Dateien handelt:

  • Eine Probe von HermeticWiper (912342F1C840A42F6B74132F8A7C4FFE7D40FB77)
  • dll, verantwortlich für die Verbreitung auf andere lokale Computer über WMI (6B5958BFABFE7C731193ADB96880B225C8505B73)
  • dll, verantwortlich für die Verbreitung auf andere lokale Computer über SMB (AC5B6F16FC5115F0E2327A589246BA00B41439C2)

Die Ressourcen werden mit einer umgekehrten XOR-Schleife verschlüsselt. Jeder Block von vier Bytes wird mit dem vorherigen Block XORed. Schließlich wird der erste Block mit einem hartcodierten Wert XORed, 0x4A29B1A3.

HermeticWizard wird über die Befehlszeile regsvr32.exe /s /i <path> gestartet.

Zuerst versucht HermeticWizard, andere Computer im lokalen Netzwerk zu finden. Es sammelt bekannte lokale IP-Adressen mithilfe der folgenden Windows-Funktionen:

  • DNSGetCacheDataTable
  • GetIpNetTable
  • WNetOpenEnumW(RESOURCE_GLOBALNET, RESOURCETYPE_ANY)
  • NetServerEnum
  • GetTcpTable
  • GetAdaptersAddresses

Es versucht dann, sich mit diesen IP-Adressen  zu verbinden (und nur, wenn es sich um lokale IP-Adressen handelt), um zu sehen, ob sie noch erreichbar sind. Falls das  Argument -s beim Start  von HermeticWizard angegeben  wurde (regsvr32.exe /s /i:-s <path>), scannt es auch den gesamten /24-Bereich. Wenn beispielsweise 192.168.1.5 im DNS-Cache gefunden wurde, dann scannt es inkrementell von 192.168.1.1 bis 192.168.1.254.  Für jede IP-Adresse wird versucht, eine TCP-Verbindung auf den folgenden Ports zu öffnen:

  • 20: ftp
  • 21: ftp
  • 22: ssh
  • 80: http
  • 135: rpc
  • 137: netbios
  • 139: smb
  • 443: https
  • 445: smb

Die Ports werden in einer zufälligen Reihenfolge gescannt, so dass es nicht möglich ist, den HermeticWizard-Datenverkehr auf diese Weise zu erfassen.

Wenn es einen erreichbaren Computer gefunden hat, legt es den WMI-Spreader (siehe unten) auf der Festplatte ab und erstellt einen neuen Prozess mit der command-Zeile rundll32 <current folder>\<6 random letters>.ocx #1 -s <path to HermeticWizard> - i <target IP>.

Dasselbe gilt für den SMB-Spreader (siehe unten), der ebenfalls in <current folder>\<6 random letters>.ocx, aber mit unterschiedlichen zufälligen Buchstaben abgelegt wird.

Schließlich legt es HermeticWiper in <current folder>\<6 random letters>.ocx ab und führt es aus.

WMI-Spreader

Der WMI-Spreader, der von seinen Entwicklern exec_32.dll benannt wird, verwendet zwei Argumente:

  • -i: Die Ziel-IP-Adresse
  • -s: Die Datei, die auf dem Zielcomputer kopiert und ausgeführt werden soll

Zunächst wird mithilfe von WNetAddConnection2W eine Verbindung zur Remote-ADMIN$-Freigabe des Ziels hergestellt. Die im -s-Argument bereitgestellte Datei wird dann mit CopyFileW kopiert. Die entfernte Datei hat einen zufälligen Namen, der mit CoCreateGUID generiert wurde (z. B. cB9F06408D8D2.dll) und das Zeichenfolgenformat c%02X%02X%02X%02X%02X%02X.

Zweitens versucht er, die kopierte Datei HermeticWizard mithilfe von DCOM auf dem Remote-Computer auszuführen. Es ruft CoCreateInstance mit CLSID_WbemLocator als Argument auf. Anschließend wird WMI-Win32_Process verwendet, um einen neuen Prozess auf dem Remote-Computer zu erstellen, wobei die Befehlszeile C:\windows\system32\cmd.exe /c C:\windows\system32\\regsvr32.exe /s /i C:\windows\<Dateiname>.dll lautet.

Beachten Sie, dass das Argument -s nicht an HermeticWizard übergeben wird, was bedeutet, dass das lokale Netzwerk von diesem neu kompromittierten Computer nicht erneut gescannt wird.

Wenn die WMI-Technik fehlschlägt, versucht sie, einen Dienst mit OpenRemoteServiceManager mit demselben Befehl wie oben zu erstellen.

Wenn es gelingt, die Remote-DLL in irgendeiner Weise auszuführen, wird sie in den Ruhezustand versetzt, bis sie die Remotedatei löschen kann.

SMB-Spreader

Der SMB-Spreader, der von seinen Entwicklern Romance.dll genannt wird, verwendet die gleichen zwei Argumente wie der WMI-Spreader.  Sein interner Name ist wahrscheinlich ein Verweis auf den EternalRomance-Exploit, auch wenn er keinen Exploit verwendet.

Zuerst wird versucht, eine Verbindung zu den folgenden Pipes auf der Remote-SMB-Freigabe (an Port 445) herzustellen:

  • Samr
  • Browser
  • Netlogon
  • lsarpc
  • ntsvcs
  • svcctl

Dies sind Pipes, von denen bekannt ist, dass sie für die laterale Ausbreitung verwendet werden.  Der Spreader verfügt über eine Liste hartcodierter Anmeldeinformationen, die bei Versuchen zur Authentifizierung über NTLMSSP bei den SMB-Freigaben verwendet werden:

-- Benutzernamen --
Guest
Test
Administrator
User
root
Administrator
Manager
Operator

-- Passwörter --
123
Qaz123
Qwertz123

Diese Liste von Anmeldeinformationen ist überraschend kurz und funktioniert wahrscheinlich nicht einmal in den am schlechtesten geschützten Netzwerken.

Wenn die Verbindung erfolgreich ist, wird versucht, die Datei, auf die mit dem Argument -s verwiesen wird, auf die Admin$-Zielfreigabe zu verschieben. Wie bei der WMI-Verteilung wird der Remotedateiname durch einen Aufruf von CoCreateInstance generiert.

Es führt dann über SMB die Befehlszeile cmd /c start regsvr32 /s /i ..\\<filename>  & start cmd /c \"ping localhost -n 7 & wevtutil cl System\" aus.

HermeticRansom

ESET-Forscher konnten ebenfalls beobachten, dass die in Go geschriebene Ransomware HermeticRansom zur gleichen Zeit wie die HermeticWiper-Kampagne in der Ukraine eingesetzt wurde. HermeticRansom wurde erstmals in den frühen Morgenstunden des 24. Februar 2022 UTC in einem Tweet von AVAST gemeldet. Unsere Telemetrie zeigt eine viel kleinere Verbreitung im Vergleich zu HermeticWiper. Diese Ransomware wurde gleichzeitig mit HermeticWiper eingesetzt, möglicherweise um die Aktionen des Wipers zu verbergen. Auf einer Maschine wurde die folgende Zeitleiste beobachtet:

  • 2022-02-23 17:49:55 UTC: Ausbringung von HermeticWiper in C:\Windows\Temp\cc.exe
  • 2022-02-23 18:06:57 UTC: Ausbringung von HermeticRansom in C:\Windows\Temp\cc2.exe durch den netsvcs-Dienst
  • 2022-02-23 18:26:07 UTC: Ausbringung des zweiten HermeticWiper in C:\Users\com.exe

Bei einer Gelegenheit beobachteten wir, wie HermeticRansom über GPO bereitgestellt wurde, genau wie HermeticWiper:

C:\WINDOWS\system32\GroupPolicy\DataStore\0\sysvol\<redacted>\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\cpin.exe

Ein paar Strings wurden von den Angreifern in der Binärdatei gelassen; sie verweisen auf US-Präsident Biden und das Weiße Haus:

  • _/C_/projects/403forBiden/wHiteHousE.baggageGatherings
  • _/C_/projects/403forBiden/wHiteHousE.lookUp
  • _/C_/projects/403forBiden/wHiteHousE.primaryElectionProcess
  • _/C_/projects/403forBiden/wHiteHousE.GoodOffice1

Sobald die Dateien verschlüsselt sind, wird die Nachricht in Abbildung 3 dem Opfer angezeigt.

Abbildung 3. Erpresserbrief von HermeticRansom

IsaacWiper

Die datenlöschende Malware IsaacWiper befindet sich entweder in einer Windows-DLL oder EXE ohne Authenticode-Signatur; sie erschien am 24. Februar 2022 in unserer Telemetrie.  Wie bereits erwähnt, ist der älteste PE-Kompilierungszeitstempel, den wir gefunden haben, der 19. Oktober 2021, was bedeutet, dass IsaacWiper möglicherweise Monate früher in früheren Operationen verwendet wurde, falls der PE-Kompilierungszeitstempel nicht manipuliert wurde.

Bei DLL-Beispielen lautet der Name im PE-Exportverzeichnis Cleaner.dll und verfügt über einen einzelnen Export namens _Start@4.

Wir haben IsaacWiper in %programdata% und C:\Windows\System32 unter folgenden Dateinamen beobachtet:

  • exe
  • exe
  • dll
  • könnte.dll
  • dll

Es hat keine Code-Ähnlichkeit mit HermeticWiper und ist viel weniger anspruchsvoll. Angesichts der Zeitleiste ist es möglich, dass beide miteinander verwandt sind, aber wir haben noch keine starke Verbindung gefunden.

IsaacWiper beginnt mit der Aufzählung der physischen Laufwerke und ruft DeviceIoControl mit dem IOCTL-IOCTL_STORAGE_GET_DEVICE_NUMBER auf, um deren Gerätenummern zu erhalten.  Anschließend werden die ersten 0x10000 Bytes jeder Festplatte mit dem  Mersenne Twister-Pseudozufallsgenerator gelöscht. Der Generator wird mithilfe des GetTickCount-Werts mit einem Seeding versehen.

Es listet dann die logischen Laufwerke auf und löscht rekursiv jede Datei jeder Festplatte mit zufälligen Bytes, die ebenfalls vom Mersenne Twister-PRNG generiert werden. Es ist interessant festzustellen, dass es die Dateien in einem einzigen Thread rekursiv löscht, was bedeutet, dass es lange dauern würde, eine große Festplatte zu löschen.

Am 25. Februar 2022 haben Angreifer eine neue Version von IsaacWiper mit Debug-Protokollen abgelegt. Dies kann darauf hindeuten, dass die Angreifer einige der Zielcomputer nicht löschen konnten und Protokollmeldungen hinzugefügt haben, um zu verstehen, was passiert ist. Die Protokolle werden in C:\ProgramData\log.txt gespeichert, und einige der Protokollmeldungen lauten wie folgt (Anm. d. Übersetzers: Für bessere Verständlichkeit übersetzt):

  • Laufwerke abrufen...
  • Beginnen Sie mit dem Löschen physischer Laufwerke...
  • -- Beginnen Sie mit dem Löschen des logischen Laufwerks
  • Starten Sie das Löschen des physischen Laufwerks des Systems...
  • Physisches Systemlaufwerk - FEHLGESCHLAGEN
  • Starten Sie das Löschen des logischen Laufwerks des Systems

Fazit

Dieser Bericht beschreibt einen zerstörerischen Cyberangriff, der ukrainische Organisationen am 23. Februar 2022 getroffen hat, und einen zweiten Angriff auf eine andere ukrainische Organisation vom 24. Februar bis zum 26. Februar 2022. Zu diesem Zeitpunkt haben wir keine Hinweise darauf, dass andere Länder ins Visier genommen wurden.

Aufgrund der aktuellen Krise in der Ukraine besteht jedoch immer noch das Risiko, dass dieselben Bedrohungsakteure weitere Maßnahmen gegen Länder ergreifen, die die ukrainische Regierung oder russische Einrichtungen unterstützen.

IoCs

SHA-1 Filename ESET detection name Description
912342F1C840A42F6B74132F8A7C4FFE7D40FB77 com.exe Win32/KillDisk.NCV HermeticWiper
61B25D11392172E587D8DA3045812A66C3385451 conhosts.exe Win32/KillDisk.NCV HermeticWiper
3C54C9A49A8DDCA02189FE15FEA52FE24F41A86F c9EEAF78C9A12.dat Win32/GenCBL.BSP HermeticWizard
F32D791EC9E6385A91B45942C230F52AFF1626DF cc2.exe WinGo/Filecoder.BK HermeticRansom
AD602039C6F0237D4A997D5640E92CE5E2B3BBA3 cl64.dll Win32/KillMBR.NHP IsaacWiper
736A4CFAD1ED83A6A0B75B0474D5E01A3A36F950 cld.dll Win32/KillMBR.NHQ IsaacWiper
E9B96E9B86FAD28D950CA428879168E0894D854F clean.exe Win32/KillMBR.NHP IsaacWiper
23873BF2670CF64C2440058130548D4E4DA412DD XqoYMlBX.exe Win32/RiskWare.RemoteAdmin.RemoteExec.AC Legitimate RemCom remote access tool

MITRE ATT&CK techniques

This table was built using version 10 of the MITRE ATT&CK framework.

Tactic ID Name Description
Resource Development T1588.002 Obtain Capabilities: Tool Attackers used RemCom and potentially Impacket as part of their campaign.
T1588.003 Obtain Capabilities: Code Signing Certificates Attackers acquired a code-signing certificate for their campaigns.
Initial Access T1078.002 Valid Accounts: Domain Accounts Attackers were able to deploy wiper malware through GPO.  
Execution T1059.003 Command and Scripting Interpreter: Windows Command Shell Attackers used the command line during their attack (e.g., possible Impacket usage).
T1106 Native API Attackers used native APIs in their malware.
T1569.002 System Services: Service Execution HermeticWiper uses a driver, loaded as a service, to corrupt data.
T1047 Windows Management Instrumentation HermeticWizard attempts to spread to local computers using WMI.
Discovery T1018 Remote System Discovery HermeticWizard scans local IP ranges to find local machines.
Lateral Movement T1021.002 Remote Services: SMB/Windows Admin Shares HermeticWizard attempts to spread to local computers using SMB.
T1021.003 Remote Services: Distributed Component Object Model HermeticWizard attempts to spread to local computers using WbemLocator to remotely start a new process via WMI.
Impact T1561.002 Disk Wipe: Disk Structure Wipe HermeticWiper corrupts data in the system’s MBR and MFT.
T1561.001 Disk Wipe: Disk Content Wipe HermeticWiper corrupts files in Windows, Program Files, Program Files(x86), PerfLogs, Boot, System Volume Information, and AppData.
T1485 Data Destruction HermeticWiper corrupts user data found on the system.  
T1499.002 Endpoint Denial of Service: Service Exhaustion Flood By using DDoS attacks, the attackers made a number of government websites unvailable.