Создание простого поддельного DNS-сервера с помощью Python

Вот пример скрипта Python, который создает простой поддельный DNS-сервер:

import socket
def fake_dns_server():
    # Create a UDP socket
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # Bind the socket to a specific address and port
    server_address = ('0.0.0.0', 53)  # Replace with your desired IP address and port
    server_socket.bind(server_address)
    print('Fake DNS server is running...')
    while True:
        # Receive DNS query from the client
        query, client_address = server_socket.recvfrom(4096)
        # Modify the DNS response to redirect to a different IP address
        modified_response = query.replace(b'\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00', b'\x01\x00\x00\x01\x00\x00\x00\x00\x00\x01')
        # Send the modified DNS response back to the client
        server_socket.sendto(modified_response, client_address)
        print(f'Redirected DNS query from {client_address[0]}')
if __name__ == '__main__':
    fake_dns_server()

Этот сценарий прослушивает DNS-запросы на порту 53 и перенаправляет их, изменяя ответ DNS. Вы можете настроить IP-адрес и порт в соответствии со своими потребностями.