├── .ruby-gemset ├── .ruby-version ├── third_party ├── .gitkeep └── r2-pwn-layout ├── .github └── FUNDING.yml ├── etc ├── userland │ ├── aws │ │ ├── jenkins │ │ │ ├── jobs_userland │ │ │ │ └── .gitkeep │ │ │ ├── log_parser_rules │ │ │ │ ├── wpscan.rules │ │ │ │ ├── sast.rules │ │ │ │ ├── arachni.rules │ │ │ │ ├── ssllabs-scan.rules │ │ │ │ ├── system_maintenance.rules │ │ │ │ └── self_update.rules │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ │ ├── jenkins_80.conf │ │ │ ├── openvas_80.conf │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── sast_80.conf │ │ ├── arachni │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ │ └── vagrant.yaml.EXAMPLE │ ├── qemu │ │ ├── jenkins │ │ │ ├── jobs_userland │ │ │ │ └── .gitkeep │ │ │ ├── log_parser_rules │ │ │ │ ├── wpscan.rules │ │ │ │ ├── sast.rules │ │ │ │ ├── arachni.rules │ │ │ │ ├── ssllabs-scan.rules │ │ │ │ ├── system_maintenance.rules │ │ │ │ └── self_update.rules │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ │ ├── jenkins_80.conf │ │ │ ├── openvas_80.conf │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── sast_80.conf │ │ ├── arachni │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ │ └── vagrant.yaml.EXAMPLE │ ├── docker │ │ ├── jenkins │ │ │ ├── jobs_userland │ │ │ │ └── .gitkeep │ │ │ ├── log_parser_rules │ │ │ │ ├── wpscan.rules │ │ │ │ ├── sast.rules │ │ │ │ ├── arachni.rules │ │ │ │ ├── ssllabs-scan.rules │ │ │ │ ├── system_maintenance.rules │ │ │ │ └── self_update.rules │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ │ ├── jenkins_80.conf │ │ │ ├── openvas_80.conf │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── sast_80.conf │ │ ├── arachni │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ │ └── vagrant.yaml.EXAMPLE │ ├── ruby-gem │ │ ├── jenkins │ │ │ ├── jobs_userland │ │ │ │ └── .gitkeep │ │ │ ├── log_parser_rules │ │ │ │ ├── wpscan.rules │ │ │ │ ├── sast.rules │ │ │ │ ├── arachni.rules │ │ │ │ ├── ssllabs-scan.rules │ │ │ │ ├── system_maintenance.rules │ │ │ │ └── self_update.rules │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ │ ├── jenkins_80.conf │ │ │ ├── openvas_80.conf │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── sast_80.conf │ │ ├── arachni │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ │ └── vagrant.yaml.EXAMPLE │ ├── vmware │ │ ├── jenkins │ │ │ ├── jobs_userland │ │ │ │ └── .gitkeep │ │ │ ├── log_parser_rules │ │ │ │ ├── wpscan.rules │ │ │ │ ├── sast.rules │ │ │ │ ├── arachni.rules │ │ │ │ ├── ssllabs-scan.rules │ │ │ │ ├── system_maintenance.rules │ │ │ │ └── self_update.rules │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ │ └── vagrant.yaml.EXAMPLE │ │ ├── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ │ ├── jenkins_80.conf │ │ │ ├── openvas_80.conf │ │ │ ├── vagrant.yaml.EXAMPLE │ │ │ └── sast_80.conf │ │ ├── arachni │ │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ │ └── vagrant.yaml.EXAMPLE │ └── virtualbox │ │ ├── jenkins │ │ ├── jobs_userland │ │ │ └── .gitkeep │ │ ├── log_parser_rules │ │ │ ├── wpscan.rules │ │ │ ├── sast.rules │ │ │ ├── arachni.rules │ │ │ ├── ssllabs-scan.rules │ │ │ ├── system_maintenance.rules │ │ │ └── self_update.rules │ │ └── vagrant.yaml.EXAMPLE │ │ ├── openvas │ │ └── vagrant.yaml.EXAMPLE │ │ ├── postgres │ │ └── vagrant.yaml.EXAMPLE │ │ ├── defectdojo │ │ └── vagrant.yaml.EXAMPLE │ │ ├── vagrant.yaml.EXAMPLE │ │ ├── metasploit │ │ └── vagrant.yaml.EXAMPLE │ │ ├── burpsuite │ │ ├── vagrant.yaml.EXAMPLE │ │ └── navigation.instruct.EXAMPLE │ │ ├── letsencrypt │ │ └── vagrant.yaml.EXAMPLE │ │ ├── apache2 │ │ ├── jenkins_80.conf │ │ ├── openvas_80.conf │ │ ├── vagrant.yaml.EXAMPLE │ │ └── sast_80.conf │ │ ├── arachni │ │ └── navigation.instruct.EXAMPLE │ │ ├── owasp_zap │ │ └── navigation.instruct.EXAMPLE │ │ └── nessus │ │ └── vagrant.yaml.EXAMPLE └── systemd │ └── openvas.service ├── vagrant_rsync_third_party.lst ├── spec ├── spec_helper.rb └── lib │ ├── pwn_spec.rb │ └── pwn │ ├── ai_spec.rb │ ├── aws_spec.rb │ ├── ffi_spec.rb │ ├── sast_spec.rb │ ├── sdr_spec.rb │ ├── www_spec.rb │ ├── plugins_spec.rb │ ├── reports_spec.rb │ ├── blockchain_spec.rb │ ├── sdr │ ├── decoder_spec.rb │ ├── gqrx_spec.rb │ ├── rfidler_spec.rb │ ├── decoder │ │ ├── gsm_spec.rb │ │ └── rds_spec.rb │ ├── flipper_zero_spec.rb │ ├── son_micro_rfid_spec.rb │ └── frequency_allocation_spec.rb │ ├── version_spec.rb │ ├── aws │ ├── s3_spec.rb │ ├── acm_spec.rb │ ├── ec2_spec.rb │ ├── ecr_spec.rb │ ├── ecs_spec.rb │ ├── efs_spec.rb │ ├── emr_spec.rb │ ├── iam_spec.rb │ ├── iot_spec.rb │ ├── kms_spec.rb │ ├── lex_spec.rb │ ├── rds_spec.rb │ ├── ses_spec.rb │ ├── sms_spec.rb │ ├── sns_spec.rb │ ├── sqs_spec.rb │ ├── ssm_spec.rb │ ├── sts_spec.rb │ ├── swf_spec.rb │ ├── waf_spec.rb │ ├── x_ray_spec.rb │ ├── batch_spec.rb │ ├── health_spec.rb │ ├── lambda_spec.rb │ ├── polly_spec.rb │ ├── shield_spec.rb │ ├── states_spec.rb │ ├── budgets_spec.rb │ ├── glacier_spec.rb │ ├── kinesis_spec.rb │ ├── route53_spec.rb │ ├── support_spec.rb │ ├── cloud_hsm_spec.rb │ ├── dynamo_db_spec.rb │ ├── firehose_spec.rb │ ├── game_lift_spec.rb │ ├── ops_works_spec.rb │ ├── pinpoint_spec.rb │ ├── redshift_spec.rb │ ├── simple_db_spec.rb │ ├── snowball_spec.rb │ ├── app_stream_spec.rb │ ├── code_build_spec.rb │ ├── inspector_spec.rb │ ├── lightsail_spec.rb │ ├── api_gateway_spec.rb │ ├── cloud_front_spec.rb │ ├── cloud_trail_spec.rb │ ├── cloud_watch_spec.rb │ ├── code_commit_spec.rb │ ├── code_deploy_spec.rb │ ├── device_farm_spec.rb │ ├── ops_works_cm_spec.rb │ ├── rekognition_spec.rb │ ├── workspaces_spec.rb │ ├── auto_scaling_spec.rb │ ├── cloud_search_spec.rb │ ├── code_pipeline_spec.rb │ ├── cognito_sync_spec.rb │ ├── elasti_cache_spec.rb │ ├── import_export_spec.rb │ ├── waf_regional_spec.rb │ ├── config_service_spec.rb │ ├── data_pipleline_spec.rb │ ├── direct_connect_spec.rb │ ├── iot_data_plane_spec.rb │ ├── lambda_preview_spec.rb │ ├── cloud_formation_spec.rb │ ├── cloud_watch_logs_spec.rb │ ├── route53_domains_spec.rb │ ├── service_catalog_spec.rb │ ├── storage_gateway_spec.rb │ ├── cognito_identity_spec.rb │ ├── dynamo_db_streams_spec.rb │ ├── machine_learning_spec.rb │ ├── cloud_watch_events_spec.rb │ ├── directory_service_spec.rb │ ├── elastic_beanstalk_spec.rb │ ├── elastic_transcoder_spec.rb │ ├── kinesis_analytics_spec.rb │ ├── cloud_search_domain_spec.rb │ ├── marketplace_metering_spec.rb │ ├── elastic_load_balancing_spec.rb │ ├── elasticsearch_service_spec.rb │ ├── application_auto_scaling_spec.rb │ ├── cognito_identity_provider_spec.rb │ ├── elastic_load_balancing_v2_spec.rb │ ├── database_migration_service_spec.rb │ ├── application_discovery_service_spec.rb │ └── marketplace_commerce_analytics_spec.rb │ ├── banner_spec.rb │ ├── config_spec.rb │ ├── driver_spec.rb │ ├── ai │ ├── grok_spec.rb │ ├── ollama_spec.rb │ ├── open_ai_spec.rb │ └── introspection_spec.rb │ ├── www │ ├── bing_spec.rb │ ├── uber_spec.rb │ ├── google_spec.rb │ ├── paypal_spec.rb │ ├── synack_spec.rb │ ├── torch_spec.rb │ ├── upwork_spec.rb │ ├── checkip_spec.rb │ ├── pandora_spec.rb │ ├── twitter_spec.rb │ ├── youtube_spec.rb │ ├── bug_crowd_spec.rb │ ├── facebook_spec.rb │ ├── linkedin_spec.rb │ ├── pastebin_spec.rb │ ├── hacker_one_spec.rb │ ├── duckduckgo_spec.rb │ ├── app_cobalt_io_spec.rb │ ├── coinbase_pro_spec.rb │ ├── trading_view_spec.rb │ └── wayback_machine_spec.rb │ ├── ffi │ └── stdio_spec.rb │ ├── plugins │ ├── ps_spec.rb │ ├── ein_spec.rb │ ├── git_spec.rb │ ├── irc_spec.rb │ ├── log_spec.rb │ ├── ocr_spec.rb │ ├── ssn_spec.rb │ ├── tor_spec.rb │ ├── vin_spec.rb │ ├── xxd_spec.rb │ ├── beef_spec.rb │ ├── char_spec.rb │ ├── fuzz_spec.rb │ ├── pony_spec.rb │ ├── repl_spec.rb │ ├── sock_spec.rb │ ├── vault_spec.rb │ ├── voice_spec.rb │ ├── android_spec.rb │ ├── baresip_spec.rb │ ├── file_fu_spec.rb │ ├── github_spec.rb │ ├── hunter_spec.rb │ ├── ip_info_spec.rb │ ├── jenkins_spec.rb │ ├── msr206_spec.rb │ ├── nmap_it_spec.rb │ ├── oauth2_spec.rb │ ├── openvas_spec.rb │ ├── packet_spec.rb │ ├── serial_spec.rb │ ├── shodan_spec.rb │ ├── spider_spec.rb │ ├── vsphere_spec.rb │ ├── zaproxy_spec.rb │ ├── assembly_spec.rb │ ├── dao_ldap_spec.rb │ ├── dao_mongo_spec.rb │ ├── detect_os_spec.rb │ ├── open_api_spec.rb │ ├── pdf_parse_spec.rb │ ├── rabbit_mq_spec.rb │ ├── basic_auth_spec.rb │ ├── burp_suite_spec.rb │ ├── bus_pirate_spec.rb │ ├── hacker_one_spec.rb │ ├── mail_agent_spec.rb │ ├── pwn_logger_spec.rb │ ├── uri_scheme_spec.rb │ ├── credit_card_spec.rb │ ├── dao_sqlite3_spec.rb │ ├── defect_dojo_spec.rb │ ├── metasploit_spec.rb │ ├── thread_pool_spec.rb │ ├── twitter_api_spec.rb │ ├── dao_postgres_spec.rb │ ├── json_pathify_spec.rb │ ├── monkey_patch_spec.rb │ ├── nessus_cloud_spec.rb │ ├── slack_client_spec.rb │ ├── jira_data_center_spec.rb │ ├── scannable_codes_spec.rb │ ├── nexpose_vuln_scan_spec.rb │ ├── transparent_browser_spec.rb │ ├── authentication_helper_spec.rb │ └── black_duck_binary_analysis_spec.rb │ ├── reports │ ├── fuzz_spec.rb │ ├── sast_spec.rb │ ├── phone_spec.rb │ ├── uri_buster_spec.rb │ ├── html_footer_spec.rb │ └── html_header_spec.rb │ ├── blockchain │ ├── btc_spec.rb │ └── eth_spec.rb │ └── banner │ ├── anon_spec.rb │ ├── ninja_spec.rb │ ├── bubble_spec.rb │ ├── jmp_esp_spec.rb │ ├── matrix_spec.rb │ ├── pirate_spec.rb │ ├── radare2_spec.rb │ ├── cheshire_spec.rb │ └── code_cave_spec.rb ├── vagrant └── provisioners │ ├── exploit-db.sh │ ├── toggle_tor.sh │ ├── openvas_wrappers.sh │ ├── nmap_all_live_hosts.sh │ ├── gem.sh │ ├── userland_lvm.sh │ ├── pwn.sh │ ├── ssllabs-scan.sh │ ├── post_install.sh │ └── rvm.sh ├── documentation ├── PWN.png ├── fax-waveform.png ├── pwn_install.png ├── fax-spectrogram.png ├── pwn_wallpaper.jpg ├── ringing-waveform.png ├── ringing-spectrogram.png ├── PWN_Contributors_and_Users.png └── pwn_android_war_dialer_session.png ├── lib └── pwn │ ├── version.rb │ ├── ffi.rb │ ├── blockchain.rb │ ├── ai.rb │ └── sdr │ └── decoder.rb ├── packer ├── provisioners │ ├── docker_bashrc.sh │ ├── sox.sh │ ├── zzuf.sh │ ├── amass.sh │ ├── awscli.sh │ ├── nmap.sh │ ├── scapy.sh │ ├── strace.sh │ ├── sublist3r.sh │ ├── ansible.sh │ ├── eyewitness.sh │ ├── terminator.sh │ ├── tor.sh │ ├── gdb.sh │ ├── toggle_tor.sh │ ├── SecLists.sh │ ├── fuzzdb.sh │ ├── ghidra.sh │ ├── scout2.sh │ ├── twinkle.sh │ ├── PayloadsAllTheThings.sh │ ├── openvpn.sh │ ├── git.sh │ ├── curl.sh │ ├── ffmpeg.sh │ ├── coreutils.sh │ ├── radamsa.sh │ ├── vmware_tools.sh │ ├── openvas_wrappers.sh │ ├── firefox.sh │ ├── chrome.sh │ ├── geckodriver.sh │ ├── peda.sh │ ├── preeny.sh │ ├── reboot_os.sh │ ├── ssllabs-scan.sh │ ├── bashrc.sh │ ├── rc.local.sh │ ├── irc.sh │ ├── openvas.sh │ ├── android.sh │ ├── virtualbox_guest_additions.sh │ └── install_vagrant_ssh_key.sh ├── deploy_docker_containers.sh └── packer_secrets.json.EXAMPLE ├── vagrant_rsync_userland_template.lst ├── upgrade_pwn.sh ├── CONTRIBUTING.md ├── bin ├── pwn_char_dec_encoding ├── pwn_char_url_encoding ├── pwn_serial_qualcomm_commands ├── pwn_char_html_entity_encoding ├── pwn_char_base64_encoding ├── pwn_char_unicode_escaped_encoding └── pwn_char_hex_escaped_encoding └── Rakefile /.ruby-gemset: -------------------------------------------------------------------------------- 1 | pwn 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.4.7 2 | -------------------------------------------------------------------------------- /third_party/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: 0dayInc 2 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/jobs_userland/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vagrant_rsync_third_party.lst: -------------------------------------------------------------------------------- 1 | third_party/burpsuite-pro.jar 2 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'pwn' 4 | -------------------------------------------------------------------------------- /vagrant/provisioners/exploit-db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | sudo searchsploit -u 3 | -------------------------------------------------------------------------------- /etc/userland/aws/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/aws/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/qemu/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /documentation/PWN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/PWN.png -------------------------------------------------------------------------------- /etc/userland/docker/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/docker/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/qemu/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/openvas/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/postgres/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | -------------------------------------------------------------------------------- /documentation/fax-waveform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/fax-waveform.png -------------------------------------------------------------------------------- /documentation/pwn_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/pwn_install.png -------------------------------------------------------------------------------- /lib/pwn/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module PWN 4 | VERSION = '0.5.518' 5 | end 6 | -------------------------------------------------------------------------------- /packer/provisioners/docker_bashrc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo 'source /etc/profile.d/rvm.sh' >> ~/.bashrc 3 | -------------------------------------------------------------------------------- /documentation/fax-spectrogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/fax-spectrogram.png -------------------------------------------------------------------------------- /documentation/pwn_wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/pwn_wallpaper.jpg -------------------------------------------------------------------------------- /vagrant/provisioners/toggle_tor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo /bin/bash --login -c 'cd /opt/toggle_tor && git pull' 3 | -------------------------------------------------------------------------------- /documentation/ringing-waveform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/ringing-waveform.png -------------------------------------------------------------------------------- /etc/userland/aws/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /etc/userland/qemu/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /documentation/ringing-spectrogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/ringing-spectrogram.png -------------------------------------------------------------------------------- /etc/userland/docker/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /etc/userland/vmware/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/defectdojo/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | url: '' 2 | user: 'pwnadmin' 3 | api_key: '' 4 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | cpus: 1 2 | memory: 4096 3 | hostname: pwndeployed.pwn.local 4 | diskMB: 36864 5 | -------------------------------------------------------------------------------- /vagrant/provisioners/openvas_wrappers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo /bin/bash --login -c 'cd /opt/openvas_wrappers && git pull' 3 | -------------------------------------------------------------------------------- /vagrant/provisioners/nmap_all_live_hosts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo /bin/bash --login -c 'cd /opt/nmap_all_live_hosts && git pull' 3 | -------------------------------------------------------------------------------- /documentation/PWN_Contributors_and_Users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/PWN_Contributors_and_Users.png -------------------------------------------------------------------------------- /documentation/pwn_android_war_dialer_session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0dayInc/pwn/HEAD/documentation/pwn_android_war_dialer_session.png -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/aws/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/docker/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /etc/userland/qemu/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/wpscan.rules: -------------------------------------------------------------------------------- 1 | # wpscan found something if the console output contains [+] 2 | warning /\[\!\].+$/ 3 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/metasploit/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | msfrpcd_host: '127.0.0.1' 2 | port: 55553 3 | username: 'pwnadmin' 4 | password: 'changeme' 5 | -------------------------------------------------------------------------------- /vagrant/provisioners/gem.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | printf "Updating RubyGems (i.e. gem command)..." 3 | gem update --system 4 | echo "complete." 5 | -------------------------------------------------------------------------------- /etc/userland/aws/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/aws/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/qemu/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/qemu/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/docker/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/docker/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/burpsuite/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | burpsuite_pro_jar_sha256_sum: 2 | license_key: 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/letsencrypt/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | domains: 2 | - jenkins.DOMAIN 3 | - openvas.DOMAIN 4 | - sast.DOMAIN 5 | email: youremail@DOMAIN 6 | -------------------------------------------------------------------------------- /etc/userland/vmware/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | vagrant_vmware_license: "/tmp/license.lic" 2 | cpus: 1 3 | memory: 4096 4 | hostname: pwndeployed.pwn.local 5 | diskMB: 36864 6 | -------------------------------------------------------------------------------- /packer/provisioners/sox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y sox ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/zzuf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y zzuf ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /vagrant/provisioners/userland_lvm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo pvresize /dev/sda5 4 | sudo lvresize -l +100%FREE /dev/kali-vg/root 5 | sudo resize2fs /dev/kali-vg/root 6 | -------------------------------------------------------------------------------- /packer/provisioners/amass.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y amass ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/awscli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y awscli ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/nmap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y nmap ncat ndiff ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/scapy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y python-scapy ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/strace.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y strace ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/sublist3r.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y sublist3r ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/ansible.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y ansible ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/eyewitness.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y eyewitness ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/terminator.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y terminator ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/tor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y tor tor-geoipdb torsocks ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/gdb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y gdb gdbserver systemd-coredump ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/toggle_tor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo /bin/bash --login -c 'cd /opt && git clone https://github.com/ninp0/toggle_tor.git && ln -sf /opt/toggle_tor/toggle_tor.sh /usr/local/bin/' 3 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/sast.rules: -------------------------------------------------------------------------------- 1 | # Warn when an x has been identified in console output for any test case (implies security pattern matched) 2 | warning /\=\>(.+x.*)(?=complete.)/ 3 | -------------------------------------------------------------------------------- /packer/provisioners/SecLists.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "cd /opt && git clone https://github.com/danielmiessler/SecLists SecLists-dev ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/fuzzdb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "cd /opt && git clone https://github.com/fuzzdb-project/fuzzdb.git fuzzdb-dev ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/ghidra.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "cd /opt && git clone https://github.com/NationalSecurityAgency/ghidra ghidra-dev ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /packer/provisioners/scout2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | # Security Auditing tool for AWS Environments 3 | # $ Scout2 -h 4 | # More information available here: https://github.com/nccgroup/Scout2 5 | sudo -H pip install awsscout2 6 | -------------------------------------------------------------------------------- /packer/provisioners/twinkle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | # Install cmd-line-based SIP / VOIP client 5 | $screen_cmd "${apt} install -y twinkle-console ${assess_update_errors}" 6 | grok_error 7 | -------------------------------------------------------------------------------- /etc/userland/aws/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/aws/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/qemu/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/qemu/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/docker/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/docker/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/vmware/apache2/jenkins_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName jenkins.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /etc/userland/vmware/apache2/openvas_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName openvas.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | 8 | -------------------------------------------------------------------------------- /vagrant_rsync_userland_template.lst: -------------------------------------------------------------------------------- 1 | apache2/vagrant.yaml 2 | burpsuite/vagrant.yaml 3 | jenkins/jobs_userland 4 | jenkins/vagrant.yaml 5 | letsencrypt/vagrant.yaml 6 | metasploit/vagrant.yaml 7 | openvas/vagrant.yaml 8 | recon-ng/vagrant.yaml 9 | -------------------------------------------------------------------------------- /packer/provisioners/PayloadsAllTheThings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "cd /opt && git clone https://github.com/swisskyrepo/PayloadsAllTheThings PayloadsAllTheThings-dev ${assess_update_errors}" 5 | grok_error 6 | -------------------------------------------------------------------------------- /upgrade_pwn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | if [[ -d '/opt/pwn' ]]; then 3 | pwn_root='/opt/pwn' 4 | else 5 | pwn_root="${PWN_ROOT}" 6 | fi 7 | 8 | export rvmsudo_secure_path=1 9 | rvmsudo /bin/bash --login -c "cd ${pwn_root} && ./build_gem.sh" 10 | -------------------------------------------------------------------------------- /packer/provisioners/openvpn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y openvpn resolvconf ${assess_update_errors}" 5 | grok_error 6 | sudo systemctl enable resolvconf 7 | sudo systemctl start resolvconf 8 | -------------------------------------------------------------------------------- /packer/provisioners/git.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | printf "Installing Git ********************************************************************" 5 | $screen_cmd "${apt} install -y git ${assess_update_errors}" 6 | grok_error 7 | -------------------------------------------------------------------------------- /spec/lib/pwn_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN do 6 | it 'should return data for help method' do 7 | help_response = PWN.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /packer/provisioners/curl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | printf "Installing Curl ********************************************************************" 5 | $screen_cmd "${apt} install -y curl ${assess_update_errors}" 6 | grok_error 7 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/arachni.rules: -------------------------------------------------------------------------------- 1 | # Arachni found something if the console output contains [+] 2 | warning /^\[\+\] [1-9][0-9]{1,} issues were detected\./ 3 | 4 | # Success if 0 issues were detected 5 | info /^\[\+\] 0 issues were detected\.$/ 6 | -------------------------------------------------------------------------------- /packer/provisioners/ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | printf "Installing ffmpeg ********************************************************************" 5 | $screen_cmd "${apt} install -y ffmpeg ${assess_update_errors}" 6 | grok_error 7 | -------------------------------------------------------------------------------- /spec/lib/pwn/ai_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AI do 6 | it 'should return data for help method' do 7 | help_response = PWN::AI.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /packer/provisioners/coreutils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | printf "Installing Curl ********************************************************************" 5 | $screen_cmd "${apt} install -y coreutils ${assess_update_errors}" 6 | grok_error 7 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS do 6 | it 'should return data for help method' do 7 | help_response = PWN::AWS.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/ffi_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::FFI do 6 | it 'should return data for help method' do 7 | help_response = PWN::FFI.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/sast_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SAST do 6 | it 'should return data for help method' do 7 | help_response = PWN::SAST.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR do 6 | it 'should return data for help method' do 7 | help_response = PWN::SDR.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/www_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW do 6 | it 'should return data for help method' do 7 | help_response = PWN::WWW.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins do 6 | it 'should return data for help method' do 7 | help_response = PWN::Plugins.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports do 6 | it 'should return data for help method' do 7 | help_response = PWN::Reports.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /etc/userland/aws/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/aws/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/aws/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/docker/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/qemu/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/qemu/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/vmware/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/docker/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/docker/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/qemu/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/arachni/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/vmware/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/vmware/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /spec/lib/pwn/blockchain_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Blockchain do 6 | it 'should return data for help method' do 7 | help_response = PWN::Blockchain.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/burpsuite/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/owasp_zap/navigation.instruct.EXAMPLE: -------------------------------------------------------------------------------- 1 | text_field(id: 'username').wait_until(&:present?).set('') 2 | text_field(id: 'password').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mask_password)) 3 | button(name: 'login').wait_until(&:present?).click! 4 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/decoder_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::Decoder do 6 | it 'should return data for help method' do 7 | help_response = PWN::SDR::Decoder.help 8 | expect(help_response).not_to be_nil 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwn.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /etc/userland/aws/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwndeployed.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /etc/userland/qemu/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwndeployed.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /packer/provisioners/radamsa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y gcc make git wget ${assess_update_errors}" 5 | grok_error 6 | 7 | sudo /bin/bash --login -c 'cd /opt && git clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && make install' 8 | -------------------------------------------------------------------------------- /packer/provisioners/vmware_tools.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y linux-headers-$(uname -r) ${assess_update_errors}" 5 | grok_error 6 | 7 | $screen_cmd "${apt} install --reinstall -y open-vm-tools-desktop fuse3 ${assess_update_errors}" 8 | grok_error 9 | -------------------------------------------------------------------------------- /etc/userland/docker/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwndeployed.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwndeployed.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /etc/userland/vmware/apache2/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | # self_signed || letsencrypt# 2 | tls_deployment_type: 'self_signed' 3 | country_name: 'US' 4 | state_or_prov: 'NY' 5 | city_name: 'New York' 6 | org_company_name: 'Company' 7 | org_unit_name: 'Unit' 8 | common_name_fqdn: 'pwndeployed.local' 9 | email_addr: '' 10 | -------------------------------------------------------------------------------- /third_party/r2-pwn-layout: -------------------------------------------------------------------------------- 1 | {"Title":"Disassembly","Cmd":"pd","x":0,"y":1,"w":100,"h":38},{"Title":"Stack","Cmd":"pxq 256","x":0,"y":39,"w":100,"h":16},{"Title":"Hexdump","Cmd":"xc $r*16","x":0,"y":55,"w":100,"h":16},{"Title":"Registers","Cmd":"dr","x":100,"y":1,"w":35,"h":70},{"Title":"Function Calls","Cmd":"aflm","x":135,"y":1,"w":44,"h":70} 2 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/aws/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /etc/userland/docker/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/qemu/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/vmware/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/ssllabs-scan.rules: -------------------------------------------------------------------------------- 1 | # Fail 2 | error /("grade"(:\s+|:)("D\+"|"D"|"D-"|"F")|Certificate not valid for domain name|Unable to connect to the server)/ 3 | 4 | # Warn as TLS Certs Begin to Degrade 5 | warning /"grade"(:\s+|:)("B\+"|"B"|"B-"|"C\+"|"C"|"C-")/ 6 | 7 | # Build Success 8 | info /"grade"(:\s+|:)("A\+"|"A"|"A-")/ 9 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/apache2/sast_80.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName sast.DOMAIN 3 | 4 | RewriteEngine on 5 | ReWriteCond %{SERVER_PORT} !^443$ 6 | RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 7 | RewriteCond %{SERVER_NAME} =sast.DOMAIN 8 | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 9 | 10 | -------------------------------------------------------------------------------- /packer/provisioners/openvas_wrappers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "cd /opt && git clone https://github.com/ninp0/openvas_wrappers.git && ln -sf /opt/openvas_wrappers/continuous_openvas_scan_task.sh /usr/local/bin/ && ln -sf /opt/openvas_wrappers/continuous_openvas_scan_task_cert_authn.sh /usr/local/bin/ ${assess_update_errors}" 5 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /packer/provisioners/firefox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | # NOTE: As soon as firefox esr supports the headless flag, this provisioner can be removed. 5 | printf "Installing Firefox ********************************************************************" 6 | $screen_cmd "${apt} install -y firefox-esr ${assess_update_errors}" 7 | grok_error 8 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/system_maintenance.rules: -------------------------------------------------------------------------------- 1 | # FYI: Prone to false positives 2 | # Mark Build as Failed if the Following Generic Strings are Discovered 3 | error /(?i)(error|stacktrace|exception):/ 4 | 5 | # Mark Build as Unstable if the Following Generic Strings are Discovered 6 | warning /(?i)warning:/ 7 | 8 | # Build Success 9 | info /.*/ 10 | -------------------------------------------------------------------------------- /packer/provisioners/chrome.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} remove -y chrome-gnome-shell ${assess_update_errors}" 5 | grok_error 6 | 7 | $screen_cmd "${apt} install -y chromium ${assess_update_errors}" 8 | grok_error 9 | 10 | $screen_cmd "${apt} install -y chromium-driver ${assess_update_errors}" 11 | grok_error 12 | -------------------------------------------------------------------------------- /packer/provisioners/geckodriver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | # Preferred way over to install geckodriver instead 5 | # of attempting to grab latest gecko on our own 6 | # geckodriver is implicitly installed as a dependency of 7 | # eyewitness :) 8 | $screen_cmd "${apt} install -y eyewitness ${assess_update_errors}" 9 | grok_error 10 | -------------------------------------------------------------------------------- /packer/provisioners/peda.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | # PEDA - Python Exploit Development Assistance for GDB to be used w/ AFL 3 | sudo /bin/bash --login -c 'cd /opt && git clone https://github.com/longld/peda.git peda-dev && echo "source /opt/peda-dev/peda.py" >> /root/.gdbinit' 4 | sudo -H -u admin /bin/bash --login -c 'echo "source /opt/peda-dev/peda.py" >> /home/admin/.gdbinit' 5 | -------------------------------------------------------------------------------- /packer/provisioners/preeny.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | # PEDA - Python Exploit Development Assistance for GDB to be used w/ AFL 5 | $screen_cmd "${apt} install -y libini-config-dev libseccomp-dev" 6 | grok_error 7 | 8 | sudo /bin/bash --login -c 'cd /opt && git clone https://github.com/zardus/preeny preeny-dev && cd /opt/preeny-dev && make' 9 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | PWN Contribution Rules: 2 | 3 | - loop do 4 | - 'Be Respectful' 5 | - 'Ask Questions' 6 | - 'Fork PWN' 7 | - 'Make Changes' 8 | - 'Create RSpec Tests' 9 | - 'Pass RSpec && RuboCop Tests' 10 | - 'Sign Your Work: https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work' 11 | - 'Submit Pull Requests' 12 | - 'Pass Upstream Tests' 13 | - end 14 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /packer/provisioners/reboot_os.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | # nohup prevents freezes in Packer due to execution moving to the next 3 | # script while a reboot is in progress. This should be coupled with a 4 | # "pause_before" stanza for the next provisioner in the Packer 5 | # to guarantee the required behaviour. 6 | nohup sudo shutdown --reboot now /dev/null 2>&1 & 7 | exit 0 8 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | user: 'pwnadmin' 2 | pass: 'changeme' 3 | fullname: 'changeme' 4 | email: 'changeme@pwn.local' 5 | ssh_keygen_pass: 'changeme' 6 | #jenkins_job_credentials: 7 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000001' } 8 | # - { ssh_username: 'changeme', description: 'changeme', credential_id: '000000002' } 9 | -------------------------------------------------------------------------------- /vagrant/provisioners/pwn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | if [[ $PWN_ROOT == '' ]]; then 3 | if [[ ! -d '/pwn' ]]; then 4 | pwn_root=$(pwd) 5 | else 6 | pwn_root='/pwn' 7 | fi 8 | else 9 | pwn_root="${PWN_ROOT}" 10 | fi 11 | 12 | export rvmsudo_secure_path=1 13 | rvmsudo /bin/bash --login -c "cd ${pwn_root} && git config --global --add safe.directory ${pwn_root} && ./build_gem.sh" 14 | -------------------------------------------------------------------------------- /vagrant/provisioners/ssllabs-scan.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | printf "Updating ssllabs-scan Dependencies..." 3 | sudo apt install -y golang 4 | echo "complete." 5 | 6 | 7 | echo "Updating ssllabs-scan..." 8 | ssllabsscan_root="/opt/ssllabs-scan" 9 | sudo /bin/bash --login -c "cd ${ssllabsscan_root} && git pull && make && ln -sf ${ssllabsscan_root}/ssllabs-scan /usr/bin/" 10 | echo "complete." 11 | -------------------------------------------------------------------------------- /bin/pwn_char_dec_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'pwn' 5 | 6 | opts = PWN::Env[:driver_opts] 7 | PWN::Driver::Parser.new do |options| 8 | options.on('-pSTRING', '--payload=STRING', '') do |p| 9 | opts[:payload] = p 10 | end 11 | end.parse! 12 | 13 | payload = opts[:payload].to_s.scrub 14 | puts payload.unpack('C*') 15 | -------------------------------------------------------------------------------- /etc/userland/aws/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /etc/userland/docker/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /etc/userland/qemu/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /etc/userland/vmware/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/nessus/vagrant.yaml.EXAMPLE: -------------------------------------------------------------------------------- 1 | access_key: 'ACCESS_KEY' 2 | secret_key: 'SECRET_KEY' 3 | credentials: 4 | add: 5 | Host: 6 | Windows: 7 | - domain: 'dc.local' 8 | username: 'USERNAME' 9 | auth_method: 'Password' 10 | password: 'PASSWORD' 11 | plugins: 12 | Web Servers: 13 | individual: 14 | '11213': enabled 15 | '18261': enabled 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/version_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::VERSION do 6 | it 'is defined' do 7 | expect(PWN::VERSION).not_to be_nil 8 | end 9 | 10 | it 'is a string' do 11 | expect(PWN::VERSION).to be_a(String) 12 | end 13 | 14 | it 'matches the expected pattern' do 15 | expect(PWN::VERSION).to match(/\d+\.\d+\.\d+/) 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /bin/pwn_char_url_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'cgi' 5 | require 'pwn' 6 | 7 | opts = PWN::Env[:driver_opts] 8 | PWN::Driver::Parser.new do |options| 9 | options.on('-pSTRING', '--payload=STRING', '') do |p| 10 | opts[:payload] = p 11 | end 12 | end.parse! 13 | 14 | payload = opts[:payload].to_s.scrub 15 | puts CGI.escape(payload) 16 | -------------------------------------------------------------------------------- /bin/pwn_serial_qualcomm_commands: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'pwn' 5 | 6 | serial_obj = PWN::Plugins::Serial.connect 7 | 8 | PWN::Plugins::Serial.request( 9 | serial_obj: serial_obj, 10 | payload: "AT+CLAC\r\n" 11 | ) 12 | 13 | session_data = PWN::Plugins::Serial.dump_session_data 14 | puts session_data 15 | 16 | PWN::Plugins::Serial.disconnect(serial_obj: serial_obj) 17 | -------------------------------------------------------------------------------- /bin/pwn_char_html_entity_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'cgi' 5 | require 'pwn' 6 | 7 | opts = PWN::Env[:driver_opts] 8 | PWN::Driver::Parser.new do |options| 9 | options.on('-pSTRING', '--payload=STRING', '') do |p| 10 | opts[:payload] = p 11 | end 12 | end.parse! 13 | 14 | payload = opts[:payload].to_s.scrub 15 | puts CGI.escapeHTML(payload) 16 | -------------------------------------------------------------------------------- /bin/pwn_char_base64_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'base64' 5 | require 'pwn' 6 | 7 | opts = PWN::Env[:driver_opts] 8 | PWN::Driver::Parser.new do |options| 9 | options.on('-pSTRING', '--payload=STRING', '') do |p| 10 | opts[:payload] = p 11 | end 12 | end.parse! 13 | 14 | payload = opts[:payload].to_s.scrub 15 | puts Base64.strict_encode64(payload) 16 | -------------------------------------------------------------------------------- /packer/provisioners/ssllabs-scan.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | ssllabs_root="/opt/ssllabs-scan" 5 | $screen_cmd "${apt} install -y golang ${assess_update_errors}" 6 | grok_error 7 | 8 | sudo /bin/bash --login -c "cd /opt && git clone https://github.com/ssllabs/ssllabs-scan.git" 9 | sudo /bin/bash --login -c "cd ${ssllabs_root} && make && ln -sf ${ssllabs_root}/ssllabs-scan-v3 /usr/local/bin/ssllabs-scan" 10 | -------------------------------------------------------------------------------- /packer/deploy_docker_containers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | cd $PWN_ROOT/packer && ./deploy_packer_box.sh | grep docker | awk '{print $1}' | while read c; do 3 | echo "BUILDING / DEPLOYING ${c}..." 4 | ./deploy_packer_box.sh $c latest 5 | docker images -a | grep -v -e REPOSITORY -e pwn_prototyper -e kali-linux-docker | awk '{print $3}' | while read i; do docker rmi --force $i 6 | done 7 | sleep 9 8 | done 9 | docker system prune -f 10 | -------------------------------------------------------------------------------- /etc/systemd/openvas.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open Vulnerability Assessment System (OpenVAS) 3 | Requires=apache2.service 4 | After=apache2.service 5 | 6 | [Service] 7 | User=root 8 | RemainAfterExit=yes 9 | ExecStart=$PWN_ROOT/packer/daemons/openvas.rb --action start 10 | ExecReload=$PWN_ROOT/packer/daemons/openvas.rb --action restart 11 | ExecStop=$PWN_ROOT/packer/daemons/openvas.rb --action stop 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/s3_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::S3 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::S3 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::S3 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Banner 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Banner 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/config_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Config do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Config 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Config 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/driver_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Driver do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Driver 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Driver 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /bin/pwn_char_unicode_escaped_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'pwn' 5 | 6 | opts = PWN::Env[:driver_opts] 7 | PWN::Driver::Parser.new do |options| 8 | options.on('-pSTRING', '--payload=STRING', '') do |p| 9 | opts[:payload] = p 10 | end 11 | end.parse! 12 | 13 | payload = opts[:payload].to_s.scrub 14 | puts payload.unpack('U*').map { |i| "\\u#{i.to_s(16).rjust(4, '0')}" }.join 15 | -------------------------------------------------------------------------------- /spec/lib/pwn/ai/grok_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AI::Grok do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AI::Grok 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AI::Grok 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/acm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ACM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ACM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ACM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ec2_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::EC2 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::EC2 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::EC2 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ecr_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ECR do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ECR 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ECR 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ecs_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ECS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ECS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ECS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/efs_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::EFS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::EFS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::EFS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/emr_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::EMR do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::EMR 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::EMR 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/iam_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::IAM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::IAM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::IAM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/iot_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::IoT do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::IoT 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::IoT 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/kms_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::KMS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::KMS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::KMS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/lex_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Lex do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Lex 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Lex 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/rds_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::RDS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::RDS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::RDS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ses_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SES do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SES 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SES 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/sms_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SMS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SMS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SMS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/sns_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SNS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SNS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SNS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/sqs_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SQS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SQS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SQS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ssm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SSM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SSM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SSM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/sts_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::STS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::STS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::STS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/swf_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SWF do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SWF 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SWF 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/waf_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::WAF do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::WAF 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::WAF 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/x_ray_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::XRay do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::XRay 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::XRay 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/gqrx_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::GQRX do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::GQRX 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::GQRX 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/bing_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Bing do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Bing 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Bing 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/uber_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Uber do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Uber 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Uber 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/ai/ollama_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AI::Ollama do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AI::Ollama 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AI::Ollama 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/ai/open_ai_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AI::OpenAI do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AI::OpenAI 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AI::OpenAI 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/batch_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Batch do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Batch 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Batch 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/health_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Health do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Health 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Health 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/lambda_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Lambda do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Lambda 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Lambda 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/polly_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Polly do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Polly 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Polly 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/shield_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Shield do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Shield 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Shield 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/states_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::States do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::States 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::States 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/ffi/stdio_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::FFI::Stdio do 6 | it 'should display information for authors' do 7 | authors_response = PWN::FFI::Stdio 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::FFI::Stdio 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/ps_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::PS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::PS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::PS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/google_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Google do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Google 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Google 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/paypal_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Paypal do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Paypal 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Paypal 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/synack_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Synack do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Synack 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Synack 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/torch_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Torch do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Torch 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Torch 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/upwork_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Upwork do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Upwork 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Upwork 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /vagrant/provisioners/post_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | if [[ $pwn_provider != 'aws' ]]; then 3 | sudo passwd --expire admin 4 | fi 5 | 6 | sudo userdel -r pwnadmin 7 | 8 | # Regenerate SSH Keys 9 | # RSA 10 | yes y | sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa -b 8192 11 | # DSA 12 | yes y | sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa -b 1024 13 | # ECDSA 14 | yes y | sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521 15 | -------------------------------------------------------------------------------- /bin/pwn_char_hex_escaped_encoding: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'pwn' 5 | 6 | opts = PWN::Env[:driver_opts] 7 | PWN::Driver::Parser.new do |options| 8 | options.on('-pSTRING', '--payload=STRING', '') do |p| 9 | opts[:payload] = p 10 | end 11 | end.parse! 12 | 13 | payload = opts[:payload].to_s.scrub 14 | payload.each_char do |char| 15 | print "\\x#{char.to_s.unpack1('H*')}" 16 | end 17 | print "\n" 18 | -------------------------------------------------------------------------------- /packer/packer_secrets.json.EXAMPLE: -------------------------------------------------------------------------------- 1 | { 2 | "vagrant_cloud_token": "VAGRANT CLOUD API TOKEN FOR ARTIFACT UPLOAD", 3 | "aws_access_key": "AWS ACCESS KEY ID FOR AMI GENERATION", 4 | "aws_secret_access_key": "AWS SECRET ACCESS KEY FOR AMI GENERATION", 5 | "aws_ssh_keypair_name": "AWS EC2 SSH KEYPAIR NAME", 6 | "aws_ssh_private_key_file": "AWS EC2 SSH PRIVATE KEY FILEPATH", 7 | "docker_hub_user": "DOCKER HUB USERNAME", 8 | "docker_hub_pass": "DOCKER HUB ACCESS TOKEN" 9 | } 10 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/budgets_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Budgets do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Budgets 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Budgets 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/glacier_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Glacier do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Glacier 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Glacier 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/kinesis_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Kinesis do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Kinesis 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Kinesis 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/route53_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Route53 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Route53 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Route53 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/support_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Support do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Support 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Support 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/ein_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::EIN do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::EIN 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::EIN 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/git_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Git do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Git 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Git 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/irc_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::IRC do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::IRC 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::IRC 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/log_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Log do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Log 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Log 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/ocr_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::OCR do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::OCR 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::OCR 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/ssn_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::SSN do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::SSN 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::SSN 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/tor_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Tor do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Tor 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Tor 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/vin_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::VIN do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::VIN 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::VIN 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/xxd_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::XXD do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::XXD 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::XXD 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/rfidler_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::RFIDler do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::RFIDler 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::RFIDler 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/checkip_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Checkip do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Checkip 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Checkip 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/pandora_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Pandora do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Pandora 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Pandora 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/twitter_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Twitter do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Twitter 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Twitter 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/youtube_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Youtube do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Youtube 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Youtube 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /packer/provisioners/bashrc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source /etc/profile.d/globals.sh 3 | 4 | # Initializes RVM for Normal Users 5 | $screen_cmd "echo 'source /etc/profile.d/rvm.sh' >> /etc/bash.bashrc ${assess_update_errors}" 6 | grok_error 7 | 8 | $screen_cmd "echo 'source /etc/profile.d/aliases.sh' >> /etc/bash.bashrc ${assess_update_errors}" 9 | grok_error 10 | 11 | $screen_cmd "echo 'source /etc/profile.d/pwn_envs.sh' >> /etc/bash.bashrc ${assess_update_errors}" 12 | grok_error 13 | 14 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_hsm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudHSM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudHSM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudHSM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/dynamo_db_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DynamoDB do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DynamoDB 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DynamoDB 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/firehose_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Firehose do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Firehose 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Firehose 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/game_lift_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::GameLift do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::GameLift 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::GameLift 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ops_works_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::OpsWorks do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::OpsWorks 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::OpsWorks 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/pinpoint_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Pinpoint do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Pinpoint 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Pinpoint 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/redshift_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Redshift do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Redshift 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Redshift 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/simple_db_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::SimpleDB do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::SimpleDB 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::SimpleDB 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/snowball_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Snowball do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Snowball 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Snowball 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/beef_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BeEF do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BeEF 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BeEF 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/char_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Char do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Char 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Char 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/fuzz_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Fuzz do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Fuzz 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Fuzz 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/pony_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Pony do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Pony 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Pony 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/repl_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::REPL do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::REPL 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::REPL 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/sock_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Sock do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Sock 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Sock 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/fuzz_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::Fuzz do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::Fuzz 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::Fuzz 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/sast_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::SAST do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::SAST 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::SAST 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/bug_crowd_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::BugCrowd do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::BugCrowd 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::BugCrowd 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/facebook_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Facebook do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Facebook 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Facebook 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/linkedin_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Linkedin do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Linkedin 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Linkedin 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/pastebin_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Pastebin do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Pastebin 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Pastebin 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/app_stream_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::AppStream do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::AppStream 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::AppStream 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/code_build_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CodeBuild do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CodeBuild 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CodeBuild 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/inspector_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Inspector do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Inspector 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Inspector 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/lightsail_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Lightsail do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Lightsail 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Lightsail 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/vault_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Vault do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Vault 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Vault 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/voice_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Voice do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Voice 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Voice 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/phone_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::Phone do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::Phone 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::Phone 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/hacker_one_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::HackerOne do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::HackerOne 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::HackerOne 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/api_gateway_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::APIGateway do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::APIGateway 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::APIGateway 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_front_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudFront do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudFront 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudFront 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_trail_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudTrail do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudTrail 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudTrail 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_watch_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudWatch do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudWatch 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudWatch 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/code_commit_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CodeCommit do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CodeCommit 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CodeCommit 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/code_deploy_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CodeDeploy do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CodeDeploy 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CodeDeploy 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/device_farm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DeviceFarm do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DeviceFarm 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DeviceFarm 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/ops_works_cm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::OpsWorksCM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::OpsWorksCM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::OpsWorksCM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/rekognition_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Rekognition do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Rekognition 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Rekognition 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/workspaces_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Workspaces do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Workspaces 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Workspaces 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/blockchain/btc_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Blockchain::BTC do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Blockchain::BTC 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Blockchain::BTC 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/blockchain/eth_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Blockchain::ETH do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Blockchain::ETH 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Blockchain::ETH 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/android_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Android do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Android 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Android 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/baresip_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BareSIP do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BareSIP 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BareSIP 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/file_fu_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::FileFu do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::FileFu 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::FileFu 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/github_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Github do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Github 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Github 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/hunter_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Hunter do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Hunter 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Hunter 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/ip_info_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::IPInfo do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::IPInfo 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::IPInfo 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/jenkins_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Jenkins do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Jenkins 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Jenkins 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/msr206_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::MSR206 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::MSR206 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::MSR206 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/nmap_it_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::NmapIt do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::NmapIt 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::NmapIt 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/oauth2_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::OAuth2 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::OAuth2 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::OAuth2 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/openvas_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::OpenVAS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::OpenVAS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::OpenVAS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/packet_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Packet do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Packet 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Packet 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/serial_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Serial do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Serial 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Serial 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/shodan_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Shodan do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Shodan 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Shodan 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/spider_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Spider do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Spider 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Spider 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/vsphere_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Vsphere do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Vsphere 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Vsphere 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/zaproxy_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Zaproxy do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Zaproxy 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Zaproxy 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/duckduckgo_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::Duckduckgo do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::Duckduckgo 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::Duckduckgo 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /lib/pwn/ffi.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module PWN 4 | # This file, using the autoload directive loads FFI modules 5 | # into memory only when they're needed. For more information, see: 6 | # http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html 7 | module FFI 8 | autoload :Stdio, 'pwn/ffi/stdio' 9 | 10 | # Display a List of Every PWN::FFI Module 11 | 12 | public_class_method def self.help 13 | constants.sort 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /spec/lib/pwn/ai/introspection_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AI::Introspection do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AI::Introspection 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AI::Introspection 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/auto_scaling_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::AutoScaling do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::AutoScaling 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::AutoScaling 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_search_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudSearch do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudSearch 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudSearch 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/code_pipeline_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CodePipeline do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CodePipeline 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CodePipeline 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cognito_sync_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CognitoSync do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CognitoSync 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CognitoSync 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elasti_cache_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElastiCache do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElastiCache 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElastiCache 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/import_export_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ImportExport do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ImportExport 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ImportExport 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/waf_regional_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::WAFRegional do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::WAFRegional 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::WAFRegional 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/assembly_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Assembly do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Assembly 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Assembly 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/dao_ldap_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DAOLDAP do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DAOLDAP 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DAOLDAP 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/dao_mongo_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DAOMongo do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DAOMongo 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DAOMongo 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/detect_os_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DetectOS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DetectOS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DetectOS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/open_api_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::OpenAPI do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::OpenAPI 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::OpenAPI 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/pdf_parse_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::PDFParse do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::PDFParse 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::PDFParse 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/rabbit_mq_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::RabbitMQ do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::RabbitMQ 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::RabbitMQ 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/decoder/gsm_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::Decoder::GSM do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::Decoder::GSM 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::Decoder::GSM 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/decoder/rds_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::Decoder::RDS do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::Decoder::RDS 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::Decoder::RDS 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/flipper_zero_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::FlipperZero do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::FlipperZero 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::FlipperZero 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/app_cobalt_io_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::AppCobaltIO do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::AppCobaltIO 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::AppCobaltIO 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/coinbase_pro_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::CoinbasePro do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::CoinbasePro 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::CoinbasePro 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/trading_view_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::TradingView do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::TradingView 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::TradingView 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /packer/provisioners/rc.local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | # Configure simple tasks to run @ boot 5 | sudo tee -a '/etc/rc.local' << 'EOF' 6 | #!/bin/sh -e 7 | ifconfig lo:0 127.0.0.2 netmask 255.0.0.0 up 8 | ifconfig lo:1 127.0.0.3 netmask 255.0.0.0 up 9 | ifconfig lo:2 127.0.0.4 netmask 255.0.0.0 up 10 | #sudo -H -u admin /usr/local/bin/toggle_tor.sh 11 | 12 | exit 0 13 | EOF 14 | 15 | $screen_cmd "chmod 755 /etc/rc.local ${assess_update_errors}" 16 | grok_error 17 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/config_service_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ConfigService do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ConfigService 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ConfigService 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/data_pipleline_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DataPipeline do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DataPipeline 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DataPipeline 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/direct_connect_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DirectConnect do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DirectConnect 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DirectConnect 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/iot_data_plane_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::IoTDataPlane do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::IoTDataPlane 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::IoTDataPlane 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/lambda_preview_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::LambdaPreview do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::LambdaPreview 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::LambdaPreview 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/basic_auth_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BasicAuth do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BasicAuth 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BasicAuth 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/burp_suite_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BurpSuite do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BurpSuite 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BurpSuite 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/bus_pirate_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BusPirate do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BusPirate 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BusPirate 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/hacker_one_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::HackerOne do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::HackerOne 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::HackerOne 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/mail_agent_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::MailAgent do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::MailAgent 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::MailAgent 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/pwn_logger_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::PWNLogger do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::PWNLogger 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::PWNLogger 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/uri_scheme_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::URIScheme do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::URIScheme 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::URIScheme 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/uri_buster_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::URIBuster do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::URIBuster 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::URIBuster 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/son_micro_rfid_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::SonMicroRFID do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::SonMicroRFID 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::SonMicroRFID 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_formation_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudFormation do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudFormation 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudFormation 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_watch_logs_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudWatchLogs do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudWatchLogs 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudWatchLogs 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/route53_domains_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::Route53Domains do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::Route53Domains 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::Route53Domains 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/service_catalog_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ServiceCatalog do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ServiceCatalog 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ServiceCatalog 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/storage_gateway_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::StorageGateway do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::StorageGateway 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::StorageGateway 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/credit_card_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::CreditCard do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::CreditCard 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::CreditCard 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/dao_sqlite3_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DAOSQLite3 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DAOSQLite3 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DAOSQLite3 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/defect_dojo_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DefectDojo do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DefectDojo 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DefectDojo 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/metasploit_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::Metasploit do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::Metasploit 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::Metasploit 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/thread_pool_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::ThreadPool do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::ThreadPool 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::ThreadPool 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/twitter_api_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::TwitterAPI do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::TwitterAPI 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::TwitterAPI 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/html_footer_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::HTMLFooter do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::HTMLFooter 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::HTMLFooter 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/reports/html_header_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Reports::HTMLHeader do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Reports::HTMLHeader 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Reports::HTMLHeader 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/www/wayback_machine_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::WWW::WaybackMachine do 6 | it 'should display information for authors' do 7 | authors_response = PWN::WWW::WaybackMachine 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::WWW::WaybackMachine 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cognito_identity_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CognitoIdentity do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CognitoIdentity 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CognitoIdentity 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/dynamo_db_streams_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DynamoDBStreams do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DynamoDBStreams 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DynamoDBStreams 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/machine_learning_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::MachineLearning do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::MachineLearning 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::MachineLearning 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/dao_postgres_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::DAOPostgres do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::DAOPostgres 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::DAOPostgres 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/json_pathify_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::JSONPathify do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::JSONPathify 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::JSONPathify 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/monkey_patch_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::MonkeyPatch do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::MonkeyPatch 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::MonkeyPatch 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/nessus_cloud_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::NessusCloud do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::NessusCloud 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::NessusCloud 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/slack_client_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::SlackClient do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::SlackClient 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::SlackClient 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'bundler/gem_tasks' 4 | require 'rspec/core/rake_task' 5 | require 'rdoc/task' 6 | require 'rubocop/rake_task' 7 | 8 | RSpec::Core::RakeTask.new(:spec) 9 | 10 | RuboCop::RakeTask.new do |rubocop| 11 | config_file = '.rubocop.yml' 12 | rubocop.options = ['-E', '-S', '-c', config_file] 13 | end 14 | 15 | RDoc::Task.new do |rdoc| 16 | rdoc.rdoc_files.include('lib/**/*.rb') 17 | rdoc.rdoc_dir = 'rdoc' 18 | end 19 | 20 | task default: %i[spec rubocop rdoc] 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_watch_events_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudWatchEvents do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudWatchEvents 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudWatchEvents 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/directory_service_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DirectoryService do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DirectoryService 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DirectoryService 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elastic_beanstalk_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElasticBeanstalk do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElasticBeanstalk 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElasticBeanstalk 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elastic_transcoder_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElasticTranscoder do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElasticTranscoder 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElasticTranscoder 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/kinesis_analytics_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::KinesisAnalytics do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::KinesisAnalytics 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::KinesisAnalytics 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cloud_search_domain_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CloudSearchDomain do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CloudSearchDomain 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CloudSearchDomain 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/jira_data_center_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::JiraDataCenter do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::JiraDataCenter 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::JiraDataCenter 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/scannable_codes_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::ScannableCodes do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::ScannableCodes 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::ScannableCodes 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/marketplace_metering_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::MarketplaceMetering do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::MarketplaceMetering 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::MarketplaceMetering 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::NexposeVulnScan do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::NexposeVulnScan 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::NexposeVulnScan 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/sdr/frequency_allocation_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::SDR::FrequencyAllocation do 6 | it 'should display information for authors' do 7 | authors_response = PWN::SDR::FrequencyAllocation 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::SDR::FrequencyAllocation 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elastic_load_balancing_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElasticLoadBalancing do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElasticLoadBalancing 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElasticLoadBalancing 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elasticsearch_service_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElasticsearchService do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElasticsearchService 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElasticsearchService 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /vagrant/provisioners/rvm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | if [[ $PWN_ROOT == '' ]]; then 3 | if [[ ! -d '/pwn' ]]; then 4 | pwn_root=$(pwd) 5 | else 6 | pwn_root='/pwn' 7 | fi 8 | else 9 | pwn_root="${PWN_ROOT}" 10 | fi 11 | 12 | ruby_version=`cat ${pwn_root}/.ruby-version` 13 | ruby_gemset=`cat ${pwn_root}/.ruby-gemset` 14 | printf "Updating RVM..." 15 | rvmsudo rvm get stable 16 | rvm reload 17 | /bin/bash --login -c "source /etc/profile.d/rvm.sh && rvm --default ruby-${ruby_version}@${ruby_gemset}" 18 | echo "complete." 19 | -------------------------------------------------------------------------------- /packer/provisioners/irc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | printf "Installing irssi *********************************************************************" 5 | $screen_cmd "${apt} install -y irssi inspircd ${assess_update_errors}" 6 | grok_error 7 | 8 | sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \ 9 | -i /etc/inspircd/inspircd.conf 10 | sudo systemctl enable inspircd 11 | sudo systemctl restart inspircd 12 | 13 | # TODO: tweak /etc/inspircd/inspircd.conf to compliment pwn-irc AI agents 14 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/transparent_browser_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::TransparentBrowser do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::TransparentBrowser 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::TransparentBrowser 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/application_auto_scaling_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ApplicationAutoScaling do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ApplicationAutoScaling 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ApplicationAutoScaling 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/cognito_identity_provider_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::CognitoIdentityProvider do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::CognitoIdentityProvider 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::CognitoIdentityProvider 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/elastic_load_balancing_v2_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ElasticLoadBalancingV2 do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ElasticLoadBalancingV2 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ElasticLoadBalancingV2 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/database_migration_service_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::DatabaseMigrationService do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::DatabaseMigrationService 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::DatabaseMigrationService 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/authentication_helper_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::AuthenticationHelper do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::AuthenticationHelper 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::AuthenticationHelper 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /etc/userland/aws/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /etc/userland/docker/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /etc/userland/qemu/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /etc/userland/vmware/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /packer/provisioners/openvas.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | if [[ $PWN_ROOT == '' ]]; then 5 | if [[ ! -d '/pwn' ]]; then 6 | pwn_root=$(pwd) 7 | else 8 | pwn_root='/pwn' 9 | fi 10 | else 11 | pwn_root="${PWN_ROOT}" 12 | fi 13 | 14 | $screen_cmd "${apt} install -y gvm ${assess_update_errors}" 15 | grok_error 16 | 17 | sudo systemctl enable redis-server 18 | sudo systemctl start redis-server 19 | sudo gvm-setup 20 | sudo gvm-check-setup 21 | 22 | # Add a working systemd daemon 23 | sudo gvm-start 24 | -------------------------------------------------------------------------------- /etc/userland/ruby-gem/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /etc/userland/virtualbox/jenkins/log_parser_rules/self_update.rules: -------------------------------------------------------------------------------- 1 | #ok /not really/ 2 | 3 | # match line containing 'error', case-insensitive 4 | error /(?i)(^|\s)error(:|\s)/ 5 | 6 | # match line containing 'warning', case-insensitive 7 | warning /(?i)(^|\s)warning(:|\s)/ 8 | 9 | # create a quick access link to lines in the report containing 'INFO' 10 | info /INFO/ 11 | 12 | # each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line. 13 | # also creates a quick access link. 14 | start /BUILD/ 15 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/application_discovery_service_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::ApplicationDiscoveryService do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::ApplicationDiscoveryService 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::ApplicationDiscoveryService 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/aws/marketplace_commerce_analytics_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::AWS::MarketplaceCommerceAnalytics do 6 | it 'should display information for authors' do 7 | authors_response = PWN::AWS::MarketplaceCommerceAnalytics 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::AWS::MarketplaceCommerceAnalytics 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/plugins/black_duck_binary_analysis_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Plugins::BlackDuckBinaryAnalysis do 6 | it 'should display information for authors' do 7 | authors_response = PWN::Plugins::BlackDuckBinaryAnalysis 8 | expect(authors_response).to respond_to :authors 9 | end 10 | 11 | it 'should display information for existing help method' do 12 | help_response = PWN::Plugins::BlackDuckBinaryAnalysis 13 | expect(help_response).to respond_to :help 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /lib/pwn/blockchain.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module PWN 4 | # This file, using the autoload directive loads Blockchain modules 5 | # into memory only when they're needed. For more information, see: 6 | # http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html 7 | module Blockchain 8 | autoload :BTC, 'pwn/blockchain/btc' 9 | autoload :ETH, 'pwn/blockchain/eth' 10 | 11 | # Display a List of Every PWN::Blockchain Module 12 | 13 | public_class_method def self.help 14 | constants.sort 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /packer/provisioners/android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | $screen_cmd "${apt} install -y android-sdk ${assess_update_errors}" 5 | grok_error 6 | 7 | $screen_cmd "${apt} install -y adb ${assess_update_errors}" 8 | grok_error 9 | 10 | $screen_cmd "${apt} install -y apktool ${assess_update_errors}" 11 | grok_error 12 | 13 | $screen_cmd "${apt} install -y fastboot ${assess_update_errors}" 14 | grok_error 15 | 16 | # Bypass Certificate Pinning in Android Applications 17 | $screen_cmd "pip3 install objection ${assess_update_errors}" 18 | grok_error 19 | -------------------------------------------------------------------------------- /lib/pwn/ai.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module PWN 4 | # This file, using the autoload directive loads AI modules 5 | # into memory only when they're needed. For more information, see: 6 | # http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html 7 | module AI 8 | autoload :Grok, 'pwn/ai/grok' 9 | autoload :Introspection, 'pwn/ai/introspection' 10 | autoload :Ollama, 'pwn/ai/ollama' 11 | autoload :OpenAI, 'pwn/ai/open_ai' 12 | 13 | # Display a List of Every PWN::AI Module 14 | 15 | public_class_method def self.help 16 | constants.sort 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /packer/provisioners/virtualbox_guest_additions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | #$screen_cmd "${apt} purge -y virtualbox-* ${assess_update_errors}" 5 | #grok_error 6 | 7 | #$screen_cmd "${apt} install -y linux-headers-$(uname -r) ${assess_update_errors}" 8 | #grok_error 9 | 10 | #$screen_cmd "${apt} install -y virtualbox-guest-x11 ${assess_update_errors}" 11 | #grok_error 12 | 13 | $screen_cmd "${apt} purge -y virtualbox-*" 14 | grok_error 15 | 16 | $screen_cmd "${apt} install -y linux-headers-$(uname -r)" 17 | grok_error 18 | 19 | $screen_cmd "${apt} install -y virtualbox-guest-x11" 20 | grok_error 21 | -------------------------------------------------------------------------------- /lib/pwn/sdr/decoder.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module PWN 4 | # This file, using the autoload directive loads SDR modules 5 | # into memory only when they're needed. For more information, see: 6 | # http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html 7 | module SDR 8 | # Deocder Module for SDR signals. 9 | module Decoder 10 | autoload :GSM, 'pwn/sdr/decoder/gsm' 11 | autoload :RDS, 'pwn/sdr/decoder/rds' 12 | 13 | # Display a List of Every PWN::AI Module 14 | 15 | public_class_method def self.help 16 | constants.sort 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/anon_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Anon do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Anon 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Anon 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Anon 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/ninja_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Ninja do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Ninja 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Ninja 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Ninja 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/bubble_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Bubble do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Bubble 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Bubble 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Bubble 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/jmp_esp_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::JmpEsp do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::JmpEsp 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::JmpEsp 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::JmpEsp 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/matrix_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Matrix do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Matrix 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Matrix 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Matrix 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/pirate_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Pirate do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Pirate 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Pirate 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Pirate 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /packer/provisioners/install_vagrant_ssh_key.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash --login 2 | source /etc/profile.d/globals.sh 3 | 4 | for user in pwnadmin admin; do 5 | if [[ ! -d "/home/${user}/.ssh" ]]; then 6 | sudo mkdir -p /home/$user/.ssh 7 | sudo chmod 0700 /home/$user/.ssh 8 | sudo touch /home/$user/.ssh/authorized_keys 9 | sudo chmod 0600 /home/$user/.ssh/authorized_keys 10 | sudo chown -R $user:$user /home/$user/.ssh 11 | fi 12 | 13 | $screen_cmd "wget --no-check-certificate https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub -O ->> /home/${user}/.ssh/authorized_keys ${assess_update_errors}" 14 | grok_error 15 | done 16 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/radare2_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Radare2 do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Radare2 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Radare2 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Radare2 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/cheshire_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::Cheshire do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::Cheshire 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::Cheshire 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::Cheshire 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /spec/lib/pwn/banner/code_cave_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'spec_helper' 4 | 5 | describe PWN::Banner::CodeCave do 6 | it 'should cointain a method for banner retrieval' do 7 | get_response = PWN::Banner::CodeCave 8 | expect(get_response).to respond_to :get 9 | end 10 | 11 | it 'should display information for authors' do 12 | authors_response = PWN::Banner::CodeCave 13 | expect(authors_response).to respond_to :authors 14 | end 15 | 16 | it 'should display information for existing help method' do 17 | help_response = PWN::Banner::CodeCave 18 | expect(help_response).to respond_to :help 19 | end 20 | end 21 | --------------------------------------------------------------------------------