Хорошо, вот что происходит. Сначала я обновил php на Ubuntu v12 до php v5.5 (затем проверил сайты, чтобы убедиться, что они все еще работают). Затем обновилась ОС до версии v14 (trusty)
Когда было предложено только что сказал «i» всем запросам, система выполнила перезагрузку и оттуда ввела «ls», чтобы убедиться, что файлы там все еще есть.
Но веб-страницы не отображаются в браузере, вместо этого я получаю «страницу по умолчанию», я попытался перенаправить apache в новое местоположение файла, расположенное в /var/www/html/index.html, но я не думаю, что я делаю это правильно, как будто я сказал, что мне нехорошо с командной строкой
Нет админа, который он получил, и не будет отвечать
РЕДАКТИРОВАТЬ 1
ОК Итак, я предполагаю, что мне теперь нужно, чтобы Apache указывал на html-файлы (вместо каталога дерева apache, где он сейчас работает)
Что мне нужно ввести, чтобы это произошло? Как получить apache для перенаправления на файл apache2.conf.dpkg или скопировать содержимое в apache2.conf?
Изменить 2
Теперь веб-страница опустилась. Теперь говорится: «Эта веб-страница недоступна»
Веб-страница является основным источником дохода, и я могу потерять свою работу, если я не «исправлю» это, поэтому мне потребуется пошаговое руководство о том, как изменить:
1. Корень документа, перемещенный из / var / www в / var / www / htm
- Переместите код вниз в / var / www / html
РЕДАКТИРОВАТЬ 3
ОК, после редактирования текстового файла: sudo nano /etc/apache2/sites-available/000-default.conf
Я попытался «перезапустить» apache. Я получаю следующее: * Ошибка конфигурации apache2. Вывод теста конфигурации был: AH00526: Ошибка синтаксиса в строке 1 файла /etc/apache2/apache2.conf: Неверная команда ‘bash:’, возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера. Действие «configtest» не удалось. В журнале ошибок Apache может быть больше информации. Что это значит? Как это исправить?
EDIT 4
У вас снова работает apache
Однако теперь, когда я пытаюсь перейти на главную страницу в веб-браузере, я приветствую корневую таблицу, которую я могу перейти к html / file, но приветствую «404 не найденную страницу» на трех веб-страницах, а «по умолчанию» apache ubuntu "на другом.
1 Как я могу исправить? 2 Каковы шаги для этого?
РЕДАКТИРОВАТЬ 5
Удалось понять, что сайты должны быть перерегистрированы и новые сертификаты выданы для их загрузки (все они — сайты joomla)
Может быть, php не делает то, на что он предназначен? Если это так, я просто обновляю его (PHP должен быть 5.6, поскольку выше не будет работать с местом размещения сайтов)
Содержание
2 ответа
Файлы конфигурации Apache живут в /etc/apache2 . Вы можете использовать команду cd для перехода в соответствующий каталог:
Существует несколько способов редактирования файлов конфигурации. Самый простой способ узнать — nano . Вам также, вероятно, понадобится использовать sudo для изменения конфигурации Apache. Таким образом:
Вам нужно изменить директиву DocumentRoot Apache (или VirtualDocumentRoot ). Какой файл он находится, зависит от вашей конкретной конфигурации. Я бы рекомендовал сначала посмотреть в /etc/apache2/apache2.conf , а также в /etc/apache2/sites-enabled .
Если вы ищете сайт Apache для DocumentRoot , вы найдете много полезной документации. В целом документация Apache неплохая.
После внесения изменений в конфигурацию вам придется перезапустить Apache, чтобы они вступили в силу:
ИЗМЕНИТЬ
Я только что понял что-то важное: с тех пор, как вы обновили, вы слепо ответили на каждый вопрос, не выяснив, что делаете в первую очередь, очень вероятно, что вы устроили настройку Apache, и, вероятно, есть немало вещей, кроме этой проблемы , (Возможно, вы также запустили конфигурацию другого программного обеспечения на машине.) Я бы рекомендовал вам получить /etc/apache2 из резервной копии и тщательно сравнить две версии, чтобы решить, как восстановить вашу конфигурацию. Если у вас нет резервной копии, вам будет очень весело!
Одно ключевое различие между Linux и Windows: установщики Windows задают много бессмысленных вопросов, приводя к явлению «следующий, следующий, следующий». Но Linux, как правило, не задает бессмысленных вопросов. Поэтому, если он задает вопрос, будьте осторожны, как вы отвечаете на него, потому что это, вероятно, важно.
EDIT 2
Подождите секунду. Файлы, заканчивающиеся на .dpkg-old , являются версиями предварительного обновления файлов. Они должны содержать правильную конфигурацию. Вы можете, вероятно, сравнить их с не суффиксными файлами, чтобы обнаружить правильную конфигурацию.
Используйте команду diff , чтобы увидеть различия между двумя файлами. Используйте nano для редактирования файла и cp , чтобы сделать копию файла (или резервной копии, если что-то пойдет не так). mv переместит или переименует файл, а rm навсегда удалит файл без подтверждения и без корзины. Так что будь осторожен. Чтобы узнать, как использовать команду, используйте man : например, man diff .
I am starting to pick up PHP / MySQL, but in all the documentation I’m reading, it mentions /var/www/html as being the folder you want to install a framework such as CakePHP, or for example /var/www/html being the folder you want to install your website on, so that everything is in root.
What exactly does /var/www/html mean?


2 Answers 2
In the most shared hosts you can’t set it.
On a VPS or dedicated server, you can set it, but everything has its price.
On shared hosts, in general you receive a Linux account, something such as /home/(your username)/, and the equivalent of /var/www/html turns to /home/(your username)/public_html/ (or something similar, such as /home/(your username)/www)
If you’re accessing your account via FTP, you automatically has accessing the your */home/(your username)/ folder, just find the www or public_html and put your site in it.
If you’re using absolute path in the code, bad news, you need to refactor it to use relative paths in the code, at least in a shared host.
Этичный хакинг и тестирование на проникновение, информационная безопасность
Веб-сервер для пентестера вещь очень нужная. Примеры использования:
- фишинговые атаки
- подмена оригинального сайта при DNS спуфинге
- получение IP цели при помощи социальной инженерии
- размещение скриптов для сбора данных при XSS уязвимостях
- сбор данных от скомпрометированных систем, размещение файлов для распространения
- размещение JavaScript скриптов и HTML кода для внедрения при атаках человек-посередине и других
При определённой сноровке на веб-сервере можно даже организовать сканер портов и роутеров.
Понимание хотя бы основ работы веб-сервера необходимо при тестировании на проникновение веб-приложений, серверов. И ещё больше применений эти знания найдут для «мирных» целей.
В этой статье вы узнаете о структуре папок и файлов веб-сервера, о настройке субдоменов и виртуальных хостов, о логах веб-сервера, об основах PHP и другое.
В этой заметке упор будет сделан на Linux (в первую очередь на Kali Linux, Linux Mint, Ubuntu), а также будут даны ссылки для дальнейшего изучения и работы в других дистрибутивов, а также для работы с веб-сервером на Windows
Установка веб-сервера в Linux
Kali Linux
В Kali Linux веб-сервер установлен по умолчанию. Но также по умолчанию он не запускается при загрузке компьютера. Чтобы запустить веб-сервер в Kali Linux выполните:
Для проверки работоспособности сервера откройте веб-браузер и перейдите на страницу localhost.
Linux Mint, Ubuntu
В этих дистрибутивах веб-сервер по умолчанию не установлен, но это легко сделать несколькими командами:
Доступ к веб-серверу
С компьютера, на котором установлен веб-сервер, вы всегда можете получить доступ к нему набрав в браузере localhost или 127.0.0.1
С другого компьютера к веб-серверу можно получить доступ тремя способами:
- по локальному IP (только из локальной сети)
- по внешнему IP (при соблюдении некоторых условий)
- по доменному имени (требуется доступ по внешнему IP + купленный домен + настройка DNS)
Чтобы узнать IP адрес компьютера наберите команду:
Как видно на скриншоте, в моём случае IP компьютера 192.168.0.196. Набрав в веб-браузере на другом компьютера или мобильного телефона, подключённых к этой же локальной сети, в качестве адреса сайта 192.168.0.196, я попаду на веб-сервер.
Структура файлов веб-сервера
Тот файл, который вы видите, открыв http://localhost/ физически расположен по пути /var/www/html/index.html
Можете убедиться в этом сами, выполнив команду (она говорит браузеру Firefox открыть файл, расположенный по пути /var/www/html/index.html):
Добавим ещё файлы и папки, чтобы посмотреть работу сервера. Но начнём с проверки, кому принадлежит директория /var/www/html/:
Эта директория принадлежит суперпользователю. Все остальные имеют право читать её содержимое, но не имеют прав записывать. Чтобы мы могли делать в ней изменения, нам нужно:
- вносить изменения от рута (использовать sudo или залогиниться как root) ИЛИ
- сделать себя собственником этой директории
Следующая команда делает владельцем директории пользователя, под которым вы вошли в систему:
Проверим ещё раз:
Теперь без повышения привилегий вы можете открыть эту директорию, и в ней добавлять/удалять/изменять файлы.
Индексные файлы
Когда веб браузер получает запрос показать определённую директорию без указания файла, то он начинает искать в этой директории индексные файлы. Обычно к этим файлам относятся index.html, index.php, index.htm и другие (настраиваются в конфигурационных файлах Apache).
Т.е. адрес http://localhost/ и адрес http://localhost/index.html выведут содержимое одного и того же файла.
Создайте любым доступным вам способом в папке /var/www/html/ файл test.htm и скопируйте туда строку "My very first file". Это можно сделать открыв файловый менеджер и перейдя в папку /var/www/html/, а затем открыв любой текстовый редактор, скопировать туда строку "My very first file" и сохранить с именем test.htm.
Я сделаю это из командной строки:
Эта команда означает вывести (echo) указанную строку ("My very first file"), перенаправив её (>) в указанный файл (/var/www/html/test.htm).
Итак, теперь мы имеем файл /var/www/html/test.htm. Если в веб-браузере открыть адрес http://localhost/test.htm, то вы увидите строку, которую записали в файл.
Создадим в директории /var/www/html/ поддиректорию site1:
Как можно догадаться, в эту папку можно попасть набрав в веб-браузере адрес http://localhost/site1/. Там мы увидим:
Т.е. папка попросту пуста.
Создадим там ещё один текстовый файл:
Теперь по адресу http://localhost/site1/ мы видим:
А перейдя по ссылке http://localhost/site1/test2.htm увидим содержимое этого самого файла, т.е. строку "My second test file".
В папке /var/www/html/site1/ отсутствует индексный файл. Создадим его:
Как можно догадаться, теперь набрав http://localhost/site1/ вместо списка файлов мы увидим индексный файл.
Раскрытие IP при помощи социальной инженерии
В файл /var/log/apache2/access.log сохраняются записи обо всех обращениях к веб-серверу, среди этой информации также присутствует IP обратившегося с запросом.
Чтобы посмотреть последние записи из этого файла:
Предположим, мы сформировали адрес http://192.168.0.196/site1/test2.htm?p=1112321 и отправили его лицу, чей IP мы хотим узнать.
- http://192.168.0.196 – адрес нашего сервера (вместо IP может быть наш домен – это не принципиально)
- site1/test2.htm – файл, который будет показан целевому пользователю
- ?p=1112321 – после знака вопроса можно указывать имена переменных и передаваемые ей значения, но в нашем примере мы используем уникальную строку только для облечения поиска по лог-файлу.
В файле журнала появится примерно следующее:
Строка /site1/test2.htm?p=1112321 показывает, какой адрес был запрошен. А 192.168.0.244 – это и есть IP пользователя, которого мы хотим идентифицировать.
Не смотря на свою примитивность, это вполне рабочий способ деанонимизации. Отправляемая ссылка может содержать что-то интересное для целевого лица (тесты, смешные картинки, анекдот – что угодно), чтобы он не заподозрил подвоха.
В качестве альтернативы вместо поиска по логам можно получать IP в PHP скрипте и сразу отправлять на почту атакующему.
Здесь показан пример в локальной сети. Всё работает точно также в Интернете. Вам нужен внешний IP либо ваше доменное имя.
Если вы стремитесь сохранить свою анонимность, и кто-то присылает вас ссылку «заценить» [что-угодно], то, конечно, следует начать со смены своего IP, либо использовать Tor Browser или любой другой анонимайзер.
Может использоваться более хитрый способ, когда вас не просят открыть ссылку.
Сохраните на своём сервере любую картинку. Например я загружаю картинку с адреса https://hackware.ru/wp-content/uploads/2017/07/01.jpg и сохраняю её в файл /var/www/html/site1/pic.jpg:
Следовательно, моя картинка теперь доступна по адресу http://192.168.0.196/site1/pic.jpg
Я, будучи «злоумышленником» создаю файл funny.html со следующим содержимым:
И отправляю его «жертве». «Жертве» не нужно переходит на какие-то сайты, да и сам файл – простой HTML документ, открываемый в обычном веб-брауезре – всё это может снизить бдительность потенциальной цели. Файл откроется в браузере и там будет просто показана (не очень) забавная картинка. Но поскольку картинка подгружалась с веб-сервера атакующего, то у него в логах появится такая запись:
Очевидно, что мы вставили изображение в HTML код используя тэг image:
Можно было бы обойтись без произвольной строки ?tag=4564564544 – она нужна только для облегчения поиска по логам и (или) идентификации «жертвы», поскольку одному лицу я мог отправить файл со строкой ?tag=456456454 4 , другому ?tag=456456454 5 , третьему ?tag=456456454 6 и т.д.
Вместо картинки может быть .js, .css или другой файл, который может подгружаться с удалённого сервера не вызывая подозрений.
HTML файла может быть исполнимый или пакетный файл, который делает запрос на сервер, банальный ярлык с URL ссылкой и т.д.
Создание виртуальных хостов
Чтобы понять, как можно использовать виртуальные хосты в пентестинге, рассмотрим суть подмены DNS или как чаще его называют DNS спуфинга.
Когда пользователь вводит в строку веб-браузера адрес сайта, например, vk.com, то делается запрос на DNS сервер, у которого спрашивается: «какой IP имеет сайт vk.com». DNS находит запись для vk.com и отвечает, что этот сайт имеет IP 95.213.11.181. После этого компьютер пользователя подключается к веб-серверу на адресе 95.213.11.181 с запросом «покажи мне, пожалуйста, сайт vk.com». Веб-сервер показывает нужный сайт, Павел Дуров (или кто там сейчас вместо него) счастлив.
Атакующий может подменить возвращаемый ответ DNS. Выполняя атаку человек-посередине, мы можем перехватить ответ «95.213.11.181» и вместо него отправить «жертве» IP нашего сервера, например, 192.168.0.196.
Что произойдёт дальне? А дальше компьютер жертвы подключиться к нашему веб-серверу с запросом «покажи мне, пожалуйста, сайт vk.com». А мы… мы не будем расстраивать пользователя и покажем ему vk.com… правда в своём варианте.
Создадим каталог, в котором будут размещаться файлы (название каталога непринципиально):
Создадим в этом каталоге файл:
Сделаем копию файла конфигурации виртуального хоста:
Откроем его для редактирования:
Без комментариев файл выглядит так:
Директиву DocumentRoot нужно отредактировать и прописать туда путь до каталога, где размещены файлы виртуального хоста (в нашем случае это /var/www/html/vk.com). Также нужно добавить директивы ServerName и ServerAlias с адресом нашего сайта. Получилось:
Включим наш виртуальный хост:
Перезапустим сервер, чтобы изменения вступили в силу:
Проверим статус сервера, чтобы убедиться, что всё работает:
Теперь наш сервер готов.
Я покажу пример DNS спуфинга при атаке человек-посередине с помощью Bettercap. Установим Bettercap, если её нет на вашей системе. Следующая команда для Kali Linux (для других систем смотрите про установку на странице https://kali.tools/?p=345):
Создадим файл dns.conf:
Видим, что DNS ответ успешно подменён:
При попытке открыть в веб-браузере адрес http://vk.com «жертва» увидит:
Если у вас имеются вопросы по использованию Bettercap, то обратитесь к статье «Инструкция по использованию Bettercap».
Кстати, веб-сервер может обслуживать любое количество виртуальных хостов. Т.е. рядом с vk.com можно настроить mail.ru, yandex.ru и т.д.
И ещё одно «кстати»: для DNS спуфинга необязательно проводить атаку человек-посредине. Достаточно поменять настройки сетевого оборудования «жертвы», указав там свой «правильно» настроенный DNS. Пример в статье «Инструкция по использованию Router Scan by Stas’M. Часть вторая: Применение фальшивого DNS».
Работа веб-форм
Мучить смешными надписями несчастных пользователей социальных сетей забавно, но не профитно.
Можно, конечно, ему там написать, что по распоряжению Роскомнадзора № 34539/21-2018 теперь вход на vk.com платный и для получения доступа к сайту нужно кинуть 50 рублей на номер 8905143xxxx… но это уже совсем уголовщина – этим мы заниматься, конечно, не будем.
Мы продемонстрируем возможности атаки DNS спуфинг, попытавшись узнать логин и пароль пользователя от вконтакте.
Делаем каталог, куда будет клонирован сайт:
Обратите внимание, что в следующих командах я использую абсолютный путь /home/mial/websitesmirrors/vk.com/ — вам нужно использовать свой (/root/websitesmirrors/vk.com/ если вы на Kali Linux).
Удаляем ненужный индексный файл:
Запускаем атаку человек-посередине вместе с DNS спуфингом:
Теперь сайт выглядит как оригинальный (хотя, вроде бы, пропали какие-то изображения — не будем в этом разбираться, для нашего примера это несущественно):
Но нам нужно «перенастроить» его форму, которая принимает и отправляет логин и пароль для входа.
Типичная форма выглядит так:
Здесь pass.php это файл, куда форма отправляет данные.
Пример файла pass.php:
Этот файл получает введённые логин и пароль, сохраняет их и перенаправляет пользователя на страницу vk.com (что бесполезно, т.к. пока не закончится DNS спуфинг, он постоянно будет попадать на наш виртуальный хост).
Конечно, это очень примитивный PHP код – нужно добавлять проверки на пустые переменные и т.д., но для знакомства его достаточно.
Я насчитал на странице входа vk.com три формы. Та, которая нам нужна, выглядит так:
Сразу же удаляем все поля, где содержится hidden, получаем:
Меняем action="https://login.vk.com/?act=login" на action="http://vk.com/pass.php". Также удаляем name="login" , чтобы скрипты не могли изменить стандартное поведение формы:
Можно ещё подшаманить форму, чтобы при вводе данных она не писала, про «Небезопасный вход», но уже работает, а материал получается и так слишком объёмным, поэтому мы на этом остановим наши работы с формой.
На сервере создаём файл pass.php с содержимым:
Чтобы не возникло проблем с записью в файл pass.txt, создадим его заранее:
И разрешим всем в него записывать:
Как только пользователь введёт логин и пароль, они будут сохранены на веб-сервере атакующего:
Заключение
Мы рассмотрели (причём весьма поверхностно) всего несколько примеров, как веб-сервер может помочь при тестировании на проникновение. Дальнейшее изучение основ работы и настройки веб-сервера поможет лучше понимать и организовывать атаки.
Много полезных ссылок для продолжения изучения вы найдёте на странице «Самостоятельная настройка VDS / VPS».





