Что можно сделать с открытым портом

Что можно сделать с открытым портом

В прошлый раз мы рассказали о том, что такое компьютерные порты. По сути, установленным на компьютере программам, которые используют Интернет, для нормальной работы нужен не только сам доступ в Сеть, но и открытые порты.

Как и другим программам, которые отправляют и принимают информацию из Сети, порты нужны для работы сетевым играм. Неважно, играете в Counter Strike, World of Tanks или «Доту»: все эти игры многопользовательские, а значит, им нужны порты для взаимодействия с другими игроками. Порты постоянно используют и другие популярные программы, например, Skype, Viber или μTorrent.

Но порты вашего компьютера могут быть закрыты. Представьте ситуацию: ваш мобильный телефон внезапно перестал принимать входящие сообщения и звонки. То есть, вы звоните кому-нибудь, на другом конце поднимают трубку, вы говорите «Алло!», а в ответ — ни слова. Вы набираете номер снова и снова, звоните на другие номера, но все по-прежнему – вас не слышат. Тогда вы пишете SMS, но и на них не приходят ответы.

Примерно так можно описать ситуацию, когда порты вашего компьютера закрыты. Ваши программы, связанные с Сетью, отправляют информацию, но в ответ ничего не приходит. Конечно, при этом они не могут полностью выполнять свои функции. В играх это проявляется сообщениями об ошибке соединения, задержками в работе (лагами). Так, например, в World of Tanks может появляться сообщение «Destination Unreachable».

Чтобы понять, что при этом происходит и как с этим бороться, нужно понимать, как компьютер может быть соединен с Интернетом. Возможны три различных варианта: прямое подключение к Интернету, подключение через роутер и подключение с использованием трансляции сетевых адресов (NAT). Сейчас мы расскажем о каждом из этих случаев подробнее.

Прямое подключение.

При таком подключении ваш компьютер можно сравнить с частным домом. Этот дом стоит сам по себе, у него есть 65536 постоянно открытых дверей и свой отдельный адрес – название улицы и номер дома. При этом вы можете выйти из любой из дверей и пойти куда угодно. Точно так же кто угодно, зная название улицы и номер дома, может прийти к вам и зайти в любую из дверей. Вы либо ваши гости это и есть пакеты информации, передаваемой между вашим компьютером и Интернетом. Как вы уже догадались, все порты при таком подключении открыты, а информация может свободно передаваться в обоих направлениях.

Правда, такая ситуация это лишь идеальный случай. Почти всегда для защиты информации применяются межсетевые экраны – брандмауэры или Firewall’ы. О том, что это такое, мы уже писали. Если рассматривать его как часть нашего частного дома, то Firewall это сторож, который следит за тем, чтобы двери были закрыты, а войти и выйти могли только те, у кого есть пропуск. О том, как настроить Firewall для того, чтобы открывались те или иные порты, мы расскажем в отдельной статье.

Подключение через роутер.

Внешне домашний роутер представляет собой небольшую коробочку. По сути это тоже компьютер, задача которого сводится к получению доступа в Интернет и распределению его сразу на несколько устройств – компьютер, ноутбук, планшет или смартфон. Таким образом, если при подключении к Сети напрямую наш компьютер можно сравнить с частным домом, то при подключении к роутеру он является квартирой в многоквартирном доме. Вы можете легко выйти из квартиры через любую дверь (а их у нас, как вы уже могли догадаться, 65536) и пойти куда угодно. Но если кто-то хочет прийти к вам в гости, то теперь он должен знать не только название улицы и номер дома, но и номер квартиры. В подъезде при этом сидит строгий швейцар, который спросит у любого гостя, куда тот направляется, выяснит, ждут ли его, и лишь после этого впустит гостей.

Как видите, чтобы гости без лишних проблем попали к вам в квартиру, нужно объяснить это швейцару, то есть, настроить роутер. О тонкостях настройки роутеров различных производителей мы расскажем в отдельной статье.

Подключение с использованием NAT.

Если ваш провайдер использует трансляцию сетевых адресов (NAT), то сравнить компьютер ни с домом, ни с квартирой нельзя. Скорее, это один из множества кабинетов в каком-нибудь закрытом учреждении, например, ФСБ, и в каждом из них есть свои 65536 дверей. В кабинетах работают сотрудники, все они могут в любой момент выйти из кабинета, спуститься по лестнице, выйти из здания и пойти по своим делам. При этом кто-либо со стороны просто не сможет попасть в здание.

Таким образом, если ваш провайдер использует NAT, то вы не сможете открыть порт при всем желании. Об этом мы подготовили отдельную статью.

Так вот начнем. Как же надо
хакать и с чего начать? Для начала попробуй
просканировать несколька IP по разным
портам. Ты увидишь, что некоторые компьютеры
отвечают, а некоторые нет. Некоторые компьютеры
ответят и только некоторые, возможно некоторые
из найденых будут плохо защищенными и ждать пока
ты из взломаешь.

Небольшое отступление: Ты
скажешь что это за фигня такая — порты и прочая
лабуда ? Порт — это адрес определенного сервиса
запущенного на данном компьютере в интернете.
Также их очень часто называют TCP/IP (Transfer Control
Protocol/Internet Protocol) порты, так как на них может
обратиться другой пользователь из
интернета.Примером может служить принтер или
модем — они ведь тоже обращаются с компьютером
через свои порты.Как только человек выходит в
интернет, он сразу же получает свой уникальный IP
адрес (например: ppp103-3-5.dialup.glasnet.ru).После этого
любой желающий может воспользоваться твоими
ресурсами (которые доступны) также, как и те его
ресурсами. Для того, чтобы воспользоваться
услугами, необходимо указать IP:port чтобы
воспользоваться той или иной услугой (к примеру
195.34.34.30:21 — для того, чтобы попасть на FTP сервер zone.ru)

Теперь ты возможно
приконнектишься к какому нибедь сервакук порту 23
(порт telnet`a) (для тех кто в танке: пуск => выполнить
=> telnet ip:port. Если не указывать порт, то по
умолчанию это 23 порт).Если ты нормально
приконнектишься, то увидишь приглашение с
просьбой ввести логин и пароль. Но поскольку ты
не знаешь логина/пароля, то сервер через
некоторое время пошлет тебя подальше. Если тебе
нечего делать, то можешь попытаться поперебирать
пароли, а когда надоест, можешь читать дальше.

Если попробовать
приконнектиться к серверу не через 21 порт, а
через какие нибудь другие порты, то при большом
везении сервер тебе скажет что ты
приконнектился удачно и ты сможешь легко найти
нужную комбинацию. Это самый простой способ
взламывания серверов.Можно проявить себя как
"Белый хакер в шляпе" — посылаешь письмо
сисадмину и уходишь с этого сервера (типа
незаконно и все в таком духе). Ну а если ты никогда
не слышал про 273-275 статью УК РФ, то. ну я думаю ты
сам догадаешься что тебе делать ;-))

Небольшое отступление: Сервак —
компьютер подключенный к интернету.Сервис —
программа запущенная на серваке на определенном
порту.Каждая такая программа должна отвечать на
определнные программы. Если ты дашь этой
программе правильную комманду, то она должна
что-то сделать для тебя. Самый простейший пример —
сервис "ЭХО" или по другому — генератор
символов (порт 19).Если ты приконнектишься
телнетом по этому порту к компьютеру у которого
запущен этот сервис, эта программа будет
реагировать на любой нажатый тобой символ и
будет показывать его в окне телнета. Все что тебе
нужно — приконнектиться к серваку на котором
запущен нужный тебе сервис. Другой пример — это
сервис поиска нужного человека в сети (Finger). Если
ты задашь этой программе искать какого либо
человека с другого хоста и при этом программа finger
запущена на сервере, а также пользователь не
сделал так, чтобы его эта программа не находила,
то ты получишь об этом пользователи очень
много полезной инфы.

Какие сервисы запущены на
каких портах и откуда об этом узнать ? Порты
находятся в диапазоне от 1 до 1024 и называются
"хорошо известные порты" (well-known) Подробней о
этом можно почитать в RFC стандартах (http://www.internetnorth.com.au/keith/networking/rfc.html).
Также списаок использованных портов можно
посмотреть в файле на компьютере, который
называется "services". В втоем любимом МастДАЕ (10
раз МастДАЙ !) он находится в C:\_твой_MUSTDIE_SERVICES В NT
(тоже МастДАЙ, но получше) это
C:WINNTSYSTEM32DRIVERSETCSERVICES Ну а в ЮНИХЕ это /etc/services/
(хотя если у тя стоит ЮНИХ я думаю те это
объяснять не надо). Эти порту называются хорошо
известными, так как он используются для наиболее
распростроненных сервисов (WWW, Ё-mail, FTP, news, telnet и
так далее) SMTP — отправка почты 25 порт, POP3 — прием
почты 110 порт, WWW — 80 порт FTP — 21 .
Хороший ФАК (в смысле ЧАВО — ЧАсто задаваемые
ВОпросы, а не то что ты подумал !) (правда
англицкий) по TCP/IP портам лежит по адресу http://www.technotronic.com/tcpudp.html

Ты можешь быть сбит с толку тем,
то что существует куча прог для сканирования
всего, чего только возможно и хакеры ими ооочень
часто пользуются. НО ! При этом ты можешь
нарваться на неприятности, так как у сисадминов
есть привычка (далеко не лучшая в твою пользу)
просматривать логи всех коннектов и по каким
портам а так же попытки взлома ихнего сервера.
Некоторые сисадмины свободно разрешают сканить
ихние серверы, а некоторые увидев что-нибудь не
ладное сразу откапывают твоего сисадмина и
жалуются ему какой ты нехороший (в
исключительных случаях это может окончиться тем,
что тебя отключит из инета твой пров навсегда !). В
США сканирование разрешено и сами сисадмины
часто сканят друг друга в целях нахождения дырок.
Но от греха подальше если кого-нить
собираешьсясканить из добрых побуждений — лучше
попроси разрешение или хотя бы уведоми об этом
сисадмина.

Так что же такое дырки в
сиистемах о которых столько говорят? Дырка —
что-нибудь в системе, которое позволяет
кому-нибудь контролировать систему в обход
сисадмина.Существует очень много типов дырок.Это
может быть неправильно сконфигурированная
программа, ошибка в самой программе. Наглядным
примером плохо сконфигурированной программы
может служить старая версия программы sendmail —
если сиадмин оставлял команды wiz и debug или дли
директории неправильные права доступа на FTP
сервере, то любой желающий мог скачать файл
паролей ;-)) В таких слуаях вся вина лежит на
сисадминах, так как ошибка допущена при
конфигурировании, а не из-за самой программы.
Другой очень известный и распрастроненный баг —
расшаривание ресурсов в МастДае когда это
совершенно не нужно или пустой пароль на полный
доступ. Из ошибок программ самые
распространенные — переполнение буфера обмена у
программ созданных для интернета. Очень часто
это используют для того, чтобы перехватить
контроль над серваком и потом делать с ним все
что твоей душе угодно. Ну а теперь перейдем к
очень известному сейчас виду атак — Эксплоитам.
Ты уже наверно не раз слышал об этой атаке, но не
врубал что это такое и как этим пользоваться. Так
вот. Эксплоит — это программа написанная на Си++,
используящая дырки в
системе для получения прав рута (root) — самого
главного человека, которому доступно ВСЕ . К
примеру это так называемая FTP-Bounce дырка,
заключаемая в том, что FTP сервер (служит для
скачки/закачки файлов с сервера/на сервер)
настроен так, чтобы переадрисовывать запрос
пользователя на другой компьютер. По идее эта
фича вообще нафиг не нужна (в смысле для
сисадминов — нам она как раз таки и нужна ;-)))Это
только создает возможность взлома, так как эта
фича позволяет
любому человек просканить порты другого
компьютера и представиться компьютеру FTP
сервером с которого идет по типу переадресация и
этот человек получит "ключи от квартиры где
деньги лежат". Вообще эксплоиты наиболее
практические и довольно таки легко применяются
(если голова с руками растет откуда надо). С
эксплоитом можно хорошо поиздеваться над
сисадмином а также над его системой (ой — а зачем
вот эти файлы — они тут вааааще не нужны ! ;-)) ).
Эксплоит хорош еще тем, что он не ломает систему
(сам справишься !) а только дает тебе "ключи".
Как ты знаешь сейчас серваки стоят как минимум на
трех типах платформ : NT, VMS и UNIX. Их куча разных
версий и типов — UNIX делится на BSD, AIX, SCI, Sun OS, Irix и
(наверно) твой любимый ЛИНУХ. Ну и конечно же
каждая версия глючит по разному и по этому под
разные типы и версии существуют эксплоиты так
сказать "нужного калибра", ведь как ты
понимаешь эксплоит
сделанный под NT не будет пахать под UNIX, а
сделанный для Sun OS не будет пахать под Линух (ну
хакеру не проблема переделать эксплоит для одной
версии "на лету" для другой — на то он и
хакер).Ну а разные версии не будут пахать так как
очень часто вообще меняют прогу которая стоит,
только оставляют тоже имя и номер версии
чуть-чуть переделывают. Ну и конечно же все дырки
рано или поздно фиксят и нужно стараться
пользоваться новыми эксплоитами. Ну а теперь
самое главное — как же найти эти дырки ?

Ну для начала посмотри что у
тебя из сервисов есть на компе — набери команду
netstat -a (в Пуск => выполнить) и ты увидишь что-то
типа этого :
Active Connections
Proto Local Address Foreign
Address State
TCP
localhost:1027 0.0.0.0:0 LISTENING
TCP
localhost:135 0.0.0.0:0 LISTENING
TCP
localhost:135 0.0.0.0:0 LISTENING
TCP
localhost:1026 0.0.0.0:0 LISTENING
TCP
localhost:1026 localhost:1027
ESTABLISHED
TCP
localhost:1027 localhost:1026
ESTABLISHED
TCP
localhost:137 0.0.0.0:0 LISTENING
TCP
localhost:138 0.0.0.0:0 LISTENING
TCP localhost:nbsession
0.0.0.0:0 LISTENING
UDP localhost:135 *:*
UDP localhost:nbname *:*
UDP localhost:nbdatagram *:*

Хммм . вроде ничего
интересного. Ну начнем разгребать что это такое
появилось:

Мы видим что у Local Adres (твой комп)
прослушиваются порты 135, 137, 138 и ‘nbsession’ (вообщем
это 139 порт прослушивается . ну можешь
напесатать netstat -an чтобы увидеть не название
портов, а их номера. Ну насчет этих портов можешь
не беспокоиться — это часть Microsoft Networking и они
нужны для поддержки LAN (локалки, ну в смысле
локадьной сети). Теперь зайди в инет и топай хмммм
. допустим на www.uxx.com, хотя нет, лучше на www.happyhacker.org. Одновременно
телнеться на какой-нить сервак (ну допустим www.whitehouse.gov). Теперь снова жми
netstat -a и вот что у тебя примерно должно
получиться:
Active Connections
Proto Local Address Foreign
Address State
TCP localhost:1027
0.0.0.0:0 LISTENING
TCP localhost:135
0.0.0.0:0 LISTENING
TCP localhost:135
0.0.0.0:0 LISTENING
TCP localhost:2508
0.0.0.0:0 LISTENING
TCP localhost:2509
0.0.0.0:0 LISTENING
TCP localhost:2510
0.0.0.0:0 LISTENING
TCP localhost:2511
0.0.0.0:0 LISTENING
TCP localhost:2514
0.0.0.0:0 LISTENING
TCP localhost:1026
0.0.0.0:0 LISTENING
TCP localhost:1026
localhost:1027 ESTABLISHED
TCP localhost:1027
localhost:1026 ESTABLISHED
TCP localhost:137
0.0.0.0:0 LISTENING
TCP localhost:138
0.0.0.0:0 LISTENING
TCP localhost:139
0.0.0.0:0 LISTENING
TCP localhost:2508
zlliks.505.ORG:80 ESTABLISHED
TCP localhost:2509
zlliks.505.ORG:80 ESTABLISHED
TCP localhost:2510
zlliks.505.ORG:80 ESTABLISHED
TCP localhost:2511
zlliks.505.ORG:80 ESTABLISHED
TCP localhost:2514
whitehouse.gov:telnet ESTABLISHED

Ну теперь посмотрим что в этот
раз за лабуду выдало. Ну те же порты что и по
начало, вот только добавилось несколько новых
активных портов — 4 коннекта с zllinks.505.ORG по 80 порту
и коннект с whitehouse.gov телнетом.Это полная
статистика того, что происходит с твоим компом и
инетом. Так ты узнал настоящее имя сервака
www.happyhacker.org (zlliks.505.ORG) По идее у тебя должен
возникнуть вопрос — а какого черта есть порты, у
которых номера болше 1024 . Так вот, если ты
помнишь начало статьи, то я там говорил, что эти
порты ждут коннекта к ним. Но вот если эта
программа коннетиться куда-нить, то ей помимо
своего порта еще нужен какой-нибудь порт для
приема информации, и этот порт берется за
пределами этих 1024 портов. Так понятно ? К примеру
брацзер может открыватьдо четырех портов — с 2508
по 2511. Теперь ты возможно захочешь посканить
порты друга ? Лучший способ сделать это и не
бояться быть выкинутым из инета своим
провайдером — подпроси друга (подругу) набрать
netstat -r.Тады у него появится около того:
Route Table
Active Routes:
Network Address Netmask Gateway
Address Interface Metric
0.0.0.0
0.0.0.0 198.59.999.200
198.59.999.200 1
127.0.0.0
255.0.0.0 127.0.0.1
127.0.0.1 1
198.59.999.0 255.255.255.0
198.59.999.200 198.59.999.200 1
198.59.999.200 255.255.255.255
127.0.0.1 127.0.0.1 1
198.59.999.255 255.255.255.255 198.59.999.200
198.59.999.200 1
224.0.0.0
224.0.0.0 198.59.999.200
198.59.999.200 1
255.255.255.255 255.255.255.255 198.59.999.200
0.0.0.0 1
Active Connections
Proto Local
Address Foreign
Address State
TCP
lovely-lady:1093 mack.foo66.com:smtp
ESTABLISHED

Gateway Address и Interface покажут
ему твой реальный IP (ну или IP сервера, если ты
сидишь через локальную сеть). Учти если твой друг
сидит в локалке, то пржде 10 раз подумай чем его
сканить, а то сисадминам очень не нравится, когда
какой недохакер (как они считают) пытается их
поломать и могут пойти на все меры лишь бы
отомстить и поразвлечься (иногда самое
безобидное — синий экран)

Прошлый летом я заинтересовался вопросами информационной безопасности и взлома. Последний год я много играл в wargames, «захват флага», тестирование на проникновение, постоянно совершенствуя навыки взлома и изучая новые способы заставить компьютеры отклоняться от ожидаемого поведения.

Короче говоря, мой опыт ограничивался имитируемой средой, и, считая себя официальным хакером, я никогда не совал нос в бизнес других людей.

Это будет подробная история о том, как я взломал сервер, на котором размещалось 40 (это точное число) веб-сайтов, и о моих находках.

Примечание. Некоторые предварительные знания CS необходимы для понимания технической составляющей статьи.

Друг сообщил мне, что его веб-сайт XSS уязвим, и попросил меня взглянуть. Я попросил у него официальное разрешение на полное тестирование его веб-приложения на его сервере. Ответ был положительным.

В статье я буду ссылаться на сайт моего друга – http://example.com

Первый шаг – найти как можно больше информации о своем враге, пытаясь как можно меньше его тревожить.

На этом этапе мы запускаем наш таймер и начинаем сканирование.

Сканирование завершается по истечении 2 минут.

Множество открытых портов! Судя по тому, что порты FTP (порт 21) и SMB (порты 139/445) открыты, можно предположить, что сервер используется для размещения и совместного использования файлов, а также является веб-сервером (порты 80/443 и прокси на 8080/8081).

При сканировании UDP-порта будет рассмотрено более 1000 портов, если вышеизложенной информации недостаточно. Единственным портом, с которым разрешено взаимодействовать (без учетных данных), является порт 80/443.

Не теряя времени, я запускаю gobuster , чтобы найти какие-нибудь интересные файлы на веб-сервере, пока я буду копать информацию вручную.

Оказывается, путь /admin был «административным инструментом», который позволял аутентифицированным пользователям изменять материал на веб-сервере. Он требует параметры доступа, которых у нас нет (спойлер: gobuster не нашел ничего ценного).

Прошло около 3 минут. Ничего полезного.

Веб-сайт просит нас войти. Нет проблем. Создаем учетную запись с фиктивной электронной почтой, щелкаем по электронной почте подтверждения и входим в систему через несколько секунд.

Веб-сайт приветствует нас, предлагает перейти к профилю и обновить фотографию. Как мило.

Похоже, сайт сделан на заказ. Я собираюсь протестировать уязвимость с неограниченной загрузкой файлов. На моем терминале я выполняю:

Я пытаюсь загрузить «картинку» и – бинго! Загрузчик позволяет загрузить файл exploit.php. Конечно, у него нет эскизов, но это значит, что мой файл где-то загружен.

Ожидается, что загрузчик выполнит какую-либо обработку загруженного файла, проверит его расширение и заменит принятое расширение, например .jpeg, .jpg, чтобы избежать удаленного выполнения кода злоумышленником, загружающим вредоносный код.

В конце концов, люди заботятся о безопасности.

Похоже, что webshell готов и работает:

Видим, что веб-сервер запускает perl-скрипты (реально? perl?). Мы берём обратную оболочку perl из нашего любимого cheatsheet, устанавливаем IP/Port и получаем в качестве награды low-privileged оболочку – извините, нет скришота.

5 минут в оценке, и у нас уже есть оболочка с низким уровнем привилегий.

К моему огромному удивлению, на сервере размещался не 1 сайт, а сразу 40 разных. К сожалению, я не сохранил скриншоты каждой детали, но вывод был примерно таким:

Удивительно, но у меня был доступ на чтение ко всем размещенным веб-сайтам, а это означало, что я мог читать весь бэкенд-код сайтов. Я ограничился кодом example.com.

Примечательно, что внутри каталога cgi-admin/pages все скрипты perl соединялись с базой данных mysql как root. Учетные данные для базы данных были в открытом виде. Пусть они будут root:pwned42.

Разумеется, на сервере была запущена MariaDB, и мне пришлось решить эту проблему, прежде чем получить доступ к базе данных. После этого мы выполняем:

И мы находимся в базе данных с привилегиями root.

Через 7 минут у нас есть полный доступ для чтения / записи к содержимому 35 (!) баз данных.

Морально я обязан здесь остановиться и поделиться выводами. Потенциальный ущерб уже огромен.

Что может сделать злоумышленник

Процесс mysql запускался под root, поэтому я решил, что попробовал выполнить ! whoami в надежде получить root. К сожалению, я все еще был apache.

Время отдохнуть. Остановите таймер.

Я поделился своими выводами и получил разрешение копать глубже.

Прежде чем искать способы повысить свои привилегии до root и иметь возможность причинить огромный потенциальный ущерб, я посмотрел, какие другие интересные файлы мог бы читать, будучи ограниченным пользователем.

Я вспомнил об открытых портах SMB. Это означало, что где-то в папке должна быть другая папка, которая используется в системе среди пользователей. После небольшого поиска в каталоге /home/samba/secure появляется следующее:

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

  • .psd / .ai (дизайнеры знают, как важно сохранять эти данные);
  • файлы cookie sqlite;
  • счета-фактуры;
  • пиратские электронные книги (усмехнулся, когда я увидел);
  • учетные данные для SSID-сетей WiFi.

Что может сделать злоумышленник

Потребовалось некоторое время, чтобы пройти через папки и понять, насколько серьезна эта проблема.
Еще один перерыв.

Осмотревшись еще немного как apache, я решил, что пришло время пойти на большую рыбу – получить доступ root. Используя шпаргалки, начинаю перебирать систему.

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

В задачах Capture the Flag, которые я использую для игры, операционная система обычно пропатчена. Это некоторая намеренно неверно настроенная служба, которая в конечном итоге дает вам привилегии root. Однако в реальном мире люди не латают дыры.

Я имею в виду вот что: посмотрите на Equifax (не мог удержаться).

Какой Linux работает на сервере?

Какая версия ядра?

Это похоже на старую версию ядра.


Это напоминает вам что-то? Если нет, прочитайте здесь (подсказка: это ОЧЕНЬ серьезно).

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


Временные метки и восстановленные сайты Firefox отредактированы

Игра закончена

Я мгновенно написал электронное письмо, полностью раскрывающее детали и потенциальное влияние каждого шага, как описано выше. Уф.

Что может сделать злоумышленник

На следующий день со мной связался друг (он связался с работающей на сервере компанией) и рассказал, что ошибка в загрузке файлов была исправлена.

Подводя итоги, мы обнаружили следующее:

  • Веб-приложение с уязвимостью для неограниченной загрузки файлов, которая привела к использованию оболочки с ограниченными правами.
  • Учетные данные для базы данных mysql, которые привели к доступу на чтение/запись к 35 базам данных.
  • Множество читаемых конфиденциальных файлов.

Наконец, мы злоупотребили непропатченным ядром для получения доступа root.

Начнем с аплоудера, который дал основной плацдарм. Поскольку бэкенд всего веб-приложения был написан в perl, я не могу предложить решения.

Решение, которое я бы предложил, было бы таким: не использовать perl в 2017 году, но это только мое мнение.

Что касается файловой системы, я рекомендую проявлять большую осторожность при назначении правильных прав доступа к файлам для пользователей в соответствии с принципом наименьших привилегий. Таким образом, даже если низкоприоритетный пользователь, такой как apache, получает доступ, он не может читать конфиденциальные файлы.

Запуск всех веб-сайтов на одном сервере – плохая идея, я не уверен, позволит ли докеризированный подход решить проблему.

Наличие одинаковых учетных данных для всех баз данных – безусловно, плохая идея.

Нежелательно иметь одиночные точки отказа.

Наконец, пропачьте все. Это всего лишь одна команда: su -c ‘yum update’ (специфичная для CentOS).

Ссылка на основную публикацию
Что выбрать windows 7 или windows 10
Сегодня в нашем блоге «Чо?! Чо?!» я раскрою все преимущества и недостатки новой операционной системы для ноутбуков, сравнив ее с...
Хороший набор инструментов для автомобиля отзывы
Счастливым обладателям автомобилей необходимо иметь при себе инструменты, помогающие в чрезвычайной ситуации с машиной. Ежегодно выпускается большое количество разнообразных инструментов,...
Хонор похожий на айфон
Apple активно продвигает iPhone XS, но есть ли достойная альтернатива дорогому и в чём-то «сырому» устройству? Honor наносит ответный удар...
Что в китае дешевле чем в россии
Я экономлю тысячи рублей, покупая товары из Китая через интернет Сегодня я расскажу Вам о том, что выгодно покупать в...