{"id":13530679,"url":"https://github.com/gauntlt/gauntlt","last_synced_at":"2025-04-01T18:32:14.955Z","repository":{"id":2844025,"uuid":"3847668","full_name":"gauntlt/gauntlt","owner":"gauntlt","description":"a ruggedization framework that embodies the principle \"be mean to your code\"","archived":false,"fork":false,"pushed_at":"2022-06-20T16:51:52.000Z","size":4013,"stargazers_count":985,"open_issues_count":19,"forks_count":187,"subscribers_count":76,"default_branch":"master","last_synced_at":"2025-03-22T01:47:19.744Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://gauntlt.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gauntlt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-27T19:29:56.000Z","updated_at":"2025-03-16T08:36:03.000Z","dependencies_parsed_at":"2022-06-25T19:05:13.983Z","dependency_job_id":null,"html_url":"https://github.com/gauntlt/gauntlt","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gauntlt%2Fgauntlt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gauntlt%2Fgauntlt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gauntlt%2Fgauntlt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gauntlt%2Fgauntlt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gauntlt","download_url":"https://codeload.github.com/gauntlt/gauntlt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246691696,"owners_count":20818556,"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":[],"created_at":"2024-08-01T07:00:53.417Z","updated_at":"2025-04-01T18:32:14.331Z","avatar_url":"https://github.com/gauntlt.png","language":"Ruby","funding_links":[],"categories":["Tools","Ruby","Инструменты"],"sub_categories":["Dynamic Analysis","Тестирование по принципам Behaviour Driven Development"],"readme":"[![Build Status](https://secure.travis-ci.org/gauntlt/gauntlt.png?branch=master)](http://travis-ci.org/gauntlt/gauntlt)\n[![Code Climate](https://codeclimate.com/github/gauntlt/gauntlt.png)](https://codeclimate.com/github/gauntlt/gauntlt)\n[![Gem Version](https://badge.fury.io/rb/gauntlt.png)](http://badge.fury.io/rb/gauntlt)\n\n# gauntlt\nGauntlt is a ruggedization framework that enables security testing that is\nusable by devs, ops and security.\n\n## PROJECT STATUS\n\nAs of 2018, Gauntlt is re-launching development efforts and building a commmunity\nof practice. Join us on the [gauntlt slack channel](http://bit.ly/2EU9yGh). We are\nhoping to extend gauntlt functionality, add attack adapters and buildup a library\nof sharable attacks that fit everyone's needs. This isn't just for ruby developers,\nwe need feedback and contributions from security experts and people with experience\nrunning gauntlt in build pipelines. Join us!\n\nWe welcome feedback and contributions.  Please file issues via\ngithub and follow the project on twitter: [@gauntlt](https://twitter.com/gauntlt).\n\nHave questions?  Feel free to open a ticket, but we would prefer you find us\non the [gauntlt slack channel](http://bit.ly/2EU9yGh) (gauntlt.slack.com).\n\n## GET STARTED\n\nYou might want also take a look at [gauntlt-docker](https://github.com/gauntlt/gauntlt-docker)\nwhich has gauntlt and a few attack tools all grouped into one container.\n\nNote: if you are new to gauntlt, have a look at\n[gauntlt-starter-kit](https://github.com/gauntlt/gauntlt-starter-kit), it is\nthe easiest way to get up and running.\n\nIf you are using Kali Linux 2.0, Debian Jessie, Ubuntu 14.04, or Ubuntu 15.10,\nyou can run the following:\n```shell\ngit clone https://github.com/gauntlt/gauntlt\ncd gauntlt\nsource ./install_gauntlt_deps.sh\nbash ./ready_to_rumble.sh\ngauntlt\n```\nThis script will install Ruby RVM, all the required system dependencies and\ntools, and update your .bashrc with the necessary environmental variables. You\n can install this for another user by exporting $HOME_FOLDER and $USER_NAME\nvariables before running install_gauntlt_deps.sh\n\nTo install Gauntlt from source, you will need ruby version `2.1.0` or higher,\nbut you can run gauntlt against applications built with any language or platform.\n\n1. Install the gem\n\n    ```shell\n    $ gem install gauntlt\n    ```\n\n2. Create an attack file and put it anywhere you like. (There is a more relevant\nexample on gauntlt.org)\n\n    ```gherkin\n    # simplest.attack\n    Feature: simplest attack possible\n      Scenario:\n        When I launch a \"generic\" attack with:\n          \"\"\"\n          ls -a\n          \"\"\"\n        Then the output should contain:\n          \"\"\"\n          .\n          \"\"\"\n    ```\n\n3. Run gauntlt to launch the attack defined above\n\n    ```shell\n    $ gauntlt\n    # equivalent to gauntlt ./**/*.attack\n    # by default, gauntlt will search in the current folder\n    # and its subfolders for files with the .attack extension\n\n    # you can also specify one or more paths yourself:\n    $ gauntlt my_attacks/*.attack some_other.file\n    ```\n\n  For more attacks, refer to the [examples](https://github.com/gauntlt/gauntlt/tree/master/examples).\n\n4. Other commands\n\n    ```shell\n    # list defined attacks\n    $ gauntlt --list\n\n    # get help\n    $ gauntlt --help\n    ```\n\n## ATTACK ADAPTERS\n\nGauntlt includes attack adapters for the following tools:\n\n* [arachni] [arachni]\n* [curl] [curl]\n* [dirb] [dirb]\n* [Garmr] [garmr]\n* [heartbleed] [heartbleed]\n* [nmap] [nmap]\n* [sqlmap] [sqlmap]\n* [sslyze] [sslyze]\n\nYou will need to install each tool yourself before you can use it with gauntlt.\nHowever, if you try to use a tool that is not installed or that gauntlt cannot\nfind, you will get a helpful error message from gauntlt with information on how\nto install and/or configure the tool for use with gauntlt.\n\nWe also include a generic attack adapter that allows you to run anything on the\ncommand line, parse its output and check its exit status.\n\n\n## ATTACK FILES\n\n### Preamble\n\nTo use gauntlt, you will need one or more attack files. An attack file is a plain text file written with [Gherkin](https://github.com/cucumber/gherkin) syntax and named with the `.attack` extension. For more info on the Gherkin syntax, have a look at [Cucumber](http://cukes.info). A gauntlt attack file is almost the same as a cucumber feature file. The main difference is that gauntlt aims to provide the user with predefined steps geared towards security and durability testing so that you do not have to write your own step definitions, whereas cucumber is aimed at developers and stakeholders building features from end to end. Gauntlt and cucumber can and do work together harmoniously.\n\n### What an attack file looks like\n\n```gherkin\n# my.attack\nFeature: Description for all scenarios in this file\n  Scenario: Description of this scenario\n    Given ...\n    When ...\n    Then ...\n\n  Scenario: ...\n    Given ...\n    When ...\n    Then ...\n```\n\nYou can have as many `Scenario` entries as you like, but it is good practice to keep the number low and to ensure that the scenarios in an attack file are all related. You can create as many attack files as you like and organize them in folders and sub-folders as well.\n\nThere are a large number of step definitions available, but you can do a lot with just these 3:\n\n```gherkin\nFeature: Attack with kindness\n\n  Scenario: Ensure I am not mean\n    # verify a given attack adapter is installed\n    # HIGHLY RECOMMENDED to catch installation/configuration problems\n    Given \"kindness\" is installed\n\n    # Execute the attack\n    When I launch a \"kindness\" attack with:\n      \"\"\"\n      whoami  # EXACT commands to be executed on the command line\n      \"\"\"\n\n    # Check exit status and STDOUT\n    Then it should pass with:\n      \"\"\"\n      very_kind\n      \"\"\"\n```\n\n## FOR DEVELOPERS\n\nNOTE: We currently use `ruby 2.3.4` for development and testing.\n\n1. Clone the git repo and get the submodules\n\n    ```shell\n    $ git clone --recursive git://github.com/gauntlt/gauntlt.git\n    ```\n\n2. Install bundler\n\n    ```shell\n    cd gauntlt\n    $ gem install bundler\n    ```\n\n3. Install dependencies\n\n    ```shell\n    $ bundle\n    # if you get errors, you may need to install curl libs first\n    # on ubuntu:\n    #   $ sudo apt-get install libcurl4-openssl-dev\n    # alternatively: update and use the install_gauntlt.sh script, tested on\n    # Kali Linux 2.0, Debian Jessie, Ubuntu 14.04, and Ubuntu 15.10\n    ```\n4. Run the ready_to_rumble.sh script to make sure you have all the dependencies installed like sqlmap and sslyze.  This is meant to replicate the travis setup for devs. This should be a rake task instead.\n\n5. Run the cucumber features and rspec examples\n\n    ```shell\n    $ bundle exec rake\n    ```\n\n6. Launch attacks with bin/gauntlt\n\n    ```shell\n    $ bin/gauntlt attack\n    ```\n\n7. Refer to the features directory for usage examples and please write cucumber features for any new functionality you wish to submit.\n\n\n## ROADMAP\n\nGauntlt has been steady for some time now, but we are working on some new features. Join us on slack for more info.\n\nWe appreciate your suggestions and bug reports. We aim to be very responsive and friendly while adhering to a consistent design based on minimalism, simplicity and extensibility.\n\n## LICENSE\n\ngauntlt is licensed under The MIT License. See the LICENSE file in the repo or visit [gauntlt.mit-license.org](http://gauntlt.mit-license.org/) for details.\n\n[arachni]: http://www.arachni-scanner.com/\n[curl]: http://curl.haxx.se\n[dirb]: http://dirb.sourceforge.net/\n[garmr]: https://github.com/mozilla/Garmr\n[heartbleed]: https://github.com/FiloSottile/Heartbleed\n[nmap]: http://nmap.org\n[sslyze]: https://github.com/iSECPartners/sslyze\n[sqlmap]: http://sqlmap.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgauntlt%2Fgauntlt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgauntlt%2Fgauntlt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgauntlt%2Fgauntlt/lists"}