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/dao_ldap.rb
CHANGED
|
@@ -105,26 +105,32 @@ module PWN
|
|
|
105
105
|
|
|
106
106
|
public_class_method def self.help
|
|
107
107
|
puts "USAGE:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
108
|
+
# Run connect and return its result
|
|
109
|
+
#{self}.connect(
|
|
110
|
+
host: 'required - required host or IP',
|
|
111
|
+
port: 'optional - optional port (defaults to 636)',
|
|
112
|
+
base: 'required - required ldap base to search from (e.g. dc=domain,dc=com)',
|
|
113
|
+
encryption: 'optional - optional parameter to protect communication in transit, :simple_tls OR :start_tls',
|
|
114
|
+
auth_method: 'required - required ldap auth bind method, :simple, :sasl, OR :gss_spnego',
|
|
115
|
+
username: 'required - required username (e.g. support@0dayinc.com)',
|
|
116
|
+
password: 'optional - optional (prompts if left blank)'
|
|
116
117
|
)
|
|
117
118
|
|
|
118
|
-
employee
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
# Run get employee by username and return its result
|
|
120
|
+
#{self}.get_employee_by_username(
|
|
121
|
+
ldap_obj: 'required - required ldap_obj returned from #connect method',
|
|
122
|
+
username: 'required - required username of employee to retrieve from LDAP server'
|
|
121
123
|
)
|
|
122
|
-
puts employee[0][:dn]
|
|
123
124
|
|
|
124
|
-
#
|
|
125
|
+
# Run disconnect and return its result
|
|
126
|
+
#{self}.disconnect(
|
|
127
|
+
ldap_obj: 'optional - ldap obj value consumed by #disconnect'
|
|
128
|
+
)
|
|
125
129
|
|
|
130
|
+
# Print the AUTHOR(S) string for this module.
|
|
126
131
|
#{self}.authors
|
|
127
132
|
"
|
|
133
|
+
constants.sort
|
|
128
134
|
end
|
|
129
135
|
end
|
|
130
136
|
end
|
|
@@ -80,16 +80,22 @@ module PWN
|
|
|
80
80
|
|
|
81
81
|
public_class_method def self.help
|
|
82
82
|
puts "USAGE:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
# Run connect and return its result
|
|
84
|
+
#{self}.connect(
|
|
85
|
+
host: 'optional - optional host or IP defaults to 127.0.0.1',
|
|
86
|
+
port: 'optional - optional port defaults to 27017',
|
|
87
|
+
database: 'optional - optional database name'
|
|
87
88
|
)
|
|
88
89
|
|
|
89
|
-
#
|
|
90
|
+
# Run disconnect and return its result
|
|
91
|
+
#{self}.disconnect(
|
|
92
|
+
mongo_conn: 'optional - mongo conn value consumed by #disconnect'
|
|
93
|
+
)
|
|
90
94
|
|
|
95
|
+
# Print the AUTHOR(S) string for this module.
|
|
91
96
|
#{self}.authors
|
|
92
97
|
"
|
|
98
|
+
constants.sort
|
|
93
99
|
end
|
|
94
100
|
end
|
|
95
101
|
end
|
|
@@ -190,34 +190,43 @@ module PWN
|
|
|
190
190
|
|
|
191
191
|
public_class_method def self.help
|
|
192
192
|
puts "USAGE:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
193
|
+
# Run connect and return its result
|
|
194
|
+
#{self}.connect(
|
|
195
|
+
host: 'required - required host or IP',
|
|
196
|
+
port: 'optional - optional port (defaults to 5432)',
|
|
197
|
+
dbname: 'required - required database name',
|
|
198
|
+
user: 'required - required username',
|
|
199
|
+
password: 'optional - optional (prompts if left blank)',
|
|
200
|
+
connect_timeout: 'optional - optional (defaults to 60 seconds)',
|
|
201
|
+
options: 'optional - optional postgres options',
|
|
202
|
+
tty: 'optional - optional tty',
|
|
203
|
+
sslmode: 'required - :disable|:allow|:prefer|:require'
|
|
203
204
|
)
|
|
204
205
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
# Run sql statement and return its result
|
|
207
|
+
#{self}.sql_statement(
|
|
208
|
+
pg_conn: 'optional - pg conn value consumed by #sql_statement',
|
|
209
|
+
prepared_statement: 'optional - SELECT * FROM tn_users WHERE state = $1',
|
|
210
|
+
statement_params: 'required - statement params value consumed by #sql_statement'
|
|
209
211
|
)
|
|
210
212
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
# Method Parameters Not Implemented
|
|
214
|
+
#{self}.list_all_columns_by_table(
|
|
215
|
+
pg_conn: 'optional - pg conn value consumed by #list_all_columns_by_table',
|
|
216
|
+
schema: 'required - required schema name',
|
|
217
|
+
table_name: 'required - required table name',
|
|
218
|
+
table_schema: 'optional - table schema value consumed by #list_all_columns_by_table'
|
|
215
219
|
)
|
|
216
220
|
|
|
217
|
-
#
|
|
221
|
+
# Run disconnect and return its result
|
|
222
|
+
#{self}.disconnect(
|
|
223
|
+
pg_conn: 'optional - pg conn value consumed by #disconnect'
|
|
224
|
+
)
|
|
218
225
|
|
|
226
|
+
# Print the AUTHOR(S) string for this module.
|
|
219
227
|
#{self}.authors
|
|
220
228
|
"
|
|
229
|
+
constants.sort
|
|
221
230
|
end
|
|
222
231
|
end
|
|
223
232
|
end
|
|
@@ -107,18 +107,27 @@ module PWN
|
|
|
107
107
|
|
|
108
108
|
public_class_method def self.help
|
|
109
109
|
puts "USAGE:
|
|
110
|
-
|
|
110
|
+
# Run connect and return its result
|
|
111
|
+
#{self}.connect(
|
|
112
|
+
db_path: 'required - Path of SQLite3 DB File'
|
|
113
|
+
)
|
|
111
114
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
# Run sql statement and return its result
|
|
116
|
+
#{self}.sql_statement(
|
|
117
|
+
sqlite3_conn: 'optional - sqlite3 conn value consumed by #sql_statement',
|
|
118
|
+
prepared_statement: 'optional - SELECT * FROM tn_users WHERE state = ?;',
|
|
119
|
+
statement_params: 'required - statement params value consumed by #sql_statement'
|
|
116
120
|
)
|
|
117
121
|
|
|
118
|
-
#
|
|
122
|
+
# Run disconnect and return its result
|
|
123
|
+
#{self}.disconnect(
|
|
124
|
+
sqlite3_conn: 'optional - sqlite3 conn value consumed by #disconnect'
|
|
125
|
+
)
|
|
119
126
|
|
|
127
|
+
# Print the AUTHOR(S) string for this module.
|
|
120
128
|
#{self}.authors
|
|
121
129
|
"
|
|
130
|
+
constants.sort
|
|
122
131
|
end
|
|
123
132
|
end
|
|
124
133
|
end
|
|
@@ -738,7 +738,8 @@ module PWN
|
|
|
738
738
|
|
|
739
739
|
public_class_method def self.help
|
|
740
740
|
puts "USAGE:
|
|
741
|
-
|
|
741
|
+
# Run login and return its result
|
|
742
|
+
#{self}.login(
|
|
742
743
|
url: 'required - url of DefectDojo Server',
|
|
743
744
|
api_version: 'required - api version to use v1 || v2',
|
|
744
745
|
username: 'required - username to AuthN w/ api v1)',
|
|
@@ -746,18 +747,21 @@ module PWN
|
|
|
746
747
|
proxy: 'optional - proxy all traffic through MITM proxy (defaults to nil)'
|
|
747
748
|
)
|
|
748
749
|
|
|
749
|
-
|
|
750
|
-
|
|
750
|
+
# Run product list and return its result
|
|
751
|
+
#{self}.product_list(
|
|
752
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
751
753
|
id: 'optional - retrieve single product by id, otherwise return all'
|
|
752
754
|
)
|
|
753
755
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
+
# Run engagement list and return its result
|
|
757
|
+
#{self}.engagement_list(
|
|
758
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
756
759
|
id: 'optional - retrieve single engagement by id, otherwise return all'
|
|
757
760
|
)
|
|
758
761
|
|
|
759
|
-
|
|
760
|
-
|
|
762
|
+
# Run engagement create and return its result
|
|
763
|
+
#{self}.engagement_create(
|
|
764
|
+
dd_obj: 'required - dd_obj returned from #login method',
|
|
761
765
|
name: 'required - name of the engagement',
|
|
762
766
|
description: 'optional - description of engagement',
|
|
763
767
|
engagement_type: 'optional - type of engagement Interactive||CI/CD (defaults to CI/CD)',
|
|
@@ -774,16 +778,19 @@ module PWN
|
|
|
774
778
|
check_list: 'optional - boolean to set an engagement as a checkbox assessment (defaults to false)',
|
|
775
779
|
first_contacted: 'optional - date of engagement request e.g. 2018-06-18 (Defaults to current day)',
|
|
776
780
|
target_start: 'optional - date to start enagement e.g. 2018-06-19 (Defaults to current day)',
|
|
777
|
-
target_end: 'optional - date of engagement completion e.g. 2018-06-20 (Defaults to current day)'
|
|
781
|
+
target_end: 'optional - date of engagement completion e.g. 2018-06-20 (Defaults to current day)',
|
|
782
|
+
engagment_type: 'optional - engagment type value consumed by #engagement_create'
|
|
778
783
|
)
|
|
779
784
|
|
|
780
|
-
|
|
781
|
-
|
|
785
|
+
# Run test list and return its result
|
|
786
|
+
#{self}.test_list(
|
|
787
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
782
788
|
id: 'optional - retrieve single test by id, otherwise return all'
|
|
783
789
|
)
|
|
784
790
|
|
|
785
|
-
|
|
786
|
-
|
|
791
|
+
# Run importscan and return its result
|
|
792
|
+
#{self}.importscan(
|
|
793
|
+
dd_obj: 'required - dd_obj returned from #login method',
|
|
787
794
|
engagement_name: 'required - name of engagement to associate w/ scan',
|
|
788
795
|
scan_type: 'required - type of scan importing (see <DEFECTDOJO_URL>/admin/dojo/test_type/ for listing)',
|
|
789
796
|
file: 'required - path of scan results file',
|
|
@@ -795,11 +802,14 @@ module PWN
|
|
|
795
802
|
create_finding_groups: 'optional - flag to create finding groups (defaults to false)',
|
|
796
803
|
close_old_findings_product_scope: 'optional - flag to close old findings from engagement (defaults to false)',
|
|
797
804
|
close_old_findings: 'optional - flag to close old findings, regardless of engagement (defaults to false)',
|
|
798
|
-
push_to_jira: 'optional - flag to push findings to JIRA (defaults to false)'
|
|
805
|
+
push_to_jira: 'optional - flag to push findings to JIRA (defaults to false)',
|
|
806
|
+
test_title: 'optional - test title value consumed by #importscan',
|
|
807
|
+
group_by: 'required - group by value consumed by #importscan'
|
|
799
808
|
)
|
|
800
809
|
|
|
801
|
-
|
|
802
|
-
|
|
810
|
+
# Run reimportscan and return its result
|
|
811
|
+
#{self}.reimportscan(
|
|
812
|
+
dd_obj: 'required - dd_obj returned from #login method',
|
|
803
813
|
engagement_name: 'required - name of engagement to associate w/ scan',
|
|
804
814
|
scan_type: 'required - type of scan importing (see <DEFECTDOJO_URL>/admin/dojo/test_type/ for listing)',
|
|
805
815
|
file: 'required - path of scan results file',
|
|
@@ -814,27 +824,33 @@ module PWN
|
|
|
814
824
|
push_to_jira: 'optional - flag to push findings to JIRA (defaults to false)'
|
|
815
825
|
)
|
|
816
826
|
|
|
817
|
-
|
|
818
|
-
|
|
827
|
+
# Run finding list and return its result
|
|
828
|
+
#{self}.finding_list(
|
|
829
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
819
830
|
id: 'optional - retrieve single finding by id, otherwise return all'
|
|
820
831
|
)
|
|
821
832
|
|
|
822
|
-
|
|
823
|
-
|
|
833
|
+
# Run user list and return its result
|
|
834
|
+
#{self}.user_list(
|
|
835
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
824
836
|
id: 'optional - retrieve single user by id, otherwise return all'
|
|
825
837
|
)
|
|
826
838
|
|
|
827
|
-
|
|
828
|
-
|
|
839
|
+
# Run tool configuration list and return its result
|
|
840
|
+
#{self}.tool_configuration_list(
|
|
841
|
+
dd_obj: 'required - required dd_obj returned from #login method',
|
|
829
842
|
id: 'optional - retrieve single test by id, otherwise return all'
|
|
830
843
|
)
|
|
831
844
|
|
|
845
|
+
# Run logout and return its result
|
|
832
846
|
#{self}.logout(
|
|
833
|
-
dd_obj: 'required dd_obj returned from #
|
|
847
|
+
dd_obj: 'required - required dd_obj returned from #login method'
|
|
834
848
|
)
|
|
835
849
|
|
|
850
|
+
# Print the AUTHOR(S) string for this module.
|
|
836
851
|
#{self}.authors
|
|
837
852
|
"
|
|
853
|
+
constants.sort
|
|
838
854
|
end
|
|
839
855
|
end
|
|
840
856
|
end
|
|
@@ -57,14 +57,19 @@ module PWN
|
|
|
57
57
|
|
|
58
58
|
public_class_method def self.help
|
|
59
59
|
puts "USAGE:
|
|
60
|
+
# Run type and return its result
|
|
60
61
|
#{self}.type
|
|
61
62
|
|
|
63
|
+
# Run arch and return its result
|
|
62
64
|
#{self}.arch
|
|
63
65
|
|
|
66
|
+
# Run endian and return its result
|
|
64
67
|
#{self}.endian
|
|
65
68
|
|
|
69
|
+
# Print the AUTHOR(S) string for this module.
|
|
66
70
|
#{self}.authors
|
|
67
71
|
"
|
|
72
|
+
constants.sort
|
|
68
73
|
end
|
|
69
74
|
end
|
|
70
75
|
end
|
data/lib/pwn/plugins/ein.rb
CHANGED
|
@@ -129,12 +129,15 @@ module PWN
|
|
|
129
129
|
|
|
130
130
|
public_class_method def self.help
|
|
131
131
|
puts "USAGE:
|
|
132
|
+
# Run generate and return its result
|
|
132
133
|
#{self}.generate(
|
|
133
134
|
count: 'required - number of EIN numbers to generate'
|
|
134
135
|
)
|
|
135
136
|
|
|
137
|
+
# Print the AUTHOR(S) string for this module.
|
|
136
138
|
#{self}.authors
|
|
137
139
|
"
|
|
140
|
+
constants.sort
|
|
138
141
|
end
|
|
139
142
|
end
|
|
140
143
|
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'open3'
|
|
5
|
+
|
|
6
|
+
module PWN
|
|
7
|
+
module Plugins
|
|
8
|
+
# searchsploit / ExploitDB plus a CPE string builder for nmap versions.
|
|
9
|
+
module ExploitDB
|
|
10
|
+
public_class_method def self.required_bins
|
|
11
|
+
%w[searchsploit]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
public_class_method def self.search(opts = {})
|
|
15
|
+
q = (opts[:query] || opts[:q]).to_s
|
|
16
|
+
raise 'ERROR: query is required' if q.empty?
|
|
17
|
+
|
|
18
|
+
return { error: 'searchsploit missing', query: q } unless PWN::Plugins::PreflightChecker.bin?(name: 'searchsploit')
|
|
19
|
+
|
|
20
|
+
stdout, stderr, status = Open3.capture3('searchsploit', '--json', q)
|
|
21
|
+
parsed = begin
|
|
22
|
+
JSON.parse(stdout)
|
|
23
|
+
rescue JSON::ParserError
|
|
24
|
+
{}
|
|
25
|
+
end
|
|
26
|
+
{ query: q, results: parsed['RESULTS_EXPLOIT'] || parsed['results'] || [], stderr: stderr, exit: status.exitstatus }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
public_class_method def self.cve_for_cpe(opts = {})
|
|
30
|
+
cpe = opts[:cpe].to_s
|
|
31
|
+
product = opts[:product].to_s
|
|
32
|
+
version = opts[:version].to_s
|
|
33
|
+
q = cpe
|
|
34
|
+
q = "#{product} #{version}".strip if q.empty?
|
|
35
|
+
raise 'ERROR: cpe or product is required' if q.empty?
|
|
36
|
+
|
|
37
|
+
search(query: q).merge(cpe: cpe, product: product, version: version)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
public_class_method def self.authors
|
|
41
|
+
"AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
public_class_method def self.help
|
|
45
|
+
puts "USAGE:
|
|
46
|
+
# List host binaries this module expects to be installed.
|
|
47
|
+
#{self}.required_bins
|
|
48
|
+
|
|
49
|
+
# Search local ExploitDB via searchsploit --json.
|
|
50
|
+
#{self}.search(
|
|
51
|
+
query: 'required - product, CVE, or keyword',
|
|
52
|
+
q: 'optional - alias for query'
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
# Build a search from an nmap CPE/product/version tuple.
|
|
56
|
+
#{self}.cve_for_cpe(
|
|
57
|
+
cpe: 'optional - CPE string (e.g. cpe:/a:apache:http_server:2.4.49)',
|
|
58
|
+
product: 'optional - product name when no CPE',
|
|
59
|
+
version: 'optional - version string from nmap_it'
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
# Print the AUTHOR(S) string for this module.
|
|
63
|
+
#{self}.authors
|
|
64
|
+
"
|
|
65
|
+
constants.sort
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|