Настройка аутентификации по паролю для apache в ubuntu 18.04

Когда может понадобиться Basic Auth?

Использовать Basic авторизацию можно в том случае, если доступ к серверу сайту или определенному разделу сайта необходимо скрыть от любознательных глаз. Один из таких случаев: закрытие тестового сервера или сервера разработки. Закрыв тестовый сайт вы предотвратите появление сайта в поисковой выдаче (ведь роботы не смогут индексировать сайт) исключив ошибки дублей и склеивание зеркал, а так же исключите возможность конкурентов подсмотреть за тем, что же такого интересного вы делаете на своем сайте, какие новые фишки вы добавляете, повышая удобство для ваших пользователей. 

Данные с доступами пользователей хранятся на сайте в специальном файле .htpasswd (файлы начинающиеся с точки — скрытые файлы в большинстве файловых систем Unix), который расположен на сервере и заполняется администратором сайта/сервера или вами самим (при использовании файла .htaccess). 

Creating the .htaccess file

Now that you have created and uploaded your password file, you need to tell Apache to use it to protect your page(s) or site. This is what your file will do.

Open your text editor again, create a new file, and save it as .

Protecting a folder

To password protect a folder on your site, you need to put the following code in your file:

/full/path/to/.htpasswd should be the full path to the file that you uploaded earlier. The full path is the path to the file from the Web server’s volume root – for example, or . (If you’re not sure of the full path to your site or home directory, ask your Web hosting company for this info.)

The above file will password protect all files in the folder that it is placed in, and all sub-folders under that folder too. So if you wanted to password protect your entire site, you would place the file in your Web root folder.

Uploading the file

Once you’ve created your file, upload it to your website, placing it in the folder (or folder containing the file) that you want to protect.

Насколько актуальны HTTP Basic и Digest Authentication

Фактически, HTTP Basic и Digest Authentication нечасто используются на веб-сайтах. Но если нужно быстро закрыть доступ к сайту, например, на период реконструкции, то можно встретить такой способ защиты. По крайней мере, даже в 2020 году выходят инструкции как установить защиту паролем с помощью HTTP Basic и Digest Authentication, например «How To Set Up Password Authentication with Apache on Ubuntu 18.04».

Кстати, я совершенно случайно, используя показанный ниже метод поиска хостов с HTTP Basic аутентификацией, вместо диапазона 100.64.0.0-100.127.255.255 (локальные IP адреса провайдера) начал сканировать диапазон 100.16.0.0-100.31.255.255 (обычные IP адреса Интернета). Ошибку я заметил далеко до окончания сканирования, но уже собрал около сотни хостов с HTTP Basic Authentication. Так что вполне себе актуально.

Но где действительно всё хорошо с HTTP Basic аутентификацией, так это в роутерах! Производителям роутеров нравилось её использовать благодаря простоте реализации — никаких баз данных, никакой проверки кукиз, только простейшая настройка веб-сервера. А пользователям нравится не менять свои роутеры по 5-10 лет, поэтому армия уязвимых к брут-форсу роутеров уже ждёт нас.

Как создать файл паролей .htpasswd

На первом этапе придумайте новый логин и сгенерируйте новый пароль, воспользовавшись страницей c инструментом генератора паролей. Сохраните полученные пароли.

Затем, вам нужно сгенерировать содержимое для .htpasswd файла, воспользовавшись htpasswd генератором. В поле «Юзер(Логин)» укажите придуманный вами логин (только латинскими буквами), в поле «Пароль», — сгенерированный ранее пароль. После этого вы получите результат, что то наподобие этого:

   
   admin:$apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850

Чтобы понять, что мы получили в результате, полученную строку можно представить как <login>:<password>, где admin — это наш «Юзер(Логин)», а $apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850 это наш зашифрованный пароль.

Далее нам необходимо создать обычный текстовый файл с именем .htpasswd. И в этот файл нам необходимо вставить нашу строку admin:$apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850 и сохранить файл. Если вам нужно сделать несколько учетных записей, то вам нужно повторить все шаги описанные выше еще раз и добавить еще одну запись в этот же файл, но уже с новой строки. Допустим если нам нужно 2 учетные записи, то содержимое файла будет выглядеть так:

   
   admin:$apr1$evskxt6q$p3RZUmYH.mVZn9nVMij850
   developer:$apr1$pngk7j62$Z/cOxoZMvrwUROGXrbMiY/

Где мы видим 2 учетные записи для логина admin и developer.

Еще стоит заметить, что вы можете сгенерировать .htpasswd файл с помощью программ, которые вы можете скачать в интернете, но это не рекомендуется делать, так как программы могут содержать вирусы.

Теперь нам осталось подключить .htpasswd файл к WEB-серверу. В этой статье мы рассмотрим подключение к Apache и Nginx.

Как включить HTTP Basic аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)

Для начала нужно включить поддержку файлов .htaccess, чтобы веб-сервер использовал настройки из этих файлов — по умолчанию это отключено.

Откройте файл /etc/apache2/apache2.conf

sudo gedit /etc/apache2/apache2.conf

Найдите группу строк:

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

и замените её на:

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
</Directory>

Сохраните и закройте файл.

Перезапустим веб-сервер.

sudo systemctl restart apache2.service

Создайте папку, где будут защищённые паролем файлы:

sudo mkdir /var/www/html/basic-protected

С помощью утилиты htpasswd мы создадим файл с именем пользователя и хешем пароля. Если указана опция -c, то старый файл будет удалён, а новый создан. Утилита htpasswd присутствует и в Apache для Windows, но нужно указать полный путь до неё.

Общий вид команды:

sudo htpasswd -c -B /ПУТЬ/ДО/ФАЙЛА/.htpasswd ПОЛЬЗОВАТЕЛЬ

Пример:

sudo htpasswd -c -B /etc/apache2/.htpasswd mial

Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. Для наших тестов это безразлично, но для реальной защиты папки или сайта паролем рекомендуется выполнять показанные выше команды с опцией -B. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.

Если файл .htpasswd уже существует, то для добавления ещё одного пользователя, без удаления старых, используйте эту же команду, но без опции -c:

sudo htpasswd -B /etc/apache2/.htpasswd user1

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

Конечно же файл .htpasswd рекомендуется хранить в директориях, не доступных для постороннего доступа (например, /etc/apache2/.htpasswd). Особенно не нужно его хранить в папках веб-сервера вместе с файлами сайтов. Но иногда веб-мастер в силу простоты или невозможности сохранить файл где-либо ещё (на виртуальных хостингах, например) хранит этот файл прямо вместе с файлами сайтов.

Посмотрим содержимое файла .htpasswd:

cat /etc/apache2/.htpasswd

У меня это:

mial:$2y$05$xq4u60Y/nruX65hCk9kY1.n8sZ/E3/blHLXSL4GIdMsb2NPEFO2xG
user1:$2y$05$Z1Rb4AhtksDLgMt.weXo..28NGNDbs5nTIyViMyUG1tXbWVQrlxDy

Теперь создадим файл .htaccess:

sudo gedit /var/www/html/basic-protected/.htaccess

И скопируем в него:

AuthName "For registered members only"
AuthType Basic
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

Откройте в веб-браузере адрес http://localhost/basic-protected/ — вы должны увидеть форму для ввода имени пользователя и пароля.

Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. Для наших тестов это безразлично, но для реальной защиты папки или сайта паролем рекомендуется выполнять показанные выше команды с опцией -B. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.

Как настроить базовую авторизацию на сайте?

Как уже говорилось выше, закрыть доступ можно не только к какому-то отдельному сайту, но и к его целому серверу или же наоборот, только к одному каталогу. Рассмотрим варианта настроек для серверов с BitrixENV (данные настройки подойдут для большинства серверов, работающих с Apache, то есть исключением будет в большем случае только Microsoft Windows Server). 

Настройка для сайта

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

Для этого нам необходимо выполнить следующие шаги.

Настройка для сервера

Рассмотрим вариант закрытия доступа ко всем сайтам расположенным на сервере с помощью изменения настроек APACHE. 

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

  • Шаг 1. Сгенерировать файл .htpasswd с доступами пользователей, разместить его на сервере и запомнить полный путь до него (например: /home/bitrix/ext_www/.htpasswd).
  • Шаг 2. Добавить в параметры APACHE директиву, закрывающую доступ к директории с сайтами сервера. 
    <Directory /home/bitrix/ext_www/>
    AuthType Basic
    AuthName «Private zone. Only for administrator!»
    AuthUserFile  /home/bitrix/ext_www/.htpasswd
    require valid-user
    </Directory>
  • Шаг 3. Перезагрузите Apache и готово! Все ваши сайты размещенные внутри папки /home/bitrix/ext_www/ будут закрыты базовой авторизацией.

Если вы используете Bitrix (BitrixENV или BitrixVM) и хотите закрыть весь сервер авторизацией (допустим, сервер с тестовыми сайтами), то необходимо учесть, что настройки Apache необходимо производить в специальном файле для кастомизации настроек расположенному по пути /etc/httpd/bx/custom/z_bx_custom.conf (подробнее можете прочитать
).

1: Создание файла паролей

Для начала нужно создать файл, в котором будут храниться учетные данные – комбинации имен и паролей. Сделать это можно с помощью утилит OpenSSL, которые, возможно, уже доступны на вашем сервере. Кроме того, вы можете использовать специальную утилиту htpasswd, включенную в пакет apache2-utils (файлы паролей в Nginx используют тот же формат, что и в Apache). Выберите тот метод, который вам больше нравится.

Создание файла с помощью утилит OpenSSL

Если на вашем сервере уже установлен OpenSSL, вы можете создать файл паролей без установки дополнительных средств. Для этого нужно создать в конфигурационном каталоге /etc/nginx скрытый файл .htpasswd для хранения учетных данных.

Вы можете добавить имя пользователя в файл с помощью следующей команды. Здесь в качестве условного имени используется 8host; просто укажите любое другое имя:

Повторите этот процесс, если хотите добавить новых пользователей. Чтобы посмотреть, как имена пользователей и зашифрованные пароли хранятся в файле, откройте его:

Вы увидите:

8host:$apr1$wI1/T0nB$jEKuTJHkTOOWkopnXqC1d1

Создание файла паролей с помощью apache2-utils

OpenSSL может шифровать пароли, но многим пользователям проще использовать вместо этого инструмента специальную утилиту. Утилита htpasswd из пакета apache2-utils хорошо выполняет эту функцию.

Установите пакет apache2-utils на свой сервер:

Теперь у вас есть доступ к команде htpasswd.  С ее помощью вы можете создать файл паролей, который Nginx может использовать для аутентификации пользователей. Создайте для этой цели скрытый файл .htpasswd в каталоге /etc/nginx.

При первом использовании этой утилиты нужно добавить флаг -c, который создаст требуемый файл. Укажите имя пользователя (мы используем условное имя 8host) в конце команды, чтобы создать новую запись.

Вам будет предложено ввести и подтвердить пароль для данного пользователя.

Аргумент -c нужно использовать при добавлении новых пользователей в файл:

Если вы просмотрите содержимое файла, вы увидите имя пользователя и зашифрованный пароль для каждой записи:

Вы получите:

8host:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz.
another_user:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.

Безопасность сторонних модулей

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

Первый метод – с помощью jSecure Authentication

Наши действия:

  1. Скачиваем jSecure Authentication.
  2. Устанавливаем в нашу Joomla.
  3. В настройках компонента выбираем пункт меню Administrator Password Protection.
  4. Вводим имя пользователя и пароль.
  5. Теперь все наши файлы и данные по административному пути /administrator/ защищены дополнительным паролем, о чем собственно сразу сообщит браузер, предлагая ввести данные доступа (мы же находимся в административной панели):

Есть неприятный момент в работе jSecure Authentication (возможно, что в новых версиях его исправили). При установке компонента автоматически включается «Meta Tag Controller», который заменяет все мета-теги Description и Keywords на «custom generator for seo». Нужно не забыть отключить данный пункт, чтобы seo-специалисты спали спокойно по ночам.

Мета-тег контроллер включен — (!) неверное положение при установке по умолчанию:

Выключенное положение мета-тег контроллера:

jSecure Authentication – усиление защиты:

  1. Для того, чтобы вход в административную панель выполнялся по отличному от стандартного пути (site.ru/administrator/ — стандартный путь) – достаточно заполнить пункт «Basic Configuration», указав get-запрос по которому доступ в панель будет разрешен. Например, при «Key» равном dostup – попасть в административную панель можно будет только по url site.ru/administrator/?dostup. Все остальные попытки открыть административную панель будут предотвращены. Пользователь при вводе стандартного (или ошибочного) адреса админки «site.ru/administrator/» будет перенаправлен на главную страницу сайта.
  2. Для большей безопасности можно включить функцию «Auto Ban IP», которая будет блокировать все IP-адреса, с которых поступило 5 и более некорректных обращений к административной панели, (значение ошибочных обращений можно изменить в настройках jSecure). Такой пользователь будет заблокирован на 20 минут. Даже в случае правильно введённого адреса административной панели на 6, 7, 8 и т.д. раз – будет все равно отправлен на главную страницу сайта.

Установка нестандартного пути входа в административную панель:

Включение функции «Auto Ban IP»

HTTP-аутентификация

По поводу HTTP-аутентификации все тоже очень просто, но рассмотрим подробнее. Мы хотим ограничить доступ к странице, где осуществляется вход на сайт. Не будем брать конкретную систему управления, возьмем абстрактно, что у нас в корне сайта есть файл , а также папка , которые нам нужно защитить. Для этого потребуется внести правки в файл. Если этого файла нет в корне сайта, или в папке «admin», то его нужно будет создать, но в большинстве случаев он присутствует, и содержит в себе уникальные настройки для сайта, начиная от кодировки и заканчивая правилами перенаправлений и ЧПУ.

Выше представлен код, который реализует HTTP-аутентификацию. Находится он в той директории, которую мы хотим защитить и прописан в файле .

Разберем его по строкам:

  1. В кавычках находится сообщение, которое будет указывать пользователю необходимость авторизоваться для доступа к данной директории;
  2. Тип аутентификации. Всегда ставьте Basic, он без проблем поддерживается всеми браузерами и везде работает корректно;
  3. Путь к файлу, в котором находятся данные о пользователях и паролях, мы создадим его следующим этапом;
  4. Строка, которая указывает, что доступ к данным получит только valid-user, т. е. только тот, кто авторизуется.

Тот же самый код, обрамленный в условие, которое касается только файла . Все очень просто и понятно.

Приступим к созданию файла . Он создается утилитой, которая входит в ПО Apache. Можно скачать и отдельно, работает она из командной строки, без GUI.

Подробнее о команде:

  • – ключ create создает новый файл;
  • – шифрует пароли по алгоритму MD5;
  • – имя файла с паролями;
  • – пользователь, пароль которого будет добавлен.

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

Обратите внимание, путь должен быть полным, узнать его можно в

Прячем расширения файлов

Для того, чтобы усложнить процессы нахождения уязвимостей ваших скриптов (а они есть всегда) следует прятать расширения или изменять их на другие, с целью запутать атакующего. Это позволяет сразу же отсечь множество мелких вредителей и увеличить безопасность сайта.Пример #2 Прячем расширение .php

RewriteRule ^(.*)\$ $1.php 
#теперь при доступе к http://www.site.ru/home
#будет открываться http://www.site.ru/home.php
# скрывает реальный адрес от посетителя

Пример #3 Меняем расширение .php на .asp

RewriteRule ^(.*)\.asp$ $1.php 
#теперь при доступе к http://www.site.ru/home.asp
#будет открываться http://www.site.ru/home.php

Но это не всегда удобно. Ведь если у мы передаем GET-параметры в URL, запрос будет выглядеть так:

http://www.site.ru/blog?id=1

или так

http://www.site.ru/blog.asp?id=1

Для этого необходимо изменить всю строку запроса, чтобы не выделять параметры так очевидно. Это называется Человеко-Понятный URL (ЧПУ).

SQL-инъекции и XSS-атаки

Рекомендация, относящаяся к обеспечению защиты от SQL-инъекций и XSS-атак, требует самого подробного объяснения, ведь целью злоумышленников здесь являются конкретные данные из базы данных (SQL-инъекция) и пользовательские данные (XSS-атака). Стоит также понимать, что вопросы, связанные с SQL-инъекциями, затрагивают обширный раздел, посвящённый обеспечению безопасного доступа ко всем хранилищам данных, включая реляционные базы данных и базы данных NoSQL, и включают вопросы безопасности запросов (необходимо избегать нелегитимных входных данных в составе SQL-команд и наилучшим решением является использование параметризованных запросов, которые можно применять к конструкциям SQL/OQL и хранимым процедурам), конфигурации (необходимо убедиться в корректной настройке имеющихся средств обеспечения безопасности СУБД и платформы, на которой она установлена), аутентификации (должна выполняться по защищенному каналу) и соединений (в связи с существованием нескольких способов взаимодействия с базой данных (посредством службы или API), необходимо обеспечить безопасность соединений с помощью шифрования и аутентификации). Что касается межсайтового выполнения сценариев (XSS-атака), то в данном случае последствия средней степени тяжести могут нанести отражённая XSS или XSS на основе объектной модели документа (DOM), а к серьезным последствиям может привести межсайтовое выполнение хранимых сценариев с исполнением кода в браузере пользователя с целью кражи учётных данных, перехвата сессий или установки вредоносного программного обеспечения. Главной мерой защиты в данном случае является экранирование (добавление определённых комбинаций символов перед символами или строками для недопущения их некорректной интерпретации), кодирование данных (преобразование определённых символов в комбинации символов, которые не представляют опасности для интерпретатора) на стороне сервера и использование набора HTTP-заголовков, в частности, Set-Cookie с параметрами HttpOnly и Secure, а также X-XSS-Protection со значением 1. Общей мерой защиты, используемой для предотвращения внедрения SQL-кода и межсайтового выполнения сценариев, является проверка всех входных данных на соответствие синтаксической и семантической норме. Под синтаксической нормой следует понимать полное соответствие входных данных ожидаемой форме представления, а семантическая норма свидетельствует о том, что входные данные не выходят за пределы конкретного функционала.

Примечания

  • Можно создавать неограниченное количество пользователей, просто добавляя код для каждого в новой строке;
  • Файл .htpasswd лучше хранить отдельно от .htaccess, если кроме вас ещё кто-то будет иметь доступ к защищённому разделу;
  • Все подпапки и файлы в них также будут закрыты;
  • В случае утраты пароля при внезапной амнезии, да упаси Вас Всевышний, восстановить его невозможно или крайне сложно. Лучше просто создать новый и заменить нужную строчку;
  • При применении данного способа для защиты админпанели движка Вордпресс, он защитит от массового подбора пароля в стандартной форме входа WP, что значительно снизит нагрузку при атаке хакерами и ботсетью.

Как поставить пароль на компьютер

В статье будут рассмотрены основные способы добавления пароля на компьютер. Они все уникальны и позволяют войти в систему даже с использованием пароля от учетной записи Майкрософт, но данная защита не гарантирует 100% безопасности от проникновения посторонних личностей.

Способ 1: Добавление пароля в «Панели управления»

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

Нажмите на «Меню пуск»
и кликните «Панель управления»
.

Выберите вкладку «Учетные записи пользователей и семейная безопасность»
.

Кликните на «Изменение пароля Windows»
в разделе «Учетные записи пользователей»
.

Из списка действий над профилем выберите «Создание пароля»
.

В новом окне есть 3 формы для ввода основных данных, которые необходимы для создания пароля.
Форма «Новый пароль»
предназначена для кодового слова или выражения, которое будет запрашиваться при запуске компьютера, обратите внимание на режим «Caps Lock»
и раскладку клавиатуры при его заполнении. Не создавайте очень простые пароли вроде «12345», «qwerty», «йцукен»

Придерживайтесь рекомендаций Microsoft по выбору секретного ключа:
Секретное выражение не может вмещать логин учетной записи пользователя или любую его составляющую;
Пароль должен состоять более чем из 6 символов;
В пароле желательно применить заглавные и прописные буквы алфавита;
В пароле рекомендуется использовать десятичные цифры и неалфавитные символы.

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

Форма «Введите подсказку для пароля»
создана для напоминания пароля, если вы его не сможете вспомнить. Используйте в подсказке данные известные только вам. Это поле необязательное, но рекомендуем его заполнить, иначе существует риск лишится вашей учетной записи и доступа к ПК.

Когда заполните обязательные данные, нажмите «Создать пароль»
.

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

Подробнее: Установка пароля на компьютер Windows 7

Способ 2: Аккаунт Microsoft

Данный способ позволит вам получать доступ к компьютеру при помощи пароля от профиля Microsoft. Кодовое выражение можно будет сменить с помощью электронного адреса или номера телефона.

  1. Найдите «Параметры компьютера»
    в стандартных приложениях Windows «Меню пуск»
    (так это выглядит на 8-ке, в Виндовс 10 получить доступ к «Параметрам»
    можно по нажатию соответствующей кнопки в меню «Пуск»
    или посредством использования комбинации клавиш Win+I
    ).
  2. Из списка параметров выберите раздел «Учетные записи»
    .
  3. В боковом меню кликните на «Ваша учетная запись»
    , далее «Подключиться к учетной записи Майкрософт»
    .
  4. Если у вас уже есть аккаунт Майкрософт, введите e-mail, номер телефона или имя пользователя Skype и пароль.
  5. В противном случае создайте новую учетную запись, введя запрашиваемые данные.
  6. После авторизации потребуется подтверждение уникальным кодом из СМС.
  7. После всех манипуляций Windows будет запрашивать пароль от учетной записи Майкрософт для входа.

Подробнее: Как поставить пароль в Windows 8

Способ 3: Командная строка

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

  1. Кликните по «Меню пуск»
    и запустите «Командную строку»
    от имени администратора.
  2. Введите
    , чтобы получить детальную информацию обо всех доступных учетных записях.
  3. Скопируйте и вставьте следующую команду:

    где username
    — имя учетной записи, а вместо password
    следует вписать свой пароль.

  4. Чтобы проверить установку защиты профиля, перезагрузите или заблокируйте компьютер сочетанием клавиш Win + L
    .

Подробнее: Установка пароля на Windows 10

Поиск хостов с Basic и Digest аутентификацией

«Полезной нагрузкой», которая может найти хосты с Basic и Digest аутентификацией, может быть команда вида:

curl -v ХОСТ:ПОРТ 2> >(grep -o -i -E Unauthorized) > /dev/null

Примеры:

curl -v 100.101.7.161:8080 2> >(grep -o -i -E Unauthorized) > /dev/null
curl -v 100.19.18.59 2> >(grep -o -i -E Unauthorized) > /dev/null

Если вы запутались в знаках >, то рекомендую вам разобраться, поскольку здесь используется довольно занимательная конструкция, которая имеет следующий результат:

  • стандартный вывод уничтожается (конструкция «> /dev/null»)
  • стандартный вывод ошибок stderr перенаправляется для обработки команде grep (конструкция «2> >(grep -o -i -E Unauthorized)»)

Дело в том, что HTTP заголовки команда cURL выводит в stderr, а команда grep не ищет по stderr. Но мы не может сделать просто перенаправление stderr для слияния со стандартным выводом, то есть не можем 2>&1, поскольку текст страницы может содержать слово «Unauthorized» и мы получим ложное срабатывание. Поэтому мы используем указанную выше конструкцию — вывод ошибок обрабатывается, стандартный вывод уничтожается.

Если вы хотите разобраться в этом глубже, то смотрите статью «Операторы перенаправления вывода в Bash: что означает <<, <<<, < <(КОМАНДА), 2>&1 и другие».

Для поиска хостов мы будем использовать конструкцию вида:

if [[ "`timeout 3 curl -v ХОСТ 2> >(grep -o -i -E Unauthorized) > /dev/null`" ]]; then 
	echo ХОСТ; 
fi

То есть если в заголовках ХОСТА найдена срока «Unauthorized», то выводим адрес этого хоста.

Чтобы сделать эту кастомную полезную нагрузку многопоточной, я буду использовать утилиту Parallel (смотрите «Руководство по использованию GNU Parallel»).

Пример сканирования портов 80 и 8080 диапазона IP адресов 100.101.0.0-100.101.255.255 с выводом данных прямо на экран:

parallel -j250 'if [[ "`timeout 3 curl -v 100.101.{1}.{2}:80 2> >(grep -o -i -E Unauthorized) > /dev/null`" ]]; then echo 100.101.{1}.{2}; fi; if [[ "`timeout 3 curl -v 100.101.{1}.{2}:8080 2> >(grep -o -i -E Unauthorized) > /dev/null`" ]]; then echo 100.101.{1}.{2}:8080; fi' ::: {1..255} ::: {1..255}

Пример сканирования портов 80 и 8080 диапазона IP адресов 100.64.0.0-100.127.255.255 с сохранением данных в файл auth_basic.txt:

parallel -j250 'if [[ "`timeout 3 curl -v 100.{3}.{1}.{2}:80 2> >(grep -o -i -E Unauthorized) > /dev/null`" ]]; then echo 100.{3}.{1}.{2}; fi; if [[ "`timeout 3 curl -v 100.{3}.{1}.{2}:8080 2> >(grep -o -i -E Unauthorized) > /dev/null`" ]]; then echo 100.{3}.{1}.{2}:8080; fi' ::: {1..255} ::: {1..255} ::: {64..127} > auth_basic.txt
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Вадлейд
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: