{"id":17006021,"url":"https://github.com/aress31/testssl2xlsx","last_synced_at":"2025-06-11T21:08:24.441Z","repository":{"id":62414056,"uuid":"115626465","full_name":"aress31/testssl2xlsx","owner":"aress31","description":"Excel parser for testssl scan results.","archived":false,"fork":false,"pushed_at":"2019-11-22T08:12:46.000Z","size":56,"stargazers_count":12,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T06:52:20.912Z","etag":null,"topics":["https","json","parser","pentesting","reporting","ssl","testssl","tls","xlsx"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aress31.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"aress31","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-12-28T13:34:48.000Z","updated_at":"2024-08-12T19:35:04.000Z","dependencies_parsed_at":"2022-11-01T14:46:44.625Z","dependency_job_id":null,"html_url":"https://github.com/aress31/testssl2xlsx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aress31/testssl2xlsx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aress31%2Ftestssl2xlsx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aress31%2Ftestssl2xlsx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aress31%2Ftestssl2xlsx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aress31%2Ftestssl2xlsx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aress31","download_url":"https://codeload.github.com/aress31/testssl2xlsx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aress31%2Ftestssl2xlsx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259340747,"owners_count":22843041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["https","json","parser","pentesting","reporting","ssl","testssl","tls","xlsx"],"created_at":"2024-10-14T05:04:49.159Z","updated_at":"2025-06-11T21:08:24.418Z","avatar_url":"https://github.com/aress31.png","language":"Python","funding_links":["https://github.com/sponsors/aress31"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"logo\" src=\"images/testssl2xlsx.png\" height=\"200\"\u003e\n  \u003ch1 align=\"center\"\u003e\n    testssl2xlsx\n  \u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n      \u003ca href=\"https://www.python.org\"\u003e\u003cimg alt=\"lang\" src=\"https://img.shields.io/badge/Lang-Python-blue.svg\"\u003e\u003c/a\u003e\n      \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg alt=\"license\" src=\"https://img.shields.io/badge/License-Apache%202.0-red.svg\"\u003e\u003c/a\u003e\n      \u003cbr\u003e\n      \u003cimg alt=\"bitcoin\" src=\"https://img.shields.io/badge/Bitcoin-15aFaQaW9cxa4tRocax349JJ7RKyj7YV1p-yellow.svg\"\u003e\n      \u003cimg alt=\"bitcoin cash\" src=\"https://img.shields.io/badge/Bitcoin%20Cash-qqez5ed5wjpwq9znyuhd2hdg86nquqpjcgkm3t8mg3-yellow.svg\"\u003e\n      \u003cimg alt=\"ether\" src=\"https://img.shields.io/badge/Ether-0x70bC178EC44500C17B554E62BC31EA2B6251f64B-yellow.svg\"\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n# This project has now been deprecated. Its functionality has been incorporated into [pentest2xlsx](https://github.com/AresS31/pentest2xlsx).\n\nParse `testssl` scans results (in a `JSON` format) into `Excel` tables to facilitate the reporting process of penetration tests, especially useful when dealing with large scopes. Having scans results organised in `Excel` tables also allow customers and testers to use `Excel` powerful filtering capabilities.\n\nThe following Excel worksheets are generated:\n* `Host vs Certificate`\n* `Host vs Certificates`\n* `Host vs Protocol`\n* `Host vs Protocols`\n* `Host vs Vulnerability`\n* `Host vs Vulnerabilities`\n\n## Installation\n```\n$ git clone https://github.com/AresS31/testssl2xlsx\n# python -m pip install -r testssl2xlsx/requirements.txt\n ```\n\n## Usage\n```\ntestssl2xlsx.py [-h] -iJ INPUT_FILES [INPUT_FILES ...]\n                [-oX OUTPUT_FILE] [-v]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -iJ INPUT_FILES [INPUT_FILES ...], --input-json INPUT_FILES [INPUT_FILES ...]\n                        input from testssl file(s) in JSON format\n  -oX OUTPUT_FILE, --output-xlsx OUTPUT_FILE\n                        output results to a specified \u003cOUTPUT_FILE\u003e in XLSX\n                        format\n  -v, --verbose         increase verbosity level\n```\n\n## Example\n1. Generate the `testssl` input file with:\n\n`$ testssl --jsonfile-pretty testssl-results.json --quiet --nodns none --parallel --server-defaults --protocols --vulnerable --file ../nmap/SYN-*.gnmap`\n\n2. Run `testssl2xlsx` with the testssl `JSON` file generated in the previous step:\n\n`$ python testssl2xlsx.py -iJ testssl-results.json`\n\n## Possible Improvements\n- [ ] Adding new features, such as --protocols filtering.\n- [ ] Enforce the correct file extensions (input file(s) must be .json, output file must be .xlsx)\n- [ ] Reconfigure the logging module to load its settings with a configuration file\n- [ ] Implement support for directory input rather than individual files.\n- [ ] Source code optimisation.\n\n## Donations\n* Via Bitcoin      : **15aFaQaW9cxa4tRocax349JJ7RKyj7YV1p**\n* Via Bitcoin Cash : **qqez5ed5wjpwq9znyuhd2hdg86nquqpjcgkm3t8mg3**\n* Via Ether        : **0x70bC178EC44500C17B554E62BC31EA2B6251f64B**\n\n## License(s)\n### testssl2xlsx\nCopyright 2017 - 2019 Alexandre Teyar\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n  \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faress31%2Ftestssl2xlsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faress31%2Ftestssl2xlsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faress31%2Ftestssl2xlsx/lists"}