{ "info": { "author": "Shubham Shah", "author_email": "sshah@assetnote.io", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Topic :: Security" ], "description": "# Altdns - Subdomain discovery through alterations and permutations\n\nAltdns is a DNS recon tool that allows for the discovery of subdomains that conform to patterns. Altdns takes in words that could be present in subdomains under a domain (such as test, dev, staging) as well as takes in a list of subdomains that you know of.\n\nFrom these two lists that are provided as input to altdns, the tool then generates a _massive_ output of \"altered\" or \"mutated\" potential subdomains that could be present. It saves this output so that it can then be used by your favourite DNS bruteforcing tool.\n\nAlternatively, the `-r` flag can be passed to altdns so that once this output is generated, the tool can then resolve these subdomains (multi-threaded) and save the results to a file.\n\nAltdns works best with large datasets. Having an initial dataset of 200 or more subdomains should churn out some valid subdomains via the alterations generated.\n\n# Installation\n\n`pip install -r requirements.txt`\n\n# Usage\n\n`# ./altdns.py -i subdomains.txt -o data_output -w words.txt -r -s results_output.txt`\n\n- `subdomains.txt` contains the known subdomains for an organization\n- `data_output` is a file that will contain the _massive_ list of altered and permuted subdomains\n- `words.txt` is your list of words that you'd like to permute your current subdomains with (i.e. `admin`, `staging`, `dev`, `qa`) - one word per line\n- the `-r` command resolves each generated, permuted subdomain\n- the `-s` command tells altdns where to save the results of the resolved permuted subdomains. `results_output.txt` will contain the final list of permuted subdomains found that are valid and have a DNS record.\n- the `-t` command limits how many threads the resolver will use simultaneously\n- `-d 1.2.3.4` overrides the system default DNS resolver and will use the specified IP address as the resolving server. Setting this to the authoritative DNS server of the target domain *may* increase resolution performance \n\n# Screenshots\n\n\n\n\n\n# Show some love\n\nIf this tool was useful at all to you during DNS recon stages - we'd love to know. Any suggestions or ideas for this tool are welcome - just tweet [@infosec_au](https://twitter.com/infosec_au) or [@nnwakelam](https://twitter.com/nnwakelam) and we'll work on it.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/infosec-au/altdns", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "py-altdns", "package_url": "https://pypi.org/project/py-altdns/", "platform": "", "project_url": "https://pypi.org/project/py-altdns/", "project_urls": { "Homepage": "https://github.com/infosec-au/altdns" }, "release_url": "https://pypi.org/project/py-altdns/1.0.0/", "requires_dist": [ "tldextract", "argparse", "termcolor", "dnspython" ], "requires_python": "", "summary": "Generates permutations, alterations and mutations of subdomains and then resolves them.", "version": "1.0.0" }, "last_serial": 5305798, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "228aba7f33a74b9c96e77d67ed6d7756", "sha256": "2c601e99a41c5d878f0e9475ca87da81e167b89f88189f3f7592f22b9002ff2f" }, "downloads": -1, "filename": "py_altdns-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "228aba7f33a74b9c96e77d67ed6d7756", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9594, "upload_time": "2019-05-23T04:47:49", "url": "https://files.pythonhosted.org/packages/a6/a5/601f58ddbaf1e0aeb1556321404a3764171d0a4d5879264462150d447f71/py_altdns-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d210ec958260d4b06bf220c10306cc1d", "sha256": "3d5db1ea954e35e90a8333e23ae5166a3ccde463c430e77f4ca0a14d54ef917a" }, "downloads": -1, "filename": "py-altdns-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d210ec958260d4b06bf220c10306cc1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5162, "upload_time": "2019-05-23T04:47:51", "url": "https://files.pythonhosted.org/packages/33/c0/b35eac15b1d1fdcf22b89ac3871aa780dee86c26be23ab4b18f815d4ef49/py-altdns-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "228aba7f33a74b9c96e77d67ed6d7756", "sha256": "2c601e99a41c5d878f0e9475ca87da81e167b89f88189f3f7592f22b9002ff2f" }, "downloads": -1, "filename": "py_altdns-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "228aba7f33a74b9c96e77d67ed6d7756", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9594, "upload_time": "2019-05-23T04:47:49", "url": "https://files.pythonhosted.org/packages/a6/a5/601f58ddbaf1e0aeb1556321404a3764171d0a4d5879264462150d447f71/py_altdns-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d210ec958260d4b06bf220c10306cc1d", "sha256": "3d5db1ea954e35e90a8333e23ae5166a3ccde463c430e77f4ca0a14d54ef917a" }, "downloads": -1, "filename": "py-altdns-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d210ec958260d4b06bf220c10306cc1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5162, "upload_time": "2019-05-23T04:47:51", "url": "https://files.pythonhosted.org/packages/33/c0/b35eac15b1d1fdcf22b89ac3871aa780dee86c26be23ab4b18f815d4ef49/py-altdns-1.0.0.tar.gz" } ] }