Удаленный сервер имен, на который у меня нет прав, периодически отвечает поддельными адресами. Я хочу отслеживать этот сервер и собирать данные о поддельных ответах для анализа. Как мне это сделать?
По сути, я хочу запросить известный домен, сравнить его с известным IP-адресом и зарегистрировать данные. Я намерен визуализировать количество времени, в течение которого сервер отвечает поддельным или легитимным, а также шаблоны в этом поведении.
Я надеюсь, что для этого есть инструменты, которые легко доступны, но при необходимости я мог бы использовать python / sql. Пожалуйста, порекомендуйте.
An А запрос записи для google.com вернется 195.22.26.248.
Очевидно, это не адрес Google
Я предполагаю, что вы понимаете, о чем говорите, когда говорите, что это один DNS-сервер. Я настроен скептически, потому что вы не поделились своей методологией определения этого, но в моем ответе я буду считать само собой разумеющимся, что эта информация точна.
Обычно вы выполняете запрос, смотрите на наблюдаемый TTL и запрашиваете снова, когда истекает TTL. Вы должны продолжать это до тех пор, пока не будет достигнут заданный вами период выборки, и сравните хорошие ответы с плохими.
К сожалению, здесь ключевое слово «нормально». Вы ищете детерминированный ответ, но его трудно найти, если сервер скомпрометирован, и в большинстве случаев вам придется выбросить логику из окна, пока вы не узнаете специфику методологии эксплойта.
Короче говоря, вы много работаете над проблемой, которой не владеете, и, поскольку она вам не принадлежит, у вас очень мало способов убедиться, что собранная вами информация дает полезное заключение. (помимо академического упражнения в соотношении сырых хороших и плохих ответов с течением времени, что превратит эти вопросы и ответы в один из тех вопросов типа "дай мне код", которые мы не одобряем на этом сайте SE)
Ты можешь использовать dig www.example.com
в bash в большинстве систем Linux для выполнения поиска DNS вывод может быть настроен в зависимости от количества деталей, которые вы хотите. Вы можете сохранить заведомо исправный результат в файл, а затем сравнить результаты, используя diff
. Регистрация может быть выполнена путем извлечения желаемой информации из dig
output, то вы можете сохранить его в любом желаемом формате, используя файл журнала или базу данных. С помощью date +%s
вы можете получить временную метку unix для добавления в журнал, что сделает выбор временного диапазона в журналах вопросом целочисленного сравнения для одного значения.