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
data/lib/pwn/sast/token.rb
CHANGED
|
@@ -64,13 +64,19 @@ module PWN
|
|
|
64
64
|
|
|
65
65
|
public_class_method def self.help
|
|
66
66
|
puts "USAGE:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
# Run scan and return its result
|
|
68
|
+
#{self}.scan(
|
|
69
|
+
dir_path: 'optional - optional path to dir defaults to .',
|
|
70
|
+
git_repo_root_uri: 'optional - optional http uri of git repo scanned'
|
|
70
71
|
)
|
|
71
72
|
|
|
73
|
+
# Used primarily to map NIST 800-53 Revision 4 Security Controls
|
|
74
|
+
#{self}.security_references
|
|
75
|
+
|
|
76
|
+
# Print the AUTHOR(S) string for this module.
|
|
72
77
|
#{self}.authors
|
|
73
78
|
"
|
|
79
|
+
constants.sort
|
|
74
80
|
end
|
|
75
81
|
end
|
|
76
82
|
end
|
|
@@ -69,13 +69,19 @@ module PWN
|
|
|
69
69
|
|
|
70
70
|
public_class_method def self.help
|
|
71
71
|
puts "USAGE:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
:
|
|
72
|
+
# Run scan and return its result
|
|
73
|
+
#{self}.scan(
|
|
74
|
+
dir_path: 'optional - optional path to dir defaults to .',
|
|
75
|
+
git_repo_root_uri: 'optional - optional http uri of git repo scanned'
|
|
75
76
|
)
|
|
76
77
|
|
|
78
|
+
# Used primarily to map NIST 800-53 Revision 4 Security Controls
|
|
79
|
+
#{self}.security_references
|
|
80
|
+
|
|
81
|
+
# Print the AUTHOR(S) string for this module.
|
|
77
82
|
#{self}.authors
|
|
78
83
|
"
|
|
84
|
+
constants.sort
|
|
79
85
|
end
|
|
80
86
|
end
|
|
81
87
|
end
|
|
@@ -69,13 +69,19 @@ module PWN
|
|
|
69
69
|
|
|
70
70
|
public_class_method def self.help
|
|
71
71
|
puts "USAGE:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
:
|
|
72
|
+
# :dir_path => optional path to dir defaults to .
|
|
73
|
+
#{self}.scan(
|
|
74
|
+
dir_path: 'optional - dir path value consumed by #scan',
|
|
75
|
+
git_repo_root_uri: 'optional - git repo root uri value consumed by #scan'
|
|
75
76
|
)
|
|
76
77
|
|
|
78
|
+
# Used primarily to map NIST 800-53 Revision 4 Security Controls
|
|
79
|
+
#{self}.security_references
|
|
80
|
+
|
|
81
|
+
# Print the AUTHOR(S) string for this module.
|
|
77
82
|
#{self}.authors
|
|
78
83
|
"
|
|
84
|
+
constants.sort
|
|
79
85
|
end
|
|
80
86
|
end
|
|
81
87
|
end
|
data/lib/pwn/sast/version.rb
CHANGED
|
@@ -63,13 +63,19 @@ module PWN
|
|
|
63
63
|
|
|
64
64
|
public_class_method def self.help
|
|
65
65
|
puts "USAGE:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
# Run scan and return its result
|
|
67
|
+
#{self}.scan(
|
|
68
|
+
dir_path: 'optional - optional path to dir defaults to .',
|
|
69
|
+
git_repo_root_uri: 'optional - optional http uri of git repo scanned'
|
|
69
70
|
)
|
|
70
71
|
|
|
72
|
+
# Used primarily to map NIST 800-53 Revision 4 Security Controls
|
|
73
|
+
#{self}.security_references
|
|
74
|
+
|
|
75
|
+
# Print the AUTHOR(S) string for this module.
|
|
71
76
|
#{self}.authors
|
|
72
77
|
"
|
|
78
|
+
constants.sort
|
|
73
79
|
end
|
|
74
80
|
end
|
|
75
81
|
end
|
|
@@ -62,13 +62,19 @@ module PWN
|
|
|
62
62
|
|
|
63
63
|
public_class_method def self.help
|
|
64
64
|
puts "USAGE:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
# Run scan and return its result
|
|
66
|
+
#{self}.scan(
|
|
67
|
+
dir_path: 'optional - optional path to dir defaults to .',
|
|
68
|
+
git_repo_root_uri: 'optional - optional http uri of git repo scanned'
|
|
68
69
|
)
|
|
69
70
|
|
|
71
|
+
# Used primarily to map NIST 800-53 Revision 4 Security Controls
|
|
72
|
+
#{self}.security_references
|
|
73
|
+
|
|
74
|
+
# Print the AUTHOR(S) string for this module.
|
|
70
75
|
#{self}.authors
|
|
71
76
|
"
|
|
77
|
+
constants.sort
|
|
72
78
|
end
|
|
73
79
|
end
|
|
74
80
|
end
|
data/lib/pwn/sast.rb
CHANGED
data/lib/pwn/sdr/decoder/adsb.rb
CHANGED
|
@@ -252,18 +252,49 @@ module PWN
|
|
|
252
252
|
# Display Usage for this Module
|
|
253
253
|
|
|
254
254
|
public_class_method def self.help
|
|
255
|
-
puts "USAGE
|
|
255
|
+
puts "USAGE:
|
|
256
|
+
# Run crc24 and return its result
|
|
257
|
+
#{self}.crc24(
|
|
258
|
+
bits: 'optional - bits value consumed by #crc24 (defaults to [])'
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
# Run crc ok and return its result
|
|
262
|
+
#{self}.crc_ok?(
|
|
263
|
+
bits: 'optional - bits value consumed by #crc_ok? (defaults to [])'
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
# Run decode modes and return its result
|
|
267
|
+
#{self}.decode_modes(
|
|
268
|
+
bits: 'optional - bits value consumed by #decode_modes (defaults to [])'
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
# Run ais char and return its result
|
|
272
|
+
#{self}.ais_char(
|
|
273
|
+
code: 'optional - code value consumed by #ais_char'
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
# Run modes altitude and return its result
|
|
277
|
+
#{self}.modes_altitude(
|
|
278
|
+
bits12: 'optional - bits12 value consumed by #modes_altitude'
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
# Run decode and return its result
|
|
256
282
|
#{self}.decode(
|
|
257
283
|
freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
|
|
258
|
-
|
|
259
|
-
|
|
284
|
+
sample_rate: 'optional - sample rate value consumed by #decode',
|
|
285
|
+
source: 'optional - source value consumed by #decode',
|
|
286
|
+
file: 'optional - filesystem path'
|
|
260
287
|
)
|
|
261
288
|
|
|
262
|
-
#
|
|
263
|
-
#{self}.parse_line(
|
|
289
|
+
# Run parse line and return its result
|
|
290
|
+
#{self}.parse_line(
|
|
291
|
+
line: 'optional - line value consumed by #parse_line'
|
|
292
|
+
)
|
|
264
293
|
|
|
294
|
+
# Print the AUTHOR(S) string for this module.
|
|
265
295
|
#{self}.authors
|
|
266
296
|
"
|
|
297
|
+
constants.sort
|
|
267
298
|
end
|
|
268
299
|
end
|
|
269
300
|
end
|
data/lib/pwn/sdr/decoder/apt.rb
CHANGED
|
@@ -132,17 +132,20 @@ module PWN
|
|
|
132
132
|
# Display Usage for this Module
|
|
133
133
|
|
|
134
134
|
public_class_method def self.help
|
|
135
|
-
puts "USAGE
|
|
135
|
+
puts "USAGE:
|
|
136
|
+
# Run decode and return its result
|
|
136
137
|
#{self}.decode(
|
|
137
|
-
freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq'
|
|
138
|
+
freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
|
|
139
|
+
source: 'optional - source value consumed by #decode',
|
|
140
|
+
file: 'optional - filesystem path',
|
|
141
|
+
out_path: 'optional - out path value consumed by #decode',
|
|
142
|
+
sample_rate: 'optional - sample rate value consumed by #decode'
|
|
138
143
|
)
|
|
139
144
|
|
|
140
|
-
|
|
141
|
-
greyscale Netpbm P5 image to /tmp/apt_<ts>.pgm every 10 s
|
|
142
|
-
of received pass. Both A/B channels are in one strip.
|
|
143
|
-
|
|
145
|
+
# Print the AUTHOR(S) string for this module.
|
|
144
146
|
#{self}.authors
|
|
145
147
|
"
|
|
148
|
+
constants.sort
|
|
146
149
|
end
|
|
147
150
|
end
|
|
148
151
|
end
|
data/lib/pwn/sdr/decoder/base.rb
CHANGED
|
@@ -626,38 +626,90 @@ module PWN
|
|
|
626
626
|
# Display Usage for this Module
|
|
627
627
|
|
|
628
628
|
public_class_method def self.help
|
|
629
|
-
puts "USAGE
|
|
629
|
+
puts "USAGE:
|
|
630
|
+
# Run run native and return its result
|
|
630
631
|
#{self}.run_native(
|
|
631
|
-
freq_obj: 'required - freq_obj from PWN::SDR::GQRX.init_freq',
|
|
632
|
-
protocol: 'required - short
|
|
633
|
-
demod:
|
|
634
|
-
rate:
|
|
632
|
+
freq_obj: 'required - freq_obj Hash from PWN::SDR::GQRX.init_freq',
|
|
633
|
+
protocol: 'required - short name for banner / log filename (defaults to SIGNAL)',
|
|
634
|
+
demod: 'required - object responding to #feed(samples,&emit)',
|
|
635
|
+
rate: 'optional - assumed UDP sample rate (default 48000)'
|
|
635
636
|
)
|
|
636
637
|
|
|
637
|
-
#
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
fm_demod: 'optional - FM-demod then #feed (default false)',
|
|
645
|
-
fallback: 'optional - :detector|:raise|:silent (default :detector)'
|
|
638
|
+
# Run run detector and return its result
|
|
639
|
+
#{self}.run_detector(
|
|
640
|
+
freq_obj: 'required - freq_obj Hash from PWN::SDR::GQRX.init_freq',
|
|
641
|
+
protocol: 'required - short name for banner / log filename (defaults to SIGNAL)',
|
|
642
|
+
note: 'optional - one-line explanation shown once',
|
|
643
|
+
threshold: 'optional - dBFS above rolling floor to call a burst (default 8.0)',
|
|
644
|
+
describe: 'optional - Proc.new { |burst_hash| Hash } extra fields'
|
|
646
645
|
)
|
|
647
646
|
|
|
648
|
-
#
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
647
|
+
# Run match line and return its result
|
|
648
|
+
#{self}.match_line?(
|
|
649
|
+
line: 'optional - line value consumed by #match_line?',
|
|
650
|
+
matcher: 'optional - matcher value consumed by #match_line?'
|
|
651
|
+
)
|
|
652
|
+
|
|
653
|
+
# Run resolve iq source and return its result
|
|
654
|
+
#{self}.resolve_iq_source(
|
|
655
|
+
freq_obj: 'required - freq obj value consumed by #resolve_iq_source',
|
|
656
|
+
source: 'optional - :auto|:rtlsdr|:hackrf|:adalm_pluto|:soapy|:file',
|
|
657
|
+
sample_rate: 'optional - desired rate Hz',
|
|
658
|
+
file: 'optional - path to .cu8/.cs16/.iq capture (defaults to freq_obj[:iq_file])',
|
|
659
|
+
iq_format: 'optional - iq format value consumed by #resolve_iq_source (defaults to freq_obj[:iq_format])',
|
|
660
|
+
index: 'optional - index value consumed by #resolve_iq_source',
|
|
661
|
+
gain_db: 'optional - gain db value consumed by #resolve_iq_source (defaults to freq_obj[:gain_db])',
|
|
662
|
+
ppm: 'optional - ppm value consumed by #resolve_iq_source',
|
|
663
|
+
serial: 'optional - serial value consumed by #resolve_iq_source',
|
|
664
|
+
lna_gain: 'optional - lna gain value consumed by #resolve_iq_source (defaults to 16)',
|
|
665
|
+
vga_gain: 'optional - vga gain value consumed by #resolve_iq_source (defaults to 20)',
|
|
666
|
+
amp: 'optional - amp value consumed by #resolve_iq_source',
|
|
667
|
+
uri: 'optional - URI or URL string',
|
|
668
|
+
chunk_samples: 'optional - chunk samples value consumed by #resolve_iq_source',
|
|
669
|
+
soapy_args: 'optional - soapy args value consumed by #resolve_iq_source (defaults to freq_obj[:soapy_args])',
|
|
670
|
+
channel: 'optional - channel value consumed by #resolve_iq_source (defaults to 0)'
|
|
671
|
+
)
|
|
672
|
+
|
|
673
|
+
# Run read iq chunk and return its result
|
|
674
|
+
#{self}.read_iq_chunk(
|
|
675
|
+
source: 'required - source value consumed by #read_iq_chunk',
|
|
676
|
+
bytes: 'optional - bytes value consumed by #read_iq_chunk'
|
|
654
677
|
)
|
|
655
678
|
|
|
656
|
-
#
|
|
657
|
-
#{self}.
|
|
679
|
+
# Run unpack iq and return its result
|
|
680
|
+
#{self}.unpack_iq(
|
|
681
|
+
source: 'optional - source value consumed by #unpack_iq',
|
|
682
|
+
data: 'optional - data value consumed by #unpack_iq'
|
|
683
|
+
)
|
|
684
|
+
|
|
685
|
+
# Run close iq source and return its result
|
|
686
|
+
#{self}.close_iq_source(
|
|
687
|
+
source: 'optional - source value consumed by #close_iq_source'
|
|
688
|
+
)
|
|
689
|
+
|
|
690
|
+
# OR #feed(samples, &emit) when fm_demod:true,
|
|
691
|
+
#{self}.run_iq(
|
|
692
|
+
freq_obj: 'required - freq_obj Hash',
|
|
693
|
+
protocol: 'required - short name (defaults to SIGNAL)',
|
|
694
|
+
demod: 'required - object with #feed_iq(iq, rate:, &emit',
|
|
695
|
+
sample_rate: 'optional - Hz (default 2_048_000)',
|
|
696
|
+
source: 'optional - :auto|:rtlsdr|:hackrf|:adalm_pluto|:soapy|:file',
|
|
697
|
+
file: 'optional - path to capture',
|
|
698
|
+
fm_demod: 'optional - FM-demod I/Q→audio then #feed (default false)',
|
|
699
|
+
chunk_bytes: 'optional - bytes per read (default 262144)',
|
|
700
|
+
fallback: 'optional - :detector|:raise|:silent (default :detector)',
|
|
701
|
+
note: 'optional - shown once when falling back',
|
|
702
|
+
describe: 'optional - Proc for detector fallback',
|
|
703
|
+
gain_db: 'optional - gain db value consumed by #run_iq',
|
|
704
|
+
uri: 'optional - URI or URL string',
|
|
705
|
+
index: 'optional - index value consumed by #run_iq',
|
|
706
|
+
threshold: 'optional - threshold value consumed by #run_iq'
|
|
707
|
+
)
|
|
658
708
|
|
|
709
|
+
# Print the AUTHOR(S) string for this module.
|
|
659
710
|
#{self}.authors
|
|
660
711
|
"
|
|
712
|
+
constants.sort
|
|
661
713
|
end
|
|
662
714
|
end
|
|
663
715
|
end
|
|
@@ -191,18 +191,30 @@ module PWN
|
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
public_class_method def self.help
|
|
194
|
-
puts "USAGE
|
|
194
|
+
puts "USAGE:
|
|
195
|
+
# Run ble crc24 and return its result
|
|
196
|
+
#{self}.ble_crc24(
|
|
197
|
+
bytes: 'optional - bytes value consumed by #ble_crc24 (defaults to [])'
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
# Run decode and return its result
|
|
195
201
|
#{self}.decode(
|
|
196
202
|
freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
203
|
+
channel: 'optional - channel value consumed by #decode',
|
|
204
|
+
sample_rate: 'optional - sample rate value consumed by #decode',
|
|
205
|
+
source: 'optional - source value consumed by #decode',
|
|
206
|
+
file: 'optional - filesystem path'
|
|
200
207
|
)
|
|
201
208
|
|
|
202
|
-
#
|
|
209
|
+
# Run parse line and return its result
|
|
210
|
+
#{self}.parse_line(
|
|
211
|
+
line: 'optional - line value consumed by #parse_line'
|
|
212
|
+
)
|
|
203
213
|
|
|
214
|
+
# Print the AUTHOR(S) string for this module.
|
|
204
215
|
#{self}.authors
|
|
205
216
|
"
|
|
217
|
+
constants.sort
|
|
206
218
|
end
|
|
207
219
|
end
|
|
208
220
|
end
|
data/lib/pwn/sdr/decoder/dect.rb
CHANGED
|
@@ -138,15 +138,24 @@ module PWN
|
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
public_class_method def self.help
|
|
141
|
-
puts "USAGE
|
|
141
|
+
puts "USAGE:
|
|
142
|
+
# Run decode and return its result
|
|
142
143
|
#{self}.decode(
|
|
143
144
|
freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq',
|
|
144
|
-
|
|
145
|
-
|
|
145
|
+
sample_rate: 'optional - sample rate value consumed by #decode',
|
|
146
|
+
source: 'optional - source value consumed by #decode',
|
|
147
|
+
file: 'optional - filesystem path'
|
|
146
148
|
)
|
|
147
149
|
|
|
150
|
+
# Run parse line and return its result
|
|
151
|
+
#{self}.parse_line(
|
|
152
|
+
line: 'optional - line value consumed by #parse_line'
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# Print the AUTHOR(S) string for this module.
|
|
148
156
|
#{self}.authors
|
|
149
157
|
"
|
|
158
|
+
constants.sort
|
|
150
159
|
end
|
|
151
160
|
end
|
|
152
161
|
end
|