{"id":18657614,"url":"https://github.com/cr0hn/ktcal2","last_synced_at":"2025-04-11T18:31:35.182Z","repository":{"id":19213503,"uuid":"22447479","full_name":"cr0hn/ktcal2","owner":"cr0hn","description":"SSH brute forcer tool and library, using AsyncIO of Python 3.4","archived":false,"fork":false,"pushed_at":"2020-05-27T08:53:52.000Z","size":40,"stargazers_count":36,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-04-09T14:03:54.541Z","etag":null,"topics":["asyncio","brute-force","hacking","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cr0hn.png","metadata":{"files":{"readme":"README.rst","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":["cr0hn"]}},"created_at":"2014-07-30T22:39:01.000Z","updated_at":"2024-08-12T19:14:27.000Z","dependencies_parsed_at":"2022-09-03T06:25:54.380Z","dependency_job_id":null,"html_url":"https://github.com/cr0hn/ktcal2","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr0hn%2Fktcal2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr0hn%2Fktcal2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr0hn%2Fktcal2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr0hn%2Fktcal2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cr0hn","download_url":"https://codeload.github.com/cr0hn/ktcal2/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248458502,"owners_count":21107088,"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":["asyncio","brute-force","hacking","python"],"created_at":"2024-11-07T07:29:11.272Z","updated_at":"2025-04-11T18:31:34.524Z","avatar_url":"https://github.com/cr0hn.png","language":"Python","funding_links":["https://github.com/sponsors/cr0hn"],"categories":[],"sub_categories":[],"readme":"What's this project?\n====================\n\nThis project aims to perform a library/tool make a SSH brute force password attack that you can use **as a library as a command line tool**.\n\nThe goal of ktcal2 is that it uses new **non-blocking I/O AsyncIO framework**, included **Python 3.4**. \n\nSome links:\n\n - **Documentation:** `\u003chttp://ktcal2.readthedocs.org\u003e`_ (currently not working).\n - AsyncSSH: This project use `AsyncSSH \u003chttps://github.com/ronf/asyncssh\u003e`_ library internally.\n\nSupport this project\n====================\n\nSupport this project (to solve issues, new features...) by applying the Github \"Sponsor\" button.\n\nLicence\n=======\n\nThis project is **BSD**... Copy it! And, if you remember, please mention me in credits :)\n\nHow to install\n==============\n\nPIP\n---\n\n.. code-block:: bash\n\n    sudo python3.4 -m pip install PyCrypto\n    sudo python3.4 -m pip install ktcal2\n    kt-cal2 -h\n\nManually\n--------\n\n.. code-block:: bash\n\n    sudo python3.4 -m pip install PyCrypto\n    git clone https://github.com/cr0hn/ktcal2.git ktcal2\n    cd ktcal2\n    sudo python3.4 -m pip -r requirements.txt install\n    python3.4 kt-cal2.py -h\n\nHow use it?\n===========\n\nYou can use this project in command line tool or as a library, in your Python projects.\n\nAs a tool\n---------\n\nYou can test SSH passwords, using a wordlist or brute forcer password generation.\n \nUsing wordlist\n______________\n\nBasic usage:\n\n.. code-block:: bash\n\n    python3.4 ktcal2.py --password-wordlist my_password_list.txt -u root 127.0.0.1\n\nUsing user name wordlist:\n\n.. code-block:: bash\n\n    python3.4 ktcal2.py --password-wordlist my_password_list.txt --user-wordlist user_names.txt 127.0.0.1\n \nUsing password wordlist brute force\n___________________________________\n\nktcal2 can generates all combinations of wordlist based in rules.\n\nIf we want to generate all combinations, with 4 word length **(--max-length 4)** using only **numbers (-N), 0000-9999**:  \n\n.. code-block:: bash\n\n    python3.4 ktcal2.py -u root --max-length 4 -N 127.0.0.1\n\nAll combinations. 2 max and minimum length, only numbers 00-99:\n\n.. code-block:: bash\n\n    python3.4 ktcal2.py -u root -N --max-length 2 --min-length 2 127.0.0.1\n\nAll combinations. 2 max and minimum length. Using numbers, low and upper letters (00..aa..AA):\n\n.. code-block:: bash\n\n    python3.4 ktcal2.py -u root -N -c -C --max-length 2 --min-length 2 127.0.0.1\n\nAs a library\n------------\n\n.. code-block:: python\n\n    from ktcal2.api import run\n    from ktcal2.lib.data import GlobalParameters, PasswordConfig\n        \n    def custom_display(message):\n        \"\"\"Displays debug info in a custom way\"\"\"\n        print(\"-----\u003e\u003e\u003e %s \u003c\u003c\u003c-----\" % message)\n        \n        \n    if __name__ == \"__main__\":\n        # Configure password generator, for brute forcer mode.\n        password_config = PasswordConfig(low_chars=True,\n                                     numbers=True,\n                                     special=True,\n                                     min_len=4,\n                                     max_len=5)\n\n        config = GlobalParameters(target=dst,\n                                  verbosity=2,\n\n                                  # If we wan to display info\n                                  display_function=custom_display,\n\n                                  # Net options\n                                  concurrency=20,\n\n                                  # Credentials\n                                  username_list=(\"root\" for x in range(1)),\n                                  password_config=password_config)\n        \n        run(config)\n        \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr0hn%2Fktcal2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcr0hn%2Fktcal2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr0hn%2Fktcal2/lists"}