{ "info": { "author": "Tommy Stallings", "author_email": "tommy.stallings@salesforce.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python", "Topic :: Software Development :: Libraries" ], "description": "pyJA3\n=====\n.. image:: https://readthedocs.org/projects/pyja3/badge/?version=latest\n :target: http://pyja3.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://badge.fury.io/py/pyja3.svg\n :target: https://badge.fury.io/py/pyja3\n\n\nJA3 provides fingerprinting services on SSL packets. This is a python wrapper around JA3 logic in order to produce valid JA3 fingerprints from an input PCAP file.\n\n\nGetting Started\n---------------\n1. Install the pyja3 module:\n\n ``pip install pyja3`` or ``python setup.py install``\n\n2. Test with a PCAP file or download a sample:\n\n $(venv) ja3 --json /your/file.pcap\n\nExample\n-------\nOutput from sample PCAP::\n\n [\n {\n \"destination_ip\": \"192.168.1.3\",\n \"destination_port\": 443,\n \"ja3\": \"769,255-49162-49172-136-135-57-56-49167-49157-132-53-49159-49161-49169-49171-69-68-51-50-49164-49166-49154-49156-150-65-4-5-47-49160-49170-22-19-49165-49155-65279-10,0-10-11-35,23-24-25,0\",\n \"ja3_digest\": \"2aef69b4ba1938c3a400de4188743185\",\n \"source_ip\": \"192.168.1.4\",\n \"source_port\": 2061,\n \"timestamp\": 1350802591.754299\n },\n {\n \"destination_ip\": \"192.168.1.3\",\n \"destination_port\": 443,\n \"ja3\": \"769,255-49162-49172-136-135-57-56-49167-49157-132-53-49159-49161-49169-49171-69-68-51-50-49164-49166-49154-49156-150-65-4-5-47-49160-49170-22-19-49165-49155-65279-10,0-10-11-35,23-24-25,0\",\n \"ja3_digest\": \"2aef69b4ba1938c3a400de4188743185\",\n \"source_ip\": \"192.168.1.4\",\n \"source_port\": 2068,\n \"timestamp\": 1350802597.517011\n }\n ]\n\nChangelog\n---------\n2018-02-05\n~~~~~~~~~~\n* Change: Ported single script to valid Python Package\n* Change: Re-factored code to be cleaner and PEP8 compliant\n* Change: Supported Python2 and Python3\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/salesforce/ja3", "keywords": "ja3,fingerprints,defender,ssl,packets", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pyja3", "package_url": "https://pypi.org/project/pyja3/", "platform": "", "project_url": "https://pypi.org/project/pyja3/", "project_urls": { "Homepage": "https://github.com/salesforce/ja3" }, "release_url": "https://pypi.org/project/pyja3/1.0.0/", "requires_dist": [ "dpkt" ], "requires_python": "", "summary": "Generate JA3 fingerprints from PCAPs using Python.", "version": "1.0.0" }, "last_serial": 3817800, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "818f00e8f6d394bb9f62621329e78db1", "sha256": "6340ad453cbf8326cc07ce2f09acb5b1d76fa6d4494b5ec76ba2e465d05e8251" }, "downloads": -1, "filename": "pyja3-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "818f00e8f6d394bb9f62621329e78db1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6967, "upload_time": "2018-04-28T23:08:34", "url": "https://files.pythonhosted.org/packages/ae/5f/043f39ea0e6ff12079f58ad6131d5ca1e2cf92eaee17a52da805d709e789/pyja3-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "595409525c3d9dcb5964a8fe060048d2", "sha256": "cd1782dc0f6be5f665c4a72b54d0ef8e9b8fd4c9ef301a783911df6f0f2be89f" }, "downloads": -1, "filename": "pyja3-1.0.0.tar.gz", "has_sig": false, "md5_digest": "595409525c3d9dcb5964a8fe060048d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4866, "upload_time": "2018-04-28T23:08:35", "url": "https://files.pythonhosted.org/packages/8c/ec/19ccb4f363381fb162c9fd145a5648150554a24bbabecbadd4522d227264/pyja3-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "818f00e8f6d394bb9f62621329e78db1", "sha256": "6340ad453cbf8326cc07ce2f09acb5b1d76fa6d4494b5ec76ba2e465d05e8251" }, "downloads": -1, "filename": "pyja3-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "818f00e8f6d394bb9f62621329e78db1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6967, "upload_time": "2018-04-28T23:08:34", "url": "https://files.pythonhosted.org/packages/ae/5f/043f39ea0e6ff12079f58ad6131d5ca1e2cf92eaee17a52da805d709e789/pyja3-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "595409525c3d9dcb5964a8fe060048d2", "sha256": "cd1782dc0f6be5f665c4a72b54d0ef8e9b8fd4c9ef301a783911df6f0f2be89f" }, "downloads": -1, "filename": "pyja3-1.0.0.tar.gz", "has_sig": false, "md5_digest": "595409525c3d9dcb5964a8fe060048d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4866, "upload_time": "2018-04-28T23:08:35", "url": "https://files.pythonhosted.org/packages/8c/ec/19ccb4f363381fb162c9fd145a5648150554a24bbabecbadd4522d227264/pyja3-1.0.0.tar.gz" } ] }