DNS 스푸핑을 위해 kali에서 dnschef 사용

1. 소개

        DNSChef는 침투 테스터 및 맬웨어 분석가를 위해 고도로 구성 가능한 DNS 프록시입니다. 실제 응답을 수정하거나 간단히 프록시하기 위해 DNS 응답을 미세하게 구성하는 기능이 있습니다. 이 도구를 활용하려면 DNSChef를 가리키도록 DNS 서버를 수동으로 구성해야 합니다.

2. 실행 매개변수

옵션 매개변수:

-h,--help
	显示帮助信息并退出

--fakedomain thesprawl.org.google.com
	以逗号分隔的域名列表,将解析为上述参数中指定的FAKE值。 所有其他域名将解析为其真实值。

--truedomains thesprawl.org.google.com
	以逗号分隔的域名列表,这些列表将解析为TRUE值。 所有其他域名将解析为上述参数中指定的伪造值。

가짜 DNS 레코드:

--fakeip 192.0.2.1
	用于匹配DNS查询的IP地址。 如果您在不指定域名的情况下使用此参数,则所有“ A”查询都会被欺骗。 如果需要定义多个IP地址,请考虑使用–file参数。

--fakeipv6 2001:db8::1
	用于匹配DNS查询的IPv6地址。 如果您在不指定域名的情况下使用此参数,则将欺骗所有“ AAAA”查询。 如果需要定义多个IPv6地址,请考虑使用--file参数。

--fakemail mail.fake.com
	用于匹配DNS查询的MX名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ MX”查询。 如果需要定义多个MX记录,请考虑使用--file参数。

--fakealias www.fake.com
	用于匹配DNS查询的CNAME名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ CNAME”查询。 如果需要定义多个CNAME记录,请考虑使用--file参数。

--fakens ns.fake.com
	用于匹配DNS查询的NS名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ NS”查询。 如果需要定义多个NS记录,请考虑使用--file参数。

--file FILE
	指定一个文件,该文件包含用于DNS响应的DOMAIN = IP对(每行一对)的列表。 例如:google.com = 1.1.1.1将强制所有对“ google.com”的查询都解析为“ 1.1.1.1”。 IPv6地址将被自动检测。 通过将--file与其他参数组合,您甚至可以更加具体。 但是,从文件获取的数据将优先于其他数据。

선택적 런타임 인수:

--logfile FILE
	指定一个日志文件以记录所有活动

--nameservers 8.8.8.8#53 or 4.2.2.1#53#tcp or 2001:4860:4860::8888
	用逗号分隔的替代DNS服务器列表,用于处理代理请求。 名称服务器可以采用P或IP#PORT格式。 提供多个服务器时,将从列表中随机选择的服务器用于代理请求。 默认情况下,该工具在Pv4模式下运行时使用oogle的公共DNS服务器8.8.8.8,在Pv6模式下运行时使用2001:4860:4860 :: 8888。

-i 27.0.0.1 or ::1,--interface 127.0.0.1 or ::1
	定义用于DNS侦听器的接口。 默认情况下,该工具将127.0.0.1用于IPv4模式和:: 1或IPv6模式。

-t,--tcp
	使用TCP DNS代理而不是默认的UDP。

-6,ipv6
	在IPv6模式下运行。

-p 53,--port 53
	侦听DNS请求的端口号。

-q,--quiet
	不显示标题。

3. 실제 테스트 사용

3.1 네트워크 연결

랩탑은 교통 카드에서 제공하는 Wi-Fi에 무선으로 연결됩니다.

노트북의 가상 상자에 있는 kali가 시작되고 네트워크가 브리지 모드를 선택합니다.

노트북의 핫스팟이 켜져 있습니다.

모바일 Android 장치는 노트북 핫스팟에 무선으로 연결됩니다.

3.2 네트워크 구성

3.2.1 노트북의 네트워크 정보 확인

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::8158:d09:dfd0:cbe5%10
   IPv4 地址 . . . . . . . . . . . . : 192.168.43.168
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.43.1

        kali가 시작된 후 네트워크 구성에서 사용해야 합니다. Kali의 네트워크 구성은 다음 블로그에 자세히 설명되어 있습니다.

Kali linux 설치 완료까지 5분 (VirtualBox 기반)_virtualbox 설치 kali_Xiaoxiangzi's Blog-CSDN Blog

3.2.2 kali의 네트워크 정보를 확인하고 kali의 ip가 192.168.43.209인지 확인

┌──(root㉿kali)-[/home/kali]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.209  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::a00:27ff:fe22:464f  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:22:46:4f  txqueuelen 1000  (Ethernet)
        RX packets 53891  bytes 67773851 (64.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19008  bytes 1363876 (1.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 4  bytes 240 (240.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 240 (240.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.2.3 컴퓨터의 DNS 주소를 kali 주소로 설정

3.3 DNSChef 시작, 구성 규칙, 테스트

        DNSChef가 kali에 있는지 확인

┌──(root㉿kali)-[/home/kali]
└─# dnschef                                                       
          _                _          __  
         | | version 0.4  | |        / _| 
       __| |_ __  ___  ___| |__   ___| |_ 
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |  
      \__,_|_| |_|___/\___|_| |_|\___|_|  
                   [email protected]  

(21:09:00) [*] DNSChef started on interface: 127.0.0.1
(21:09:00) [*] Using the following nameservers: 8.8.8.8
(21:09:00) [*] No parameters were specified. Running in full proxy mode
^C(21:10:01) [*] DNSChef is shutting down.

        테스트를 위해 난징에 있는 유명한 두 대학의 URL을 사용했습니다. 다음과 같이 브라우저가 학교 웹사이트에 로그인할 때 와이어쉐크 캡처(DNS 응답)를 통해 두 학교의 IP를 얻습니다.

        난징 대학: www.nju.edu.cn 202.119.32.7

        난징 항공 우주 대학교: www.nuaa.edu.cn 218.94.136.180

        Nanjing University의 url을 Nanjing University of Aeronautics and Astronautics의 ip와 일치시켜 DNS 서버에 씁니다.

--interface 뒤의 ip는 kali의 ip를 채웁니다. 

dnschef --fakeip=218.94.136.180 --fakedomains=www.nju.edu.cn --interface 192.168.43.209 -q

        휴대폰 Android 장치의 브라우저를 사용하여 테스트를 위해 두 대학의 URL을 입력해 보십시오.

        다음 형식이 인쇄되는 것이 관찰되어 DNS 설정이 성공했음을 나타내며 DNSChef는 분석을 위해 처리한 도메인 이름을 인쇄합니다.

 ***의 응답을 프록싱하면 표준 DNS 프록시가 사용됨을 나타내며 기본값은 8.8.8.8이며 물론 구성 가능합니다.

*****의 응답을 요리하는 것은 우리가 구성한 스푸핑 규칙임을 나타내며 우리의 DNS가 Nanjing University of Aeronautics의 ip로 Nanjing University의 url(www.nju.edu.cn)에 응답한 것을 볼 수 있습니다. 및 우주 비행 (218.94.136.180)

        현상: 난징항공우주대학 웹사이트를 정상적으로 열 수 있습니다. 그러나 난징대학교 홈페이지는 열리지 않았다.

        Nanjing University의 URL을 입력할 때 Nanjing University of Aeronautics and Astronautics의 URL이 표시되지 않는 이유는 브라우저에서 사용하는 일부 보안 정책과 관련이 있을 수 있습니다. 아직 명확하지 않습니다.

        여기에 추가해야 할 것은 설정해야 할 규칙이 많으면 어떻게 하느냐는 것입니다.

        다음 명령을 사용할 수 있습니다.

dnschef --file dnsfile --interface 0.0.0.0 -q

        dnsfile은 파일 이름이며 파일의 구조는 다음과 같습니다.

[A]
name1 = ip1
name2 = ip2

IP가 0.0.0.0으로 설정되어 있는지 의심이 든다면 이 블로그가 답입니다.

IP 주소 0.0.0.0은 무엇을 의미합니까? _mtAsnow의 블로그 - CSDN 블로그

4. 마지막으로

이 기사에서는 kali와 함께 제공되는 DNSChef 도구를 사용하여 DNS 스푸핑을 수행하며 이 도구는 성공적으로 적용되었습니다.

참고

최신 kali의 dnschef_dnschef 도구가 응답하지 않음 - Vanony의 블로그 - CSDN 블로그

추천

출처blog.csdn.net/qq_33163046/article/details/131073971