pwn 0.5.708 → 0.5.709
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/documentation/Installation.md +1 -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 +48 -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 +51 -0
- data/etc/default_skills/pwn/plugins/doctor/SKILL.md +57 -0
- data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +61 -0
- data/etc/default_skills/pwn/plugins/frida/SKILL.md +49 -0
- data/etc/default_skills/pwn/plugins/gdb/SKILL.md +52 -0
- data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
- data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +48 -0
- data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +52 -0
- data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
- data/etc/default_skills/pwn/plugins/recon/SKILL.md +55 -0
- data/etc/default_skills/pwn/plugins/recon/references/urls.md +5 -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 +48 -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/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 +5 -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 +52 -0
- data/lib/pwn/plugins/android.rb +65 -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 +99 -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/doctor.rb +149 -0
- data/lib/pwn/plugins/ein.rb +3 -0
- data/lib/pwn/plugins/exploit_dev.rb +264 -0
- data/lib/pwn/plugins/file_fu.rb +11 -8
- data/lib/pwn/plugins/frida.rb +61 -0
- data/lib/pwn/plugins/fuzz.rb +9 -6
- data/lib/pwn/plugins/gdb.rb +95 -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 +109 -0
- data/lib/pwn/plugins/json_pathify.rb +9 -5
- 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 +57 -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/process_tube.rb +120 -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 +161 -0
- data/lib/pwn/plugins/repl.rb +122 -1
- data/lib/pwn/plugins/scannable_codes.rb +5 -1
- 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 +16 -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 +48 -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 +19 -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 +94 -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/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/doctor_spec.rb +23 -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/nuclei_spec.rb +13 -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/sqlmap_spec.rb +13 -0
- data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
- data/third_party/pwn_rdoc.jsonl +126 -5
- metadata +47 -3
- 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
|
@@ -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
|
|
@@ -310,46 +310,62 @@ module PWN
|
|
|
310
310
|
|
|
311
311
|
public_class_method def self.help
|
|
312
312
|
puts "USAGE:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
313
|
+
# Run login and return its result
|
|
314
|
+
#{self}.login(
|
|
315
|
+
console_ip: 'required - required host/ip of Nexpose Console (server)',
|
|
316
|
+
username: 'required - required username',
|
|
317
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
317
318
|
)
|
|
318
|
-
puts nsc_obj.public_methods
|
|
319
319
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
320
|
+
# Run list all individual site assets and return its result
|
|
321
|
+
#{self}.list_all_individual_site_assets(
|
|
322
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
323
|
+
site_name: 'required - required Nexpose site name to update (case-sensitive)'
|
|
323
324
|
)
|
|
324
325
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
# Run update site assets and return its result
|
|
327
|
+
#{self}.update_site_assets(
|
|
328
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
329
|
+
site_name: 'required - required Nexpose site name to update (case-sensitive',
|
|
330
|
+
assets: 'required - required array of hashes containing called :ip => values being IP address (All IPs not included in the :assets parameter will be removed from Nexpose)'
|
|
329
331
|
)
|
|
330
332
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
333
|
+
# Run delete site assets older than and return its result
|
|
334
|
+
#{self}.delete_site_assets_older_than(
|
|
335
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
336
|
+
site_name: 'required - required Nexpose site name to update (case-sensitive',
|
|
337
|
+
days: 'required - required assets to remove older than number of days in this parameter'
|
|
335
338
|
)
|
|
336
339
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
340
|
+
# Run scan site by name and return its result
|
|
341
|
+
#{self}.scan_site_by_name(
|
|
342
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
343
|
+
site_name: 'required - required Nexpose site name to scan (case-sensitive',
|
|
344
|
+
poll_interval: 'optional - optional poll interval to check the completion status of the scan (defaults to 3 minutes'
|
|
341
345
|
)
|
|
342
346
|
|
|
347
|
+
# Run generate report via existing config and return its result
|
|
348
|
+
#{self}.generate_report_via_existing_config(
|
|
349
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
350
|
+
config_id: 'optional - relevant r.config_id returned when invoking the block nsc_obj.reports.each {|r| puts \#{r.name} => \#{r.config_id}}'
|
|
351
|
+
)
|
|
352
|
+
|
|
353
|
+
# Run download recurring report and return its result
|
|
343
354
|
#{self}.download_recurring_report(
|
|
344
|
-
nsc_obj: 'required nsc_obj returned from login method',
|
|
345
|
-
report_names: 'required array of report name/types to generate e.g. [
|
|
346
|
-
poll_interval: 'optional poll interval to check the completion status of report generation (defaults to 60 seconds
|
|
355
|
+
nsc_obj: 'required - required nsc_obj returned from login method',
|
|
356
|
+
report_names: 'required - required array of report name/types to generate e.g. [report.html, report.pdf, report.xml]',
|
|
357
|
+
poll_interval: 'optional - optional poll interval to check the completion status of report generation (defaults to 60 seconds'
|
|
347
358
|
)
|
|
348
359
|
|
|
349
|
-
#
|
|
360
|
+
# Run logout and return its result
|
|
361
|
+
#{self}.logout(
|
|
362
|
+
nsc_obj: 'required - required nsc_obj returned from login method'
|
|
363
|
+
)
|
|
350
364
|
|
|
365
|
+
# Print the AUTHOR(S) string for this module.
|
|
351
366
|
#{self}.authors
|
|
352
367
|
"
|
|
368
|
+
constants.sort
|
|
353
369
|
end
|
|
354
370
|
end
|
|
355
371
|
end
|
data/lib/pwn/plugins/nmap_it.rb
CHANGED
|
@@ -127,52 +127,32 @@ module PWN
|
|
|
127
127
|
|
|
128
128
|
public_class_method def self.help
|
|
129
129
|
puts "USAGE:
|
|
130
|
-
#
|
|
131
|
-
puts nmap.public_methods
|
|
132
|
-
nmap.connect_scan = true
|
|
133
|
-
nmap.service_scan = true
|
|
134
|
-
nmap.verbose = true
|
|
135
|
-
nmap.ports = [1..1024,1337]
|
|
136
|
-
nmap.targets = '127.0.0.1'
|
|
137
|
-
nmap.xml = '/tmp/nmap_port_scan_res.xml'
|
|
138
|
-
end
|
|
139
|
-
|
|
130
|
+
# nmap.connect_scan = true
|
|
140
131
|
#{self}.port_scan(
|
|
141
|
-
targets: '
|
|
142
|
-
ports: '1-
|
|
143
|
-
connect_scan:
|
|
144
|
-
service_scan:
|
|
145
|
-
script: '
|
|
146
|
-
xml: '/tmp/nmap_port_scan_res.xml'
|
|
132
|
+
targets: 'optional - hostname, IP, CIDR, or list of targets',
|
|
133
|
+
ports: 'optional - port, list, or range (e.g. 22,80,443 or 1-1024)',
|
|
134
|
+
connect_scan: 'optional - connect scan value consumed by #port_scan',
|
|
135
|
+
service_scan: 'optional - service scan value consumed by #port_scan',
|
|
136
|
+
script: 'optional - script value consumed by #port_scan',
|
|
137
|
+
xml: 'optional - /tmp/nmap_port_scan_res.xml'
|
|
147
138
|
)
|
|
148
139
|
|
|
149
|
-
#
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
host.scripts.each do |name,output|
|
|
154
|
-
output.each_line { |line| puts line }
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
host.each_port do |port|
|
|
158
|
-
puts port
|
|
159
|
-
|
|
160
|
-
port.scripts.each do |name,output|
|
|
161
|
-
puts name
|
|
162
|
-
output.each_line { |line| puts line }
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
140
|
+
# xml.each_host do |host|
|
|
141
|
+
#{self}.parse_xml_results(
|
|
142
|
+
xml_file: 'optional - xml file value consumed by #parse_xml_results'
|
|
143
|
+
)
|
|
167
144
|
|
|
145
|
+
# Run diff xml results and return its result
|
|
168
146
|
#{self}.diff_xml_results(
|
|
169
147
|
xml_a: 'required - path to nmap xml results',
|
|
170
148
|
xml_b: 'required - path to nmap xml results',
|
|
171
149
|
diff: 'required - path to nmap xml results diff'
|
|
172
150
|
)
|
|
173
151
|
|
|
152
|
+
# Print the AUTHOR(S) string for this module.
|
|
174
153
|
#{self}.authors
|
|
175
154
|
"
|
|
155
|
+
constants.sort
|
|
176
156
|
end
|
|
177
157
|
end
|
|
178
158
|
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'open3'
|
|
5
|
+
|
|
6
|
+
module PWN
|
|
7
|
+
module Plugins
|
|
8
|
+
# nuclei wrapper: template/severity, JSONL findings.
|
|
9
|
+
module Nuclei
|
|
10
|
+
public_class_method def self.required_bins
|
|
11
|
+
%w[nuclei]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
public_class_method def self.scan(opts = {})
|
|
15
|
+
PWN::Plugins::Doctor.require_bin!(name: 'nuclei')
|
|
16
|
+
target = opts[:target] || opts[:url]
|
|
17
|
+
raise 'ERROR: target is required' if target.to_s.empty?
|
|
18
|
+
|
|
19
|
+
cmd = ['nuclei', '-u', target.to_s, '-jsonl', '-silent']
|
|
20
|
+
cmd += ['-severity', opts[:severity].to_s] if opts[:severity]
|
|
21
|
+
cmd += ['-t', opts[:templates].to_s] if opts[:templates]
|
|
22
|
+
cmd += ['-rate-limit', opts[:rate_limit].to_s] if opts[:rate_limit]
|
|
23
|
+
stdout, stderr, status = Open3.capture3(*cmd)
|
|
24
|
+
findings = stdout.each_line.filter_map do |ln|
|
|
25
|
+
JSON.parse(ln)
|
|
26
|
+
rescue JSON::ParserError
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
{ findings: findings, stderr: stderr, exit: status.exitstatus }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
public_class_method def self.authors
|
|
33
|
+
"AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
public_class_method def self.help
|
|
37
|
+
puts "USAGE:
|
|
38
|
+
# List host binaries this module expects to be installed.
|
|
39
|
+
#{self}.required_bins
|
|
40
|
+
|
|
41
|
+
# Run scan and return its result
|
|
42
|
+
#{self}.scan(
|
|
43
|
+
target: 'required - hostname, IP, or CIDR to scan (defaults to opts[:url])',
|
|
44
|
+
url: 'optional - HTTP(S) URL',
|
|
45
|
+
severity: 'optional - severity value consumed by #scan',
|
|
46
|
+
templates: 'optional - templates value consumed by #scan',
|
|
47
|
+
rate_limit: 'optional - rate limit value consumed by #scan'
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# Print the AUTHOR(S) string for this module.
|
|
51
|
+
#{self}.authors
|
|
52
|
+
"
|
|
53
|
+
constants.sort
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
data/lib/pwn/plugins/oauth2.rb
CHANGED
|
@@ -51,16 +51,22 @@ module PWN
|
|
|
51
51
|
# Display Usage for this Module
|
|
52
52
|
|
|
53
53
|
public_class_method def self.help
|
|
54
|
-
puts
|
|
55
|
-
#
|
|
54
|
+
puts "USAGE:
|
|
55
|
+
# Run decode and return its result
|
|
56
|
+
#{self}.decode(
|
|
57
|
+
oauth2_token: 'required - required oauth2 token'
|
|
58
|
+
)
|
|
56
59
|
|
|
60
|
+
# Run get value by key and return its result
|
|
57
61
|
#{self}.get_value_by_key(
|
|
58
|
-
oauth2_token: 'required oauth2 token',
|
|
59
|
-
key: 'required oauth2 token key name located within the Base64 encoded token as symbol, e.g. :company_id'
|
|
62
|
+
oauth2_token: 'required - required oauth2 token',
|
|
63
|
+
key: 'required - required oauth2 token key name located within the Base64 encoded token as symbol, e.g. :company_id'
|
|
60
64
|
)
|
|
61
65
|
|
|
66
|
+
# Print the AUTHOR(S) string for this module.
|
|
62
67
|
#{self}.authors
|
|
63
|
-
|
|
68
|
+
"
|
|
69
|
+
constants.sort
|
|
64
70
|
end
|
|
65
71
|
end
|
|
66
72
|
end
|
data/lib/pwn/plugins/ocr.rb
CHANGED
|
@@ -31,12 +31,15 @@ module PWN
|
|
|
31
31
|
|
|
32
32
|
public_class_method def self.help
|
|
33
33
|
puts "USAGE:
|
|
34
|
+
# Run process and return its result
|
|
34
35
|
#{self}.process(
|
|
35
36
|
file: 'required - path to image file'
|
|
36
37
|
)
|
|
37
38
|
|
|
39
|
+
# Print the AUTHOR(S) string for this module.
|
|
38
40
|
#{self}.authors
|
|
39
41
|
"
|
|
42
|
+
constants.sort
|
|
40
43
|
end
|
|
41
44
|
end
|
|
42
45
|
end
|
data/lib/pwn/plugins/open_api.rb
CHANGED
|
@@ -897,16 +897,19 @@ module PWN
|
|
|
897
897
|
|
|
898
898
|
public_class_method def self.help
|
|
899
899
|
puts "USAGE:
|
|
900
|
-
|
|
900
|
+
# Run generate spec and return its result
|
|
901
|
+
#{self}.generate_spec(
|
|
901
902
|
spec_paths: 'required - array of OpenAPI file paths to merge',
|
|
902
903
|
base_url: 'required - base URL for OpenAPI endpoints (e.g., http://fqdn.com)',
|
|
903
|
-
output_json_path: '
|
|
904
|
+
output_json_path: 'optional - path to save the merged OpenAPI JSON file',
|
|
904
905
|
target_version: 'optional - target OpenAPI version (default: 3.0.3)',
|
|
905
906
|
debug: 'optional - boolean to enable debug logging (default: false)'
|
|
906
907
|
)
|
|
907
908
|
|
|
909
|
+
# Print the AUTHOR(S) string for this module.
|
|
908
910
|
#{self}.authors
|
|
909
911
|
"
|
|
912
|
+
constants.sort
|
|
910
913
|
end
|
|
911
914
|
end
|
|
912
915
|
end
|
data/lib/pwn/plugins/openvas.rb
CHANGED
|
@@ -268,46 +268,54 @@ module PWN
|
|
|
268
268
|
|
|
269
269
|
public_class_method def self.help
|
|
270
270
|
puts "USAGE:
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
271
|
+
# Run get task id and return its result
|
|
272
|
+
#{self}.get_task_id(
|
|
273
|
+
task_name: 'required - required task name to start',
|
|
274
|
+
username: 'required - required username',
|
|
275
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
275
276
|
)
|
|
276
277
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
278
|
+
# Run start task and return its result
|
|
279
|
+
#{self}.start_task(
|
|
280
|
+
task_name: 'required - required task name to start',
|
|
281
|
+
username: 'required - required username',
|
|
282
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
281
283
|
)
|
|
282
284
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
285
|
+
# Run get task status and return its result
|
|
286
|
+
#{self}.get_task_status(
|
|
287
|
+
task_name: 'required - required task name to start',
|
|
288
|
+
username: 'required - required username',
|
|
289
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
287
290
|
)
|
|
288
291
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
292
|
+
# Run last report id and return its result
|
|
293
|
+
#{self}.last_report_id(
|
|
294
|
+
task_name: 'required - required task name to start',
|
|
295
|
+
username: 'required - required username',
|
|
296
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
293
297
|
)
|
|
294
298
|
|
|
299
|
+
# Run save report and return its result
|
|
295
300
|
#{self}.save_report(
|
|
296
|
-
report_type: 'required report type (csv|itg|pdf|txt|xml)',
|
|
297
|
-
report_id: 'required report id to save',
|
|
298
|
-
report_dir: 'required directory to save report',
|
|
299
|
-
username: 'required username',
|
|
300
|
-
password: 'optional password (will prompt if nil)',
|
|
301
|
-
report_filter: 'optional - results filter (Default:
|
|
301
|
+
report_type: 'required - required report type (csv|itg|pdf|txt|xml)',
|
|
302
|
+
report_id: 'required - required report id to save',
|
|
303
|
+
report_dir: 'required - required directory to save report',
|
|
304
|
+
username: 'required - required username',
|
|
305
|
+
password: 'optional - optional password (will prompt if nil)',
|
|
306
|
+
report_filter: 'optional - results filter (Default: apply_overrides=0 levels=hml rows=1000 min_qod=70 first=1 sort-reverse=severity'
|
|
302
307
|
)
|
|
303
308
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
309
|
+
# Run get report types and return its result
|
|
310
|
+
#{self}.get_report_types(
|
|
311
|
+
username: 'required - required username',
|
|
312
|
+
password: 'optional - optional password (will prompt if nil)'
|
|
307
313
|
)
|
|
308
314
|
|
|
315
|
+
# Print the AUTHOR(S) string for this module.
|
|
309
316
|
#{self}.authors
|
|
310
317
|
"
|
|
318
|
+
constants.sort
|
|
311
319
|
end
|
|
312
320
|
end
|
|
313
321
|
end
|