{ "info": { "author": "Luke Paris (Paradoxis)", "author_email": "luke@paradoxis.nl", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "# Git-Fingerprint\nGit Fingerprint is a web fingerprinting tool that attempts to scan a target based on the files a git repository by enumerating over all files ever found in the public web root and comparing cryptographic hashes of each commit, branch or tag in order to calculate the best possible match.\n\n## Requirements\n* Python 3.6+\n* A good CPU\n\n## Installation\nFor local installation:\n```\n$ pip install git-fingerprint\n```\n\nFor development installation:\n\n```\n$ pip install .\n```\n\n## Usage\n\n```\n$ git-fingerprint --help\nusage: Git Fingerprint - A git-based web fingerprinting tool\n [-h] [-u URL] [-w WEBROOT] [-m MODE] [-r REPO] [-a ALGORITHM]\n [-t THREADS] [-T LOCAL_THREADS] [-f FORMAT] [-l LIMIT] [-c CACHE] [-s]\n [-i] [-d]\n\nGit Fingerprint is a web fingerprinting tool that attempts to scan a target\nbased on the files a git repository by enumerating over all files ever found\nin the public web root and comparing cryptographic hashes of each commit,\nbranch or tag in order to calculate the best possible match.\n\noptional arguments:\n -h, --help\n show this help message and exit\n\n -u URL, --url URL\n Specifies the base url of a remote host to scan. If not set, the script\n will only generate a local file hashing cache.\n\n -w WEBROOT, --webroot WEBROOT\n Pointer to the public web root that should be scanned (eg:\n /usr/local/www/). Defaults to the root of the git repository.\n\n -m MODE, --mode MODE\n Fingerprinting mode, specifies how verbose the scanning should be. Note\n that scanning with 'commit' mode will have to hash each file of each\n commit and might take a long time, using the cache is recommended when\n this mode is selected. Value must be one of: b[ranch], t[ag], c[ommit].\n Default: 'branch'.\n\n -r REPO, --repo REPO\n Path to the git directory to scan, defaults to the current directory.\n\n -a ALGORITHM, --algorithm ALGORITHM\n Hashing algorithm that should be used to calculate the local file\n hashes. While using hashing algorithm such as 'md5' would make the scan\n faster, the accuracy of the scan will be decreased. Defaults to:\n 'sha256'. Accepted algorithms: sha3_256, shake_128, shake_256, blake2s,\n md5, sha224, sha3_224, sha3_512, sha384, blake2b, sha512, sha1,\n sha3_384, sha256.\n\n -t THREADS, --threads THREADS\n Number of threads used to fingerprint the remote server. Using a high\n number of threads is discourage as to avoid detection or rate limit\n issues. Default: 10\n\n -T LOCAL_THREADS, --local-threads LOCAL_THREADS\n Number of local threads to use to hash the local files per commit.\n Default: 5\n\n -f FORMAT, --format FORMAT\n Output format of the scan result. If not set, the default ASCII table\n will be printed instead. If enabled, all other logging will be\n redirected to stderr. Accepts: p[lain], j[son], x[ml]\n\n -l LIMIT, --limit LIMIT\n Number of matching entries to show. If set to 'none', all possible\n entries will be shown. Default: 10\n\n -c CACHE, --cache CACHE\n Specifies the file which should be used for loading/saving the local\n cache. Default: .git-fingerprint.json\n\n -s, --stfu, --silent\n Enable silent mode and only display the output of the script.\n\n -i, --insecure\n Disables SSL certificate checking, default: certificate checking\n enabled.\n\n -d, --debug\n Enable debug logging, default: disabled\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/Paradoxis/Git-Fingerprint", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "git-fingerprint", "package_url": "https://pypi.org/project/git-fingerprint/", "platform": "", "project_url": "https://pypi.org/project/git-fingerprint/", "project_urls": { "Homepage": "https://github.com/Paradoxis/Git-Fingerprint" }, "release_url": "https://pypi.org/project/git-fingerprint/0.0.3/", "requires_dist": [ "GitPython (==2.1.8)", "requests (==2.18.4)", "tabulate (==0.8.2)", "axel (==0.0.7)", "progressbar2 (==3.34.3)", "dicttoxml (==1.7.4)" ], "requires_python": ">=3.6.0", "summary": "Git Fingerprint is a web fingerprinting tool that attempts to scan a target based on the files a git repository by enumerating over all files ever found in the public web root and comparing cryptographic hashes of each commit, branch or tag in order to calculate the best possible match.", "version": "0.0.3" }, "last_serial": 4269550, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8017c3bfa170698f0f8d205385624833", "sha256": "5457a1abe4a2ba0479e7af5eaa3b5692367191146f3f9c1a816388a1fc244825" }, "downloads": -1, "filename": "git_fingerprint-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8017c3bfa170698f0f8d205385624833", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 8426, "upload_time": "2018-05-21T11:02:03", "url": "https://files.pythonhosted.org/packages/b3/eb/11a9c4147ca0e8645112b0b3cbe17d97129275d592bb200b588158b02cb8/git_fingerprint-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6489574f3c582363f841b153dbb42eba", "sha256": "8971869435967f497ba4e5abf2bd6bc837ced9b352b8d7ef3ede583b440c9aa9" }, "downloads": -1, "filename": "git-fingerprint-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6489574f3c582363f841b153dbb42eba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 8679, "upload_time": "2018-05-21T11:02:04", "url": "https://files.pythonhosted.org/packages/8c/b3/a985d7b96e56aabc43dc0ff0bec2d7bf08928e68ff80b756c11f3e609f43/git-fingerprint-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e64caa78674e1c8b6c94f06feba8a4f7", "sha256": "8caf2cbdcaf63f3f855d82c2109be2c7e31417a633e9b4fe7694b47ede73560a" }, "downloads": -1, "filename": "git_fingerprint-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e64caa78674e1c8b6c94f06feba8a4f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 11563, "upload_time": "2018-05-21T11:16:02", "url": "https://files.pythonhosted.org/packages/90/c1/bfd80ac5cb520b6aedd338eb96a29cc2a0d18ff96fc3061145169525f259/git_fingerprint-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcd7e02d20c5d4238532e4366d9e52c5", "sha256": "e22acdf1c67b50576d4825da17cbfd4a6a409c4851adb38d1b793fb9ecbe1cca" }, "downloads": -1, "filename": "git-fingerprint-0.0.2.tar.gz", "has_sig": false, "md5_digest": "fcd7e02d20c5d4238532e4366d9e52c5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 10334, "upload_time": "2018-05-21T11:16:03", "url": "https://files.pythonhosted.org/packages/22/2e/aa2b11eda46387e07bd1d083d06b75b007de07bcf88e66afa062d1d16ee6/git-fingerprint-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "d57f3b4a6ef9c347429c4cfb6e277ba6", "sha256": "b28363447d4eb3292beed744a4e980b7164c03c505bc130c939dda024bc9b3f4" }, "downloads": -1, "filename": "git_fingerprint-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d57f3b4a6ef9c347429c4cfb6e277ba6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 11806, "upload_time": "2018-09-13T17:58:14", "url": "https://files.pythonhosted.org/packages/7e/1f/cb33c6f27dc196606f50abad1907b826e9ef40f5ac63ad81584b239bbbee/git_fingerprint-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ed3d2c0a0508871223a6865bead0e74", "sha256": "01e43b1cf20340f2190af703d71951526f4c580e496ddca345e961bd84ed5049" }, "downloads": -1, "filename": "git-fingerprint-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0ed3d2c0a0508871223a6865bead0e74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 11366, "upload_time": "2018-09-13T17:58:16", "url": "https://files.pythonhosted.org/packages/db/35/37c8ad37dd27d47919f24cdb8132530002e2c58ae493e7880e3894ffd6d6/git-fingerprint-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d57f3b4a6ef9c347429c4cfb6e277ba6", "sha256": "b28363447d4eb3292beed744a4e980b7164c03c505bc130c939dda024bc9b3f4" }, "downloads": -1, "filename": "git_fingerprint-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d57f3b4a6ef9c347429c4cfb6e277ba6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 11806, "upload_time": "2018-09-13T17:58:14", "url": "https://files.pythonhosted.org/packages/7e/1f/cb33c6f27dc196606f50abad1907b826e9ef40f5ac63ad81584b239bbbee/git_fingerprint-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ed3d2c0a0508871223a6865bead0e74", "sha256": "01e43b1cf20340f2190af703d71951526f4c580e496ddca345e961bd84ed5049" }, "downloads": -1, "filename": "git-fingerprint-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0ed3d2c0a0508871223a6865bead0e74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 11366, "upload_time": "2018-09-13T17:58:16", "url": "https://files.pythonhosted.org/packages/db/35/37c8ad37dd27d47919f24cdb8132530002e2c58ae493e7880e3894ffd6d6/git-fingerprint-0.0.3.tar.gz" } ] }