Обновлено 30.09.2018
Добрый день, уважаемые читатели, иногда бывают такие ситуации, что вам понравился сайт, он очень быстро открывается и вы хотели бы понять на каком веб сервере он организован. Для реализации данной задачи, вам не потребуется ничего кроме браузера, я использую для этих целей Google Crome, но вы можете использовать любой, удобный для вас. Особенно данная информация подойдет для начинающих веб мастеров.
Режим разработчика
Для выполнения нашей задачи мы будем пользоваться режимом разработки, который присутствует в каждом браузере. Например в Google Chrome он вызывается нажатием на клавишу F12. Я его недавно использовал, когда делал переход с php 5 на php 7. Выбираете любой сайт и нажимаете F12. Выбираем пункт Network > Headers. Затем находим нужную страницу. Щелкнув по ней у вас откроется дополнительное окно в котором есть поле X-Powered By. В данном случае сайт работает на PHP 5.2.17.
Вот вам пример IIS сервера, он называется ASP.NET.
Еще мне нравится использовать сервис http://checkmy.ru/ он так же позволяет вбив в адресную строку, получить информацию о веб сервисе. Как видите, тут да же показывается версия IIS.
Как определить CMS сайта
Кто не знает, CMS это консоль управления сайтом, по простому движок. У каждого движка свои возможности и функционал. Давайте я покажу метод, который вам позволит понять какая CMS или это самописный сайт, используется на ресурсе. Для решения данной задачи, я использую расширение для Google Chrome под названием RDS Bar. Открыв его вы в правом, верхнем углу увидите логотип движка, в данном случае это WordPress.
Если он не показывает движок, то сайт разработан на самописной CMS. Вот вам пример Joomla.
Так же можно определить движок и через код, для этого откройте любой сайт и нажмите сочетание клавиш CTRL+U, у вас откроется текстовая страница, с кодом данного сайта. Элементарным поиском можно проверить наличие слов, например Joomla.
Если говорить про WordPress, то там вы сможете так же найти его упоминание, хотя большинство вебмастеров убирают упоминания о версии и движке, но если вы хоть немного знакомы со структурой WordPress, то с легкостью сможете его определить. Поищите такую конструкцию в ссылках wp-content/ это сто процентов каталог WordPress.
Если вы знаете еще какие либо способы пишите в комментариях.
Как через CMD найти веб-сервер? mssql сервер?
-
Вопрос заданболее трёх лет назад
-
307 просмотров
Пригласить эксперта
SQL Server после установки запускает службу SQLBrowser которая слушает порт udp/1434, если найдешь утилиту ком.строки, которая умеет подключаться к udp портам, то сможешь просканировать сеть на наличие SQL Serverов.
Вот здесь вроде похожая по функционалу утилита предлагается: https://packetsender.com/
Сам не пользовался – первая ссылка в гугле.
-
Показать ещё
Загружается…
16 мая 2023, в 01:43
2000 руб./за проект
16 мая 2023, в 00:11
300 руб./за проект
16 мая 2023, в 00:11
20000 руб./за проект
Минуточку внимания
Здравствуй, codeby!
Продолжаем пентест и сегодня научимся определять поставщика и версию веб-сервера, искать веб-приложения на сервере и взглянем на robots.txt.
Не пренебрегайте разведкой, ибо как вы увидите в некоторых примерах в статье – это очень важная часть тестирования. Результаты, полученные на этом этапе могут сильно повлиять на ход дальнейшего тестирования.
Определение веб-сервера.
Сегодня на рынке имеется множество разных производителей и версий веб-серверов, вот список некоторых:
Apache – свободный веб-сервер, наиболее часто используемый в UNIX-подобных операционных системах
nginx – свободный веб-сервер, разрабатываемый Игорем Сысоевым и на сегодняшний день соперничает по популярности с Apache
IIS от компании Microsoft, распространяемый с ОС семейства Windows
LiteSpeed Web Server — проприетарный веб-сервер, разрабатываемый с упором на быстродействие
Google Web Server — проприетарный веб-сервер комании Google, используемый в веб-инфраструктуре Google
Представленные выше серверы являются самыми популярными на 2019 год. Все остальные вместе взятые веб-серверы, названия которых исчисляются десятками, используются менее чем в 1% веб-приложений.
Актуальную статистику можно посмотреть
Ссылка скрыта от гостей
.
Определение веб-сервера, используемого в тестируемом приложении – это критически важная задача для тестера. Знание типа и версии веб-сервера позволит тестировщику определить, есть ли для этого сервера известные уязвимости и как их эксплуатировать, что в свою очередь может сильно изменить ход тестирования.
Эта информация может быть получена путем отправки определенных команд на веб-сервер и анализа ответов от него, поскольку разные версии серверов могут по-разному реагировать на эти команды. Обратите внимание, что для точной идентификации веб-сервера обычно требуется отправить несколько разных команд, поскольку разные версии могут одинаково реагировать на одну и ту же команду. Редко разные версии реагируют одинаково на все команды HTTP. Таким образом, отправляя несколько разных команд, тестер может строить более точные предположения.
Самая простая и основная форма идентификации веб-сервера – это посмотреть на заголовок «Server» в ответе сервера. Для теста будем использовать Netcat.
Рассмотрим следующий HTTP-запрос:
Как видим, в заголовке Server указан Apache.
Запрос-ответ на другой сервер:
На этот раз заголовок Server отдает больше информации. Видим, что версия Apache 2.4.12 и операционная система FreeBSD.
Microsoft IIS 7.5
nginx/1.12.2
LiteSpeed
Обратите внимание, что на сервер LiteSpeed кроме заголовка Server явно указывает заголовок X-Litespeed-Cache-Control.
Google Web Server (gws)
Netscape-Enterprise/6.0
Netscape-Enterprise/3.5-For-NetWare
Однако, данный способ помогает не всегда. У админа сервера есть возможность изменить значение заголовка Server, не показывать его вообще и другими способами скрыть версию веб-сервера. К примеру мы можем получить такой ответ:
Тут поставщика сервера по заголовку определить невозможно.
Более совершенные методы основаны на различных особенностях поведения веб-серверов. Например, каждому веб-серверу свойственно устанавливать свой порядок HTTP-заголовков в ответе.
Еще раз посмотрите на все примеры, приведенные выше. В примере с nginx заголовок Server является первым, и расположен перед заголовком Date. В примере c Apache заголовок Server располагается вторым по порядку, после заголовка Date, точно так, как в примере, где сервер мы не смогли определить. И точно так, как в примере с Netscape-Enterprise/6.0. Пример Netscape-Enterprise/3.5-For-NetWare по порядку заголовков похож на nginx/1.12.2.
Как видим, не все так однозначно, поэтому переходим к следующему способу, основанному на отправке некорректных запросов.
В запросе изменим версию протокола на несуществующую – HTTP/3.0.
Так реагирует Apache:
Посмотрите, как по разному реагирует один и тот же сервер на неправильный и правильный запросы:
Так отреагировал на неверный запрос наш неизвестный зверь Unknown-Webserver. От него приходят два ответа:
Изменим запрос – укажем несуществующий протокол JUNK, и теперь приходит один ответ:
Реакция LiteSpeed на несуществующую версию протокола HTTP/3.0):
На несуществующий протокол JUNK/1.0 LiteSpeed ответит иначе:
Анализируя полученную информацию, сравнивая ее с известными ответами различных серверов, пентестер строит и уточняет свои предположения.
Не обязательно использовать Netcat. Править HTTP-запросы и смотреть ответы сервера можно средствами браузера:
Сервер codeby.net спрятан за cloudflare.
Само собой, что для получения тех же самых результатов существуют автоматизированные инструменты.
Например whatweb, который по умолчанию предустановлен в Kali:
Если вы по какой-то причине не хотите напрямую связываться с целевым сервером, можете использовать онлайн-сервисы, к примеру
Ссылка скрыта от гостей
:
Бывает, что ни один из рассмотренных способов не принес нужного результата. В таком случае вам могут помочь страницы об ошибках в веб-приложении, которые в себе могут раскрывать информацию о сервере.
Они могут быть такими (Tengine/2.0.0):
такими (nginx/1.12.2):
и даже такими (Apache/2.4.18):
На последнем скрине видим, что раскрывается не только информация о версии сервера, но так же мы узнали версию используемого фреймворка и путь до корня веб-сервера.
robots.txt
Файл robots.txt используется для того, что бы поисковые роботы и сканеры знали, какие веб-страницы можно индексировать, а какие нет.
Для примера файл robots.txt Google.com:
Такой файл имеется в большинстве веб-приложений и иногда может содержать в себе важную для тестера информацию, например, пути к административным интерфейсам. Кроме того, иногда в robots.txt указаны расширения файлов, которые нельзя (или можно) индексировать, что указывает на возможность наличия таких файлов на сервере.
Определение веб-приложений на сервере.
На следующем шаге нам необходимо выяснить, какие конкретно приложения размещены на веб-сервере. Многие веб-приложения имеют уязвимости, которые давно стали достоянием общественности, и которые можно использовать для получения удаленного доступа к серверу и другим приложениям, размещенным на том же сервере. Кроме того, некоторые приложения, которые предназначены для «внутреннего использования», часто плохо сконфигурированы и редко обновляются.
Например, имеется коммерческий сайт, на первый взгляд вполне «ухожен», да еще и IT-направленности. На домене аж четвертого уровня находим веб-приложение, написанное на языке Perl, расположенное на том же самом сервере, что и целевой сайт. Похоже, что админ чувствовал себя в безопасности, располагая на данном веб-сервере такое приложение, так как оно не планировалось для использования широким кругом лиц.
Хочется предупредить таких админов — это ложное чуство безопасности, по-другому называемое Security through obscurity.
Найденное приложение оказалось уязвимым к Ditectory Traversal и Local File Include. На скриншоте видно подключение файла /etc/passwd и вывод его содержимого в браузер:
В прилжении были найдены и другие уязвимости. Например можно просматривать некоторые директории и файлы этого приложения через браузер:
Обратите внимание на файл “password”:
C этим паролем заходим в админку, а в админке есть возможность заливать произвольные файлы на сервер (в том числе исполняемые):
Есть уязвимости в логике – средствами приложения можно просматривать список файлов в произвольных директориях, загрузить и удалить файл в любой директории, например в /etc. Такой эффект достигался путем манипулярования значением параметра DIR в запросе (смотрите в адресную строку):
Оцените важность этапа разведки в тестировании на этом примере.
Как искать веб-приложения на сервере?
Для начала рассмотрим точки, где они могут находиться.
1. Неочевидные URL.
Очевидной точкой входа для веб-приложения является
Ссылка скрыта от гостей
. Но хотя это самая распространенная ситуация, ничто не заставляет приложение запускаться именно со слэша «/».
Например, одно и то же доменное имя может быть связано с тремя веб-приложениями, такими как:
Ссылка скрыта от гостей
,
Ссылка скрыта от гостей
,
Ссылка скрыта от гостей
.
2. Нестандартные порты.
Хотя веб-приложения обычно работают на портах 80 (http) и 443 (https), это вовсе не обязательно. Фактически, веб-приложения могут работать на любых TCP-портах и на них можно ссылаться, указав номер порта следующим образом:
Ссылка скрыта от гостей
3. Виртуальные хосты.
DNS позволяет связать один ip-адрес с несколькими доменными именами.
Например, IP-адрес 192.168.1.100 может быть связан с именами
Ссылка скрыта от гостей
, helpdesk.example.com, webmail.example.com. Не обязательно, чтобы все имена принадлежали одному домену example.com. Такой подход используется в виртуальном хостинге, который позволяет множеству сайтов располагаться на одном веб-сервере.
Теперь рассмотрим способы поиска приложений.
На самом деле не существует способа точно определить все веб-приложения на сервере. Например url1 в адресе
Ссылка скрыта от гостей
может быть непредсказуемым и вы никогда о нем не узнаете. Однако существует ряд методов, которые можно использовать для получения допольнительной информации.
К примеру, если веб-сервер неправильно сконфигурирован и позволяет листинг директорий прямо в браузере, как в примере ниже:
в этом примере каждая директория является входом в самостоятельное веб-приложение.
Так же могут помочь поисковые системы. Укажите в поисковом запросе поиск по сайту:
Можно выполнить поиск вручную или по словарю с помощью сканеров по вероятным адресам для почты, административной панели, старой версии сайта и т.д. Пример для поиска почтового сервиса:
https://www.example.com/webmail, https://webmail.example.com/ или https://mail.example.com/
Учтите обратную систуацию — веб-приложения с одним доменом, но разными поддоменами, могут располагаться на разных серверах.
Для поиска приложений на нестандартных портах воспользуйтесь сканером nmap:
Тут на портах 8000 и 8080 распологаются http-службы.
При переходе по адресу в браузере на порту 8000 сервер запрашивает http-get-авторизацию, а на порту 8080 какой-то сайт.
Желательно сканировать весь диапозон портов.
Другие примеры. На порту 20000 расположилась веб-почта, а на порту 8080 phpMyAdmin:
Следующий способ поиска приложений основан на DNS zone transfers.
Передача зоны DNS (DNS zone transfers) – является одним из механизмов репликации баз DNS между серверами. Имела очень широкое распространение, но в настоящее время вытесняется другими механизмами репликации, в связи с чем имеет ограниченое применение при тестировании. Однако стоит попробовать.
Прежде всего, тестеры должны определить серверы имен, обслуживающие целевой ip-адрес, пусть это будет адрес «1.1.1.1». Если доменное имя известно для 1.1.1.1 (пусть это будет
Ссылка скрыта от гостей
), его серверы имен можно определить с помощью таких инструментов, как nslookup, host или dig.
В следующем примере показано, как идентифицировать серверы имен для yandex.ru с помощью команды host:
Теперь мы попробуем запросить записи для yandex.ru на одном из его серверов DNS, и если нам повезет, сервер нам вернет этот список записей:
нам не повезло )
Можно попробовать выполнить обратный DNS-запрос. Отправляем IP, получаем имя:
Тоже самое в nslookup:
Тоже самое в dig:
Вы можете воспользоваться онлайн сервисами, такими, как
Ссылка скрыта от гостей
или
Ссылка скрыта от гостей
. Часто подобные службы возвращают частично разные или неполные данные, поэтому лучше использовать несколько таких сервисов.
Как только вы определили все веб-приложения, не спешите их взламывать. Создайте список найденных приложений, вы к нему еще вернетесь. Определите, какие приложения принадлежат одному владельцу, а какие разным; Используются те же технологии, что и на целевом сайте, или другие; Находятся ли приложения с одинаковым доменом на одном и том же сервере, или на разных.
Что касается веб-сервера – определив его версию, установите сервер той же версии на свой компьютер и изучите его структуру и особенности. Выполните поиск по базам уязвимостей (Metasploit Exploitation Framework и searchsploit — как искать и как использовать эксплойты или
Ссылка скрыта от гостей
). Изучите конфиги и значения по умолчанию, а затем проверьте их на тестируемом сервере, вдруг админ забыл что-то поменять. Некоторые демонстрационные и тестовые веб-приложения, поставляемые с веб-серверами, тоже имеют известные уязвимости, поэтому стоит их изучить и попытаться найти на тестируемом сервере.
После того, как вы собрали максимально полную информацию о веб-сервере, можно приступать к дальнейшим действиям:
поиск утечек информации в исходном коде веб-страниц, определение точек входа и составление карты веб-приложения, чем и займемся в следующей статье.
А на сегодня всё, спасибо за внимание!
Загрузить PDF
Загрузить PDF
Если ваш веб-сайт слишком большого объема для веб-хостинга или вы хотите иметь возможность быстро вносить изменения на ваш веб-сайт, вам нужно настроить веб-сервер на компьютере, с которого вы сейчас просматриваете эту страницу. В этом руководстве описаны основы работы веб-сервера, а не конкретного программного обеспечения.
Шаги
-
1
Подберите компьютер для веб-сервера. Компьютер должен обладать достаточным объемом памяти для хранения большого количества информации. Процессор не очень важен. Чтобы минимизировать время простоя сервера, он должен быть подключен к роутеру с помощью витой пары, а не по беспроводной сети.
-
2
Найдите хорошее программное обеспечение для веб-сервера. Данное ПО работает как веб-сервер, поэтому оно очень важно. Если можете, найдите программу, которая будет работать в фоновом режиме, а не сделает ваш компьютер непригодным для использования. Одним из наиболее популярных серверов считается Apache.
-
3
Настройте веб-сервер. Обычно в программе веб-сервера есть инструкция, как это сделать.
-
4
Создайте простую главную страницу для проверки веб-сервера. Убедитесь, что вы поместили файл в папку, указанную в документации к веб-серверу, и назвали его index.
-
5
Проверьте, видите ли вы страницу по адресу http://127.0.0.1/. Если вы видите веб-страницу, переходите к следующему шагу. Если сервер не работает на 80 порту, тогда проверьте веб-сайт по адресу http://127.0.0.1:номерпорта/. Если у вас никак не получается увидеть веб-страницу, перенастройте веб-сервер.
-
6
Попросите друга проверить доступность вашего сайта по адресу http://внешний-IP-адрес/. Если он/она его увидит, можете переходить к следующему шагу. Если нет, смотрите советы.
-
7
Приобретите доменное имя и настройте его на ваш внешний IP-адрес. В случае использования динамического IP-адреса убедитесь, что у регистратора доменных имен есть сервис динамических доменов имен.
-
8
Сделайте свой сайт. Если вы хотите использовать поддержку сценариев на стороне сервера, тогда вам нужно будет установить и настроить эти программы на своем сервере.
Реклама
Советы
- Не выключайте компьютер. Вы можете выключить монитор или, если программа веб-сервера работает в фоне, компьютер можно перевести в спящий режим.
- Также ваш веб-сайт можно найти по адресу http://localhost/.
- Если вы не видите веб-сайт по адресу http://127.0.0.1/, возможно, вам нужно разблокировать порт 80 в межсетевом экране.
- Если ваш сайт по адресу http://ваш-внешний-IP-адрес/ не виден за пределами домашней сети, и вы находитесь за маршрутизатором, вам нужно настроить переадресацию порта. Так как маршрутизаторы отличаются между собой, есть множество способов это сделать. Смотрите инструкцию по эксплуатации вашего маршрутизатора или найдите инструкцию в Интернете.
- Вероятнее всего, что вы не сможете увидеть свой веб-сайт через домен, который приобрели. Для этого используйте адреса http://127.0.0.1/ или http://локальный-IP-адрес/.
Реклама
Предупреждения
- Узнайте у вашего интернет-провайдера, можете ли вы запустить домашний сервер. Некоторые просят не использовать 80 порт. Если так, вам нужно настроить веб-сервер на прослушивание другого порта.
- Не ставьте большие файлы на загрузку, это сделает работу вашего компьютера в Интернете намного более медленной.
Реклама
Что вам понадобится
- Компьютер
- Программа веб-сервера
- Стабильное интернет-подключение
Об этой статье
Эту страницу просматривали 27 804 раза.
Была ли эта статья полезной?
Жизнь в Интернете – это не просто рутинное исследование платформы. Есть миллионы вещей, которых мы не знаем, есть сотни, если не тысячи процессов, команд и элементы поиска . Сами страницы размещают свои серверы с помощью технографических процессов, которые помогают гарантировать, что их платформа не выйдет из строя.
Поначалу может быть сложно узнать, где разместить эти серверы, но это нормально, мы покажем вам, как это сделать. Конфиденциальность нашей деятельности в сети Это право, от которого не все готовы отказаться по соображениям безопасности.
Знание того, где размещены серверы, даст нам основу для безопасность веб-сайта . Но в дополнение к этому защитите компьютер от возможных нарушений безопасности и конфиденциальности .
Что такое сервер и веб-сервер?
Когда мы говорим на веб-сервер , имейте в виду, что термины можно перепутать. Существуют серверы и веб-серверы, в нашем случае серверы – это компьютеры, адресатом которых является хранение широкого спектра программ , они затем используются другими компьютерами.
Или, Протоколы HTTP , или веб-серверы, – это программное обеспечение, использующее Протокол передачи гипертекста или HTTP, задача которого заключается в хранении информации, охватываемой веб-сайтами, от мультимедийных, текстовых и других. Вдобавок ко всему, он постоянно и безопасно предоставляет всю эту информацию пользователям в Интернете и через браузер, в котором он запрашивал информацию.
Найдите сервер из командной консоли
Мы найдем сервер веб-страницы через командную консоль. Мы будем использовать для этого две команды, которые будут необходимо продолжить . Команды, которые будут использоваться, будут командой tracert и командой nslookup.
Это простой процесс, вам не нужно быть экспертом в этой области и тем более учителем информатики. В строке поиска копируем слова CMD, консоль управления откроется . Сначала мы воспользуемся командой Tracert, которая является диагностическим элементом, который позволяет нам отслеживать или изучать пакеты, поступающие из точки в сети.
С помощью команды Tracert также можно получить статистику задержки сети исходных пакетов, которая будет понятна как расстояние приблизительны общение концы из них. Мы приступаем к написанию названия заказа и следуем по ним веб-адресу страницы, которую мы хотим исследовать, важно, чтобы мы написали ее полностью, не пропуская «www» или другие элементы.
Уже написано, войдем, ждем и отобразится IP-адрес , а затем он покажет нам на экране различные переходы, которые дает процесс для получения нужной нам информации, пакеты будут приходить и продолжить с переходами, которые передадут DI-USER с добавлением “.Com”, что означает что для получения информации о веб-странице вам необходимо подключиться к ней.
Для команды nslookup это будет то же самое, за исключением того, что маршрут не будет отображаться, т.е. переходы не будут отображаться при просмотре пакетов. Это команда, используемая, чтобы узнать, положительно разрешает IP-адреса и имена. Следовательно, он используется для определения IP-адреса через имя веб-страницы. Повторим процесс, как и с предыдущей командой.
Как определить место проживания?
Для этого необходимо выполнить геолокацию через сам Интернет, что поддерживается просмотр Google Maps, позволит нам динамически наблюдать за процессом и даже с помощью спутникового зрения проследить его происхождение.
Мы возьмем IP-адрес, который запустила команда, возьмем страницу отслеживание геолокации наиболее популярный , который показывает нам, куда идет информация, прежде чем она попадет в руки пользователей или зрителей. Он будет проходить через разные серверы, пока не достигнет исходного сервера или родительского передатчика.