Пишем Reverse socks5 proxy на powershell.Часть 2
История об исследовании и разработке в 3-х частях. Часть 2 — разработческая.
Буков много — пользы еще больше.
В первой части статьи мы познакомились с некоторым инструментарием по организации обратных туннелей, посмотрели на их преимущества и недостатки, изучили механизм работы Yamux мультиплексора и описали основные требования к вновь создаваемому powershell-модулю. Настало время заняться разработкой клиентского powershell модуля к уже готовой реализации обратного туннеля RSocksTun
Прежде всего, нам необходимо понять, в каком режиме будет работать наш модуль. Очевидно, что для прима-передачи данных нам необходимо будет использовать механизм windows сокетов и предоставляемые .Net возможности по потоковому чтению-записи в сокеты. Но, с другой стороны, т.к. наш модуль должен обслуживать несколько yamux-стримов одновременно, то все операции ввода-вывода не должны полностью блокировать выполнение нашей программы. Отсюда напрашивается вывод о том, что наш модуль должен использовать программную многопоточность и выполнять операции чтения-записи с yamux-сервером, а так же операции чтения-записи к серверам назначения в разных программных потоках. Ну и само собой необходимо предусмотреть механизм взаимодействия между нашими параллельными потоками. Благо, powershell предоставляет широкие возможности по запуску и управлению программными потоками.
Читать дальше →
Буков много — пользы еще больше.
В первой части статьи мы познакомились с некоторым инструментарием по организации обратных туннелей, посмотрели на их преимущества и недостатки, изучили механизм работы Yamux мультиплексора и описали основные требования к вновь создаваемому powershell-модулю. Настало время заняться разработкой клиентского powershell модуля к уже готовой реализации обратного туннеля RSocksTun
Прежде всего, нам необходимо понять, в каком режиме будет работать наш модуль. Очевидно, что для прима-передачи данных нам необходимо будет использовать механизм windows сокетов и предоставляемые .Net возможности по потоковому чтению-записи в сокеты. Но, с другой стороны, т.к. наш модуль должен обслуживать несколько yamux-стримов одновременно, то все операции ввода-вывода не должны полностью блокировать выполнение нашей программы. Отсюда напрашивается вывод о том, что наш модуль должен использовать программную многопоточность и выполнять операции чтения-записи с yamux-сервером, а так же операции чтения-записи к серверам назначения в разных программных потоках. Ну и само собой необходимо предусмотреть механизм взаимодействия между нашими параллельными потоками. Благо, powershell предоставляет широкие возможности по запуску и управлению программными потоками.
Читать дальше →
Источник: Хабрахабр
Похожие новости
- Мерчандайзинг в интерфейсах: Как ваши привычки стали врагом номер один
- Вход по УКЭП в корпоративных системах: практическая архитектура
- Миллион в месяц за блокировки интернета, или чем отличается капитализм от социализма
- Экспертное мнение: Искусство слушания: 10 техник медиации, которые меняют восприятие и поведение в бизнес-конфликте
- Когда расширение делает больше, чем обещает: разбор Page Locker
- Российская инфраструктура стала тихой гаванью для киберпреступников. Причем тут Руцентр, Рег.Ру и DDoS-Guard?
- Pragmata взломали за два дня до релиза. Шесть слоёв защиты Denuvo и как их обходят через гипервизор
- Страшно, когда не видно: взгляд внутрь домена
- Безопасность умных устройств изнутри: от Secure Boot и TrustZone до отчётов внешних исследователей
- Реклама в Max уже работает: установки приложения в 7 раз дешевле, чем в Telegram