Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
psc — Сквозное шифрование для многошаговых tty-сессий или портшеллов + проброс TCP/UDP портов | Kitploit
Инструменты/GitHubGitHub/stealth/psc
Инструменты шифрования/дешифрованияФорензикаСетевая безопасностьТестирование на ПроникновениеRed Teaming
GitHubstealth/psc

psc

Сквозное шифрование для многошаговых tty-сессий или портшеллов + проброс TCP/UDP портов

Репозиторий
13325141 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PortShellCrypter -- PSC

Данный проект, как и его сестринский проект crash, относится к моему набору инструментов для борьбы с цензурой, который позволяет настроить полностью рабочие зашифрованные оболочки и пересылку TCP/UDP во враждебных цензурирующих средах. Он также полезен в криминалистике для извлечения данных с устройств через UART или adb, когда другие средства недоступны.

asciicast DNS-запрос и SSH-сессия, пересылаемые через UART-соединение к Pi

PSC позволяет сквозное шифрование сессий оболочки, одно- или многошаговое, независимо от базового транспорта, при условии, что он надёжен и может отправлять/принимать данные в кодировке Base64 без модификации/фильтрации. Наряду с сквозным pty (который вы получаете, например, внутри портовой оболочки), вы можете пересылать TCP и UDP соединения, аналогично параметру -L в OpenSSH. Это работает прозрачно и без необходимости наличия IP-адреса, назначенного локально в начальной точке. Это позволяет криминалистам и пентестерам создавать сетевые соединения, например, через:

  • UART-сессии к устройству
  • adb shell-сессии, если OEM adbd не поддерживает пересылку TCP
  • telnet-сессии
  • модемные дозвоны без ppp
  • другие виды консольных входов
  • смешанные SSH/telnet/модемные сессии
  • ...

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

Работает на Linux, Android, OSX, Windows, FreeBSD, NetBSD и (возможно) OpenBSD.

PSC также включает поддержку прокси SOCKS4 и SOCKS5 для возможности полноценного просмотра веб-страниц через портовые оболочки или модемные дозвоны удалённо.

Сборка

Отредактируйте Makefile, чтобы указать ваши предварительно распределённые ключи, определённые в верхней части Makefile.

Затем просто выполните make на Linux и OSX.

На BSD необходимо установить GNU make и выполнить gmake.

На Windows необходимо установить cygwin и выбрать соответствующие пакеты gcc, gcc-g++, make и git.

На Linux PSC будет использовать псевдотерминалы Unix98, на других системах — POSIX pty, но это должно быть прозрачно для вас. Когда-то давно я добавил поддержку 4.4BSD pty и SunOS по особой причине, так что он может собираться даже на Solaris.

с гордостью спонсируется:

логотип спонсора

Использование

Просто и понятно. На вашей локальной машине выполните pscl и передайте любые TCP или UDP порты, которые вы хотите пересылать из удалённого сайта на определённый адрес. Например:

linux:~ > ./pscl -T 1234:[192.168.0.254]:22 -U 1234:[8.8.8.8]:53

PortShellCrypter [pscl] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc

pscl: set up local TCP port 1234 to proxy to 192.168.0.254:22 @ remote.
pscl: set up local UDP port 1234 to proxy to 8.8.8.8:53 @ remote.

pscl: Waiting for [pscr] session to appear ...
linux:~ >

[ UART / SSH / ... login to remote side ... ]

На удалённом сайте (последний прыжок) с сессией оболочки, независимо от того, находится ли она в портовой оболочке, SSH, консольном входе и т.д., вы выполняете pscr:

linux:~ > ./pscr

PortShellCrypter [pscr] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc


pscl: Seen STARTTLS sequence, enabling crypto.
linux:~ >

Как только вы выполните pscr, оба конца установят криптографическое рукопожатие и наложат дополнительный протокол поверх вашей существующей сессии, который для вас прозрачен. Затем вы можете подключиться к 127.0.0.1:1234 на вашей локальной машине, чтобы добраться до 192.168.0.254:22 по TCP или до резолвера 8.8.8.8 по UDP. Это также работает с адресами [IPv6], если удалённый сайт имеет IPv6-подключение. Фактически, вы можете даже использовать это для перевода IPv4-программного обеспечения на IPv6, так как вы всегда подключаетесь к 127.0.0.1 на локальной стороне.

Вы можете передавать несколько параметров -T и -U. Если вы потеряли отслеживание того, зашифрована ли ваша сессия сквозным шифрованием, вы можете отправить SIGUSR1 локальному процессу pscl, и он сообщит вам об этом.

PSC также полезен, если вы хотите использовать tor из удалённой SSH-оболочки, где вы можете переслать порт socks5 и DNS на адрес 127.0.0.1 удалённого хоста. Поскольку SSH не пересылает UDP-пакеты, обычно вы используете два соединителя socat или подобное для разрешения через узел tor. PSC имеет преимущество сохранения границ UDP-датаграмм, в то время как socat через SSH -L может нарушить границы датаграмм и создать некорректные DNS-запросы.

Сессия будет зашифрована с помощью aes_256_ctr от PSK, который вы выбираете в Makefile. Эта криптосхема пластична, но добавление данных AAD или OAD увеличивает размер пакета, где каждый байт имеет значение, так как при интерактивных сессиях и из-за кодировки Base64 каждый введённый символ уже вызывает отправку гораздо большего объёма данных.

UART-сессии могут использоваться через screen, но, например, не через minicom, так как minicom создаёт невидимые окна со строками состояния и действует как фильтр, разрушающий протокол PSC. PSC пытается обнаружить фильтрацию и может выдерживать определённое количество искажения данных, но в некоторых ситуациях восстановление невозможно. Аналогичная ситуация с tmux. Следует избегать наложения обработчиков pty с PSC, которые слишком сильно изменяют/обрабатывают входящие данные.

Переменная окружения SHELL должна быть задана как для pscl, так и для pscr, чтобы PSC знал, какую оболочку выполнять на pty. В большинстве сред SHELL установлена по умолчанию, но если это не так, PSC нужно запускать как SHELL=/bin/bash pscl и т.д.

Поддержка SOCKS4 и SOCKS5

pscl также поддерживает пересылку TCP-соединений через SOCKS4 (-4 порт) и SOCKS5 (-5 порт). Это настраивает порт как SOCKS-порт для TCP-соединений, так что, например, вы можете просматривать удалённые сети из портовой сессии оболочки без необходимости открывать другое соединение во время пентеста. Если вы передаёте -N в pscl, то он включает разрешение DNS-имён на удалённой стороне, так что вы также можете использовать chrome с этим. Но будьте предупреждены: существует проблема конфиденциальности с браузерами, которые пытаются разрешить последовательность DNS-имён при запуске, которая не находится под вашим контролем. Кроме того, если на вашей удалённой стороне сломанная настройка DNS, ваша печатающая оболочка может блокироваться на несколько секунд, если отсутствуют DNS-ответные пакеты. Нет хороших асинхронных функций резолвера, которые были бы встраиваемыми и переносимыми, поэтому мне пришлось полагаться на getaddrinfo() в одном потоке ценой возможных блокировок на несколько секунд при проблемах с DNS. Поэтому разрешение имён должно быть явно включено. pscr старается минимизировать эту потенциальную проблему с помощью кэша DNS-запросов, так что в большинстве ситуаций всё должно работать безболезненно. Если вы передаёте -X IP-адрес (должен быть первым аргументом), вы можете привязать свой локальный прокси к адресу, отличному от 127.0.0.1, так что вы сможете делиться прокси в своей локальной сети.

Команды отскока (Bounce commands)

Скачать инструмент