# HSTS Parser
[![Lint Codebase](https://github.com/thebeanogamer/hstsparser/actions/workflows/lint.yaml/badge.svg)](https://github.com/thebeanogamer/hstsparser/actions/workflows/lint.yaml) [![Build Releases](https://github.com/thebeanogamer/hstsparser/actions/workflows/build.yaml/badge.svg)](https://github.com/thebeanogamer/hstsparser/actions/workflows/build.yaml) [![Licence](https://img.shields.io/github/license/thebeanogamer/hstsparser)](./LICENSE) ![Python 3.11.x](https://img.shields.io/badge/python-3.11.x-yellow.svg) [![PyPI](https://img.shields.io/pypi/v/hstsparser)](https://pypi.org/project/hstsparser) [![Downloads](https://pepy.tech/badge/hstsparser)](https://pepy.tech/project/hstsparser) [![Copr build status](https://copr.fedorainfracloud.org/coprs/thebeanogamer/hstsparser/package/hstsparser/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/thebeanogamer/hstsparser/package/hstsparser/)
HSTS Parser is a simple tool to parse Firefox and Chrome's HSTS databases into actually helpful forensic artifacts! You can read more about the research behind this tool and potential uses for it over on [my blog](https://blog.daniel-milnes.uk/hsts-for-forensics-you-can-run-but-you-cant)!
## Installation
HSTS Parser can be installed via pip, or as a native executable.
### From PyPi
If you already have Python installed, you can install HSTS Parser using pip.
```bash
pip install hstsparser
```
### On Fedora
HSTS Parser is available through Fedora COPR for Fedora 38+.
```bash
dnf copr enable thebeanogamer/hstsparser
dnf install hstsparser
```
### On Windows
Windows binaries are published by GitHub Actions CI for each release of HSTS Parser. You can download these on the [releases page](https://github.com/thebeanogamer/hstsparser/releases/latest).
## Usage
All of the below documentation is written for the Python version rather than the standalone executable, but the commands will be the same.
```shell
$ hstsparser -h
usage: hstsparser [-h] [-w WORDLIST] [--csv CSV] (--firefox | --chrome) FILE
Process HSTS databases
positional arguments:
FILE The path to the database to be processed
optional arguments:
-h, --help show this help message and exit
-w WORDLIST The path to the database to be processed
--csv CSV Output to a CSV file
--firefox Process a Firefox database
--chrome Process a Chrome database
```
### Examples
#### Firefox
```shell
hstsparser --firefox SiteSecurityServiceState.txt
```
#### Chrome
```shell
hstsparser --chrome TransportSecurity
```
#### Chrome with Wordlist
```shell
hstsparser -w wordlist.txt --chrome TransportSecurity
```
## Screenshots
### Firefox
![Screenshot of Firefox Processing](https://blog.daniel-milnes.uk/content/images/2019/11/image-3.png)
### Chrome with Wordlist
![Screenshot of Chrome Processing with a wordlist](https://blog.daniel-milnes.uk/content/images/2019/11/image-4.png)
## Links
- [My Blog Post](https://blog.daniel-milnes.uk/hsts-for-forensics-you-can-run-but-you-cant)
- [MDN - HSTS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)
- [Chromium - HSTS](https://www.chromium.org/hsts)
Raw data
{
"_id": null,
"home_page": "https://github.com/thebeanogamer/hstsparser",
"name": "hstsparser",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "chrome,firefox,dfir,forensics,hsts",
"author": "Daniel Milnes",
"author_email": "daniel@daniel-milnes.uk",
"download_url": "https://files.pythonhosted.org/packages/63/46/757dc85525170fc12a5be68f7d7b2ed39730d200f7d736a71ab62d9cbccc/hstsparser-1.2.0.tar.gz",
"platform": null,
"description": "# HSTS Parser\n\n[![Lint Codebase](https://github.com/thebeanogamer/hstsparser/actions/workflows/lint.yaml/badge.svg)](https://github.com/thebeanogamer/hstsparser/actions/workflows/lint.yaml) [![Build Releases](https://github.com/thebeanogamer/hstsparser/actions/workflows/build.yaml/badge.svg)](https://github.com/thebeanogamer/hstsparser/actions/workflows/build.yaml) [![Licence](https://img.shields.io/github/license/thebeanogamer/hstsparser)](./LICENSE) ![Python 3.11.x](https://img.shields.io/badge/python-3.11.x-yellow.svg) [![PyPI](https://img.shields.io/pypi/v/hstsparser)](https://pypi.org/project/hstsparser) [![Downloads](https://pepy.tech/badge/hstsparser)](https://pepy.tech/project/hstsparser) [![Copr build status](https://copr.fedorainfracloud.org/coprs/thebeanogamer/hstsparser/package/hstsparser/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/thebeanogamer/hstsparser/package/hstsparser/)\n\nHSTS Parser is a simple tool to parse Firefox and Chrome's HSTS databases into actually helpful forensic artifacts! You can read more about the research behind this tool and potential uses for it over on [my blog](https://blog.daniel-milnes.uk/hsts-for-forensics-you-can-run-but-you-cant)!\n\n## Installation\n\nHSTS Parser can be installed via pip, or as a native executable.\n\n### From PyPi\n\nIf you already have Python installed, you can install HSTS Parser using pip.\n\n```bash\npip install hstsparser\n```\n\n### On Fedora\n\nHSTS Parser is available through Fedora COPR for Fedora 38+.\n\n```bash\ndnf copr enable thebeanogamer/hstsparser\ndnf install hstsparser\n```\n\n### On Windows\n\nWindows binaries are published by GitHub Actions CI for each release of HSTS Parser. You can download these on the [releases page](https://github.com/thebeanogamer/hstsparser/releases/latest).\n\n## Usage\n\nAll of the below documentation is written for the Python version rather than the standalone executable, but the commands will be the same.\n\n```shell\n$ hstsparser -h\nusage: hstsparser [-h] [-w WORDLIST] [--csv CSV] (--firefox | --chrome) FILE\n\nProcess HSTS databases\n\npositional arguments:\n FILE The path to the database to be processed\n\noptional arguments:\n -h, --help show this help message and exit\n -w WORDLIST The path to the database to be processed\n --csv CSV Output to a CSV file\n --firefox Process a Firefox database\n --chrome Process a Chrome database\n```\n\n### Examples\n\n#### Firefox\n\n```shell\nhstsparser --firefox SiteSecurityServiceState.txt\n```\n\n#### Chrome\n\n```shell\nhstsparser --chrome TransportSecurity\n```\n\n#### Chrome with Wordlist\n\n```shell\nhstsparser -w wordlist.txt --chrome TransportSecurity\n```\n\n## Screenshots\n\n### Firefox\n\n![Screenshot of Firefox Processing](https://blog.daniel-milnes.uk/content/images/2019/11/image-3.png)\n\n### Chrome with Wordlist\n\n![Screenshot of Chrome Processing with a wordlist](https://blog.daniel-milnes.uk/content/images/2019/11/image-4.png)\n\n## Links\n\n- [My Blog Post](https://blog.daniel-milnes.uk/hsts-for-forensics-you-can-run-but-you-cant)\n- [MDN - HSTS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)\n- [Chromium - HSTS](https://www.chromium.org/hsts)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A tool to parse Firefox and Chrome HSTS databases into forensic artifacts.",
"version": "1.2.0",
"project_urls": {
"Documentation": "https://github.com/thebeanogamer/hstsparser",
"Homepage": "https://github.com/thebeanogamer/hstsparser",
"Repository": "https://github.com/thebeanogamer/hstsparser"
},
"split_keywords": [
"chrome",
"firefox",
"dfir",
"forensics",
"hsts"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cd365db1a412dd6e49fa004f17d1fd9bc1b5b36d2a02f1f05b936e238c180155",
"md5": "a90fcbefdba769695c1a7d765e0da3ab",
"sha256": "1a1fed8ce2c7c472684e0f26817a3d650c7f945bfd635f967db30e582632568e"
},
"downloads": -1,
"filename": "hstsparser-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a90fcbefdba769695c1a7d765e0da3ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 6283,
"upload_time": "2023-06-10T13:42:26",
"upload_time_iso_8601": "2023-06-10T13:42:26.143954Z",
"url": "https://files.pythonhosted.org/packages/cd/36/5db1a412dd6e49fa004f17d1fd9bc1b5b36d2a02f1f05b936e238c180155/hstsparser-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6346757dc85525170fc12a5be68f7d7b2ed39730d200f7d736a71ab62d9cbccc",
"md5": "0f280a81a556d02b98d38a705bda9a1a",
"sha256": "56447fcdaf83acedacb4ff6ee56a695de4d3fe194cbd924c5d3723b37522d843"
},
"downloads": -1,
"filename": "hstsparser-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "0f280a81a556d02b98d38a705bda9a1a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 5185,
"upload_time": "2023-06-10T13:42:27",
"upload_time_iso_8601": "2023-06-10T13:42:27.563371Z",
"url": "https://files.pythonhosted.org/packages/63/46/757dc85525170fc12a5be68f7d7b2ed39730d200f7d736a71ab62d9cbccc/hstsparser-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-10 13:42:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thebeanogamer",
"github_project": "hstsparser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "hstsparser"
}