Akari is a robust and versatile DNS enumeration tool, it provides a comprehensive set of features to perform detailed DNS lookups, making it an invaluable tool for both reconnaissance and troubleshooting.
- Comprehensive DNS Lookups: Supports a wide range of DNS record types including A, AAAA, CNAME, MX, NS, SOA, TXT, CAA, PTR, SRV, NAPTR, DS, DNSKEY, TLSA, and LOC.
- Multi-Domain Support: Easily configure and perform lookups on multiple domains simultaneously using a configuration file.
- Configurable Timeouts: Set custom timeouts for DNS queries to ensure timely responses even in slow network conditions.
- Automatic Retries: Built-in retry mechanism for handling transient errors, ensuring reliable and consistent results.
- Flexible Output Formats: Save results in plain text, JSON, or CSV formats for easy integration with other tools and workflows.
- IP Geolocation Data (Optional): Retrieve and display geolocation information for IP addresses found in DNS A records using the IPinfo API (to obtain the API token, users need to sign up here). The information includes city, region, country, organization, postal code, timezone, and location coordinates.
- Customizable Nameservers: Optionally specify custom nameservers for DNS resolution to use different DNS servers than the system defaults, allowing for more control over the DNS lookup process.
-
Clone the repository
git clone https://github.com/Kuraiyume/Akari
-
Install the specified requirements for Akari
pip3 install -r requirements.txt
-
Run the tool in help mode to show all the parameters
python3 akari.py -h
-d, --domain: The target domain to lookup. (Required if no config file is provided)
-t, --types: The DNS record types to lookup. Default is a comprehensive set of common types.
-to, --timeout: Timeout for DNS queries in seconds. Default is 5 seconds.
-c, --config: Path to configuration file.
-o, --output: Output file to save the results.
-f, --format: Output format for the results. Choices are txt, json, csv. Default is txt.
-n, --nameserver: Custom nameserver for DNS resolution.
--ipinfo-token: IPinfo API token for IP geolocation.
- Perform DNS lookups for a single domain with default settings:
python3 akari.py -d example.com- Specify custom DNS record types to lookup:
python3 akari.py -d example.com -t A MX TXT- Use a configuration file to specify domains, record types, and timeout:
python3 akari.py -c config.ini- Save the results to a JSON file for further analysis:
python3 akari.py -d example.com -o results.json -f json- Specify a custom name server for DNS resolution:
python3 akari.py -d example.com -n 8.8.8.8- Use ipinfo token for IP Geolocation (If the token is not provided it will skip the geolocation process):
python3 akari.py -d example.com --ipinfo-token <your_ip_info_token>The configuration file should be in INI format with the following structure:
[settings]
domains = example.com,example.org
record_types = A,MX,TXT
timeout = 5.0
nameserver = 8.8.8.8 (optional)
ipinfo_token = <your_ip_info_token> (optional)- Akari is licensed under the GNU General Public License.