Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 305694|Svare: 99

[Konsollprogram] .net/c# implementerer DNS-kapring av kildekode

  [Kopier lenke]
Publisert på 10.11.2017 10:31:54 | | | |
Nå som internett-DNS-kapring er vanlig, er det enkelt for operatører å implementere DNS-kapring, hva er DNS-kapring? Baidu-leksikonet introduseres som følger:

DNS-kapring, også kjent som domenenavnkapring, refererer til å avskjære forespørsler om domenenavnløsning innenfor det kaprede nettverket, analysere de forespurte domenenavnene, og frigi forespørsler utenfor vurderingsområdet, ellers returnere en falsk IP-adresse eller ikke gjøre noe for å gjøre forespørselen uresponsiv.


I dag vil jeg knekke programmet jeg har skrevet, programmet trenger http-autentisering for å kjøre normalt, så knekk programmet, du kan forfalske HTTP-svarinnholdet for å få programmet til å tro at jeg er en autentisert bruker, falsk HTTP-respons, det finnes mange metoder, i dag tenkte jeg på det, kan du bruke DNS-kapringsmetoden for å forfalske den tilsvarende IP-adressen til domenenavnet, slik at du kan forfalske innholdet i HTTP-svaret.

For å implementere DNS-kapring er den enkleste måten hosts-filen, det finnes mange spesifikke metoder på Internett, i dag la oss skrive en DNS-kapringsenhet i C#

Det første steget var at vi skrev programmet på det tidspunktet, og formålet med programmet var å sette programmetwww.itsvse.comParsingen peker på 127.0.0.1, jeg har laget en 80-ports nettside med IIS, for ikke å nevne dette steget, kildekoden er nederst.



Det andre steget er å endre DNS-serveren til maskinen til 127.0.0.1, som vist i figuren nedenfor:


Det tredje steget er å starte programmet vi har skrevet, og deretter får vi tilgang til det via nettsidenwww.itsvse.com, vil du oppdage at innholdet som returneres fra nettstedet ikke er innholdet fra vårt ekte nettsted! Innholdet på en annen nettside er fullstendig forfalsket, som vist nedenfor:



Når vi åpner Baidu, vil vi oppdage at Baidu ikke kan åpnes fordi vi bare svarerwww.itsvse.comLøsningen av domenenavnforespørsler ignoreres av andre domenenavnsløsninger, som vist i figuren nedenfor:



Hvordan håndterer vi DNS-kapring? Det finnes mange måter, men det finnes politikk og mottiltak, er spydet sterkt eller skjoldet kraftig?

Haha, ferdig.

Nedlasting av kildekode:

Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snillSvare





Foregående:Når XML behandler SQL-setninger, behandler den transformasjonen av mindre enn- og større enn-tegn
Neste:Forskjellen mellom ShadowsocksR og Shadowsocks
Publisert på 27.12.2017 10:54:20 |
Dette innlegget ble sist redigert av Zmoli775 den 27.12.2017 kl. 13:52

Når vi åpner Baidu, vil vi oppdage at Baidu ikke kan åpnes fordi vi bare svarerwww.itsvse.comLøsningen av domenenavnforespørsler ignoreres av andre domenenavnsløsninger, som vist i figuren nedenfor:
Kan du kapre den angitte URL-en? Resten av domenenavnet kan aksesseres normalt, hvordan fungerer dette!--- var for uforsiktig, jeg fulgte ikke med...



Publisert 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-domenenavnet
                    {
                        Response.AnswerRecords.Add (ny ARecord(eventArgsQuery.Questions[0]. Navn, 36000, IPAddress.Parse ("192.168.15.15"))); Returnerer en egendefinert 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() + "--- forespurte domenet må videresendes til en offentlig DNS-spørring" + Environment.NewLine);
                        DnsClient dnsClient = ny 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)); Returner ham en rekord på 127.0.0.1, som er maskinen
                                Response.ReturnCode = ReturnCode.NoError;
                            }
                            ellers
                            {
                                fortsett;
                            }
                        }



                    }
                }
 Vert| Publisert på 08.12.2017 15:47:28 |
Publisert på 10.11.2017 10:45:14 |
Takk for at du delte, bra ting
Publisert på 10.11.2017 10:49:29 |
Takk for at du delte, interessert
Publisert på 10.11.2017 11:29:38 Fra telefonen |
Nei, nei, nei, hvit, øm
Publisert på 11.11.2017 01:49:29 |
Takk for at du delte
Publisert på 12.11.2017 14:33:21 |
Lær å lære
Publisert på 14.11.2017 16:05:10 |
RE: .net/c# 实现dns劫持源代码
Publisert på 16.11.2017 10:41:11 |
Fantastisk~~ Stor fyr
Publisert på 14.12.2017 16:26:31 |
Stor gud, fantastisk
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com