{ "info": { "author": "Jimmy Le (JLDevOps)", "author_email": "jldevops@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Authr\n\nA visualization python package that can extract information from any server log (i.e. HTTP server/Django/Auth/etc), reverse-search the data, and visualize the origination of the authentication attempts. \n\nThe following information are extracted from the logs:\n1. IP Address\n2. Port Number\n3. Username\n4. Server Message\n\nOnce the information is extracted, each IP from the authentication attempt is checked with Shodan to get it's location data. An HTML page is created with a map and pins (associated to each IP).\n\nHere is a sample of the data on a heat map: \n***\n![Heat Map](https://raw.githubusercontent.com/JLDevOps/Authr/master/Documentation/Images/heatmap-authr.png)\n\nHere an example of a map with markers for each data point: \n***\n![Marker Map](https://raw.githubusercontent.com/JLDevOps/Authr/master/Documentation/Images/marker-map.png)\n\n** This may also be able to work with servers that are using fail2ban.\n\n## Available Functions\nThe following functionality are currently available from Authr:\n1. Create a CSV from server logs\n2. Create an html heat map from the server logs \n3. Create an html scatter map from the server log data\n4. Create an html map with markers from the server log data\n5. Create an html map with a polygon plot (connecting lines to each point) from the server log data\n\n## Getting Started\n\nThese instructions will get you up and running with authr on your local machine. You will be able to scrape your own server logs.\n\n### Prerequisites\n\n#### Shodan\n\nThis tool heavily relies on [Shodan](https://shodan.io/) (search engine for Internet-connected devices) to find the location of an IP address.\n\nGo [here](https://account.shodan.io/login) to sign up for an account and get an developer API key.\n\n### Installations\n\nThe following steps go through installing Python dependencies and setting up the environment for the tool.\n\n1. Install Authr\n ```\n $ pip install Authr\n ```\n\n### Usage\n\n#### Sample Code - Heat Map & CSV\nBelow is a code sample on how to generate a heat map and csv from your server log:\n\n1. Place the following in a python file\n ```bash\n import authr, argparse, os\n\n def main():\n parser = argparse.ArgumentParser(description='Scrape Logs and Inserted into the DB')\n parser.add_argument('-a', '--auth', help='Server Log', required=True)\n parser.add_argument('-k', '--key', help='Shodan Key', required=True)\n\n args = vars(parser.parse_args())\n log_file_path = args['auth']\n shodan_api_key = args['key']\n\n full_path = os.path.dirname(os.path.abspath(__file__))\n full_log_file_path = full_path + log_file_path\n authr.set_shodan_api_environment(shodan_api_key)\n\n marker_list = authr(full_log_file_path).parse_auth_log(full_log_file_path)\n authr.create_authr_map_with_heatmap_plots(marker_list, \"example_map.html\")\n authr.create_authr_csv(marker_list, \"example-csv.csv\")\n\n if __name__ == \"__main__\":``\n main()\n ```\n2. Run the following command\n ```bash\n $ python test.py -a {__path_to_server_log_file__} -k {__Shodan_API_Key__}\n ```\n\n## Built With\n\n* Python 3.6\n* [Shodan](https://shodan.io/) - Search engine API for Internet-connected devices.\n* [GMPLOT](https://github.com/vgm64/gmplot) - Used to generate maps with pins for the location of authentications.\n\n## Authors\n\n* **Jimmy Le** - [Jldevops](https://github.com/jldevops)\n\n## License\n\nLicensed under the [MIT License](LICENSE)\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/JLDevOps/Authr", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "authr", "package_url": "https://pypi.org/project/authr/", "platform": "", "project_url": "https://pypi.org/project/authr/", "project_urls": { "Homepage": "https://github.com/JLDevOps/Authr" }, "release_url": "https://pypi.org/project/authr/1.3.3/", "requires_dist": null, "requires_python": "", "summary": "A visualization python package that can extract information from any server log (i.e. HTTP server/Django/Auth/etc), reverse-search the data, and visualize the origination of the authentication attempts.", "version": "1.3.3" }, "last_serial": 4157301, "releases": { "1.2.0": [ { "comment_text": "", "digests": { "md5": "53ca77916732d0ce5b7cb828fe7352cc", "sha256": "916cf98118e40b368cd1a90392c0f256425509a73b85ca0b97e7cce391242639" }, "downloads": -1, "filename": "authr-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "53ca77916732d0ce5b7cb828fe7352cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8203, "upload_time": "2018-07-27T03:53:11", "url": "https://files.pythonhosted.org/packages/63/a8/a3eb8347ba12817f348d21352a8f3ee911efc35c3d30dea6f8a25feed42a/authr-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53accaf55140d1857c7a4eb755c9d512", "sha256": "16ba22911f90d1dbee808cc7e6d9e3700f75bc7ddca9fd9d037e77df80018ed6" }, "downloads": -1, "filename": "authr-1.2.0.tar.gz", "has_sig": false, "md5_digest": "53accaf55140d1857c7a4eb755c9d512", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7154, "upload_time": "2018-07-27T03:53:12", "url": "https://files.pythonhosted.org/packages/e2/ef/b94e88badc90dec0ca65b38a0890bbf22c6e0c54e9fe8610581e1a02ae0c/authr-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "dceae49b6671d42c4d0c95ab860971e0", "sha256": "0c733154bbb0bb8a9e334ff029544f9867932edfaf0b574ef1fc5f4b19ceaf02" }, "downloads": -1, "filename": "authr-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dceae49b6671d42c4d0c95ab860971e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7752, "upload_time": "2018-07-27T15:39:59", "url": "https://files.pythonhosted.org/packages/4e/66/e987ee67b0a0781733d8bffcebbd9bf1db8794ffafee577205930be9a4b1/authr-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e34c5a8f3b46e303686f5a008033f63", "sha256": "d5c20e5500e5dccce7b4edb561e7c490bb81b82a98d8798a32f2c6ce8049faf3" }, "downloads": -1, "filename": "authr-1.3.0.tar.gz", "has_sig": false, "md5_digest": "0e34c5a8f3b46e303686f5a008033f63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6536, "upload_time": "2018-07-27T15:40:00", "url": "https://files.pythonhosted.org/packages/ad/51/a86ac65ffe5cb1dc112ccbc8543ed070d2b35d2d6bd4479179363a20872a/authr-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "822dc2bae3cf063b68e2ced25949e82d", "sha256": "58aa0283c9a676aaa86d3d45d75b9159a9706d4d4b659ce385186f5deb6fb6d1" }, "downloads": -1, "filename": "authr-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "822dc2bae3cf063b68e2ced25949e82d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8125, "upload_time": "2018-07-30T02:24:59", "url": "https://files.pythonhosted.org/packages/2c/e9/6fc7d9b629b37496f2370b7821084117a8359b1b5a5b88dcd0900ba6783c/authr-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "177f2d377bafc359b3283cfe2c43db71", "sha256": "1ffd20f9f9e856c3a18346a076846133f6c7e6412406043c57dbe5044ae9aeca" }, "downloads": -1, "filename": "authr-1.3.1.tar.gz", "has_sig": false, "md5_digest": "177f2d377bafc359b3283cfe2c43db71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6692, "upload_time": "2018-07-30T02:25:00", "url": "https://files.pythonhosted.org/packages/ff/4e/fbafa135c2bc2e26c63e0190ad4eafbef1d9222b9e5e1c79a71f31eec211/authr-1.3.1.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "6b157b86ad74fe0aa541f933eaddcae2", "sha256": "be14232ac23568ece5ad4be2d698b8f35db60d2806790920f0b06380e041a455" }, "downloads": -1, "filename": "authr-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6b157b86ad74fe0aa541f933eaddcae2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8098, "upload_time": "2018-08-10T14:51:24", "url": "https://files.pythonhosted.org/packages/50/93/c8282a0a7b5636da40ed8967650b559947547519762e4573d103d041b7c7/authr-1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f854aceb53b658969d4a8d65aecf785", "sha256": "b3560e6f57b82be52d59318be320e127ce1d0a7168c44c4f0fc88cbf2f5153b9" }, "downloads": -1, "filename": "authr-1.3.3.tar.gz", "has_sig": false, "md5_digest": "8f854aceb53b658969d4a8d65aecf785", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6650, "upload_time": "2018-08-10T14:51:25", "url": "https://files.pythonhosted.org/packages/77/51/46e186033dd86f1e6636da651bc92906980c5d9ec0016b8f5d25495e871f/authr-1.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b157b86ad74fe0aa541f933eaddcae2", "sha256": "be14232ac23568ece5ad4be2d698b8f35db60d2806790920f0b06380e041a455" }, "downloads": -1, "filename": "authr-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6b157b86ad74fe0aa541f933eaddcae2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8098, "upload_time": "2018-08-10T14:51:24", "url": "https://files.pythonhosted.org/packages/50/93/c8282a0a7b5636da40ed8967650b559947547519762e4573d103d041b7c7/authr-1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f854aceb53b658969d4a8d65aecf785", "sha256": "b3560e6f57b82be52d59318be320e127ce1d0a7168c44c4f0fc88cbf2f5153b9" }, "downloads": -1, "filename": "authr-1.3.3.tar.gz", "has_sig": false, "md5_digest": "8f854aceb53b658969d4a8d65aecf785", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6650, "upload_time": "2018-08-10T14:51:25", "url": "https://files.pythonhosted.org/packages/77/51/46e186033dd86f1e6636da651bc92906980c5d9ec0016b8f5d25495e871f/authr-1.3.3.tar.gz" } ] }