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

Вид: 305694|Ответ: 99

[Консольная программа] .net/c# реализует исходный код для захвата DNS

  [Скопировать ссылку]
Опубликовано 10.11.2017 10:31:54 | | | |
Теперь, когда интернет-захват DNS стал обычным явлением, операторам стало легко реализовать захват DNS, что такое захват DNS? Энциклопедия Baidu представлена следующим образом:

DNS-захват, также известный как захват доменных имён, означает перехват запросов на разрешение доменных имен внутри захваченной сети, анализ запрошенных доменных имён и выпуск запросов вне сферы проверки, в противном случае возврат поддельного IP-адреса или ничего, чтобы сделать запрос неотзывчивым.


Сегодня я хочу взломать программу, которую написал, ей нужна http-аутентификация для нормальной работы, так что взломать программу, можно подделать содержимое ответа HTTP, чтобы она думала, что я аутентифицированный пользователь, поддельный http-ответ, существует много методов, сегодня я задумался, можно ли использовать метод перехвата DNS, чтобы подделать соответствующий IP-адрес доменного имени, чтобы подделать содержимое ответа HTTP.

Чтобы реализовать DNS-перехищение, самый простой способ — это файл hosts, в Интернете существует множество специфических методов, сегодня давайте напишем устройство для захвата DNS на C#

Первым шагом было написать программу именно тогда, и её цель была — внедрить программуwww.itsvse.comПарсинг указывает на 127.0.0.1, я создал сайт на 80 портов с помощью IIS, не говоря уже об этом этапе, исходный код находится внизу.



Второй шаг — изменить DNS-сервер машины на 127.0.0.1, как показано на рисунке ниже:


Третий шаг — начать написанную программу, а затем получить доступ к ней через сайтwww.itsvse.com, вы обнаружите, что контент, возвращаемый сайтом, не является содержимым нашего настоящего сайта! Содержание другой веб-страницы было полностью подделано, как показано ниже:



Когда мы откроем Baidu, обнаружим, что Baidu нельзя открыть, потому что мы только отвечаемwww.itsvse.comРазрешение запросов на доменные имена игнорируется другими разрешениями доменных имен, как показано на рисунке ниже:



Как мы справляемся с захватом DNS? Есть много способов, но есть политики и контрмеры: копьё сильное или щит?

Ха-ха, готово.

Скачать исходный код:

Туристы, если вы хотите увидеть скрытое содержание этого поста, пожалуйстаОтвет





Предыдущий:Когда XML обрабатывает SQL-операторы, он обрабатывает трансформацию знаков меньше и больше
Следующий:Разница между ShadowsocksR и Shadowsocks
Опубликовано 27.12.2017 10:54:20 |
Последний раз этот пост был отредактирован Zmoli775 27.12.2017 13:52

Когда мы откроем Baidu, обнаружим, что Baidu нельзя открыть, потому что мы только отвечаемwww.itsvse.comРазрешение запросов на доменные имена игнорируется другими разрешениями доменных имен, как показано на рисунке ниже:
Можете ли вы перехватить назначенный URL, остальная часть доменного имени доступна нормально, как это сделать!--- был слишком неосторожен, я не обращал внимания...



Опубликовано 12.12.2019 0:24:37 |
if (eventArgsQuery.Questions.Count == 1 && eventArgsQuery.Questions[0]. RecordType == RecordType.A)
                {
                    if (domainnew == "www.test.com") // захватить доменное имя QQ
                    {
                        Response.AnswerRecords.Add(new ARecord(eventArgsQuery.Questions[0]. Имя, 36000, IPAddress.Parse("192.168.15.15"))); Возвращает пользовательскую запись A
                        Response.ReturnCode = ReturnCode.NoError;
                    }
                    Другое
                    {

                        this.richTextBox3.Text = this.richTextBox3.Text.Insert(0, DateTime.Now.ToString("yyyy MM dd HH:mm:ss.ffff"). ToString() + «--- запрошенный домен должен быть переадресован на публичный DNS-запрос» + Environment.NewLine);
                        DnsClient dnsClient = новый DnsClient(IPAddress.Parse("223.5.5.5"), 5000;
                        DnsMessage dnsMessage = dnsClient.Resolve(eventArgsQuery.Questions[0]. Имя — RecordType.A);

/////请教一下楼主,这个地方请求不到信息,如何解决?谢谢

                        foreach (DnsRecordBase dnsRecord в dnsMessage.AnswerRecords)
                        {
                            ARecord aRecord = dnsRecord как ARecord;
                            если (aRecord != null)
                            {
                                Response.AnswerRecords.Add(new ARecord(eventArgsQuery.Questions[0]. Имя, 36, aRecord.Address)); Верните ему запись 127.0.0.1, это машина
                                Response.ReturnCode = ReturnCode.NoError;
                            }
                            Другое
                            {
                                продолжить;
                            }
                        }



                    }
                }
 Хозяин| Опубликовано 08.12.2017 15:47:28 |
Опубликовано 10.11.2017 10:45:14 |
Спасибо, что поделились, отличные отзывы
Опубликовано 10.11.2017 10:49:29 |
Спасибо, что поделились, интересно
Опубликовано 10.11.2017 11:29:38 По телефону |
Нет, нет, нет, белый, нежный
Опубликовано 11.11.2017 1:49:29 |
Спасибо, что поделились
Опубликовано 12.11.2017 14:33:21 |
Учитесь учиться
Опубликовано 14.11.2017 16:05:10 |
RE: .net/c# 实现dns劫持源代码
Опубликовано 16.11.2017 10:41:11 |
Потрясающе~~ Большой парень
Опубликовано 14.12.2017 16:26:31 |
Великий бог, удивительный
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com