Вопрос или проблема
Я хочу использовать этот общий список корпоративных паролей из SecLists в качестве списка слов.
У него есть расширение .lst
. Это простой текстовый файл, только с такой синтаксисом:
<COMPANY>2022
<COMPANY>2023
...
<SPORTS_TEAM/HOBBY>2
<SPORTS_TEAM/HOBBY>2!
<SPORTS_TEAM/HOBBY>2@
Я могу заменить часть <WORD>
на:
sed 's/<COMPANY>/MyCompany/' common_corporate_passwords.lst > out.txt
Мои вопросы:
- Это лучший способ сделать это или есть какие-то стандартные инструменты?
- Если это так, как мне иметь дело с такими случаями, как
<SPORTS_TEAM/HOBBY>
?
.
Ответ или решение
Использование файлов с расширением ".lst" для создания списков слов (wordlists) может быть эффективным методом в области информационной безопасности, особенно при тестировании на проникновение (penetration testing) и при взломе паролей. В этой статье мы детально рассмотрим, как можно использовать такие файлы, а также отвечаем на два основных вопроса, касающиеся замены специальных маркеров на соответствующие данные.
Как использовать файлы ".lst" для создания списков слов
Файлы ".lst", такие как приведённый в примере из репозитория SecLists, представляют собой текстовые файлы, содержащие предопределённые шаблоны паролей. Один из основных способов работы с ними — это предварительная обработка файла, чтобы заменить маркеры, такие как <COMPANY>
или <SPORTS_TEAM/HOBBY>
, на конкретные значения.
1. Замена маркеров
Использование команды sed
— это очень подходящий способ замены маркеров. Приведённый вами пример:
sed 's/<COMPANY>/MyCompany/' common_corporate_passwords.lst > out.txt
выполняет замену <COMPANY>
на MyCompany
и записывает результат в новый файл out.txt
. Процесс может быть расширен для работы с множественными маркерами, однако для более сложных замещений можно использовать несколько строк sed
или, если необходимо больше гибкости, перейти на использование языка программирования, такого как Python.
2. Работа с более сложными шаблонами
Для маркеров, которые содержат разделители, такие как <SPORTS_TEAM/HOBBY>
, вы должны решить, что именно необходимо подставить. Вы можете заранее определить список командных названий или хобби и использовать их для генерации полного списка паролей.
Для примера, вы можете создать скрипт на Python, который будет использовать стандартные библиотеки для обработки текста. Это позволяет вам создавать более сложные схемы замены:
import itertools
with open('common_corporate_passwords.lst', 'r') as infile, open('out.txt', 'w') as outfile:
companies = ['MyCompany', 'AnotherCompany']
sports_teams = ['TeamA', 'TeamB']
for line in infile:
if '<COMPANY>' in line:
for company in companies:
outfile.write(line.replace('<COMPANY>', company))
elif '<SPORTS_TEAM/HOBBY>' in line:
for team in sports_teams:
modified_line = line.replace('<SPORTS_TEAM/HOBBY>', team)
outfile.write(modified_line)
# Добавление вариаций, как в примере
outfile.write(modified_line.strip() + '2\n')
outfile.write(modified_line.strip() + '2!\n')
outfile.write(modified_line.strip() + '2@\n')
else:
outfile.write(line)
Это позволит вам эффективно обрабатывать более сложные модели и генерировать полные списки паролей.
Заключение
Таким образом, использование файлов с расширением ".lst" для создания списков слов является полезным методом в тестировании безопасности. Замена маркеров, как и представлено в ваших примерах, является стандартным подходом, но использование более сложных методов, таких как написание скриптов на Python, может значительно упростить и автоматизировать процесс.
Если вам необходима помощь в создании более комплексных паттернов или сценариев, рекомендуем изучить доступные библиотеки и широкий спектр инструментов, которые могут значительно облегчить вашу задачу.