This repo contains scripts you can run in the context of your Dradis Pro appliance. They show how to query the internal database to perform complex operations, gather statistics and more.
- Clone the repo into your laptop
git clone https://github.com/securityroots/dradispro-scripting.git
- Choose one of the scripts or create a new one by modifying it for your needs.
- SCP it across to your Dradis Pro appliance:
$ scp find_xss.rb dradispro@[dradis-ip]:/opt/dradispro/dradispro/current/
- Run the script in the context of the application
$ ssh dradispro@[dradis-ip]
$ cd /opt/dradispro/dradispro/current/
$ RAILS_ENV=production bundle exec rails runner find_xss.rb
admin_summary
bi_fields.rb
- Return or update the Custom Project Properties from the BI Dashboard for a specific projectdaily_summary.rb
- Finds and outputs all of the Issues added to Dradis in the past 24 hoursfind_xss.rb
- Find recent projects with XSS Issues in themproject_association_check.rb
- Checks to make sure all projects are associated with a report templateproject_stats.rb
- Find which issues have been found across multiple projects and other project statssingle_project_activity.rb
- Returns all activity (Issues, Evidence, Nodes, Notes, ContentBlocks, Methodology Boards, Methodology Lists, Methodology Cards, Comments, and Tags) for 1 projecttop10.rb
- Creates tables of top 10 ports/protocols, services, and OSs in a content blockupdate_attachment_paths_to_v3.rb
- Updates attachment paths so they match the >= 3.0 format (after one project per tab was introduced)usage_audit.rb
- Check to see a summary of usage per user over the last monthyear_in_review.rb
- Yearly stats for your Dradis instance
bash_files
bulk_upload.sh
- Upload multiple tool output files to a project at once, one plugin at a timemigrate_data.sh
- Migrate data from one Dradis instance to another
/erb_files/
delete_nodes_without_evidence.html.erb
- Delete Host Nodes that don't have any Evidence associated with them in a specific projecthide_duplicate_evidence.html.erb
- Set duplicate instances of Evidence to Export|Noissue_id.html.erb
- Adds the unique issue identifier from your Dradis instance to each issue in a project in a new ID fieldissue_risk_from_evidence_severity.html.erb
- Set the Issue'sRisk
field value and tag based on the highestSeverity
field value from the associated Evidenceshow_first_evidence.html.erb
- Set the first instances of Evidence for each Issue to Show|Yestag_issues.html.erb
- Tag Issues based on CVSSv3.BaseScore fieldupdate_evidence.html.erb
- Update each instance of Evidence to contain DataSource, Show, Output and Port
issuelibrary
add_issuelib_entries_to_project.rb
- Add all IssueLibrary entries to a specific project as Issuesexport_issuelib.rb
- Exports all your IssueLibrary entries to a single fileupdate_issuelib_entries.rb
- Find/replace and add fields to your IssueLibrary entries
mappings_and_kits
copy_mappings.rb
- Copy all mappings from one report template to anotherexport_all_mappings.rb
- Export the Mapping and MappingFields from all report template the kit formatexport_kit_config.rb
- Export the mappings and RTPs for kit formatexport_mappings_for_kit.rb
- Export the Mappings in a format that can be included in a kitexport_rules_for_kit.rb
- Export the rules in a format that can be included in a Kit or executed to build the ruleset
project_create
create_project_apply_projecttemplate.rb
- Create a new Project and apply a Project Template, then return the Project ID.create_project.rb
- Create a project with a name passed as argument and return the assigned IDload_project_from_api.rb
- Query a remote JSON API response to get project data and create matching Projects in the Dradis appliance
project_update
cache.rb
- Cache the list of issues for a project; useful for projects with large numbers of issuescreate_issue_node_evidence.rb
- Create an Issue, create a Node, and then create an instance of Evidence associated with bothdelete_nodes_without_evidence.rb
- Deletes Host Nodes that don't have any Evidence associated with them in a specific projectdocument_properties.rb
- Return your Document Properties from the Report Contentdouble_asterisks.rb
- Replaces double asterisks (**
) from Issues, Evidence, and Content Blocks without removing nested listsproject_methodologies.rb
- Accesses each methodology for a project, then each list, and each card in that list.update_attachments_after_node_merge.rb
- Find instances of attachments after merging nodesupdate_content_blocks.rb
- Return and edit Content Blocks associated with a specific project
remediation_tracker
export_rt.rb
- Exports all your Remediation Tracker tickets to a single filesend_to_rt.rb
- Sends all Issues in a given project to the Remediation Tracker as Tickets
trash
clear_trash_6_months.rb
- Deletes items >6 months old discarded in trashempty_trash.rb
- Deletes all projects from the instance-level trashrecover_trash.rb
- Restores all the items from the Trash feature in a single project
Great question:
- Check the script source, there should be a comment near the top with a brief intro.
- Check the Command Line Interface guide in the support site.