кали линукс команды терминала для хакеров
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#8 Kali Linux для начинающих. Основные команды. Часть 1.
Давайте познакомимся с основными Linux-командами. Это будет базовый перечень, о которых я расскажу. Сначала я хочу, чтобы Вы запомнили одну деталь. Дело в том, что Linux-системы чувствительны к регистру. Например, если мы пишем слово «Test» (обратите внимание на первую заглавную букву), то это будет отличаться от того же слова «test», но уже с первой прописной буквой. Это важно усвоить, прежде чем переходить к изучению команд в Linux.
Прошу Вас быть внимательными, и если вы новичок в Linux, то Вам простительны такие ошибки, но уже более опытным пользователям это неприемлемо. Хочу отметить, что получение доступа к файлам в Linux гораздо сложнее, чем в привычной всем Windows, и очень важную роль тут как раз играет регистр, поэтому будьте повнимательнее.
Думаю, мы разобрались с этим моментом, и нужно обозначить текущие цели, которые мы будем преследовать на протяжении нескольких уроков.
Итак, мы научимся перемещаться по файловой системе, изменять директории и переходить из одной директории в другую. Также научимся создавать файлы и директории, и Вы получите навыки в отображении содержимого этих файлов, и директорий. Еще мы с Вами научимся копировать, перемещать и удалять эти файлы и директории.
Теперь я хотел бы осветить пару моментов, которые необходимы при работе с командами в Linux. Есть определенная структура, которая состоит из 2-х элементов: «опции» и «аргументы».
Давайте более подробнее поговорим про эти элементы. Опции изменяют поведение команды, и, как правило это буквы, перед которыми идет знак минус «-». Можно использовать несколько опций в одной команде. Например, команда ls отображает содержимое директории и работает определенным образом. Не пугайтесь, если не понимаете назначение данной команды, позже Вам станет все понятно. Мы можем также прописать ту же команду ls, но дописав — — help, то в конечном итоге увидим другой результат выполнения:
В этом случае — — help — это «опция». Как я уже говорил, помимо опций у команд есть аргументы. Как правило, аргумент — это дополнительная информация, которая указывает команде с чем работать.
Приведу тот же пример с командой ls. Если ввести эту команду без аргументов, то она отобразит текущую директорию:
Допустим я нахожусь в директории /Documents, и при вводе команды ls, она отобразит директорию /Documents соответственно:
Однако, если мы перейдем в корень и добавим к команде ls, например, следующую запись — Downloads, то мы увидим содержимое указанной директории, а Downloads будет называться аргументом:
Итак, какие основные команды мы рассмотрим в ближайших нескольких уроках?
— pwd, которая означает, отобразить рабочую директорию;
— cd — сменить директорию;
— mkdir — создать директорию;
— touch — используется для создания файла;
— ls — отображение содержимого директории;
— cat — команда, которая конкатенирует и отображает файлы;
— less — отображает содержимое файлов, но по-другому;
— tail — [n] — отображает последние строки файла, в зависимости от количества указанных строк;
— cp — копирует файл;
— mv — перемещает или переименовывает файл;
— rm или rmdir — можно удалить файл и/или директорию.
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#43 Kali Linux для начинающих. Сниффим пароли.
Я надеюсь, Вам понравилось взламывать. Давайте рассмотрим другие инструменты Kali Linux. Мы уже рассмотрели некоторый перечень инструментов, такие как «nmap», «netdiscover», «nessus» и т.д.
Также я упоминал «wpscan», «drupalscan». Мы рассмотрели анализ баз данных, и подобрали имя пользователя и пароль к ней. В рамках данного курса мы не будем рассматривать раздел беспроводных атак, а также реверс-инжиниринг. Это темы для отдельных курсов. Продолжим рассматривать инструменты Kali, и перейдем в раздел сниффинг и спуфинг. В частности нас будет интересовать инструмент для сниффинга, который называется «wireshark»:
Этот инструмент работает на нашем компьютере, анализируя сетевой трафик и перехватывая все пакеты. Также можно указать, какие пакеты перехватывать. В этом уроке мы рассмотрим wireshark более детально, и я покажу Вам, как искать имена пользователей и пароли, которые передаются в Вашей сети.
Для начала выбираем меню «Capture», далее «Options»:
Здесь нужно выбрать сетевой интерфейс, с которого Вы будете перехватывать трафик. Давайте я объясню подробнее. У большинства современных компьютеров или ноутбуков есть несколько сетевых интерфейсов. Как правило, это проводной и беспроводной интерфейс.
Например, если Вы используете стационарный компьютер в университете, то на не используется проводной интерфейс, т.е. к нему подключен сетевой кабель, который обеспечивает доступ к сети.
Если Вы работаете с ноутбука дома, то скорее всего у Вас беспроводной интерфейс.
Обратите внимание, что я использую Kali в качестве виртуальной машины. Виртуальная машина думает, что это проводное соединение, а не беспроводное, т.е. eth0. Мы проговаривали это в лекции по настройке сети. Имейте ввиду, что если бы использовалось беспроводное соединение, то сетевой интерфейс отображался как адаптер «wlan0», но так как у меня проводное соединение, то указан интерфейс «eth0».
Очень важно понимать разницу, так как если Вы используете виртуальную машину и пытаетесь найти беспроводной интерфейс, то у Вас ничего не получиться. Однако, если Вы установили Kali напрямую, то Вы используете беспроводной интерфейс, то ищите wlan. Надеюсь с этим нет вопросов.
Нажимаем кнопку «start», чтобы начать мониторить или сниффить сеть:
Итак, я вернулся на сервер TomCat, и авторизировался на нем. Таким образом, появляется сценарий, при котором пользователь admin, т.е. я, авторизируется в панеле управления, а хакер сидит в wireshark, и надеется получить учетные данные TomCat. После авторизации у нас будут появляться пакеты, и так как я использую закрытую сеть, то используется немного пакетов. Однако, если использовать другие инструменты, открытую сеть, то в Wireshark будет использовано больше пакетов.
В этом потоке очень сложно найти нужную информацию, поэтому используются фильтры. По сути фильтр отображает то, что нам нужно, и он игнорирует все остальные пакеты, и отображает только нужные. Для редактирования используем кнопку «Expression»:
Вспомните, что мы говорили об HTTP, SSH, FTP. Но сетевых протоколов гораздо больше.
Сейчас нас интересует протокол HTTP, потому что я знаю, что в панель управления TomCat зашли через браузер, и эта панель находится на веб-сервере, и, скорее всего, к ней можно получить доступ через HTTP или HTTPS.
HTTPS – это безопасный и зашифрованный HTTP. И если бы мне не повезло, и админ использовал бы зашифрованный протокол HTTPS, я не смог бы расшифровать данные.
В качестве профилактики безопасности сохранения учетных данных, нужно проверять протоколы, которые находятся в адресной строке браузера, и если стоит HTTPS, то данные будут зашифрованы.
Нужно пролистать вниз, чтобы найти протокол HTTP:
Обратите внимание на строку фильтра. Она выделена зеленым цветом. Это означает, что WireShark понимает то, что мне нужно. Выберем дополнительный параметр к http. Это contains, в правом верхнем углу:
WireShark не понимает то, что мне нужно. Если остановить курсор мыши на слове «contains», мы получим вывод более полного перечня информации.
Иными словами, нам нужно дополнительно прописать еще значение, чтобы WireShark понимал его. Я хочу, чтобы программа отбрасывала все пакеты, кроме http-пакетов. Дополнительно введем слово manager, чтобы еще сузить список пакетов, которые будут выводиться:
К примеру, если я зайду на какой-либо сайт через HTTPS, то эти пакеты будут проигнорированы, потому что я указал только HTTP. Слово «manager» я указываю для того, чтобы использовать его в фильтре, так как я знаю, что при авторизации в панели управления TomCat, пакет должен содержать слово «manager». Кликаем «Ok» и переходим в основное окно WireShark:
Мы можем поиграться с фильтром, выводя различные пакеты:
И если кликать по выведенным пакетам, то отображается их содержимое.
Например, я ищу TomCat:
Как видим, отображается HTTP-запрос, в котором админ заходил на страницу авторизации. Мы можем просмотреть абсолютно все пакеты и проанализировать их. Мы можем видеть, куда заходил пользователь и т.д.
В этом видео нас интересуют учетные данные (имя пользователя и пароль), который админ использовал при авторизации в панели управления. Они нам нужны для того, чтобы взломать систему.
Давайте проанализируем пакет HTTP 480 GET:
Пользователь, исходя из этих данных успешно авторизировался. Просматривая содержимое этого пакета мы можем увидеть информацию «Authorization: Basic»:
Итак, почему нам нужна именно эта строка? На самом деле – это есть имя пользователя и пароль, который использовал admin. Данная строка не зашифрована, а обфусцированна, и в данном случае она закодирована с помощью base64. Это тип кодирования, который можно определить по символу равно «=» в конце. На самом деле base64 – это один из самых простых методов кодировки, и его очень легко раскодировать.
Копируем данную запись, нажав правую клавишу мыши и далее «Copy» «Value».
В интернете ищем декодер base64:
Как видим, внизу страницы находятся имя пользователя и пароль, которые были закодированы.
Мы выбрали WireShark, потому что он самый популярный, и настроили его для перехвата трафика из сети, а затем использовали фильтры просмотра, чтобы получить закодированные учетные данные и раскодировали их.
Нам совершенно не важно какой длины будет пароль, так как мы можем перехватить любую его длину.
После того, как мы перехватили логин и пароль, нам нужно авторизироваться в панели управления, чтобы проверить наличие доступа, а затем вернуться в Metasploit, настроить эксплойт, и получить доступ к системе.
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#42 Kali Linux для начинающих. Взламываем базу данных. Атаки на пароли.
Давайте рассмотрим еще один способ, как взломать нашу цель. В этом уроке мы будем атаковать сервис базы данных.
Посмотрим на результат сканирования «nmap», а именно нас интересует порт 3306, который используется сервисом «mysql». Это сервис базы данных, и, как Вы знаете, он содержит множество чувствительной информации, такую как имена пользователей, пароли, и т.д.
Нам нужно подключиться к этой базе данных, но у меня нет соответствующего логина и пароля, но я попробую подобрать их с помощью инструмента sqldict. Это сокращение от sql dictionary.
Данный инструмент не стоял у меня в системе, поэтому нужно установить его с помощью команды: «apt-get install sqldict»:
С помощью sqldict можно производить подбор паролей, и данный процесс называется «атака по словарю». Другими словами, я создам список возможных паролей. При первом запуске sqldict в терминале мы видим ошибку, так как нужно сперва выполнить установку «wine32»:
Wine32 – это программа на Kali и других дистрибутивах Linux, которая позволяет запускать программы на Windows в линукс системах. В Windows программа имеет расширение «.exe». Это исполняемые файлы, и они созданы для работы в Windows.
Данная программа будет загружаться какое-то время, поэтому мы опустим данный процесс для загрузки в систему.
Рассмотрим еще один инструмент, который можно использовать для достижения той же самой цели. Его можно найти в разделе «Passwords Attacks», и он называется «wordlists»:
В разделе «Атаки на пароли» существует несколько инструментов для проведения подобных атак, но нас интересуют простые атаки, т.е. атаки на онлайн сервисы. Ранее мы уже атаковали запущенные сервисы SSH и FTP. Как правило, для этих сервисов существует подбор имени пользователя и пароль. И если мы атакуем работающий сервис, для попытки подобрать имя пользователя и пароль, то такая атака называется онлайн-атака на пароли. И сейчас нашей целью будет mysql, который работает на атакуемой машине. Нам нужно подобрать имя пользователя и пароль. Это называется онлайн-атака на пароли. Далее я хочу показать Вам директорию «worldlists». Нас интересует словарь «rockyou.txt»:
Далее нам нужно распаковать текстовый файл rockyou.txt.gz с помощью команды gunzip rockyou.txt.gz:
Давайте воспользуемся этим файлом, и скопируем путь к нему, так как он в дальнейшем нам понадобится.
Сразу хотелось бы отметить, что при работе с инструментами, некоторые из них не будут работать в штатном режиме. Тогда нужно переходить к следующему, и не зацикливаться только на одном. Я постоянно это повторяю, и это очень важно понимать.
Также в этом уроке я буду использовать инструмент «Hydra»:
Для того, чтобы подобрать пароль, мне нужен словарь или список слов для атаки. В интернете я нашел список самых худших паролей всех времен:
Скопируем первые 50 паролей:
С помощью текстового редактора nano создаем файл «temp»:
Обратите внимание на то, что все области, которые выделены в розовый цвет являются разделителями, при помощи табуляции. Имейте ввиду, что таком формате файл бесполезен. Нам нужно создать последовательный список из всех этих слов. Мы воспользуемся командами, которые изучили в предыдущих уроках.
Введем команду cat в терминале:
Нам нужно привести этот файл в порядок. Команда будет выглядеть как: «cat temp | cut –d$’\t’ –f 2».
Значок $ используется для того, чтобы вырезать только текст. Можно загуглить данную команду, и Вы быстро разберетесь, как все работает. Просто помните, что после разделителя «Tab», необходимо указать значок доллара, затем добавить –f 2 (второе поле):
И, как видим, у нас появился список всех возможных паролей, которые были скопированы. Разумеется, весь этот вывод на экране нужно сохранить в отдельный файл. Команда будет выглядеть как: «cat temp | cut –d$’\t’ –f 2 > worst-50»:
worst-50″ srcset=»https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6.png 805w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6-300×244.png 300w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6-768×625.png 768w» sizes=»(max-width: 805px) 100vw, 805px» />
Обратите внимание на то, что я указал файл worst-50 без какого-либо расширения. На самом деле в линуксе можно не указывать расширение, так как файлы являются текстовыми по-умолчанию, и можно прочесть их содержимое.
Давайте внесем последние правки в наш словарь:
Нам нужно удалить строку top, так как она нам не нужна. Жмем горячую клавишу Ctrl+K для удаления первой строки, а перейдя на последнюю жмем «Enter», что будет являться пустой строкой:
Пустая строка будет выполняться, если кто-то будет использовать какой-либо логин и пустой пароль.
Давайте вернемся к инструменту «Hydra», и можем воспользоваться примером, который нам указывают разработчики:
На самом деле половина успеха будет заключаться в правильном использовании имени пользователя. Если у нас нет правильного имени пользователя, то будет проблематично с авторизацией.
Команда для перебора по словарю будет выглядеть следующим образом:
«hydra –l root –P worst-50 mysql://192.168.119.130»:
Hydra сработала практически сразу и был подобран один пароль. Также можем видеть 51 попытку подбора пароля. Обратите внимание, что здесь не указан подобранный пароль, а это значит, что пароль был пустым.
Теперь у нас есть имя пользователя и пароль, для авторизации в базе данных mysql. В случае с FTP, для авторизации нам нужен был FTP-клиент (например, FileZilla). Чтобы пройти SSH-авторизацию, нам нужен был SSH-клиент, а на Windows мы использовали Putty. На Linux – SSH-клиент. В случае с авторизацией в MySQL, нам нужен MySQL-клиент. Для подключения к базе данных нам нужно ввести в терминале следующую команду: «mysql –u root –p –h 192.168.119.130», где опция –u – это имя пользователя, —p – порт, —h – айпи-адрес:
MySQL просит ввести пароль. Мы просто оставляем пустым и жмем «Enter».
Обратите внимание, что консоль изменилась, и мы взаимодействуем с базой данных.
Если Вы никогда не сталкивались с базой данных SQL, то можно использовать графические клиенты, которые выглядят нагляднее, чем то, что мы используем сейчас.
Мы разберем простые команды, которые можно использовать. Давайте посмотрим какие базы данных есть на этом MySQL сервере. Их может быть несколько, и для этого выполним простую команду «show databases;»:
Не забудьте в конце записи ввести точку с запятой, так как это является концом команды. Таков синтаксис SQL-запросов.
Как видим, существует несколько баз данных. Начнем с базы «dvwa». Обратите внимание что «information_schema» — это база данных баз данных, так как она содержит информацию об остальных базах данных.
Чтобы открыть «dvwa», просто пишем команду «use dvwa;»:
Нам нужно просмотреть таблицы этой базы данных. Для этого пишем команду: «show tables;»:
Как видим, существует две таблицы «guestbook» и «users».
Нас будет интересовать таблица «users», так как в ней могут содержаться имена пользователей и пароли. Команда выглядит как: «select * from users;»:
В данной таблице содержатся id пользователей, имена, логины, пароли, аватары. Именно так выглядят украденные учетные данные.
Те, кто интересуется информационной безопасностью часто слышат о том, что хакеры то и дело сливают информацию из баз данных самых разных сайтов, компаний и т.д.
Обратите внимание, что выведенные пароли не похожи на обычные пароли, и если присмотреться, то у них одинаковая длина. Это хэши паролей. Иными словами, мы не сможем просто авторизироваться в системе с такими паролями, потому что это не сами пароли, а их скрытое значение.
Очень часто злоумышленники пытаются взломать данные пароли, т.е. расшифровать их. Не волнуйтесь, что какая-то информация непонятна. Мы еще поговорим об этом. Сейчас для нас актуально то, что мы авторизировались в базе данных нашли некоторую информацию с данного сервиса.
Так что же делать дальше? Вспомним, что я говорил то, что если у Вас есть имена пользователей – это половину успеха, и для взлома этих пользователей нам понадобится пароли. Можно подобрать пароли этих пользователей с помощью гидры или подобного инструмента. Можно также поискать в интернете расшифрованные хэши, которые мы нашли в базе данных. Возможно, кто-то до Вас уже делал подобное и выложил в сети данную информацию.
Погуглить найденные хэши.
Использовать инструменты Kali Linux для взлома хэшей, к примеру, John the Ripper.