Введение
В этой лабораторной работе вы изучите основные методы создания и управления пользовательскими списками слов (wordlists) с использованием стандартных утилит командной строки Linux. Списки слов имеют решающее значение в различных задачах кибербезопасности и обработки данных, от перебора паролей (brute-forcing) до фаззинга приложений (fuzzing) и анализа текстовых данных. Вы научитесь генерировать простые списки слов, объединять несколько списков, удалять дублирующиеся записи, сортировать их по алфавиту и фильтровать по длине. К концу этой лабораторной работы вы получите прочное понимание того, как эффективно манипулировать текстовыми файлами для создания индивидуальных списков слов для ваших конкретных нужд.
Создание простого пользовательского списка слов
На этом шаге вы научитесь создавать базовый пользовательский список слов с помощью команды echo и перенаправления вывода. Это самый простой способ создать файл, содержащий несколько слов, каждое на новой строке.
Сначала перейдите в каталог вашего проекта, если вы еще не там:
cd ~/project
Теперь создайте простой список слов с именем my_wordlist.txt с несколькими словами:
echo -e "apple\nbanana\norange\ngrape" > my_wordlist.txt
Опция -e включает интерпретацию escape-последовательностей с обратной косой чертой, а \n создает новую строку. Оператор > перенаправляет вывод в указанный файл, создавая его, если он не существует, или перезаписывая, если существует.
Чтобы проверить содержимое вашего только что созданного списка слов, используйте команду cat:
cat my_wordlist.txt
Вы должны увидеть следующий вывод:
apple
banana
orange
grape
Далее, давайте добавим больше слов в тот же список слов, не перезаписывая его существующее содержимое. Мы будем использовать оператор >> для добавления (append).
echo -e "kiwi\nstrawberry\nblueberry" >> my_wordlist.txt
Проверьте обновленное содержимое:
cat my_wordlist.txt
Теперь вывод должен включать добавленные слова:
apple
banana
orange
grape
kiwi
strawberry
blueberry
Этот метод полезен для быстрого создания небольших пользовательских списков слов или добавления записей в существующие.
Объединение нескольких списков слов
На этом шаге вы научитесь объединять содержимое нескольких списков слов в один, консолидированный список. Это распространенная задача, когда у вас есть разные источники слов, которые вы хотите слить.
Сначала давайте создадим еще один небольшой список слов с именем additional_words.txt:
echo -e "melon\npeach\nplum" > additional_words.txt
Проверьте его содержимое:
cat additional_words.txt
Вы должны увидеть:
melon
peach
plum
Теперь мы объединим my_wordlist.txt и additional_words.txt в новый файл под названием combined_wordlist.txt. Мы будем использовать команду cat для конкатенации файлов и перенаправления вывода.
cat my_wordlist.txt additional_words.txt > combined_wordlist.txt
Проверьте содержимое файла combined_wordlist.txt:
cat combined_wordlist.txt
Вывод покажет все слова из обоих файлов в том порядке, в котором они были объединены:
apple
banana
orange
grape
kiwi
strawberry
blueberry
melon
peach
plum
Этот метод очень гибок и может использоваться для объединения любого количества списков слов.
Удаление дубликатов из списка слов
Списки слов часто содержат повторяющиеся записи, особенно после объединения нескольких источников. На этом шаге вы научитесь удалять эти дубликаты с помощью команд sort и uniq. Команда uniq обнаруживает только смежные повторяющиеся строки, поэтому крайне важно сначала отсортировать файл.
Давайте намеренно добавим несколько повторяющихся записей в наш файл combined_wordlist.txt, чтобы продемонстрировать это.
echo -e "apple\nbanana\nmelon" >> combined_wordlist.txt
Теперь просмотрите содержимое файла combined_wordlist.txt, чтобы увидеть дубликаты:
cat combined_wordlist.txt
Вы заметите, что apple, banana и melon появляются несколько раз.
Чтобы удалить дубликаты, мы сначала сортируем файл, а затем передаем вывод команде uniq. Результат мы сохраним в новый файл unique_wordlist.txt.
sort combined_wordlist.txt | uniq > unique_wordlist.txt
Теперь проверьте файл unique_wordlist.txt:
cat unique_wordlist.txt
Вывод теперь должен содержать только уникальные записи, отсортированные в алфавитном порядке:
apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry
Это мощная комбинация команд для очистки списков слов.
Сортировка списка слов в алфавитном порядке
Сортировка списка слов в алфавитном порядке часто полезна для организации, улучшения читаемости и как предварительное условие для других операций, таких как удаление дубликатов (как показано на предыдущем шаге). На этом шаге вы явно отсортируете список слов.
Мы будем использовать команду sort для нашего файла unique_wordlist.txt и сохраним отсортированный вывод в файл sorted_wordlist.txt. Хотя файл unique_wordlist.txt уже отсортирован, этот шаг демонстрирует команду sort отдельно.
sort unique_wordlist.txt > sorted_wordlist.txt
Теперь просмотрите содержимое файла sorted_wordlist.txt:
cat sorted_wordlist.txt
Вывод будет содержать слова в алфавитном порядке:
apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry
Команда sort имеет множество опций, таких как -r для обратного алфавитного порядка или -n для числовой сортировки. Например, для сортировки в обратном порядке:
sort -r unique_wordlist.txt
Это выведет:
strawberry
plum
peach
orange
melon
kiwi
grape
blueberry
banana
apple
Для этой лабораторной работы мы будем придерживаться стандартной алфавитной сортировки.
Фильтрация списка слов по длине
Иногда требуется отфильтровать список слов на основе длины слов. Например, вам могут понадобиться только слова длиной от 5 до 8 символов. На этом шаге вы будете использовать команду awk для фильтрации слов по их длине.
Мы отфильтруем файл sorted_wordlist.txt, чтобы включить только слова длиной от 5 до 7 символов (включительно). Функция length($0) в awk возвращает длину текущей строки (слова).
awk 'length($0) >= 5 && length($0) <= 7' sorted_wordlist.txt > filtered_wordlist.txt
Теперь проверьте содержимое файла filtered_wordlist.txt:
cat filtered_wordlist.txt
Вывод должен содержать только слова, соответствующие критериям длины:
apple
banana
orange
grape
melon
peach
Разберем команду awk:
awk: Утилита командной строки для обработки текста.'length($0) >= 5 && length($0) <= 7': Это программаawk.length($0): Возвращает длину всей строки ($0ссылается на всю строку).>= 5: Проверяет, больше ли длина или равна 5.&&: Логический оператор И (AND).<= 7: Проверяет, меньше ли длина или равна 7.- Если условие истинно,
awkпо умолчанию выводит строку.
sorted_wordlist.txt: Входной файл.> filtered_wordlist.txt: Перенаправляет вывод в новый файл.
Эта возможность фильтрации очень мощная для уточнения списков слов для конкретных целей.
Итоги
В этой лабораторной работе вы успешно научились создавать и управлять пользовательскими списками слов с помощью различных основных инструментов командной строки Linux. Вы начали с генерации простых списков слов с помощью echo и перенаправления, затем объединили несколько списков с помощью cat. Вы освоили важный метод удаления дублирующихся записей, объединив sort и uniq, и практиковались в сортировке списков слов в алфавитном порядке. Наконец, вы использовали awk для фильтрации списков слов по определенным критериям длины. Эти навыки являются фундаментальными для всех, кто работает с текстовыми данными, особенно в области кибербезопасности для таких задач, как подбор паролей, фаззинг и анализ данных. Теперь у вас есть прочная основа для манипулирования и уточнения списков слов в соответствии с разнообразными требованиями.


