{ "info": { "author": "Ingmar Steen", "author_email": "iksteen@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Security", "Topic :: Security :: Cryptography" ], "description": "pwnypack\n========\n\nThe official *Certified Edible Dinosaurs* CTF toolkit. *pwnypack*\nattempts to provide a toolset which can be used to more easily develop\nCTF solutions.\n\n|Build Status|\n\nMotivation\n----------\n\nAfter seeing the excellent\n`pwntools `__ by Gallopsled, I\ngot interested in building my own CTF toolkit. *pwntools* is much more\ncomplete so you should probably use that. *pwnypack* was created mostly\nout of curiosity.\n\nInstallation\n------------\n\nFirst, make sure your `setuptools` and `pip` packages are up to date:\n\n.. code:: bash\n\n $ pip install -U setuptools pip\n\nTo install the latest released version of pwnypack with all optional\ndependencies, run:\n\n.. code:: bash\n\n $ pip install --no-binary capstone,keystone-engine pwnypack[all]\n\nTo install the latest released version of pwnypack with minimal\ndependencies, run:\n\n.. code:: bash\n\n $ pip install pwnypack\n\nOther available install targets are:\n\n- ``--no-binary keystone-engine pwnypack[asm]`` - installs ``keystone-engine``\n to support all assembler targets without any additional depenencies.\n\n- ``--no-binary capstone pwnypack[disasm]`` - installs ``capstone`` for AT&T\n and intel syntax disassembly, required to disassemble ARM binaries.\n\n- ``--no-binary capstone pwnypack[rop]`` - installs ``capstone`` to validate\n ROP gadgets.\n\n- ``pwnypack[ssh]`` - installs ``paramiko`` to enable the ``Flow`` module to\n connect to SSH servers.\n\n- ``pwnypack[shell]`` - installs ``ipython`` to support the enhanced pwnypack\n REPL environment.\n\n- ``pwnypack[pwnbook]`` - installs ``jupyter`` to support the ``pwnbook`` jupyter\n notebook.\n\nIf you want to use the interactive shell I highly recommend installing\neither ``bpython`` or ``ipython`` as those packages can make your time in\nthe shell a lot more enjoyable.\n\nDocker\n------\n\nYou can also use our published docker images.\n\nTo start an ipython powered pwnypack shell:\n\n.. code:: bash\n\n docker pull edibledinos/pwnypack:latest\n docker run --rm -it edibledinos/pwnypack:latest\n\nOr, to run pwnbook:\n\n.. code:: bash\n\n docker pull edibledinos/pwnbook:latest\n docker run --rm -it -p 8888:8888 edibledinos/pwnbook:latest\n\nBoth images expose a volume (``/projects``). Feel free to mount something\ninteresting there.\n\nThree tags are available:\n\n- ``py3`` (or: ``latest``) installs python 3 and pwnypack/pwnbook.\n- ``py2`` installs python 2 and pwnypack/pwnbook.\n\nUsage\n-----\n\nTo import all of *pwnypack* into your global namespace, use:\n\n.. code:: python\n\n >>> from pwny import *\n\nOr, if you're using python 2.7+ or python 3.3+, try the customized\nbpython or IPython shell:\n\n.. code:: bash\n\n $ pwny shell\n\nIf you have bpython and/or IPython installed you can use ``--bpython``,\n``--ipython`` or ``--python`` to select which interactive kernel to use.\n\nI promise that effort will be put into not exposing unnecessary stuff\nand thus overly polluting your global namespace.\n\nFor an example, check out the `Big Prison\nFence `__\nexample in the wiki.\n\nCommon errors\n-------------\n\nCapstone/keystone fails to import the dynamic library.\n\n.. code::\n\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"/home/ingmar/.virtualenvs/pp/lib/python3.5/site-packages/capstone/__init__.py\", line 230, in \n raise ImportError(\"ERROR: fail to load the dynamic library.\")\n ImportError: ERROR: fail to load the dynamic library.\n\nThe ``capstone`` and ``keystone`` packages have a bug which when used with a\nnew verion of ``pip`` will end up installing the dynamic libraries in the\nwrong location on some platforms. Re-install ``capstone`` and/or ``keystone``\nusing:\n\n.. code:: bash\n\n $ pip install --no-binary capstone capstone\n $ pip install --no-binary keystone-engine keystone-engine\n\nSyntaxError when importing pwnypack.\n\n.. code::\n\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"pwny/__init__.py\", line 9, in \n from pwnypack.pwnbook import *\n File \"pwnypack/pwnbook.py\", line 2, in \n from jupyter_client import kernelspec as kernelspec\n File \"/Users/ingmar/.virtualenvs/pwny26/lib/python2.6/site-packages/jupyter_client/__init__.py\", line 4, in \n from .connect import *\n File \"/Users/ingmar/.virtualenvs/pwny26/lib/python2.6/site-packages/jupyter_client/connect.py\", line 23, in \n from traitlets.config import LoggingConfigurable\n File \"/Users/ingmar/.virtualenvs/pwny26/lib/python2.6/site-packages/traitlets/__init__.py\", line 1, in \n from .traitlets import *\n File \"/Users/ingmar/.virtualenvs/pwny26/lib/python2.6/site-packages/traitlets/traitlets.py\", line 1331\n return {n: t for (n, t) in cls.class_traits(**metadata).items()\n ^\n SyntaxError: invalid syntax\n\nYou've installed jupyter notebooks on python 2.6. Use a more modern version\nof python.\n\nDocumentation\n-------------\n\n*pwnypack*'s API documentation is hosted on\n`readthedocs `__.\n\nFor information on the commandline apps use the built in help function:\n\n.. code:: bash\n\n $ pwny --help\n $ pwny shell --help\n\nContributors\n------------\n\n*pwnypack* was created by Certified Edible Dinosaurs (dsc & doskop). If you\nwant to contribute, feel free to fork and create a pull request on\n`GitHub `__.\n\nCurrent contributors:\n\n- blasty contributed the ARM shellcode generator.\n\nLicense\n-------\n\n*pwnypack* is distributed under the MIT license.\n\n.. |Build Status| image:: https://travis-ci.org/edibledinos/pwnypack.svg?branch=travis-ci\n :target: https://travis-ci.org/edibledinos/pwnypack\n\nRelease history\n###############\n\nnext release\n============\n\n0.9.0 (2017-11-17)\n==================\n\n* Adding missing dev packages on docker images.\n* Docker images clone latest branch of pwnypack repository.\n* Fix magic command registration on IPython >= 5.0.0.\n* Support parsing (a subset of) ~/.ssh/config in flow.SSHClient.\n* Fix aarch64 support when using keystone engine.\n* Added padding oracle attack functions.\n* Added keystone-engine dependency for 'asm' and 'all' targets.\n* Make pwnbook, shell and ssh targets require python 2.7+.\n* Added internals for python 3.5.2 and 3.6.\n\n0.8.0 (2016-05-17)\n==================\n\n* Return empty list when trying to read non-existing .dynamic section.\n* Don't print newline when piping the output of a gadget.\n* Fix output of raw binary data on python 3.\n* Add pwnypack extension for ipython.\n* Add pwnypack jupyter notebook wrapper (pwnbook).\n* Moved and renamed util.pickle_call to pickle.pickle_invoke.\n* Added pickle_func that pickles a function and its invocation.\n* Added support for using GNU binutils to assemble AT&T and intel syntax.\n* Added support for assembling/disassembling ARM using binutils/capstone.\n* Use extras_require to make capstone, paramiko and jupyter optional.\n* Add Dockerfile for pwnypack shell and pwnbook.\n* Fix interact on python 3 in Flow.\n* Add python bytecode manipulation functions.\n* Added shellcode generator for X86/X86_64, ARM (+Thumb) and AArch64.\n* Use keystone engine as assembler engine by default.\n* Added xor mask finder.\n* Added python independent marshal and .pyc loader.\n* Fix internal escaping of reghex expressions.\n* Allow wildcards when searching for ROP gadgets using assembly statements.\n\n0.7.2 (2016-03-11)\n==================\n\n* Added support for .dynamic section parsing to ELF class.\n* Added checksec command line app.\n* Make pwnypack available as a universal wheel.\n\n0.7.1 (2016-03-07)\n==================\n\n* Add support for bpython and plain python interactive shells.\n* Fix missing newline after the output of several commandline apps.\n* Added PHP serialized data generation function and helper.\n* Add enurlform / deurlform / enurlquote / deurlquote functions.\n\n0.7.0 (2015-07-12)\n==================\n\n* Made IPython an optional dependency (pip install pwnypack[shell]).\n* Added pickle_call function to easily execute a function on unpickle.\n* Added format string vulnerability exploit builder.\n* Renamed TCPSocketChannel to TCPClientSocketChannel.\n* Added TCPServerSocketChannel which can listen for an incoming connection.\n* Added Flow.interact() method.\n* Added support for connecting to SSH servers from Flow.\n\n0.6.0 (2015-04-14)\n==================\n\n* Bugfixes (and travis-ci integration).\n* `API documentation `_ and docstrings.\n* Cycle-find can read from stdin.\n* Major refactoring of ELF class. It can now parse section headers, program\n headers, symbol tables and extract section, symbols.\n* Major refactoring of Target class. It's no longer tied to ELF (ELF is still\n a subclass of Target though).\n* A reghex compiler.\n* Verifying ROP gadget finder.\n* Disassembler functionality (based on ndisasm or capstone).\n* The ability to redirect stderr to stdout in flow.ProcessChannel.\n* The ability to create symlinks for commandline apps.\n* New commandline apps:\n * ``asm`` to assemble from commandline.\n * ``symbols`` to list the symbol table of an ELF file.\n * ``gadget`` to find ROP gadgets in an ELF file.\n * ``symbol-extract`` to extract a symbol from an ELF file.\n * ``symbol-disasm`` to disassemble a symbol in an ELF file.\n\n0.5.2 (2015-03-22)\n==================\n\n* Added command line apps and a customized IPython shell.\n\n0.5.1 (2015-03-21)\n==================\n\n* Python3 fixes for flow:\n * Use latin1 for echo mode as not everything will be encodable as utf-8.\n * Disable buffering on subprocess.\n\n0.5.0 (2015-03-21)\n==================\n\n* Initial release.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/edibledinos/pwnypack/tarball/v0.9.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edibledinos/pwnypack/", "keywords": "wargame,ctf", "license": "", "maintainer": "", "maintainer_email": "", "name": "pwnypack", "package_url": "https://pypi.org/project/pwnypack/", "platform": "", "project_url": "https://pypi.org/project/pwnypack/", "project_urls": { "Download": "https://github.com/edibledinos/pwnypack/tarball/v0.9.0", "Homepage": "https://github.com/edibledinos/pwnypack/" }, "release_url": "https://pypi.org/project/pwnypack/0.9.0/", "requires_dist": [ "six", "kwonly-args", "counter; python_version<\"2.7\"", "ordereddict; python_version<\"2.7\"", "argparse; python_version<\"2.7\"", "shutilwhich; python_version<\"3.3\"", "enum34; python_version<\"3.4\"", "capstone; extra == 'all'", "keystone-engine; extra == 'all'", "ipython; python_version>=\"2.7\" and extra == 'all'", "jupyter; python_version>=\"2.7\" and extra == 'all'", "paramiko; python_version>=\"2.7\" and extra == 'all'", "keystone-engine; extra == 'asm'", "capstone; extra == 'disasm'", "jupyter; python_version>=\"2.7\" and extra == 'pwnbook'", "capstone; extra == 'rop'", "ipython; python_version>=\"2.7\" and extra == 'shell'", "paramiko; python_version>=\"2.7\" and extra == 'ssh'" ], "requires_python": "", "summary": "Official Certified Edible Dinosaurs CTF toolkit.", "version": "0.9.0" }, "last_serial": 3345928, "releases": { "0.5.1": [ { "comment_text": "", "digests": { "md5": "aa73c96e66b5c2052ee72c9bc180729e", "sha256": "be263881c24421dad1d16616a78d8b8846f91b3d5b1e2292964c518f95688d0b" }, "downloads": -1, "filename": "pwnypack-0.5.1.tar.gz", "has_sig": false, "md5_digest": "aa73c96e66b5c2052ee72c9bc180729e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6409, "upload_time": "2015-03-21T13:56:29", "url": "https://files.pythonhosted.org/packages/dd/c7/d18bf85cf0b6aeee76e62be9a0a76b4aa190b17aceeb73b8ec8a393e8f25/pwnypack-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "38687d07feafae55f6dd1a0253c6a8c5", "sha256": "fb729f38241d9fb750cdf936602ba46a9018b7d059381f2b35cb4957588c8f9d" }, "downloads": -1, "filename": "pwnypack-0.5.2.tar.gz", "has_sig": false, "md5_digest": "38687d07feafae55f6dd1a0253c6a8c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12503, "upload_time": "2015-03-22T16:00:09", "url": "https://files.pythonhosted.org/packages/ce/c0/931b70d9e495710864cd7da83a49b3026f3cb7c225a5ed43bffec610009d/pwnypack-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "a5d58847eaa35dc6d13e0fa7f444a2ce", "sha256": "fc129e22a078e68bbe96d1afe62d5aa497a75d69eae2c54fb90d2cd4364dc155" }, "downloads": -1, "filename": "pwnypack-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a5d58847eaa35dc6d13e0fa7f444a2ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27275, "upload_time": "2015-04-14T09:27:55", "url": "https://files.pythonhosted.org/packages/f6/be/7a0d1de49169efc3578e955edb8b8084b7f5d70caef1e1df43b38dfb7795/pwnypack-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "e7c24e91e817f2c249dbacd9af2d1459", "sha256": "217c72a73b57f9950467b98d9c25e100555a382c0cadec2cb4d1a6000d4571a5" }, "downloads": -1, "filename": "pwnypack-0.7.0.tar.gz", "has_sig": false, "md5_digest": "e7c24e91e817f2c249dbacd9af2d1459", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30546, "upload_time": "2015-07-12T10:47:31", "url": "https://files.pythonhosted.org/packages/a7/34/f4c3d13bf229c3c9ef41c2b1fa7def139bd7f4aab7ad4b5fb26aec7503d5/pwnypack-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "75f2cb7d6823baaeaeced4eb2e7cef87", "sha256": "06a9f156618f09fc397c8326aee91ed3b4e7bfe269ffe5dbfa61cbe47715f9af" }, "downloads": -1, "filename": "pwnypack-0.7.1.tar.gz", "has_sig": false, "md5_digest": "75f2cb7d6823baaeaeced4eb2e7cef87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46565, "upload_time": "2016-03-07T16:06:30", "url": "https://files.pythonhosted.org/packages/25/a3/1f5a28cf13f2c1d74db4d85e3ca6a177cdbe413bf2faea3d152ab636edb4/pwnypack-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "ffada56954ff7d49d1362f4e0e7070ee", "sha256": "6d5a34b6af558f43db98655e61d66c279ed97e339b93c5bf156c4c57cd1ce275" }, "downloads": -1, "filename": "pwnypack-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ffada56954ff7d49d1362f4e0e7070ee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 42630, "upload_time": "2016-03-11T17:06:45", "url": "https://files.pythonhosted.org/packages/2e/f6/1c030f3a4895b15c72fc311ba070b88104bbc300e7544cd4ebd07934e626/pwnypack-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7f0d359f3f3bbe84769904eeab35dd4", "sha256": "9deea57226b22e242454b9205d31e95d4cc177991d3e628647ff261ff374686d" }, "downloads": -1, "filename": "pwnypack-0.7.2.tar.gz", "has_sig": false, "md5_digest": "b7f0d359f3f3bbe84769904eeab35dd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50705, "upload_time": "2016-03-11T17:06:38", "url": "https://files.pythonhosted.org/packages/20/30/ad2d0e46c112da50e6499a9f409cd709aa6bb0db1935301c158f0c5594ee/pwnypack-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "b4096635f0ab57310f274a05a7a631d8", "sha256": "353ab605d95c3ee4dc91f57f4bd49a7dc0ab6949fbb0e09b18ce3a8492442d59" }, "downloads": -1, "filename": "pwnypack-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4096635f0ab57310f274a05a7a631d8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102994, "upload_time": "2016-05-19T09:45:26", "url": "https://files.pythonhosted.org/packages/9a/44/2b054e316c6037b05fc6e5f47dba653fc37d2b6a0fefb8baadaf132a287b/pwnypack-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98b965d909d8449e1b60e52a4c3b5308", "sha256": "30d88155707a9b2a11aaf6bc8004dddc7c7545d8fa8f17b8d42de54e87a1b57d" }, "downloads": -1, "filename": "pwnypack-0.8.0.tar.gz", "has_sig": false, "md5_digest": "98b965d909d8449e1b60e52a4c3b5308", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100939, "upload_time": "2016-05-19T09:44:56", "url": "https://files.pythonhosted.org/packages/0e/e5/7ea712cc0a2b37a1efc1ae314ae1c39438a16a70ac43e36f3d190911ce94/pwnypack-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "700c53a5273a6dc4ae60dbe825db4f48", "sha256": "460336cd9d171c481b4ce92af5f2b74020083dcb28468ac141bc7ea69e5fb334" }, "downloads": -1, "filename": "pwnypack-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "700c53a5273a6dc4ae60dbe825db4f48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 106812, "upload_time": "2017-11-19T15:29:23", "url": "https://files.pythonhosted.org/packages/15/40/a2e4e283e30dd15914c1f5ab1dbd920c8bb4f4b87d9ad2a85cfca9350451/pwnypack-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbcec4eb3e3bee5d22d27c03e3a6d00b", "sha256": "70c3c19e5d81c35fc82dc02c91d65e297b6db306ad35f989aa993d00c5b0bc95" }, "downloads": -1, "filename": "pwnypack-0.9.0.tar.gz", "has_sig": false, "md5_digest": "bbcec4eb3e3bee5d22d27c03e3a6d00b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89162, "upload_time": "2017-11-19T15:29:26", "url": "https://files.pythonhosted.org/packages/e1/49/8cc50829e85ba5d4e3372ab3fcf272adae732f753271d2a780bbeb56055c/pwnypack-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "700c53a5273a6dc4ae60dbe825db4f48", "sha256": "460336cd9d171c481b4ce92af5f2b74020083dcb28468ac141bc7ea69e5fb334" }, "downloads": -1, "filename": "pwnypack-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "700c53a5273a6dc4ae60dbe825db4f48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 106812, "upload_time": "2017-11-19T15:29:23", "url": "https://files.pythonhosted.org/packages/15/40/a2e4e283e30dd15914c1f5ab1dbd920c8bb4f4b87d9ad2a85cfca9350451/pwnypack-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbcec4eb3e3bee5d22d27c03e3a6d00b", "sha256": "70c3c19e5d81c35fc82dc02c91d65e297b6db306ad35f989aa993d00c5b0bc95" }, "downloads": -1, "filename": "pwnypack-0.9.0.tar.gz", "has_sig": false, "md5_digest": "bbcec4eb3e3bee5d22d27c03e3a6d00b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89162, "upload_time": "2017-11-19T15:29:26", "url": "https://files.pythonhosted.org/packages/e1/49/8cc50829e85ba5d4e3372ab3fcf272adae732f753271d2a780bbeb56055c/pwnypack-0.9.0.tar.gz" } ] }