pwn 0.5.708 → 0.5.710
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/documentation/Installation.md +1 -0
- data/etc/default_skills/exploitdev/SKILL.md +38 -0
- data/etc/default_skills/pwn/ai/agent/extrospection/osint/bridges/SKILL.md +30 -8
- data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/SKILL.md +30 -8
- data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/references/urls.md +1 -1
- data/etc/default_skills/pwn/ai/agent/extrospection/references/urls.md +0 -1
- data/etc/default_skills/pwn/memory_index/SKILL.md +0 -4
- data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +49 -0
- data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
- data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
- data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +58 -0
- data/etc/default_skills/pwn/plugins/credential_attack/references/urls.md +3 -0
- data/etc/default_skills/pwn/plugins/exploit_db/SKILL.md +49 -0
- data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +63 -0
- data/etc/default_skills/pwn/plugins/frida/SKILL.md +51 -0
- data/etc/default_skills/pwn/plugins/fuzz/SKILL.md +2 -0
- data/etc/default_skills/pwn/plugins/gdb/SKILL.md +53 -0
- data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
- data/etc/default_skills/pwn/plugins/k8s/SKILL.md +51 -0
- data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +50 -0
- data/etc/default_skills/pwn/plugins/preflight_checker/SKILL.md +59 -0
- data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +53 -0
- data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
- data/etc/default_skills/pwn/plugins/recon/SKILL.md +57 -0
- data/etc/default_skills/pwn/plugins/recon/references/urls.md +6 -0
- data/etc/default_skills/pwn/plugins/semgrep/SKILL.md +48 -0
- data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
- data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
- data/etc/default_skills/pwn/plugins/volatility/SKILL.md +49 -0
- data/lib/pwn/ai/agent/assembly.rb +4 -1
- data/lib/pwn/ai/agent/btc.rb +4 -1
- data/lib/pwn/ai/agent/burp_suite.rb +5 -2
- data/lib/pwn/ai/agent/curriculum.rb +89 -30
- data/lib/pwn/ai/agent/dispatch.rb +27 -16
- data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
- data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
- data/lib/pwn/ai/agent/extrospection.rb +185 -60
- data/lib/pwn/ai/agent/gqrx.rb +4 -1
- data/lib/pwn/ai/agent/hacker_one.rb +5 -2
- data/lib/pwn/ai/agent/learning.rb +142 -25
- data/lib/pwn/ai/agent/loop.rb +53 -46
- data/lib/pwn/ai/agent/metrics.rb +133 -23
- data/lib/pwn/ai/agent/mistakes.rb +126 -17
- data/lib/pwn/ai/agent/open_goal.rb +25 -9
- data/lib/pwn/ai/agent/policy.rb +158 -18
- data/lib/pwn/ai/agent/prompt_builder.rb +21 -11
- data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
- data/lib/pwn/ai/agent/reflect.rb +9 -5
- data/lib/pwn/ai/agent/registry.rb +65 -12
- data/lib/pwn/ai/agent/result.rb +19 -10
- data/lib/pwn/ai/agent/reward.rb +150 -32
- data/lib/pwn/ai/agent/sast.rb +4 -1
- data/lib/pwn/ai/agent/swarm.rb +72 -36
- data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
- data/lib/pwn/ai/agent/tool_guard.rb +105 -6
- data/lib/pwn/ai/agent/tools/sessions.rb +8 -1
- data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
- data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
- data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
- data/lib/pwn/ai/agent.rb +4 -0
- data/lib/pwn/ai/anthropic.rb +41 -7
- data/lib/pwn/ai/gemini.rb +21 -11
- data/lib/pwn/ai/grok.rb +44 -6
- data/lib/pwn/ai/http_retry.rb +40 -12
- data/lib/pwn/ai/ollama.rb +19 -10
- data/lib/pwn/ai/open_ai.rb +81 -30
- data/lib/pwn/ai/open_web_ui.rb +20 -14
- data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
- data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
- data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
- data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
- data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
- data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
- data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
- data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
- data/lib/pwn/ai/red_team/overreliance.rb +7 -1
- data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
- data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
- data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
- data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
- data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
- data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
- data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
- data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
- data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
- data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
- data/lib/pwn/ai/red_team.rb +4 -0
- data/lib/pwn/ai.rb +4 -0
- data/lib/pwn/aws/acm.rb +5 -2
- data/lib/pwn/aws/api_gateway.rb +10 -7
- data/lib/pwn/aws/app_stream.rb +5 -2
- data/lib/pwn/aws/application_auto_scaling.rb +5 -2
- data/lib/pwn/aws/application_discovery_service.rb +5 -2
- data/lib/pwn/aws/auto_scaling.rb +5 -2
- data/lib/pwn/aws/batch.rb +5 -2
- data/lib/pwn/aws/budgets.rb +5 -2
- data/lib/pwn/aws/cloud_formation.rb +5 -2
- data/lib/pwn/aws/cloud_front.rb +7 -4
- data/lib/pwn/aws/cloud_hsm.rb +5 -2
- data/lib/pwn/aws/cloud_search.rb +5 -2
- data/lib/pwn/aws/cloud_search_domain.rb +5 -2
- data/lib/pwn/aws/cloud_trail.rb +5 -2
- data/lib/pwn/aws/cloud_watch.rb +5 -2
- data/lib/pwn/aws/cloud_watch_events.rb +5 -2
- data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
- data/lib/pwn/aws/code_build.rb +5 -2
- data/lib/pwn/aws/code_commit.rb +5 -2
- data/lib/pwn/aws/code_deploy.rb +5 -2
- data/lib/pwn/aws/code_pipeline.rb +5 -2
- data/lib/pwn/aws/cognito_identity.rb +5 -2
- data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
- data/lib/pwn/aws/cognito_sync.rb +5 -2
- data/lib/pwn/aws/config_service.rb +5 -2
- data/lib/pwn/aws/data_pipleline.rb +5 -2
- data/lib/pwn/aws/database_migration_service.rb +5 -2
- data/lib/pwn/aws/device_farm.rb +5 -2
- data/lib/pwn/aws/direct_connect.rb +5 -2
- data/lib/pwn/aws/directory_service.rb +5 -2
- data/lib/pwn/aws/dynamo_db.rb +5 -2
- data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
- data/lib/pwn/aws/ec2.rb +5 -2
- data/lib/pwn/aws/ecr.rb +5 -2
- data/lib/pwn/aws/ecs.rb +5 -2
- data/lib/pwn/aws/efs.rb +5 -2
- data/lib/pwn/aws/elasti_cache.rb +5 -2
- data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
- data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
- data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
- data/lib/pwn/aws/elastic_transcoder.rb +5 -2
- data/lib/pwn/aws/elasticsearch_service.rb +5 -2
- data/lib/pwn/aws/emr.rb +5 -2
- data/lib/pwn/aws/firehose.rb +5 -2
- data/lib/pwn/aws/game_lift.rb +5 -2
- data/lib/pwn/aws/glacier.rb +6 -3
- data/lib/pwn/aws/health.rb +5 -2
- data/lib/pwn/aws/iam.rb +10 -4
- data/lib/pwn/aws/import_export.rb +5 -2
- data/lib/pwn/aws/inspector.rb +5 -2
- data/lib/pwn/aws/iot.rb +5 -2
- data/lib/pwn/aws/iot_data_plane.rb +5 -2
- data/lib/pwn/aws/kinesis.rb +5 -2
- data/lib/pwn/aws/kinesis_analytics.rb +5 -2
- data/lib/pwn/aws/kms.rb +5 -2
- data/lib/pwn/aws/lambda.rb +5 -2
- data/lib/pwn/aws/lambda_preview.rb +5 -2
- data/lib/pwn/aws/lex.rb +5 -2
- data/lib/pwn/aws/lightsail.rb +5 -2
- data/lib/pwn/aws/machine_learning.rb +5 -2
- data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
- data/lib/pwn/aws/marketplace_metering.rb +5 -2
- data/lib/pwn/aws/ops_works.rb +5 -2
- data/lib/pwn/aws/ops_works_cm.rb +5 -2
- data/lib/pwn/aws/pinpoint.rb +5 -2
- data/lib/pwn/aws/polly.rb +5 -2
- data/lib/pwn/aws/rds.rb +5 -2
- data/lib/pwn/aws/redshift.rb +5 -2
- data/lib/pwn/aws/rekognition.rb +5 -2
- data/lib/pwn/aws/route53.rb +5 -2
- data/lib/pwn/aws/route53_domains.rb +5 -2
- data/lib/pwn/aws/s3.rb +5 -2
- data/lib/pwn/aws/service_catalog.rb +5 -2
- data/lib/pwn/aws/ses.rb +5 -2
- data/lib/pwn/aws/shield.rb +5 -2
- data/lib/pwn/aws/simple_db.rb +5 -2
- data/lib/pwn/aws/sms.rb +5 -2
- data/lib/pwn/aws/snowball.rb +5 -2
- data/lib/pwn/aws/sns.rb +5 -2
- data/lib/pwn/aws/sqs.rb +5 -2
- data/lib/pwn/aws/ssm.rb +5 -2
- data/lib/pwn/aws/states.rb +5 -2
- data/lib/pwn/aws/storage_gateway.rb +5 -2
- data/lib/pwn/aws/sts.rb +4 -1
- data/lib/pwn/aws/support.rb +5 -2
- data/lib/pwn/aws/swf.rb +5 -2
- data/lib/pwn/aws/waf.rb +5 -2
- data/lib/pwn/aws/waf_regional.rb +5 -2
- data/lib/pwn/aws/workspaces.rb +5 -2
- data/lib/pwn/aws/x_ray.rb +5 -2
- data/lib/pwn/aws.rb +4 -0
- data/lib/pwn/banner/anon.rb +3 -0
- data/lib/pwn/banner/bubble.rb +3 -0
- data/lib/pwn/banner/cheshire.rb +3 -0
- data/lib/pwn/banner/code_cave.rb +3 -0
- data/lib/pwn/banner/dont_panic.rb +3 -0
- data/lib/pwn/banner/f_society.rb +3 -0
- data/lib/pwn/banner/fork_bomb.rb +3 -0
- data/lib/pwn/banner/jmp_esp.rb +3 -0
- data/lib/pwn/banner/matrix.rb +5 -1
- data/lib/pwn/banner/ninja.rb +3 -0
- data/lib/pwn/banner/off_the_air.rb +3 -0
- data/lib/pwn/banner/pirate.rb +3 -0
- data/lib/pwn/banner/radare2.rb +3 -0
- data/lib/pwn/banner/radare2_ai.rb +3 -0
- data/lib/pwn/banner/white_rabbit.rb +3 -0
- data/lib/pwn/banner.rb +6 -2
- data/lib/pwn/blockchain/btc.rb +8 -3
- data/lib/pwn/blockchain/eth.rb +10 -3
- data/lib/pwn/blockchain.rb +4 -0
- data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
- data/lib/pwn/bounty.rb +4 -0
- data/lib/pwn/config.rb +79 -13
- data/lib/pwn/cron.rb +297 -20
- data/lib/pwn/driver.rb +2 -18
- data/lib/pwn/ffi/adalm_pluto.rb +65 -11
- data/lib/pwn/ffi/fftw.rb +31 -6
- data/lib/pwn/ffi/hack_rf.rb +59 -8
- data/lib/pwn/ffi/liquid.rb +63 -10
- data/lib/pwn/ffi/rtl_sdr.rb +35 -5
- data/lib/pwn/ffi/soapy_sdr.rb +60 -10
- data/lib/pwn/ffi/stdio.rb +7 -8
- data/lib/pwn/ffi/volk.rb +36 -7
- data/lib/pwn/ffi.rb +12 -0
- data/lib/pwn/memory.rb +136 -16
- data/lib/pwn/memory_index.rb +34 -19
- data/lib/pwn/migrate.rb +34 -24
- data/lib/pwn/module_skills.rb +39 -8
- data/lib/pwn/plugins/aflplusplus.rb +72 -0
- data/lib/pwn/plugins/android.rb +71 -245
- data/lib/pwn/plugins/artifact_registry.rb +71 -0
- data/lib/pwn/plugins/assembly.rb +9 -4
- data/lib/pwn/plugins/authentication_helper.rb +8 -5
- data/lib/pwn/plugins/baresip.rb +59 -12
- data/lib/pwn/plugins/basic_auth.rb +9 -3
- data/lib/pwn/plugins/beef.rb +28 -18
- data/lib/pwn/plugins/binary_parser.rb +133 -0
- data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
- data/lib/pwn/plugins/burp_suite.rb +98 -68
- data/lib/pwn/plugins/bus_pirate.rb +15 -8
- data/lib/pwn/plugins/char.rb +33 -3
- data/lib/pwn/plugins/credential_attack.rb +158 -0
- data/lib/pwn/plugins/credit_card.rb +6 -1
- data/lib/pwn/plugins/dao_ldap.rb +19 -13
- data/lib/pwn/plugins/dao_mongo.rb +11 -5
- data/lib/pwn/plugins/dao_postgres.rb +28 -19
- data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
- data/lib/pwn/plugins/defect_dojo.rb +38 -22
- data/lib/pwn/plugins/detect_os.rb +5 -0
- data/lib/pwn/plugins/ein.rb +3 -0
- data/lib/pwn/plugins/exploit_db.rb +69 -0
- data/lib/pwn/plugins/exploit_dev.rb +330 -0
- data/lib/pwn/plugins/file_fu.rb +11 -8
- data/lib/pwn/plugins/frida.rb +112 -0
- data/lib/pwn/plugins/fuzz.rb +42 -6
- data/lib/pwn/plugins/gdb.rb +115 -0
- data/lib/pwn/plugins/git.rb +19 -14
- data/lib/pwn/plugins/github.rb +38 -15
- data/lib/pwn/plugins/google_workspace.rb +188 -45
- data/lib/pwn/plugins/hacker_one.rb +159 -35
- data/lib/pwn/plugins/hunter.rb +6 -3
- data/lib/pwn/plugins/ip_info.rb +9 -4
- data/lib/pwn/plugins/irc.rb +28 -15
- data/lib/pwn/plugins/jenkins.rb +65 -57
- data/lib/pwn/plugins/jira_data_center.rb +30 -22
- data/lib/pwn/plugins/jobs.rb +110 -0
- data/lib/pwn/plugins/json_pathify.rb +9 -5
- data/lib/pwn/plugins/k8s.rb +73 -0
- data/lib/pwn/plugins/log.rb +113 -13
- data/lib/pwn/plugins/mail_agent.rb +87 -79
- data/lib/pwn/plugins/metasploit.rb +11 -6
- data/lib/pwn/plugins/monkey_patch.rb +3 -0
- data/lib/pwn/plugins/msr206.rb +42 -28
- data/lib/pwn/plugins/nessus_cloud.rb +44 -4
- data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
- data/lib/pwn/plugins/nmap_it.rb +14 -34
- data/lib/pwn/plugins/nuclei.rb +90 -0
- data/lib/pwn/plugins/oauth2.rb +11 -5
- data/lib/pwn/plugins/ocr.rb +3 -0
- data/lib/pwn/plugins/open_api.rb +5 -2
- data/lib/pwn/plugins/openvas.rb +33 -25
- data/lib/pwn/plugins/packet.rb +152 -31
- data/lib/pwn/plugins/pdf_parse.rb +5 -2
- data/lib/pwn/plugins/pony.rb +86 -1
- data/lib/pwn/plugins/preflight_checker.rb +166 -0
- data/lib/pwn/plugins/process_tube.rb +139 -0
- data/lib/pwn/plugins/ps.rb +7 -1
- data/lib/pwn/plugins/pwn_logger.rb +6 -2
- data/lib/pwn/plugins/rabbit_mq.rb +12 -7
- data/lib/pwn/plugins/radare2.rb +253 -0
- data/lib/pwn/plugins/recon.rb +196 -0
- data/lib/pwn/plugins/repl.rb +122 -1
- data/lib/pwn/plugins/scannable_codes.rb +5 -1
- data/lib/pwn/plugins/semgrep.rb +61 -0
- data/lib/pwn/plugins/serial.rb +24 -14
- data/lib/pwn/plugins/shodan.rb +54 -35
- data/lib/pwn/plugins/slack_client.rb +11 -6
- data/lib/pwn/plugins/sock.rb +17 -8
- data/lib/pwn/plugins/spider.rb +5 -2
- data/lib/pwn/plugins/sqlmap.rb +49 -0
- data/lib/pwn/plugins/ssn.rb +3 -0
- data/lib/pwn/plugins/thread_pool.rb +6 -9
- data/lib/pwn/plugins/tor.rb +9 -4
- data/lib/pwn/plugins/transparent_browser.rb +62 -107
- data/lib/pwn/plugins/tty_spinner.rb +16 -2
- data/lib/pwn/plugins/twitter_api.rb +6 -2
- data/lib/pwn/plugins/uri_scheme.rb +4 -1
- data/lib/pwn/plugins/vault.rb +12 -3
- data/lib/pwn/plugins/vin.rb +24 -12
- data/lib/pwn/plugins/voice.rb +7 -2
- data/lib/pwn/plugins/volatility.rb +67 -0
- data/lib/pwn/plugins/vsphere.rb +9 -5
- data/lib/pwn/plugins/xxd.rb +12 -43
- data/lib/pwn/plugins/zaproxy.rb +30 -16
- data/lib/pwn/plugins.rb +22 -0
- data/lib/pwn/reports/ai_red_team.rb +6 -2
- data/lib/pwn/reports/csv.rb +8 -1
- data/lib/pwn/reports/fuzz.rb +5 -2
- data/lib/pwn/reports/html.rb +8 -1
- data/lib/pwn/reports/html_footer.rb +4 -3
- data/lib/pwn/reports/html_header.rb +6 -2
- data/lib/pwn/reports/json.rb +8 -1
- data/lib/pwn/reports/markdown.rb +8 -1
- data/lib/pwn/reports/pdf.rb +8 -1
- data/lib/pwn/reports/phone.rb +5 -2
- data/lib/pwn/reports/sast.rb +6 -2
- data/lib/pwn/reports/uri_buster.rb +5 -2
- data/lib/pwn/reports/xml.rb +8 -1
- data/lib/pwn/reports.rb +19 -0
- data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
- data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
- data/lib/pwn/sast/aws.rb +9 -3
- data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
- data/lib/pwn/sast/base64.rb +9 -3
- data/lib/pwn/sast/beef_hook.rb +9 -3
- data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
- data/lib/pwn/sast/cmd_execution_java.rb +9 -3
- data/lib/pwn/sast/cmd_execution_python.rb +9 -3
- data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
- data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
- data/lib/pwn/sast/csrf.rb +9 -3
- data/lib/pwn/sast/deserial_java.rb +9 -3
- data/lib/pwn/sast/emoticon.rb +9 -3
- data/lib/pwn/sast/eval.rb +9 -3
- data/lib/pwn/sast/factory.rb +9 -3
- data/lib/pwn/sast/http_authorization_header.rb +9 -3
- data/lib/pwn/sast/inner_html.rb +9 -3
- data/lib/pwn/sast/keystore.rb +9 -3
- data/lib/pwn/sast/local_storage.rb +9 -3
- data/lib/pwn/sast/location_hash.rb +9 -3
- data/lib/pwn/sast/log4j.rb +9 -3
- data/lib/pwn/sast/logger.rb +9 -3
- data/lib/pwn/sast/md5.rb +9 -3
- data/lib/pwn/sast/outer_html.rb +9 -3
- data/lib/pwn/sast/padding_oracle.rb +9 -3
- data/lib/pwn/sast/password.rb +9 -3
- data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
- data/lib/pwn/sast/php_type_juggling.rb +9 -3
- data/lib/pwn/sast/pom_version.rb +9 -3
- data/lib/pwn/sast/port.rb +9 -3
- data/lib/pwn/sast/post_message.rb +9 -3
- data/lib/pwn/sast/private_key.rb +9 -3
- data/lib/pwn/sast/redirect.rb +9 -3
- data/lib/pwn/sast/redos.rb +9 -3
- data/lib/pwn/sast/shell.rb +9 -3
- data/lib/pwn/sast/signature.rb +9 -3
- data/lib/pwn/sast/sql.rb +9 -3
- data/lib/pwn/sast/ssl.rb +9 -3
- data/lib/pwn/sast/sudo.rb +9 -3
- data/lib/pwn/sast/task_tag.rb +9 -3
- data/lib/pwn/sast/test_case_engine.rb +11 -7
- data/lib/pwn/sast/throw_errors.rb +9 -3
- data/lib/pwn/sast/token.rb +9 -3
- data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
- data/lib/pwn/sast/use_after_free.rb +9 -3
- data/lib/pwn/sast/version.rb +9 -3
- data/lib/pwn/sast/window_location_hash.rb +9 -3
- data/lib/pwn/sast.rb +4 -0
- data/lib/pwn/sdr/decoder/adsb.rb +36 -5
- data/lib/pwn/sdr/decoder/apt.rb +9 -6
- data/lib/pwn/sdr/decoder/base.rb +74 -22
- data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
- data/lib/pwn/sdr/decoder/dect.rb +12 -3
- data/lib/pwn/sdr/decoder/dsp.rb +229 -39
- data/lib/pwn/sdr/decoder/flex.rb +59 -11
- data/lib/pwn/sdr/decoder/gps.rb +12 -3
- data/lib/pwn/sdr/decoder/gsm.rb +24 -4
- data/lib/pwn/sdr/decoder/iridium.rb +12 -3
- data/lib/pwn/sdr/decoder/lora.rb +13 -4
- data/lib/pwn/sdr/decoder/lte.rb +27 -3
- data/lib/pwn/sdr/decoder/morse.rb +12 -3
- data/lib/pwn/sdr/decoder/p25.rb +12 -3
- data/lib/pwn/sdr/decoder/pager.rb +8 -5
- data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
- data/lib/pwn/sdr/decoder/rds.rb +14 -8
- data/lib/pwn/sdr/decoder/rfid.rb +12 -3
- data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
- data/lib/pwn/sdr/decoder/rtty.rb +8 -5
- data/lib/pwn/sdr/decoder/wifi.rb +12 -3
- data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
- data/lib/pwn/sdr/decoder.rb +9 -0
- data/lib/pwn/sdr/flipper_zero.rb +17 -10
- data/lib/pwn/sdr/frequency_allocation.rb +4 -1
- data/lib/pwn/sdr/gqrx.rb +178 -119
- data/lib/pwn/sdr/rfidler.rb +4 -1
- data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
- data/lib/pwn/sdr.rb +14 -0
- data/lib/pwn/sessions.rb +86 -16
- data/lib/pwn/setup.rb +106 -37
- data/lib/pwn/version.rb +1 -1
- data/lib/pwn/www/app_cobalt_io.rb +11 -5
- data/lib/pwn/www/bing.rb +10 -5
- data/lib/pwn/www/bug_crowd.rb +11 -5
- data/lib/pwn/www/checkip.rb +8 -4
- data/lib/pwn/www/coinbase_pro.rb +11 -5
- data/lib/pwn/www/duckduckgo.rb +12 -6
- data/lib/pwn/www/facebook.rb +11 -5
- data/lib/pwn/www/github.rb +11 -5
- data/lib/pwn/www/google.rb +11 -5
- data/lib/pwn/www/hacker_one.rb +20 -9
- data/lib/pwn/www/linkedin.rb +11 -5
- data/lib/pwn/www/pandora.rb +11 -5
- data/lib/pwn/www/pastebin.rb +9 -4
- data/lib/pwn/www/paypal.rb +19 -11
- data/lib/pwn/www/synack.rb +11 -5
- data/lib/pwn/www/torch.rb +13 -8
- data/lib/pwn/www/trading_view.rb +11 -5
- data/lib/pwn/www/twitter.rb +11 -5
- data/lib/pwn/www/uber.rb +11 -5
- data/lib/pwn/www/upwork.rb +11 -5
- data/lib/pwn/www/wayback_machine.rb +12 -6
- data/lib/pwn/www/youtube.rb +10 -5
- data/lib/pwn/www.rb +4 -0
- data/spec/conventions_spec.rb +118 -2
- data/spec/integration/help_contract_spec.rb +2 -0
- data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
- data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
- data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
- data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
- data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
- data/spec/lib/pwn/plugins/exploit_db_spec.rb +13 -0
- data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
- data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
- data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
- data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
- data/spec/lib/pwn/plugins/k8s_spec.rb +13 -0
- data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
- data/spec/lib/pwn/plugins/preflight_checker_spec.rb +23 -0
- data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
- data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
- data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
- data/spec/lib/pwn/plugins/semgrep_spec.rb +13 -0
- data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
- data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
- data/spec/lib/pwn/req_queue_spec.rb +168 -0
- data/third_party/pwn_rdoc.jsonl +160 -5
- metadata +63 -7
- data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
- data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
data/lib/pwn/plugins/log.rb
CHANGED
|
@@ -751,23 +751,123 @@ module PWN
|
|
|
751
751
|
|
|
752
752
|
public_class_method def self.help
|
|
753
753
|
puts "USAGE:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
754
|
+
# Run append and return its result
|
|
755
|
+
#{self}.append(
|
|
756
|
+
level: 'required - level value consumed by #append',
|
|
757
|
+
msg: 'optional - msg value consumed by #append',
|
|
758
|
+
which_self: 'optional - which self value consumed by #append'
|
|
758
759
|
)
|
|
759
760
|
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
761
|
+
# Run debug enabled and return its result
|
|
762
|
+
#{self}.debug_enabled?
|
|
763
|
+
|
|
764
|
+
# Run debug log path and return its result
|
|
765
|
+
#{self}.debug_log_path
|
|
766
|
+
|
|
767
|
+
# Open a debug session. Request traces go to
|
|
768
|
+
#{self}.start_debug(
|
|
769
|
+
trace: 'optional - trace value consumed by #start_debug',
|
|
770
|
+
path: 'required - filesystem path to read or write',
|
|
771
|
+
tee: 'optional - tee value consumed by #start_debug',
|
|
772
|
+
session_id: 'optional - session id value consumed by #start_debug',
|
|
773
|
+
step_io: 'optional - step io value consumed by #start_debug',
|
|
774
|
+
prefixes: 'optional - prefixes value consumed by #start_debug'
|
|
775
|
+
)
|
|
776
|
+
|
|
777
|
+
# Run trace enabled and return its result
|
|
778
|
+
#{self}.trace_enabled?
|
|
779
|
+
|
|
780
|
+
# Run next request log and return its result
|
|
781
|
+
#{self}.next_request_log!(
|
|
782
|
+
force: 'optional - force value consumed by #next_request_log!',
|
|
783
|
+
session_id: 'optional - session id value consumed by #next_request_log!'
|
|
784
|
+
)
|
|
785
|
+
|
|
786
|
+
# Run finish request log and return its result
|
|
787
|
+
#{self}.finish_request_log!(
|
|
788
|
+
force: 'optional - force value consumed by #finish_request_log!',
|
|
789
|
+
iter: 'optional - iter value consumed by #finish_request_log!',
|
|
790
|
+
tools_called: 'optional - tools called value consumed by #finish_request_log!',
|
|
791
|
+
engine_s: 'optional - engine s value consumed by #finish_request_log!',
|
|
792
|
+
final_chars: 'optional - final chars value consumed by #finish_request_log!',
|
|
793
|
+
nested: 'optional - nested value consumed by #finish_request_log!'
|
|
794
|
+
)
|
|
795
|
+
|
|
796
|
+
# Run stop debug and return its result
|
|
797
|
+
#{self}.stop_debug(
|
|
798
|
+
reason: 'required - reason value consumed by #stop_debug'
|
|
763
799
|
)
|
|
764
|
-
|
|
765
|
-
#
|
|
766
|
-
#{self}.
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
800
|
+
|
|
801
|
+
# Run capture stderr and return its result
|
|
802
|
+
#{self}.capture_stderr!(
|
|
803
|
+
text: 'required - text value consumed by #capture_stderr!'
|
|
804
|
+
)
|
|
805
|
+
|
|
806
|
+
# Spinner frames stay on the TTY; never persist them in the RN log
|
|
807
|
+
#{self}.spinner_frame?(
|
|
808
|
+
text: 'optional - text value consumed by #spinner_frame?'
|
|
809
|
+
)
|
|
810
|
+
|
|
811
|
+
# Run raw stderr and return its result
|
|
812
|
+
#{self}.raw_stderr
|
|
813
|
+
|
|
814
|
+
# Run quiet tui and return its result
|
|
815
|
+
#{self}.quiet_tui!(
|
|
816
|
+
skip: 'optional - skip value consumed by #quiet_tui!'
|
|
817
|
+
)
|
|
818
|
+
|
|
819
|
+
# Run loud tui and return its result
|
|
820
|
+
#{self}.loud_tui!(
|
|
821
|
+
skip: 'optional - skip value consumed by #loud_tui!'
|
|
822
|
+
)
|
|
823
|
+
|
|
824
|
+
# One progress line to the debug file and the TUI tee (same payload)
|
|
825
|
+
#{self}.progress(
|
|
826
|
+
msg: 'optional - msg value consumed by #progress',
|
|
827
|
+
which_self: 'optional - which self value consumed by #progress (defaults to self)',
|
|
828
|
+
keep_newlines: 'optional - keep newlines value consumed by #progress',
|
|
829
|
+
cap: 'optional - cap value consumed by #progress',
|
|
830
|
+
tee: 'optional - tee value consumed by #progress'
|
|
831
|
+
)
|
|
832
|
+
|
|
833
|
+
# Run note interrupt and return its result
|
|
834
|
+
#{self}.note_interrupt!(
|
|
835
|
+
where: 'required - where value consumed by #note_interrupt!',
|
|
836
|
+
which_self: 'optional - which self value consumed by #note_interrupt! (defaults to self)'
|
|
837
|
+
)
|
|
838
|
+
|
|
839
|
+
# Run note exception and return its result
|
|
840
|
+
#{self}.note_exception!(
|
|
841
|
+
error: 'optional - error value consumed by #note_exception!',
|
|
842
|
+
where: 'required - where value consumed by #note_exception!',
|
|
843
|
+
which_self: 'optional - which self value consumed by #note_exception! (defaults to self)'
|
|
844
|
+
)
|
|
845
|
+
|
|
846
|
+
# Clone operator-visible TUI rows into the open RN request log (no ANSI)
|
|
847
|
+
#{self}.mirror_tui!(
|
|
848
|
+
msg: 'optional - msg value consumed by #mirror_tui!'
|
|
849
|
+
)
|
|
850
|
+
|
|
851
|
+
# Run start trace and return its result
|
|
852
|
+
#{self}.start_trace!(
|
|
853
|
+
prefixes: 'optional - prefixes value consumed by #start_trace!'
|
|
854
|
+
)
|
|
855
|
+
|
|
856
|
+
# Run stop trace and return its result
|
|
857
|
+
#{self}.stop_trace!(
|
|
858
|
+
skip: 'optional - skip value consumed by #stop_trace!'
|
|
859
|
+
)
|
|
860
|
+
|
|
861
|
+
# Run wait trace step and return its result
|
|
862
|
+
#{self}.wait_trace_step!(
|
|
863
|
+
nested: 'optional - nested value consumed by #wait_trace_step!',
|
|
864
|
+
label: 'required - label value consumed by #wait_trace_step!'
|
|
865
|
+
)
|
|
866
|
+
|
|
867
|
+
# Print the AUTHOR(S) string for this module.
|
|
868
|
+
#{self}.authors
|
|
770
869
|
"
|
|
870
|
+
constants.sort
|
|
771
871
|
end
|
|
772
872
|
end
|
|
773
873
|
end
|
|
@@ -242,102 +242,110 @@ module PWN
|
|
|
242
242
|
|
|
243
243
|
public_class_method def self.help
|
|
244
244
|
puts "USAGE:
|
|
245
|
+
# attachment_name1.doc: attachment file path 1,
|
|
245
246
|
#{self}.office365(
|
|
246
|
-
from: 'required',
|
|
247
|
-
to: 'required',
|
|
248
|
-
cc: 'optional',
|
|
249
|
-
bcc: 'optional',
|
|
250
|
-
reply_to: 'optional',
|
|
251
|
-
subject: 'optional',
|
|
252
|
-
html_body: 'optional',
|
|
253
|
-
txt_body: 'optional alternative to :html_body',
|
|
254
|
-
attachments_hash:
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
247
|
+
from: 'required - sender account or address to bind as operator',
|
|
248
|
+
to: 'required - to value consumed by #office365',
|
|
249
|
+
cc: 'optional - cc value consumed by #office365',
|
|
250
|
+
bcc: 'optional - bcc value consumed by #office365',
|
|
251
|
+
reply_to: 'optional - reply to value consumed by #office365',
|
|
252
|
+
subject: 'optional - subject value consumed by #office365',
|
|
253
|
+
html_body: 'optional - html body value consumed by #office365',
|
|
254
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
255
|
+
attachments_hash: 'optional - attachments hash value consumed by #office365',
|
|
256
|
+
username: 'required - required username',
|
|
257
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
258
|
+
debug: 'optional - debug value consumed by #office365',
|
|
259
|
+
address: 'optional - address value consumed by #office365',
|
|
260
|
+
port: 'optional - TCP/UDP port number',
|
|
261
|
+
tls_auto: 'optional - tls auto value consumed by #office365',
|
|
262
|
+
authentication: 'optional - authentication value consumed by #office365'
|
|
261
263
|
)
|
|
262
264
|
|
|
265
|
+
# attachment_name1.doc: attachment file path 1,
|
|
263
266
|
#{self}.gmail(
|
|
264
|
-
from: 'required',
|
|
265
|
-
to: 'required',
|
|
266
|
-
cc: 'optional',
|
|
267
|
-
bcc: 'optional',
|
|
268
|
-
reply_to: 'optional',
|
|
269
|
-
subject: 'optional',
|
|
270
|
-
html_body: 'optional',
|
|
271
|
-
txt_body: 'optional alternative to :html_body',
|
|
272
|
-
attachments_hash:
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
267
|
+
from: 'required - sender account or address to bind as operator',
|
|
268
|
+
to: 'required - to value consumed by #gmail',
|
|
269
|
+
cc: 'optional - cc value consumed by #gmail',
|
|
270
|
+
bcc: 'optional - bcc value consumed by #gmail',
|
|
271
|
+
reply_to: 'optional - reply to value consumed by #gmail',
|
|
272
|
+
subject: 'optional - subject value consumed by #gmail',
|
|
273
|
+
html_body: 'optional - html body value consumed by #gmail',
|
|
274
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
275
|
+
attachments_hash: 'optional - attachments hash value consumed by #gmail',
|
|
276
|
+
username: 'required - username value consumed by #gmail',
|
|
277
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
278
|
+
debug: 'optional - debug value consumed by #gmail',
|
|
279
|
+
address: 'optional - address value consumed by #gmail',
|
|
280
|
+
port: 'optional - TCP/UDP port number',
|
|
281
|
+
tls_auto: 'optional - tls auto value consumed by #gmail',
|
|
282
|
+
authentication: 'optional - authentication value consumed by #gmail'
|
|
279
283
|
)
|
|
280
284
|
|
|
285
|
+
# attachment_name1.doc: attachment file path 1,
|
|
281
286
|
#{self}.hotmail_n_live(
|
|
282
|
-
from: 'required',
|
|
283
|
-
to: 'required',
|
|
284
|
-
cc: 'optional',
|
|
285
|
-
bcc: 'optional',
|
|
286
|
-
reply_to: 'optional',
|
|
287
|
-
subject: 'optional',
|
|
288
|
-
html_body: 'optional',
|
|
289
|
-
txt_body: 'optional alternative to :html_body',
|
|
290
|
-
attachments_hash:
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
287
|
+
from: 'required - sender account or address to bind as operator',
|
|
288
|
+
to: 'required - to value consumed by #hotmail_n_live',
|
|
289
|
+
cc: 'optional - cc value consumed by #hotmail_n_live',
|
|
290
|
+
bcc: 'optional - bcc value consumed by #hotmail_n_live',
|
|
291
|
+
reply_to: 'optional - reply to value consumed by #hotmail_n_live',
|
|
292
|
+
subject: 'optional - subject value consumed by #hotmail_n_live',
|
|
293
|
+
html_body: 'optional - html body value consumed by #hotmail_n_live',
|
|
294
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
295
|
+
attachments_hash: 'optional - attachments hash value consumed by #hotmail_n_live',
|
|
296
|
+
username: 'required - username value consumed by #hotmail_n_live',
|
|
297
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
298
|
+
debug: 'optional - debug value consumed by #hotmail_n_live',
|
|
299
|
+
address: 'optional - address value consumed by #hotmail_n_live',
|
|
300
|
+
port: 'optional - TCP/UDP port number',
|
|
301
|
+
tls_auto: 'optional - tls auto value consumed by #hotmail_n_live',
|
|
302
|
+
authentication: 'optional - authentication value consumed by #hotmail_n_live'
|
|
297
303
|
)
|
|
298
304
|
|
|
305
|
+
# attachment_name1.doc: attachment file path 1,
|
|
299
306
|
#{self}.yahoo(
|
|
300
|
-
from: 'required',
|
|
301
|
-
to: 'required',
|
|
302
|
-
cc: 'optional',
|
|
303
|
-
bcc: 'optional',
|
|
304
|
-
reply_to: 'optional',
|
|
305
|
-
subject: 'optional',
|
|
306
|
-
html_body: 'optional',
|
|
307
|
-
txt_body: 'optional alternative to :html_body',
|
|
308
|
-
attachments_hash:
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
307
|
+
from: 'required - sender account or address to bind as operator',
|
|
308
|
+
to: 'required - to value consumed by #yahoo',
|
|
309
|
+
cc: 'optional - cc value consumed by #yahoo',
|
|
310
|
+
bcc: 'optional - bcc value consumed by #yahoo',
|
|
311
|
+
reply_to: 'optional - reply to value consumed by #yahoo',
|
|
312
|
+
subject: 'optional - subject value consumed by #yahoo',
|
|
313
|
+
html_body: 'optional - html body value consumed by #yahoo',
|
|
314
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
315
|
+
attachments_hash: 'optional - attachments hash value consumed by #yahoo',
|
|
316
|
+
username: 'required - username value consumed by #yahoo',
|
|
317
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
318
|
+
debug: 'optional - debug value consumed by #yahoo',
|
|
319
|
+
address: 'optional - address value consumed by #yahoo',
|
|
320
|
+
port: 'optional - TCP/UDP port number',
|
|
321
|
+
tls_auto: 'optional - tls auto value consumed by #yahoo',
|
|
322
|
+
authentication: 'optional - authentication value consumed by #yahoo'
|
|
315
323
|
)
|
|
316
324
|
|
|
325
|
+
# attachment_name1.doc: attachment file path 1,
|
|
317
326
|
#{self}.manual(
|
|
318
|
-
from: 'required',
|
|
319
|
-
to: 'required',
|
|
320
|
-
cc: 'optional',
|
|
321
|
-
bcc: 'optional',
|
|
322
|
-
reply_to: 'optional',
|
|
323
|
-
subject: 'optional',
|
|
324
|
-
html_body: 'optional',
|
|
325
|
-
txt_body: 'optional alternative to :html_body',
|
|
326
|
-
attachments_hash:
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
authentication: 'optional
|
|
334
|
-
username: 'optional',
|
|
335
|
-
password: 'optional',
|
|
336
|
-
debug: true|false
|
|
327
|
+
from: 'required - sender account or address to bind as operator',
|
|
328
|
+
to: 'required - to value consumed by #manual',
|
|
329
|
+
cc: 'optional - cc value consumed by #manual',
|
|
330
|
+
bcc: 'optional - bcc value consumed by #manual',
|
|
331
|
+
reply_to: 'optional - reply to value consumed by #manual',
|
|
332
|
+
subject: 'optional - subject value consumed by #manual',
|
|
333
|
+
html_body: 'optional - html body value consumed by #manual',
|
|
334
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
335
|
+
attachments_hash: 'optional - attachments hash value consumed by #manual',
|
|
336
|
+
address: 'optional - smtp server ip or domain',
|
|
337
|
+
port: 'optional - smtp port',
|
|
338
|
+
tls_auto: 'optional - tls auto value consumed by #manual',
|
|
339
|
+
username: 'optional - username value consumed by #manual',
|
|
340
|
+
password: 'optional - password value consumed by #manual',
|
|
341
|
+
debug: 'optional - debug value consumed by #manual',
|
|
342
|
+
authentication: 'optional - authentication value consumed by #manual'
|
|
337
343
|
)
|
|
338
344
|
|
|
345
|
+
# Print the AUTHOR(S) string for this module.
|
|
339
346
|
#{self}.authors
|
|
340
347
|
"
|
|
348
|
+
constants.sort
|
|
341
349
|
end
|
|
342
350
|
end
|
|
343
351
|
end
|
|
@@ -130,21 +130,26 @@ module PWN
|
|
|
130
130
|
|
|
131
131
|
public_class_method def self.help
|
|
132
132
|
puts "USAGE:
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
# Run connect and return its result
|
|
134
|
+
#{self}.connect(
|
|
135
|
+
yaml_conf: 'optional - path to userland yaml (defaults to /pwn/etc/userland/PWN_PROVIDEDR/metasploit/vagrant.yaml)'
|
|
135
136
|
)
|
|
136
137
|
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
# Run console exec and return its result
|
|
139
|
+
#{self}.console_exec(
|
|
140
|
+
console_obj: 'required - console_obj object returned from #connect method',
|
|
139
141
|
cmd: 'required - msfconsole command string or array of strings'
|
|
140
142
|
)
|
|
141
143
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
# Run disconnect and return its result
|
|
145
|
+
#{self}.disconnect(
|
|
146
|
+
console_obj: 'required - console_obj returned from #console_exec method to terminate'
|
|
144
147
|
)
|
|
145
148
|
|
|
149
|
+
# Print the AUTHOR(S) string for this module.
|
|
146
150
|
#{self}.authors
|
|
147
151
|
"
|
|
152
|
+
constants.sort
|
|
148
153
|
end
|
|
149
154
|
end
|
|
150
155
|
end
|
|
@@ -172,10 +172,13 @@ module PWN
|
|
|
172
172
|
|
|
173
173
|
public_class_method def self.help
|
|
174
174
|
puts "USAGE:
|
|
175
|
+
# Run pry and return its result
|
|
175
176
|
#{self}.pry
|
|
176
177
|
|
|
178
|
+
# Print the AUTHOR(S) string for this module.
|
|
177
179
|
#{self}.authors
|
|
178
180
|
"
|
|
181
|
+
constants.sort
|
|
179
182
|
end
|
|
180
183
|
end
|
|
181
184
|
end
|
data/lib/pwn/plugins/msr206.rb
CHANGED
|
@@ -1193,64 +1193,78 @@ module PWN
|
|
|
1193
1193
|
|
|
1194
1194
|
public_class_method def self.help
|
|
1195
1195
|
puts "USAGE:
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1196
|
+
# Run connect and return its result
|
|
1197
|
+
#{self}.connect(
|
|
1198
|
+
block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)',
|
|
1199
|
+
baud: 'optional - (defaults to 19200)',
|
|
1200
|
+
data_bits: 'optional - (defaults to 8)',
|
|
1201
|
+
stop_bits: 'optional - (defaults to 1)',
|
|
1202
|
+
parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none),',
|
|
1203
|
+
flow_control: 'optional - :none|:hard|:soft (defaults to :soft)'
|
|
1203
1204
|
)
|
|
1204
1205
|
|
|
1206
|
+
# Run list cmds and return its result
|
|
1207
|
+
#{self}.list_cmds
|
|
1208
|
+
|
|
1209
|
+
# Run set protocol and return its result
|
|
1205
1210
|
#{self}.set_protocol(
|
|
1206
1211
|
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1207
1212
|
protocol: 'optional - :usi0 or :usi1 (defaults to :usi0)'
|
|
1208
1213
|
)
|
|
1209
1214
|
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
msr206_obj: 'required msr206_obj returned from #connect method',
|
|
1215
|
+
# Run exec and return its result
|
|
1216
|
+
#{self}.exec(
|
|
1217
|
+
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1214
1218
|
cmd: 'required - cmd returned from #list_cmds method',
|
|
1215
|
-
params: 'optional - parameters for specific command'
|
|
1219
|
+
params: 'optional - parameters for specific command returned from #list_params method'
|
|
1216
1220
|
)
|
|
1217
1221
|
|
|
1218
|
-
|
|
1219
|
-
|
|
1222
|
+
# Run read card and return its result
|
|
1223
|
+
#{self}.read_card(
|
|
1224
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1220
1225
|
)
|
|
1221
1226
|
|
|
1222
|
-
|
|
1223
|
-
|
|
1227
|
+
# Run backup card and return its result
|
|
1228
|
+
#{self}.backup_card(
|
|
1229
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1224
1230
|
)
|
|
1225
1231
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1232
|
+
# Run write card and return its result
|
|
1233
|
+
#{self}.write_card(
|
|
1234
|
+
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1228
1235
|
encoding: 'required - :iso || :iso_alt || :raw',
|
|
1229
|
-
track_data: 'required - track data to write'
|
|
1236
|
+
track_data: 'required - track data to write (see #backup_card for structure)'
|
|
1230
1237
|
)
|
|
1231
1238
|
|
|
1232
|
-
|
|
1233
|
-
|
|
1239
|
+
# Run clone card and return its result
|
|
1240
|
+
#{self}.clone_card(
|
|
1241
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1234
1242
|
)
|
|
1235
1243
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1244
|
+
# Run load card from file and return its result
|
|
1245
|
+
#{self}.load_card_from_file(
|
|
1246
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1238
1247
|
)
|
|
1239
1248
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1249
|
+
# Run update card and return its result
|
|
1250
|
+
#{self}.update_card(
|
|
1251
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1242
1252
|
)
|
|
1243
1253
|
|
|
1244
|
-
config
|
|
1245
|
-
|
|
1254
|
+
# Run get config and return its result
|
|
1255
|
+
#{self}.get_config(
|
|
1256
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1246
1257
|
)
|
|
1247
1258
|
|
|
1259
|
+
# Run disconnect and return its result
|
|
1248
1260
|
#{self}.disconnect(
|
|
1249
|
-
msr206_obj: 'required msr206_obj returned from #connect method'
|
|
1261
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1250
1262
|
)
|
|
1251
1263
|
|
|
1264
|
+
# Print the AUTHOR(S) string for this module.
|
|
1252
1265
|
#{self}.authors
|
|
1253
1266
|
"
|
|
1267
|
+
constants.sort
|
|
1254
1268
|
end
|
|
1255
1269
|
end
|
|
1256
1270
|
end
|
|
@@ -743,55 +743,87 @@ module PWN
|
|
|
743
743
|
|
|
744
744
|
public_class_method def self.help
|
|
745
745
|
puts "USAGE:
|
|
746
|
-
|
|
746
|
+
# Run login and return its result
|
|
747
|
+
#{self}.login(
|
|
747
748
|
access_key: 'required - API access key (will prompt if blank)',
|
|
748
749
|
secret_key: 'required - API secret key (will prompt if blank)'
|
|
749
750
|
)
|
|
750
751
|
|
|
752
|
+
# Run get canned scan templates and return its result
|
|
751
753
|
#{self}.get_canned_scan_templates(
|
|
752
754
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
753
755
|
name: 'optional - name of scan template'
|
|
754
756
|
)
|
|
755
757
|
|
|
758
|
+
# Run get policies and return its result
|
|
756
759
|
#{self}.get_policies(
|
|
757
760
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
758
761
|
name: 'optional - name of policy (i.e. user-defined template)'
|
|
759
762
|
)
|
|
760
763
|
|
|
764
|
+
# Run get folders and return its result
|
|
761
765
|
#{self}.get_folders(
|
|
762
766
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
763
767
|
name: 'optional - name of folder'
|
|
764
768
|
)
|
|
765
769
|
|
|
770
|
+
# Run get scanners and return its result
|
|
766
771
|
#{self}.get_scanners(
|
|
767
772
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
768
773
|
name: 'optional - name of scanner'
|
|
769
774
|
)
|
|
770
775
|
|
|
776
|
+
# Run get target networks and return its result
|
|
771
777
|
#{self}.get_target_networks(
|
|
772
778
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
773
779
|
name: 'optional - name of target network'
|
|
774
780
|
)
|
|
775
781
|
|
|
782
|
+
# Run get timezones and return its result
|
|
776
783
|
#{self}.get_timezones(
|
|
777
784
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
778
785
|
name: 'optional - name of timezone'
|
|
779
786
|
)
|
|
780
787
|
|
|
788
|
+
# Run get target groups and return its result
|
|
781
789
|
#{self}.get_target_groups(
|
|
782
790
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
783
791
|
name: 'optional - name of target group'
|
|
784
792
|
)
|
|
785
793
|
|
|
794
|
+
# Run get tag values and return its result
|
|
786
795
|
#{self}.get_tag_values(
|
|
787
796
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
788
797
|
name: 'optional - name of tag value'
|
|
789
798
|
)
|
|
790
799
|
|
|
800
|
+
# Run get assets and return its result
|
|
801
|
+
#{self}.get_assets(
|
|
802
|
+
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
803
|
+
name: 'optional - name of asset'
|
|
804
|
+
)
|
|
805
|
+
|
|
806
|
+
# Run add tag to assets and return its result
|
|
807
|
+
#{self}.add_tag_to_assets(
|
|
808
|
+
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
809
|
+
targets: 'required - comma-delimited list of targets to tag',
|
|
810
|
+
tag_uuids: 'required - array of tag UUIDS to tag against targets'
|
|
811
|
+
)
|
|
812
|
+
|
|
813
|
+
# Run get credential types and return its result
|
|
814
|
+
#{self}.get_credential_types(
|
|
815
|
+
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
816
|
+
category: 'optional - category of credential type (Defaults to Host)',
|
|
817
|
+
name: 'optional - name of credential type (Defaults to SSH)'
|
|
818
|
+
)
|
|
819
|
+
|
|
820
|
+
# Run get scans and return its result
|
|
791
821
|
#{self}.get_scans(
|
|
792
|
-
nessus_obj: 'required - nessus_obj returned from #login method'
|
|
822
|
+
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
823
|
+
name: 'optional - binary or identifier name'
|
|
793
824
|
)
|
|
794
825
|
|
|
826
|
+
# Run create scan and return its result
|
|
795
827
|
#{self}.create_scan(
|
|
796
828
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
797
829
|
scan_template_uuid: 'required - the UUID for the Tenable-provided scan template to use. Run #get_canned_scan_templates for a list of UUIDs',
|
|
@@ -800,6 +832,7 @@ module PWN
|
|
|
800
832
|
plugins: 'optional - plugins object as defined by https://developer.tenable.com/reference/scans-create (Defaults to {})'
|
|
801
833
|
)
|
|
802
834
|
|
|
835
|
+
# Run update scan and return its result
|
|
803
836
|
#{self}.update_scan(
|
|
804
837
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
805
838
|
scan_id: 'required - the scan id to update. Run #get_scans for a list',
|
|
@@ -809,16 +842,19 @@ module PWN
|
|
|
809
842
|
plugins: 'optional - plugins object as defined by https://developer.tenable.com/reference/scans-create (Defaults to {})'
|
|
810
843
|
)
|
|
811
844
|
|
|
845
|
+
# Run launch scan and return its result
|
|
812
846
|
#{self}.launch_scan(
|
|
813
847
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
814
848
|
scan_id: 'required - scan uuid to launch'
|
|
815
849
|
)
|
|
816
850
|
|
|
851
|
+
# Run get scan status and return its result
|
|
817
852
|
#{self}.get_scan_status(
|
|
818
853
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
819
854
|
scan_id: 'required - scan uuid to retrieve status'
|
|
820
855
|
)
|
|
821
856
|
|
|
857
|
+
# Run create tag and return its result
|
|
822
858
|
#{self}.create_tag(
|
|
823
859
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
824
860
|
category: 'required - category name to create or use',
|
|
@@ -826,21 +862,25 @@ module PWN
|
|
|
826
862
|
desc: 'optional - tag value description'
|
|
827
863
|
)
|
|
828
864
|
|
|
865
|
+
# Run get scan history and return its result
|
|
829
866
|
#{self}.get_scan_history(
|
|
830
|
-
nessus_obj: 'required - nessus_obj returned from #login method'
|
|
867
|
+
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
831
868
|
scan_id: 'required - scan uuid to launch'
|
|
832
869
|
)
|
|
833
870
|
|
|
871
|
+
# Run export scan results and return its result
|
|
834
872
|
#{self}.export_scan_results(
|
|
835
873
|
nessus_obj: 'required - nessus_obj returned from #login method',
|
|
836
874
|
scan_id: 'required - scan uuid to export',
|
|
837
875
|
path_to_export: 'required - filename to export results',
|
|
838
876
|
history_id: 'optional - defaults to last scan',
|
|
839
|
-
format: 'optional - :csv|:db|:html|:nessus|:pdf (defaults to :csv'
|
|
877
|
+
format: 'optional - :csv|:db|:html|:nessus|:pdf (defaults to :csv'
|
|
840
878
|
)
|
|
841
879
|
|
|
880
|
+
# Print the AUTHOR(S) string for this module.
|
|
842
881
|
#{self}.authors
|
|
843
882
|
"
|
|
883
|
+
constants.sort
|
|
844
884
|
end
|
|
845
885
|
end
|
|
846
886
|
end
|