이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 305694|회답: 99

[콘솔 프로그램] .net/c#은 DNS 하이재킹 소스 코드를 구현합니다

  [링크 복사]
게시됨 2017. 11. 10. 오전 10:31:54 | | | |
인터넷 DNS 하이재킹이 흔해지면서 운영자들이 DNS 하이재킹을 구현하는 것이 쉬워졌습니다. DNS 하이재킹이란 무엇인가요? 바이두 백과사전은 다음과 같이 소개됩니다:

DNS 하이재킹은 도메인 이름 하이재킹이라고도 하며, 하이재킹된 네트워크 내에서 도메인 이름 해석 요청을 가로채고, 요청된 도메인 이름을 분석하며, 검토 범위를 벗어난 요청을 해제하는 것을 의미합니다. 그렇지 않으면 가짜 IP 주소를 반환하거나 요청을 무반응하게 만드는 데 아무런 조치를 취하지 않습니다.


오늘은 제가 만든 프로그램을 해독하고 싶습니다. 이 프로그램은 정상적으로 실행되려면 http 인증이 필요합니다. 그래서 프로그램을 해독하면 http 응답 내용을 위조하여 프로그램이 제가 인증된 사용자라고 인식하게 만들 수 있습니다. 가짜 HTTP 응답 방법도 많습니다. 오늘 생각해보니, DNS 하이재킹 방법을 사용해 도메인 이름의 해당 IP 주소를 위조하여 http 응답 내용을 위조할 수 있을까요?

DNS 하이재킹을 구현하려면 가장 쉬운 방법이 호스트 파일을 사용하는 것입니다. 인터넷에는 다양한 구체적인 방법이 있습니다. 오늘은 C#으로 DNS 하이재킹 장치를 작성해 보겠습니다

첫 번째 단계는 그때 프로그램을 작성했고, 프로그램의 목적은 프로그램을www.itsvse.com파싱 결과는 127.0.0.1을 가리키고, IIS로 80포트 웹사이트를 구축했으며, 이 단계는 소스 코드가 맨 아래에 있습니다.



두 번째 단계는 기계의 DNS 서버를 127.0.0.1로 수정하는 것입니다. 아래 그림에 나와 있습니다:


세 번째 단계는 우리가 작성한 프로그램을 시작하고, 웹사이트를 통해 접근하는 것입니다www.itsvse.com웹사이트에서 반환된 콘텐츠는 저희 실제 웹사이트의 내용이 아님을 알게 될 것입니다! 다른 웹페이지의 내용은 완전히 위조되었으며, 아래에 나와 있습니다:



우리가 바이두를 열면, 바이두는 우리가 반응만 하기 때문에 열리지 못할 것입니다www.itsvse.com도메인 이름 요청의 해결은 아래 그림과 같이 다른 도메인 이름 해석에 의해 무시됩니다:



DNS 하이재킹을 어떻게 해결해야 할까요? 방법은 여러 가지가 있지만, 정책과 대응책이 있습니다. 창이 강한가, 방패가 강한가요?

하하, 끝났어요.

소스 코드 다운로드:

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답





이전의:XML이 SQL 문장을 처리할 때, 작은 기호와 큰 기호의 변환을 처리합니다
다음:ShadowsocksR과 Shadowsocks의 차이점
게시됨 2017. 12. 27. 오전 10:54:20 |
이 글은 Zmoli775가 2017-12-27 13:52에 마지막으로 편집했습니다.

우리가 바이두를 열면, 바이두는 우리가 반응만 하기 때문에 열리지 못할 것입니다www.itsvse.com도메인 이름 요청의 해결은 아래 그림과 같이 다른 도메인 이름 해석에 의해 무시됩니다:
지정된 URL을 강탈할 수 있나요? 나머지 도메인 이름은 정상적으로 접근할 수 있는데, 어떻게 운영해야 하나요!--- 너무 부주의해서 신경 쓰지 않았어...



게시됨 2019. 12. 12. 오전 12:24:37 |
if (eventArgsQuery.Questions.Count) == 1 & & eventArgsQuery.Questions[0]. 레코드타입 == 레코드타입.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 = new DnsClient(IPAddress.Parse("223.5.5.5"), 5000);
                        DnsMessage dnsMessage = dnsClient.Resolve(eventArgsQuery.Questions[0]. 이름, RecordType.A);

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

                        foreach (dnsRecordBase dnsRecord, dnsMessage.AnswerRecords)
                        {
                            ARecord aRecord = DNS 레코드 as ARecord;
                            만약 (aRecord != null)
                            {
                                Response.AnswerRecords.Add(new ARecord(eventArgsQuery.Questions[0]. 이름, 36, aRecord.Address)); 그에게 127.0.0.1 레코드를 반환하세요, 이 기록이 바로 기계입니다
                                Response.ReturnCode = ReturnCode.NoError;
                            }
                            그렇지 않으면
                            {
                                계속하세요;
                            }
                        }



                    }
                }
 집주인| 게시됨 2017. 12. 8. 오후 3:47:28 |
게시됨 2017. 11. 10. 오전 10:45:14 |
공유해주셔서 감사합니다, 좋은 내용입니다
게시됨 2017. 11. 10. 오전 10:49:29 |
공유해주셔서 감사합니다, 관심 있습니다
게시됨 2017. 11. 10. 오전 11:29:38 전화에서 |
아니, 아니, 아니, 하얀, 부드러워
게시됨 2017. 11. 11. 오전 1:49:29 |
공유해 주셔서 감사합니다
게시됨 2017. 11. 12. 오후 2:33:21 |
배우기 위해 배우세요
게시됨 2017. 11. 14. 오후 4:05:10 |
RE: .net/c# 实现dns劫持源代码
게시됨 2017. 11. 16. 오전 10:41:11 |
대단해~~ 큰 녀석
게시됨 2017. 12. 14. 오후 4:26:31 |
정말 대단해요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com