sdto


Namesdto JSON
Version 0.1.7 PyPI version JSON
download
home_pagehttps://github.com/scanfactory/sdto
SummarySubdomain takeover finder
upload_time2023-01-23 03:44:37
maintainer
docs_urlNone
authorgodpleaseno
requires_python>=3.8,<4.0
licenseMIT
keywords subdomain-takeover scanner cybersecurity security takeover
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Downloads](https://pepy.tech/badge/sdto)](https://pepy.tech/project/sdto)

# sdto - subdomain takeover finder

Subdomain takeover scanner  
Current count of fingerprints: **80**

[What is subdomain takeover?](https://labs.detectify.com/2014/10/21/hostile-subdomain-takeover-using-herokugithubdesk-more/)


## Supported Services

```
acquia
activecampaign
aftership
agilecrm
aha
airee
anima
announcekit
aws/s3
bigcartel
bitbucket
brightcove
campaignmonitor
canny
cargo
cargocollective
cloudfront
desk
fastly
feedpress
flexbe
flywheel
frontify
gemfury
getresponse
ghost
gitbook
github
hatenablog
helpjuice
helprace
helpscout
heroku
hubspot
intercom
jazzhr
jetbrains
kajabi
kinsta
launchrock
mashery
netlify
ngrok
pagewiz
pantheon
pingdom
proposify
readme
readthedocs
s3bucket
shopify
shortio
simplebooklet
smartjob
smartling
smugmug
sprintful
statuspage
strikingly
surge
surveygizmo
surveysparrow
tave
teamwork
thinkific
tictail
tilda
tumbler
uberflip
unbounce
uptimerobot
uservoice
vend
webflow
wishpond
wix
wordpress
worksites.net
wufoo
zendesk
```
## Installation:


to use as python library
```shell
pip install sdto
```

to use as a CLI tool

```shell
pip install sdto[cli]
```


**or:**
```shell
git clone https://github.com/scanfactory/sdto.git
cd sdto
poetry install
```
## Usage as a CLI tool

Examples:

```shell
python3 -m sdto -t www.domain.com
python3 -m sdto -t www.domain.com -f path/to/custom-fingerprints-file.json
python3 -m sdto -t https://www.domain.com/
python3 -m sdto -t http://www.domain.com/
python3 -m sdto -t www.domain.com --no-ssl
python3 -m sdto -t www.domain.com -v --timeout 30
python3 -m sdto -t www.domain.com -H "user-agent" "your-custom-user-agent" -H "another-header" "header-value"
python3 -m sdto -t www.domain.com -F json
python3 -m sdto -t www.domain.com -o output.txt
python3 -m sdto -t www.domain.com -F json -o output.json
python3 -m sdto -t www.domain.com -F txt -o output.txt
python3 -m sdto -t www.domain.com -p http://127.0.0.1:8080 
python3 -m sdto -l subdomains-list.txt
```

### Docker support

Build the image:

```
docker build -t sdto .
```

Run the container:

```
docker run -it --rm sdto -t www.domain.com -v
```


### Using custom fingerprints

You can specify custom fingerprints file via `-f path/to/file.json` parameter.
The expected json file format:
```json
{
  "AWS/S3": {"pattern": "The specified bucket does not exist"},
  "BitBucket": {"pattern": "Repository not found"},
  "Fastly": {"pattern": "Fastly pattern\\: unknown domain\\:", "process_200": true}
}
```
Note that `pattern` value is expected to be a python regexp.

## Usage as a python library

Example:

```python
import re

from aiohttp import ClientSession
from sdto import check_target, RegexFingerprint


async def main():
    async with ClientSession() as cs:
        fingerprint = await check_target(
            cs=cs,
            target="sub.domain.com",
            ssl=True,
            proxy=None,
            fingerprints=[
                RegexFingerprint(
                    "Github", 
                    re.compile(r"There isn\'t a Github Pages site here\."),
                    process_200=False,
                )
            ]
        )
        if not fingerprint:
            print("No match")
        else:
            print(fingerprint.name)

```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/scanfactory/sdto",
    "name": "sdto",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "subdomain-takeover,scanner,cybersecurity,security,takeover",
    "author": "godpleaseno",
    "author_email": "zfrty@protonmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1b/25/397c341129daf095f9ebbf1eb6aaee3011aaea16bf7f323d204ab27b2ec1/sdto-0.1.7.tar.gz",
    "platform": null,
    "description": "[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Downloads](https://pepy.tech/badge/sdto)](https://pepy.tech/project/sdto)\n\n# sdto - subdomain takeover finder\n\nSubdomain takeover scanner  \nCurrent count of fingerprints: **80**\n\n[What is subdomain takeover?](https://labs.detectify.com/2014/10/21/hostile-subdomain-takeover-using-herokugithubdesk-more/)\n\n\n## Supported Services\n\n```\nacquia\nactivecampaign\naftership\nagilecrm\naha\nairee\nanima\nannouncekit\naws/s3\nbigcartel\nbitbucket\nbrightcove\ncampaignmonitor\ncanny\ncargo\ncargocollective\ncloudfront\ndesk\nfastly\nfeedpress\nflexbe\nflywheel\nfrontify\ngemfury\ngetresponse\nghost\ngitbook\ngithub\nhatenablog\nhelpjuice\nhelprace\nhelpscout\nheroku\nhubspot\nintercom\njazzhr\njetbrains\nkajabi\nkinsta\nlaunchrock\nmashery\nnetlify\nngrok\npagewiz\npantheon\npingdom\nproposify\nreadme\nreadthedocs\ns3bucket\nshopify\nshortio\nsimplebooklet\nsmartjob\nsmartling\nsmugmug\nsprintful\nstatuspage\nstrikingly\nsurge\nsurveygizmo\nsurveysparrow\ntave\nteamwork\nthinkific\ntictail\ntilda\ntumbler\nuberflip\nunbounce\nuptimerobot\nuservoice\nvend\nwebflow\nwishpond\nwix\nwordpress\nworksites.net\nwufoo\nzendesk\n```\n## Installation:\n\n\nto use as python library\n```shell\npip install sdto\n```\n\nto use as a CLI tool\n\n```shell\npip install sdto[cli]\n```\n\n\n**or:**\n```shell\ngit clone https://github.com/scanfactory/sdto.git\ncd sdto\npoetry install\n```\n## Usage as a CLI tool\n\nExamples:\n\n```shell\npython3 -m sdto -t www.domain.com\npython3 -m sdto -t www.domain.com -f path/to/custom-fingerprints-file.json\npython3 -m sdto -t https://www.domain.com/\npython3 -m sdto -t http://www.domain.com/\npython3 -m sdto -t www.domain.com --no-ssl\npython3 -m sdto -t www.domain.com -v --timeout 30\npython3 -m sdto -t www.domain.com -H \"user-agent\" \"your-custom-user-agent\" -H \"another-header\" \"header-value\"\npython3 -m sdto -t www.domain.com -F json\npython3 -m sdto -t www.domain.com -o output.txt\npython3 -m sdto -t www.domain.com -F json -o output.json\npython3 -m sdto -t www.domain.com -F txt -o output.txt\npython3 -m sdto -t www.domain.com -p http://127.0.0.1:8080 \npython3 -m sdto -l subdomains-list.txt\n```\n\n### Docker support\n\nBuild the image:\n\n```\ndocker build -t sdto .\n```\n\nRun the container:\n\n```\ndocker run -it --rm sdto -t www.domain.com -v\n```\n\n\n### Using custom fingerprints\n\nYou can specify custom fingerprints file via `-f path/to/file.json` parameter.\nThe expected json file format:\n```json\n{\n  \"AWS/S3\": {\"pattern\": \"The specified bucket does not exist\"},\n  \"BitBucket\": {\"pattern\": \"Repository not found\"},\n  \"Fastly\": {\"pattern\": \"Fastly pattern\\\\: unknown domain\\\\:\", \"process_200\": true}\n}\n```\nNote that `pattern` value is expected to be a python regexp.\n\n## Usage as a python library\n\nExample:\n\n```python\nimport re\n\nfrom aiohttp import ClientSession\nfrom sdto import check_target, RegexFingerprint\n\n\nasync def main():\n    async with ClientSession() as cs:\n        fingerprint = await check_target(\n            cs=cs,\n            target=\"sub.domain.com\",\n            ssl=True,\n            proxy=None,\n            fingerprints=[\n                RegexFingerprint(\n                    \"Github\", \n                    re.compile(r\"There isn\\'t a Github Pages site here\\.\"),\n                    process_200=False,\n                )\n            ]\n        )\n        if not fingerprint:\n            print(\"No match\")\n        else:\n            print(fingerprint.name)\n\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Subdomain takeover finder",
    "version": "0.1.7",
    "split_keywords": [
        "subdomain-takeover",
        "scanner",
        "cybersecurity",
        "security",
        "takeover"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14eef8d7e6f988aebc3243547890dfb7982832643f629f2846d2dacd534f9c2c",
                "md5": "d3e6d3858eed51ae93960ee056521866",
                "sha256": "6770b763851b01604b14a9efbbb3dd2a2d634ba79a50a7637538b8622712549a"
            },
            "downloads": -1,
            "filename": "sdto-0.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d3e6d3858eed51ae93960ee056521866",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 9215,
            "upload_time": "2023-01-23T03:44:34",
            "upload_time_iso_8601": "2023-01-23T03:44:34.126866Z",
            "url": "https://files.pythonhosted.org/packages/14/ee/f8d7e6f988aebc3243547890dfb7982832643f629f2846d2dacd534f9c2c/sdto-0.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b25397c341129daf095f9ebbf1eb6aaee3011aaea16bf7f323d204ab27b2ec1",
                "md5": "ed1c155d0a0b8f24347d454b7ec6db82",
                "sha256": "ace9068ba02a57036e68e1e5aebb55935e1fc7bccb45d615586a03a90e4a865f"
            },
            "downloads": -1,
            "filename": "sdto-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "ed1c155d0a0b8f24347d454b7ec6db82",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 9608,
            "upload_time": "2023-01-23T03:44:37",
            "upload_time_iso_8601": "2023-01-23T03:44:37.383854Z",
            "url": "https://files.pythonhosted.org/packages/1b/25/397c341129daf095f9ebbf1eb6aaee3011aaea16bf7f323d204ab27b2ec1/sdto-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-23 03:44:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "scanfactory",
    "github_project": "sdto",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "sdto"
}
        
Elapsed time: 0.05021s