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/assembly.rb
CHANGED
|
@@ -252,23 +252,28 @@ module PWN
|
|
|
252
252
|
|
|
253
253
|
public_class_method def self.help
|
|
254
254
|
puts "USAGE:
|
|
255
|
+
# Run opcodes to asm and return its result
|
|
255
256
|
#{self}.opcodes_to_asm(
|
|
256
|
-
opcodes: 'required - hex escaped opcode(s) (e.g.
|
|
257
|
+
opcodes: 'required - hex escaped opcode(s) (e.g. \\x90\\x90\\x90)',
|
|
257
258
|
opcodes_always_string_obj: 'optional - always interpret opcodes passed in as a string object (defaults to false)',
|
|
258
259
|
arch: 'optional - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)',
|
|
259
|
-
endian: 'optional - endianess :big|:little (defaults to system endianess)'
|
|
260
|
+
endian: 'optional - endianess :big|:little (defaults to current system endianess)'
|
|
260
261
|
)
|
|
261
262
|
|
|
263
|
+
# Run asm to opcodes and return its result
|
|
262
264
|
#{self}.asm_to_opcodes(
|
|
263
|
-
asm: 'required - assembly instruction(s) (e.g.
|
|
265
|
+
asm: 'required - assembly instruction(s) (e.g. nop\\nnop\\nnop\\njmp rsp\\n)',
|
|
264
266
|
arch: 'optional - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)',
|
|
265
|
-
endian: 'optional - endianess :big|:little (defaults to system endianess)'
|
|
267
|
+
endian: 'optional - endianess :big|:little (defaults to current system endianess)'
|
|
266
268
|
)
|
|
267
269
|
|
|
270
|
+
# Run list supported archs and return its result
|
|
268
271
|
#{self}.list_supported_archs
|
|
269
272
|
|
|
273
|
+
# Print the AUTHOR(S) string for this module.
|
|
270
274
|
#{self}.authors
|
|
271
275
|
"
|
|
276
|
+
constants.sort
|
|
272
277
|
end
|
|
273
278
|
end
|
|
274
279
|
end
|
|
@@ -66,20 +66,23 @@ module PWN
|
|
|
66
66
|
|
|
67
67
|
public_class_method def self.help
|
|
68
68
|
puts "USAGE:
|
|
69
|
-
#
|
|
70
|
-
|
|
71
|
-
)
|
|
69
|
+
# Run username and return its result
|
|
70
|
+
#{self}.username
|
|
72
71
|
|
|
72
|
+
# Run mask password and return its result
|
|
73
73
|
#{self}.mask_password(
|
|
74
|
-
prompt: 'optional - string to display at prompt'
|
|
74
|
+
prompt: 'optional - string to display at prompt (Default: Password)'
|
|
75
75
|
)
|
|
76
76
|
|
|
77
|
+
# Run mfa and return its result
|
|
77
78
|
#{self}.mfa(
|
|
78
|
-
prompt: 'optional - string to display at prompt'
|
|
79
|
+
prompt: 'optional - string to display at prompt (Default: MFA Token)'
|
|
79
80
|
)
|
|
80
81
|
|
|
82
|
+
# Print the AUTHOR(S) string for this module.
|
|
81
83
|
#{self}.authors
|
|
82
84
|
"
|
|
85
|
+
constants.sort
|
|
83
86
|
end
|
|
84
87
|
end
|
|
85
88
|
end
|
data/lib/pwn/plugins/baresip.rb
CHANGED
|
@@ -682,26 +682,73 @@ module PWN
|
|
|
682
682
|
|
|
683
683
|
public_class_method def self.help
|
|
684
684
|
puts "USAGE:
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
685
|
+
# Run start and return its result
|
|
686
|
+
#{self}.start(
|
|
687
|
+
src_num: 'optional - Optional source phone number displayed',
|
|
688
|
+
baresip_bin: 'optional - Optional path of baresip binary (Defaults to /usr/bin/baresip)',
|
|
689
|
+
config_root: 'optional - Optional dir of baresip config (Defaults to ~/.baresip)',
|
|
690
|
+
session_root: 'optional - Optional dir of baresip session (Defaults to Dir.pwd)',
|
|
691
|
+
screenlog_path: 'optional - Optional path of screenlog file (Defaults to screenlog.txt)',
|
|
692
|
+
screen_session: 'optional - Optional name of screen session (Defaults baresip)'
|
|
692
693
|
)
|
|
693
694
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
695
|
+
# Run baresip exec and return its result
|
|
696
|
+
#{self}.baresip_exec(
|
|
697
|
+
baresip_obj: 'required - baresip obj returned from #start method',
|
|
698
|
+
cmd: 'required - command to send to baresip HTTP daemon'
|
|
697
699
|
)
|
|
698
700
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
+
# Run stop and return its result
|
|
702
|
+
#{self}.stop(
|
|
703
|
+
screen_session: 'required - screen session to stop',
|
|
704
|
+
baresip_obj: 'optional - baresip obj value consumed by #stop'
|
|
701
705
|
)
|
|
702
706
|
|
|
707
|
+
# Run parse target file and return its result
|
|
708
|
+
#{self}.parse_target_file(
|
|
709
|
+
target_file: 'required - txt file containing phone numbers to dial',
|
|
710
|
+
randomize: 'optional - randomize list of phone numbers to dial (Defaults to false)'
|
|
711
|
+
)
|
|
712
|
+
|
|
713
|
+
# Run apply src num rules and return its result
|
|
714
|
+
#{self}.apply_src_num_rules(
|
|
715
|
+
target_num: 'required - destination number to derive source number',
|
|
716
|
+
src_num_rules: 'optional - Comma-delimited list of rules for src_num format (i.e. XXXXXXXXXX, self, same_country, same_area, and/or same_prefix [Defaults to random src_num w/ same length as target_num])',
|
|
717
|
+
config_root: 'optional - config root value consumed by #apply_src_num_rules'
|
|
718
|
+
)
|
|
719
|
+
|
|
720
|
+
# Run dial target in list and return its result
|
|
721
|
+
#{self}.dial_target_in_list(
|
|
722
|
+
baresip_bin: 'optional - baresip bin value consumed by #dial_target_in_list',
|
|
723
|
+
target_num: 'optional - target num value consumed by #dial_target_in_list',
|
|
724
|
+
config_root: 'optional - config root value consumed by #dial_target_in_list',
|
|
725
|
+
session_root: 'optional - session root value consumed by #dial_target_in_list',
|
|
726
|
+
randomize: 'optional - randomize value consumed by #dial_target_in_list',
|
|
727
|
+
src_num_rules: 'optional - src num rules value consumed by #dial_target_in_list',
|
|
728
|
+
seconds_to_record: 'optional - seconds to record value consumed by #dial_target_in_list',
|
|
729
|
+
sox_bin: 'optional - sox bin value consumed by #dial_target_in_list',
|
|
730
|
+
speech_to_text: 'optional - speech to text value consumed by #dial_target_in_list'
|
|
731
|
+
)
|
|
732
|
+
|
|
733
|
+
# Run recon and return its result
|
|
734
|
+
#{self}.recon(
|
|
735
|
+
baresip_bin: 'optional - baresip bin value consumed by #recon',
|
|
736
|
+
config_root: 'optional - config root value consumed by #recon',
|
|
737
|
+
session_root: 'optional - session root value consumed by #recon',
|
|
738
|
+
target_file: 'optional - target file value consumed by #recon',
|
|
739
|
+
randomize: 'optional - randomize value consumed by #recon',
|
|
740
|
+
src_num_rules: 'optional - src num rules value consumed by #recon',
|
|
741
|
+
max_threads: 'optional - max threads value consumed by #recon',
|
|
742
|
+
seconds_to_record: 'optional - seconds to record value consumed by #recon',
|
|
743
|
+
sox_bin: 'optional - sox bin value consumed by #recon',
|
|
744
|
+
speech_to_text: 'optional - speech to text value consumed by #recon',
|
|
745
|
+
report_name: 'optional - report name value consumed by #recon'
|
|
746
|
+
)
|
|
747
|
+
|
|
748
|
+
# Print the AUTHOR(S) string for this module.
|
|
703
749
|
#{self}.authors
|
|
704
750
|
"
|
|
751
|
+
constants.sort
|
|
705
752
|
end
|
|
706
753
|
end
|
|
707
754
|
end
|
|
@@ -48,15 +48,21 @@ module PWN
|
|
|
48
48
|
|
|
49
49
|
public_class_method def self.help
|
|
50
50
|
puts "USAGE:
|
|
51
|
+
# Run encode and return its result
|
|
51
52
|
#{self}.encode(
|
|
52
|
-
username: 'optional username',
|
|
53
|
-
password: 'optional password'
|
|
53
|
+
username: 'optional - optional username',
|
|
54
|
+
password: 'optional - optional password'
|
|
54
55
|
)
|
|
55
56
|
|
|
56
|
-
#
|
|
57
|
+
# Run decode and return its result
|
|
58
|
+
#{self}.decode(
|
|
59
|
+
base64_str: 'required - required base64 encoded string'
|
|
60
|
+
)
|
|
57
61
|
|
|
62
|
+
# Print the AUTHOR(S) string for this module.
|
|
58
63
|
#{self}.authors
|
|
59
64
|
"
|
|
65
|
+
constants.sort
|
|
60
66
|
end
|
|
61
67
|
end
|
|
62
68
|
end
|
data/lib/pwn/plugins/beef.rb
CHANGED
|
@@ -266,46 +266,56 @@ module PWN
|
|
|
266
266
|
|
|
267
267
|
public_class_method def self.help
|
|
268
268
|
puts "USAGE:
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
# Run login and return its result
|
|
270
|
+
#{self}.login(
|
|
271
|
+
beef_ip: 'required - host/ip of BeEF Server',
|
|
271
272
|
beef_port: 'optional - port of BeEF server (defaults to 3000)',
|
|
272
|
-
username: 'required username',
|
|
273
|
-
password: 'optional password (will prompt if nil)'
|
|
273
|
+
username: 'required - username value consumed by #login',
|
|
274
|
+
password: 'optional - password (will prompt if nil)'
|
|
274
275
|
)
|
|
275
276
|
|
|
276
|
-
hooks
|
|
277
|
-
|
|
277
|
+
# Run hooks and return its result
|
|
278
|
+
#{self}.hooks(
|
|
279
|
+
beef_obj: 'required - required beef_obj returned from #login method'
|
|
278
280
|
)
|
|
279
281
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
+
# Run hooked browser info and return its result
|
|
283
|
+
#{self}.hooked_browser_info(
|
|
284
|
+
beef_obj: 'required - required beef_obj returned from #login method',
|
|
282
285
|
browser_session: 'required - browser session id returned from #hooks method'
|
|
283
286
|
)
|
|
284
287
|
|
|
285
|
-
logs
|
|
286
|
-
|
|
288
|
+
# Run logs and return its result
|
|
289
|
+
#{self}.logs(
|
|
290
|
+
beef_obj: 'required - required beef_obj returned from #login method'
|
|
287
291
|
)
|
|
288
292
|
|
|
289
|
-
|
|
290
|
-
|
|
293
|
+
# Run hooked browser logs and return its result
|
|
294
|
+
#{self}.hooked_browser_logs(
|
|
295
|
+
beef_obj: 'required - required beef_obj returned from #login method',
|
|
291
296
|
browser_session: 'required - browser session id returned from #hooks method'
|
|
292
297
|
)
|
|
293
298
|
|
|
294
|
-
modules
|
|
295
|
-
|
|
299
|
+
# Run modules and return its result
|
|
300
|
+
#{self}.modules(
|
|
301
|
+
beef_obj: 'required - required beef_obj returned from #login method'
|
|
296
302
|
)
|
|
297
303
|
|
|
298
|
-
|
|
299
|
-
|
|
304
|
+
# Run module info and return its result
|
|
305
|
+
#{self}.module_info(
|
|
306
|
+
beef_obj: 'required - required beef_obj returned from #login method',
|
|
300
307
|
module_id: 'required - module id returned from #modules method'
|
|
301
308
|
)
|
|
302
309
|
|
|
303
|
-
|
|
304
|
-
|
|
310
|
+
# Run logout and return its result
|
|
311
|
+
#{self}.logout(
|
|
312
|
+
beef_obj: 'required - required beef_obj returned from #login method'
|
|
305
313
|
)
|
|
306
314
|
|
|
315
|
+
# Print the AUTHOR(S) string for this module.
|
|
307
316
|
#{self}.authors
|
|
308
317
|
"
|
|
318
|
+
constants.sort
|
|
309
319
|
end
|
|
310
320
|
end
|
|
311
321
|
end
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'metasm'
|
|
4
|
+
|
|
5
|
+
module PWN
|
|
6
|
+
module Plugins
|
|
7
|
+
# ELF/PE/Mach-O headers, sections, symbols, imports/exports, relocations
|
|
8
|
+
# via Metasm loaders.
|
|
9
|
+
module BinaryParser
|
|
10
|
+
public_class_method def self.required_bins
|
|
11
|
+
[]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
public_class_method def self.load_exe(opts = {})
|
|
15
|
+
path = opts[:path].to_s
|
|
16
|
+
raise 'ERROR: path is required' if path.empty?
|
|
17
|
+
raise "ERROR: file not found: #{path}" unless File.file?(path)
|
|
18
|
+
|
|
19
|
+
Metasm::AutoExe.decode_file(path)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
public_class_method def self.info(opts = {})
|
|
23
|
+
exe = load_exe(opts)
|
|
24
|
+
{
|
|
25
|
+
class: exe.class.name,
|
|
26
|
+
cpu: exe.cpu.class.name,
|
|
27
|
+
entrypoint: (exe.optheader.entrypoint if exe.respond_to?(:optheader) && exe.optheader.respond_to?(:entrypoint)),
|
|
28
|
+
format: format_name(exe: exe)
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
public_class_method def self.sections(opts = {})
|
|
33
|
+
exe = load_exe(opts)
|
|
34
|
+
Array(exe.sections).map do |sec|
|
|
35
|
+
{
|
|
36
|
+
name: (sec.name if sec.respond_to?(:name)),
|
|
37
|
+
size: (sec.size if sec.respond_to?(:size)),
|
|
38
|
+
virtaddr: (sec.virtaddr if sec.respond_to?(:virtaddr))
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
public_class_method def self.symbols(opts = {})
|
|
44
|
+
exe = load_exe(opts)
|
|
45
|
+
return [] unless exe.respond_to?(:symbols)
|
|
46
|
+
|
|
47
|
+
Array(exe.symbols).first((opts[:limit] || 200).to_i).map do |sym|
|
|
48
|
+
{ name: (sym.name if sym.respond_to?(:name)), value: (sym.value if sym.respond_to?(:value)) }
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
public_class_method def self.imports(opts = {})
|
|
53
|
+
exe = load_exe(opts)
|
|
54
|
+
if exe.respond_to?(:imports)
|
|
55
|
+
Array(exe.imports).map(&:to_s)
|
|
56
|
+
else
|
|
57
|
+
symbols(opts).map { |s| s[:name].to_s }.grep(/plt|imp/i).first(100)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
public_class_method def self.exports(opts = {})
|
|
62
|
+
exe = load_exe(opts)
|
|
63
|
+
if exe.respond_to?(:export)
|
|
64
|
+
Array(exe.export&.exports).map { |e| e.respond_to?(:name) ? e.name : e.to_s }
|
|
65
|
+
else
|
|
66
|
+
[]
|
|
67
|
+
end
|
|
68
|
+
rescue StandardError
|
|
69
|
+
[]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
public_class_method def self.relocations(opts = {})
|
|
73
|
+
exe = load_exe(opts)
|
|
74
|
+
return [] unless exe.respond_to?(:relocations)
|
|
75
|
+
|
|
76
|
+
Array(exe.relocations).first((opts[:limit] || 100).to_i).map(&:to_s)
|
|
77
|
+
rescue StandardError
|
|
78
|
+
[]
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
public_class_method def self.authors
|
|
82
|
+
"AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
public_class_method def self.help
|
|
86
|
+
puts "USAGE:
|
|
87
|
+
# List host binaries this module expects to be installed.
|
|
88
|
+
#{self}.required_bins
|
|
89
|
+
|
|
90
|
+
# Run load exe and return its result
|
|
91
|
+
#{self}.load_exe(
|
|
92
|
+
path: 'required - filesystem path to read or write'
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# Run info and return its result
|
|
96
|
+
#{self}.info
|
|
97
|
+
|
|
98
|
+
# Run sections and return its result
|
|
99
|
+
#{self}.sections
|
|
100
|
+
|
|
101
|
+
# Run symbols and return its result
|
|
102
|
+
#{self}.symbols(
|
|
103
|
+
limit: 'optional - limit value consumed by #symbols'
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
# Run imports and return its result
|
|
107
|
+
#{self}.imports
|
|
108
|
+
|
|
109
|
+
# Run exports and return its result
|
|
110
|
+
#{self}.exports
|
|
111
|
+
|
|
112
|
+
# Run relocations and return its result
|
|
113
|
+
#{self}.relocations(
|
|
114
|
+
limit: 'optional - limit value consumed by #relocations'
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# Print the AUTHOR(S) string for this module.
|
|
118
|
+
#{self}.authors
|
|
119
|
+
"
|
|
120
|
+
constants.sort
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
private_class_method def self.format_name(opts = {})
|
|
124
|
+
exe = opts[:exe]
|
|
125
|
+
return 'elf' if exe.class.name.to_s.include?('ELF')
|
|
126
|
+
return 'pe' if exe.class.name.to_s.include?('PE')
|
|
127
|
+
return 'macho' if exe.class.name.to_s.include?('MachO') || exe.class.name.to_s.include?('Mach')
|
|
128
|
+
|
|
129
|
+
exe.class.name
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
@@ -658,63 +658,72 @@ module PWN
|
|
|
658
658
|
|
|
659
659
|
public_class_method def self.help
|
|
660
660
|
puts "USAGE:
|
|
661
|
-
|
|
661
|
+
# Run get apps and return its result
|
|
662
|
+
#{self}.get_apps(
|
|
662
663
|
token: 'required - Bearer token'
|
|
663
664
|
)
|
|
664
665
|
|
|
665
|
-
|
|
666
|
+
# Run get apps by group and return its result
|
|
667
|
+
#{self}.get_apps_by_group(
|
|
668
|
+
token: 'required - Bearer token',
|
|
669
|
+
group_id: 'required - group id value consumed by #get_apps_by_group'
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
# Run upload file and return its result
|
|
673
|
+
#{self}.upload_file(
|
|
666
674
|
token: 'required - Bearer token',
|
|
667
675
|
file: 'required - path of file to upload',
|
|
668
|
-
group_id: 'optional - group id',
|
|
676
|
+
group_id: 'optional - group id value consumed by #upload_file',
|
|
669
677
|
delete_binary: 'optional - delete binary after upload (defaults to false)',
|
|
670
678
|
force_scan: 'optional - force scan (defaults to false)',
|
|
671
|
-
callback_url: 'optional - callback url',
|
|
679
|
+
callback_url: 'optional - callback url value consumed by #upload_file',
|
|
672
680
|
scan_infoleak: 'optional - scan infoleak (defaults to true)',
|
|
673
681
|
code_analysis: 'optional - code analysis (defaults to true)',
|
|
674
|
-
scan_code_familiarity: 'optional - scan code familiarity (defaults to
|
|
675
|
-
version: 'optional - version',
|
|
676
|
-
product_id: 'optional - product id'
|
|
682
|
+
scan_code_familiarity: 'optional - scan code familiarity (defaults to false)',
|
|
683
|
+
version: 'optional - version value consumed by #upload_file',
|
|
684
|
+
product_id: 'optional - product id value consumed by #upload_file'
|
|
677
685
|
)
|
|
678
686
|
|
|
679
|
-
|
|
687
|
+
# Run get product and return its result
|
|
688
|
+
#{self}.get_product(
|
|
680
689
|
token: 'required - Bearer token',
|
|
681
|
-
product_id: 'required - product id'
|
|
690
|
+
product_id: 'required - product id value consumed by #get_product'
|
|
682
691
|
)
|
|
683
692
|
|
|
684
|
-
|
|
693
|
+
# Run abort product scan and return its result
|
|
694
|
+
#{self}.abort_product_scan(
|
|
685
695
|
token: 'required - Bearer token',
|
|
686
|
-
product_id: 'required - product id'
|
|
696
|
+
product_id: 'required - product id value consumed by #abort_product_scan'
|
|
687
697
|
)
|
|
688
698
|
|
|
689
|
-
|
|
699
|
+
# Run generate product report and return its result
|
|
700
|
+
#{self}.generate_product_report(
|
|
690
701
|
token: 'required - Bearer token',
|
|
691
|
-
product_id: 'required - product id',
|
|
702
|
+
product_id: 'required - product id value consumed by #generate_product_report',
|
|
692
703
|
output_path: 'required - path to output file',
|
|
693
704
|
type: 'optional - report type csv_libs||csv_vulns|pdf|spdx (Defaults to csv_vulns)'
|
|
694
705
|
)
|
|
695
706
|
|
|
696
|
-
|
|
707
|
+
# Run get tasks and return its result
|
|
708
|
+
#{self}.get_tasks(
|
|
697
709
|
token: 'required - Bearer token'
|
|
698
710
|
)
|
|
699
711
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
group_id: 'required - group id'
|
|
703
|
-
)
|
|
704
|
-
|
|
705
|
-
response = #{self}.get_groups(
|
|
712
|
+
# Run get groups and return its result
|
|
713
|
+
#{self}.get_groups(
|
|
706
714
|
token: 'required - Bearer token'
|
|
707
715
|
)
|
|
708
716
|
|
|
709
|
-
|
|
717
|
+
# Run create group and return its result
|
|
718
|
+
#{self}.create_group(
|
|
710
719
|
token: 'required - Bearer token',
|
|
711
720
|
name: 'required - group name',
|
|
712
721
|
desc: 'optional - group description',
|
|
713
|
-
parent_id: 'optional -
|
|
722
|
+
parent_id: 'optional - parent group id',
|
|
714
723
|
delete_binary: 'optional - delete binary after analysis C|Y|N (Default: C== company default)',
|
|
715
724
|
binary_cleanup_age: 'optional - after how long the binary will be deleted in seconds (Default: 2_592_000 / 30 days)',
|
|
716
725
|
product_cleanup_age: 'optional - after how long the product will be deleted in seconds (Default: 2_592_000 / 30 days)',
|
|
717
|
-
file_download_enabled: 'optional - allow download of uploaded binaries from group (Default: false
|
|
726
|
+
file_download_enabled: 'optional - allow download of uploaded binaries from group (Default: false',
|
|
718
727
|
low_risk_tolerance: 'optional - low risk tolerance nil|true|false (Default: nil == company default)',
|
|
719
728
|
include_historical_vulns: 'optional - include historical vulns nil|true|false (Default: nil == company default)',
|
|
720
729
|
cvss3_fallback: 'optional - cvss3 fallback nil|true|false (Default: nil == company default)',
|
|
@@ -725,63 +734,78 @@ module PWN
|
|
|
725
734
|
scan_code_similarity: 'optional - scan code similarity nil|true|false (Default: nil == company default)'
|
|
726
735
|
)
|
|
727
736
|
|
|
728
|
-
|
|
737
|
+
# Run get group details and return its result
|
|
738
|
+
#{self}.get_group_details(
|
|
729
739
|
token: 'required - Bearer token',
|
|
730
|
-
group_id: 'required - group id'
|
|
740
|
+
group_id: 'required - group id value consumed by #get_group_details'
|
|
731
741
|
)
|
|
732
742
|
|
|
733
|
-
|
|
743
|
+
# Run get group statistics and return its result
|
|
744
|
+
#{self}.get_group_statistics(
|
|
734
745
|
token: 'required - Bearer token',
|
|
735
|
-
group_id: 'required - group id'
|
|
746
|
+
group_id: 'required - group id value consumed by #get_group_statistics'
|
|
736
747
|
)
|
|
737
748
|
|
|
738
|
-
|
|
749
|
+
# Run delete group and return its result
|
|
750
|
+
#{self}.delete_group(
|
|
739
751
|
token: 'required - Bearer token',
|
|
740
|
-
group_id: 'required - group id'
|
|
752
|
+
group_id: 'required - group id value consumed by #delete_group'
|
|
741
753
|
)
|
|
742
754
|
|
|
743
|
-
|
|
755
|
+
# Run get licenses and return its result
|
|
756
|
+
#{self}.get_licenses(
|
|
744
757
|
token: 'required - Bearer token'
|
|
745
758
|
)
|
|
746
759
|
|
|
747
|
-
|
|
760
|
+
# Run get component licenses and return its result
|
|
761
|
+
#{self}.get_component_licenses(
|
|
748
762
|
token: 'required - Bearer token'
|
|
749
763
|
)
|
|
750
764
|
|
|
751
|
-
|
|
765
|
+
# Run get tags and return its result
|
|
766
|
+
#{self}.get_tags(
|
|
752
767
|
token: 'required - Bearer token'
|
|
753
768
|
)
|
|
754
769
|
|
|
755
|
-
|
|
770
|
+
# Run get vulnerabilities and return its result
|
|
771
|
+
#{self}.get_vulnerabilities(
|
|
756
772
|
token: 'required - Bearer token'
|
|
757
773
|
)
|
|
758
774
|
|
|
759
|
-
|
|
775
|
+
# Run get components and return its result
|
|
776
|
+
#{self}.get_components(
|
|
760
777
|
token: 'required - Bearer token'
|
|
761
778
|
)
|
|
762
779
|
|
|
763
|
-
|
|
780
|
+
# Run get vendor vulns and return its result
|
|
781
|
+
#{self}.get_vendor_vulns(
|
|
764
782
|
token: 'required - Bearer token'
|
|
765
783
|
)
|
|
766
784
|
|
|
767
|
-
|
|
785
|
+
# Run get audit trail and return its result
|
|
786
|
+
#{self}.get_audit_trail(
|
|
768
787
|
token: 'required - Bearer token'
|
|
769
788
|
)
|
|
770
789
|
|
|
771
|
-
|
|
790
|
+
# Run get status and return its result
|
|
791
|
+
#{self}.get_status(
|
|
772
792
|
token: 'required - Bearer token'
|
|
773
793
|
)
|
|
774
794
|
|
|
775
|
-
|
|
795
|
+
# Run get service info and return its result
|
|
796
|
+
#{self}.get_service_info(
|
|
776
797
|
token: 'required - Bearer token'
|
|
777
798
|
)
|
|
778
799
|
|
|
779
|
-
|
|
800
|
+
# Run get service version and return its result
|
|
801
|
+
#{self}.get_service_version(
|
|
780
802
|
token: 'required - Bearer token'
|
|
781
803
|
)
|
|
782
804
|
|
|
805
|
+
# Print the AUTHOR(S) string for this module.
|
|
783
806
|
#{self}.authors
|
|
784
807
|
"
|
|
808
|
+
constants.sort
|
|
785
809
|
end
|
|
786
810
|
end
|
|
787
811
|
end
|