Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 305694|Svar: 99

[Konsolprogram] .net/c# implementerer DNS-kapring af kildekode

  [Kopier link]
Opslået på 10/11/2017 10.31.54 | | | |
Nu hvor internet-DNS-kapring er almindeligt, er det nemt for operatører at implementere DNS-kapring, hvad er DNS-kapring? Baidu-encyklopædien introduceres således:

DNS-kapring, også kendt som domænenavnskapring, refererer til at opsnappe domænenavnsresolutionsanmodninger inden for det kaprede netværk, analysere de anmodede domænenavne og frigive anmodninger uden for gennemgangsområdet, ellers returnere en falsk IP-adresse eller ikke gøre noget for at gøre anmodningen uresponsiv.


I dag vil jeg knække det program, jeg har skrevet, programmet kræver http-autentificering for at køre normalt, så knæk programmet, du kan forfalske HTTP-svarets indhold for at få programmet til at tro, at jeg er en autentificeret bruger, falsk HTTP-svar, der findes mange metoder, i dag tænkte jeg over det, kan du bruge DNS-kapringsmetoden til at forfalske den tilsvarende IP-adresse på domænenavnet for at forfalske HTTP-svarets indhold.

For at implementere DNS-kapring er den nemmeste måde hosts-filen, der findes mange specifikke metoder på internettet, i dag skal vi skrive en DNS-kapringsgadget i C#

Det første skridt var, at vi skrev programmet på det tidspunkt, og formålet med programmet var at sætte programmetwww.itsvse.comParsingen peger på 127.0.0.1, jeg har bygget en 80-ports hjemmeside med IIS, for ikke at nævne dette trin, kildekoden ligger nederst.



Det andet trin er at ændre maskinens DNS-server til 127.0.0.1, som vist i figuren nedenfor:


Det tredje skridt er at starte det program, vi har skrevet, og derefter tilgår vi det via hjemmesidenwww.itsvse.com, vil du opdage, at det indhold, der returneres af hjemmesiden, ikke er indholdet fra vores rigtige hjemmeside! Indholdet på en anden webside er fuldstændig forfalsket, som vist nedenfor:



Når vi åbner Baidu, vil vi opdage, at Baidu ikke kan åbnes, fordi vi kun reagererwww.itsvse.comOpløsningen af domænenavnsanmodninger ignoreres af andre domænenavnsresolutioner, som vist i figuren nedenfor:



Hvordan håndterer vi DNS-kapring? Der er mange måder, men der findes politikker og modforanstaltninger – er spyddet stærkt, eller skjoldet stærkt?

Haha, færdig.

Kildekode-download:

Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venligSvar





Tidligere:Når XML behandler SQL-sætninger, behandler den transformationen af mindre end og større end-tegn
Næste:Forskellen mellem ShadowsocksR og Shadowsocks
Opslået på 27/12/2017 10.54.20 |
Dette indlæg blev sidst redigeret af Zmoli775 den 27-12-2017 kl. 13:52

Når vi åbner Baidu, vil vi opdage, at Baidu ikke kan åbnes, fordi vi kun reagererwww.itsvse.comOpløsningen af domænenavnsanmodninger ignoreres af andre domænenavnsresolutioner, som vist i figuren nedenfor:
Kan du kapre den udpegede URL? Resten af domænenavnet kan tilgås normalt, hvordan fungerer det!--- var for uforsigtig, jeg var ikke opmærksom...



Opslået på 12/12/2019 00.24.37 |
hvis (eventArgsQuery.Questions.Count == 1 && eventArgsQuery.Questions[0]. RecordType == RecordType.A)
                {
                    hvis (domainnew == "www.test.com") // kaprer QQ-domænenavnet
                    {
                        Response.AnswerRecords.Add(ny ARecord(eventArgsQuery.Questions[0]. Navn, 36000, IPAddress.Parse ("192.168.15.15"))); Returnerer en brugerdefineret A-post
                        Response.ReturnCode = ReturnCode.NoError;
                    }
                    ellers
                    {

                        this.richTextBox3.Text = this.richTextBox3.Text.Insert(0, DateTime.Now.ToString("yyyy MM dd HH:mm:ss.ffffff"). ToString() + "--- anmodede domæne skal videresendes til en offentlig DNS-forespørgsel" + Environment.NewLine);
                        DnsClient dnsClient = new DnsClient(IPAddress.Parse("223.5.5.5"), 5000);
                        DnsMessage dnsMessage = dnsClient.Resolve(eventArgsQuery.Questions[0]. Navn, RecordType.A);

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

                        for each (DnsRecordBase dnsRecord i dnsMessage.AnswerRecords)
                        {
                            ARecord aRecord = dnsRecord som ARecord;
                            hvis (aRecord != null)
                            {
                                Response.AnswerRecords.Add(ny ARecord(eventArgsQuery.Questions[0]. Navn, 36, aRecord.Address)); Giv ham en registrering på 127.0.0.1, som er maskinen
                                Response.ReturnCode = ReturnCode.NoError;
                            }
                            ellers
                            {
                                fortsæt;
                            }
                        }



                    }
                }
 Udlejer| Opslået på 08/12/2017 15.47.28 |
Opslået på 10/11/2017 10.45.14 |
Tak fordi du delte, godt stof
Opslået på 10/11/2017 10.49.29 |
Tak for at dele, jeg er interesseret
Opslået på 10/11/2017 11.29.38 Fra telefonen |
Nej, nej, nej, hvid, øm
Opslået på 11/11/2017 01.49.29 |
Tak fordi du delte
Opslået på 12/11/2017 14.33.21 |
Lær at lære
Opslået på 14/11/2017 16.05.10 |
RE: .net/c# 实现dns劫持源代码
Opslået på 16/11/2017 10.41.11 |
Fantastisk~~ Stor fyr
Opslået på 14/12/2017 16.26.31 |
Stor gud, fantastisk
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com