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
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
require 'securerandom'
|
|
6
|
+
require 'open3'
|
|
7
|
+
|
|
8
|
+
module PWN
|
|
9
|
+
module Plugins
|
|
10
|
+
# Background jobs that survive a pwn-ai turn (scans, fuzz campaigns).
|
|
11
|
+
module Jobs
|
|
12
|
+
JOBS_DIR = File.join(Dir.home, '.pwn', 'jobs')
|
|
13
|
+
|
|
14
|
+
public_class_method def self.required_bins
|
|
15
|
+
[]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
public_class_method def self.start(opts = {})
|
|
19
|
+
cmd = opts[:command] || opts[:cmd]
|
|
20
|
+
raise 'ERROR: command is required' if cmd.to_s.empty?
|
|
21
|
+
|
|
22
|
+
FileUtils.mkdir_p(JOBS_DIR)
|
|
23
|
+
id = SecureRandom.hex(6)
|
|
24
|
+
log = File.join(JOBS_DIR, "#{id}.log")
|
|
25
|
+
meta = File.join(JOBS_DIR, "#{id}.json")
|
|
26
|
+
pid = spawn(cmd.to_s, %i[out err] => [log, 'a'])
|
|
27
|
+
Process.detach(pid)
|
|
28
|
+
row = {
|
|
29
|
+
id: id,
|
|
30
|
+
pid: pid,
|
|
31
|
+
command: cmd.to_s,
|
|
32
|
+
log: log,
|
|
33
|
+
session_id: opts[:session_id],
|
|
34
|
+
started_at: Time.now.utc.iso8601
|
|
35
|
+
}
|
|
36
|
+
File.write(meta, JSON.generate(row))
|
|
37
|
+
row
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
public_class_method def self.status(opts = {})
|
|
41
|
+
row = load_job(opts)
|
|
42
|
+
alive = begin
|
|
43
|
+
Process.kill(0, row[:pid].to_i)
|
|
44
|
+
true
|
|
45
|
+
rescue Errno::ESRCH, Errno::EPERM
|
|
46
|
+
false
|
|
47
|
+
end
|
|
48
|
+
row.merge(alive: alive)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
public_class_method def self.tail(opts = {})
|
|
52
|
+
row = load_job(opts)
|
|
53
|
+
n = (opts[:lines] || 40).to_i
|
|
54
|
+
return '' unless File.file?(row[:log])
|
|
55
|
+
|
|
56
|
+
File.readlines(row[:log]).last(n).join
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
public_class_method def self.stop(opts = {})
|
|
60
|
+
row = load_job(opts)
|
|
61
|
+
Process.kill('TERM', row[:pid].to_i)
|
|
62
|
+
true
|
|
63
|
+
rescue Errno::ESRCH
|
|
64
|
+
false
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
public_class_method def self.authors
|
|
68
|
+
"AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
public_class_method def self.help
|
|
72
|
+
puts "USAGE:
|
|
73
|
+
# List host binaries this module expects to be installed.
|
|
74
|
+
#{self}.required_bins
|
|
75
|
+
|
|
76
|
+
# Run start and return its result
|
|
77
|
+
#{self}.start(
|
|
78
|
+
command: 'required - command value consumed by #start (defaults to opts[:cmd])',
|
|
79
|
+
cmd: 'required - command string to run',
|
|
80
|
+
session_id: 'optional - session id value consumed by #start'
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# Run status and return its result
|
|
84
|
+
#{self}.status
|
|
85
|
+
|
|
86
|
+
# Run tail and return its result
|
|
87
|
+
#{self}.tail(
|
|
88
|
+
lines: 'optional - lines value consumed by #tail'
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Run stop and return its result
|
|
92
|
+
#{self}.stop
|
|
93
|
+
|
|
94
|
+
# Print the AUTHOR(S) string for this module.
|
|
95
|
+
#{self}.authors
|
|
96
|
+
"
|
|
97
|
+
constants.sort
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
private_class_method def self.load_job(opts = {})
|
|
101
|
+
id = opts[:id].to_s
|
|
102
|
+
path = File.join(JOBS_DIR, "#{id}.json")
|
|
103
|
+
raise "ERROR: unknown job #{id}" unless File.file?(path)
|
|
104
|
+
|
|
105
|
+
JSON.parse(File.read(path), symbolize_names: true)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -33,13 +33,17 @@ module PWN
|
|
|
33
33
|
# Display Usage for this Module
|
|
34
34
|
|
|
35
35
|
public_class_method def self.help
|
|
36
|
-
puts
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
puts "USAGE:
|
|
37
|
+
# Run search key and return its result
|
|
38
|
+
#{self}.search_key(
|
|
39
|
+
json_data_struct: 'required - required JSON data structure',
|
|
40
|
+
key: 'required - required key to find in JSON data structure. returns key values'
|
|
40
41
|
)
|
|
42
|
+
|
|
43
|
+
# Print the AUTHOR(S) string for this module.
|
|
41
44
|
#{self}.authors
|
|
42
|
-
|
|
45
|
+
"
|
|
46
|
+
constants.sort
|
|
43
47
|
end
|
|
44
48
|
end
|
|
45
49
|
end
|
data/lib/pwn/plugins/log.rb
CHANGED
|
@@ -751,23 +751,123 @@ module PWN
|
|
|
751
751
|
|
|
752
752
|
public_class_method def self.help
|
|
753
753
|
puts "USAGE:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
754
|
+
# Run append and return its result
|
|
755
|
+
#{self}.append(
|
|
756
|
+
level: 'required - level value consumed by #append',
|
|
757
|
+
msg: 'optional - msg value consumed by #append',
|
|
758
|
+
which_self: 'optional - which self value consumed by #append'
|
|
758
759
|
)
|
|
759
760
|
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
761
|
+
# Run debug enabled and return its result
|
|
762
|
+
#{self}.debug_enabled?
|
|
763
|
+
|
|
764
|
+
# Run debug log path and return its result
|
|
765
|
+
#{self}.debug_log_path
|
|
766
|
+
|
|
767
|
+
# Open a debug session. Request traces go to
|
|
768
|
+
#{self}.start_debug(
|
|
769
|
+
trace: 'optional - trace value consumed by #start_debug',
|
|
770
|
+
path: 'required - filesystem path to read or write',
|
|
771
|
+
tee: 'optional - tee value consumed by #start_debug',
|
|
772
|
+
session_id: 'optional - session id value consumed by #start_debug',
|
|
773
|
+
step_io: 'optional - step io value consumed by #start_debug',
|
|
774
|
+
prefixes: 'optional - prefixes value consumed by #start_debug'
|
|
775
|
+
)
|
|
776
|
+
|
|
777
|
+
# Run trace enabled and return its result
|
|
778
|
+
#{self}.trace_enabled?
|
|
779
|
+
|
|
780
|
+
# Run next request log and return its result
|
|
781
|
+
#{self}.next_request_log!(
|
|
782
|
+
force: 'optional - force value consumed by #next_request_log!',
|
|
783
|
+
session_id: 'optional - session id value consumed by #next_request_log!'
|
|
784
|
+
)
|
|
785
|
+
|
|
786
|
+
# Run finish request log and return its result
|
|
787
|
+
#{self}.finish_request_log!(
|
|
788
|
+
force: 'optional - force value consumed by #finish_request_log!',
|
|
789
|
+
iter: 'optional - iter value consumed by #finish_request_log!',
|
|
790
|
+
tools_called: 'optional - tools called value consumed by #finish_request_log!',
|
|
791
|
+
engine_s: 'optional - engine s value consumed by #finish_request_log!',
|
|
792
|
+
final_chars: 'optional - final chars value consumed by #finish_request_log!',
|
|
793
|
+
nested: 'optional - nested value consumed by #finish_request_log!'
|
|
794
|
+
)
|
|
795
|
+
|
|
796
|
+
# Run stop debug and return its result
|
|
797
|
+
#{self}.stop_debug(
|
|
798
|
+
reason: 'required - reason value consumed by #stop_debug'
|
|
763
799
|
)
|
|
764
|
-
|
|
765
|
-
#
|
|
766
|
-
#{self}.
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
800
|
+
|
|
801
|
+
# Run capture stderr and return its result
|
|
802
|
+
#{self}.capture_stderr!(
|
|
803
|
+
text: 'required - text value consumed by #capture_stderr!'
|
|
804
|
+
)
|
|
805
|
+
|
|
806
|
+
# Spinner frames stay on the TTY; never persist them in the RN log
|
|
807
|
+
#{self}.spinner_frame?(
|
|
808
|
+
text: 'optional - text value consumed by #spinner_frame?'
|
|
809
|
+
)
|
|
810
|
+
|
|
811
|
+
# Run raw stderr and return its result
|
|
812
|
+
#{self}.raw_stderr
|
|
813
|
+
|
|
814
|
+
# Run quiet tui and return its result
|
|
815
|
+
#{self}.quiet_tui!(
|
|
816
|
+
skip: 'optional - skip value consumed by #quiet_tui!'
|
|
817
|
+
)
|
|
818
|
+
|
|
819
|
+
# Run loud tui and return its result
|
|
820
|
+
#{self}.loud_tui!(
|
|
821
|
+
skip: 'optional - skip value consumed by #loud_tui!'
|
|
822
|
+
)
|
|
823
|
+
|
|
824
|
+
# One progress line to the debug file and the TUI tee (same payload)
|
|
825
|
+
#{self}.progress(
|
|
826
|
+
msg: 'optional - msg value consumed by #progress',
|
|
827
|
+
which_self: 'optional - which self value consumed by #progress (defaults to self)',
|
|
828
|
+
keep_newlines: 'optional - keep newlines value consumed by #progress',
|
|
829
|
+
cap: 'optional - cap value consumed by #progress',
|
|
830
|
+
tee: 'optional - tee value consumed by #progress'
|
|
831
|
+
)
|
|
832
|
+
|
|
833
|
+
# Run note interrupt and return its result
|
|
834
|
+
#{self}.note_interrupt!(
|
|
835
|
+
where: 'required - where value consumed by #note_interrupt!',
|
|
836
|
+
which_self: 'optional - which self value consumed by #note_interrupt! (defaults to self)'
|
|
837
|
+
)
|
|
838
|
+
|
|
839
|
+
# Run note exception and return its result
|
|
840
|
+
#{self}.note_exception!(
|
|
841
|
+
error: 'optional - error value consumed by #note_exception!',
|
|
842
|
+
where: 'required - where value consumed by #note_exception!',
|
|
843
|
+
which_self: 'optional - which self value consumed by #note_exception! (defaults to self)'
|
|
844
|
+
)
|
|
845
|
+
|
|
846
|
+
# Clone operator-visible TUI rows into the open RN request log (no ANSI)
|
|
847
|
+
#{self}.mirror_tui!(
|
|
848
|
+
msg: 'optional - msg value consumed by #mirror_tui!'
|
|
849
|
+
)
|
|
850
|
+
|
|
851
|
+
# Run start trace and return its result
|
|
852
|
+
#{self}.start_trace!(
|
|
853
|
+
prefixes: 'optional - prefixes value consumed by #start_trace!'
|
|
854
|
+
)
|
|
855
|
+
|
|
856
|
+
# Run stop trace and return its result
|
|
857
|
+
#{self}.stop_trace!(
|
|
858
|
+
skip: 'optional - skip value consumed by #stop_trace!'
|
|
859
|
+
)
|
|
860
|
+
|
|
861
|
+
# Run wait trace step and return its result
|
|
862
|
+
#{self}.wait_trace_step!(
|
|
863
|
+
nested: 'optional - nested value consumed by #wait_trace_step!',
|
|
864
|
+
label: 'required - label value consumed by #wait_trace_step!'
|
|
865
|
+
)
|
|
866
|
+
|
|
867
|
+
# Print the AUTHOR(S) string for this module.
|
|
868
|
+
#{self}.authors
|
|
770
869
|
"
|
|
870
|
+
constants.sort
|
|
771
871
|
end
|
|
772
872
|
end
|
|
773
873
|
end
|
|
@@ -242,102 +242,110 @@ module PWN
|
|
|
242
242
|
|
|
243
243
|
public_class_method def self.help
|
|
244
244
|
puts "USAGE:
|
|
245
|
+
# attachment_name1.doc: attachment file path 1,
|
|
245
246
|
#{self}.office365(
|
|
246
|
-
from: 'required',
|
|
247
|
-
to: 'required',
|
|
248
|
-
cc: 'optional',
|
|
249
|
-
bcc: 'optional',
|
|
250
|
-
reply_to: 'optional',
|
|
251
|
-
subject: 'optional',
|
|
252
|
-
html_body: 'optional',
|
|
253
|
-
txt_body: 'optional alternative to :html_body',
|
|
254
|
-
attachments_hash:
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
247
|
+
from: 'required - sender account or address to bind as operator',
|
|
248
|
+
to: 'required - to value consumed by #office365',
|
|
249
|
+
cc: 'optional - cc value consumed by #office365',
|
|
250
|
+
bcc: 'optional - bcc value consumed by #office365',
|
|
251
|
+
reply_to: 'optional - reply to value consumed by #office365',
|
|
252
|
+
subject: 'optional - subject value consumed by #office365',
|
|
253
|
+
html_body: 'optional - html body value consumed by #office365',
|
|
254
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
255
|
+
attachments_hash: 'optional - attachments hash value consumed by #office365',
|
|
256
|
+
username: 'required - required username',
|
|
257
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
258
|
+
debug: 'optional - debug value consumed by #office365',
|
|
259
|
+
address: 'optional - address value consumed by #office365',
|
|
260
|
+
port: 'optional - TCP/UDP port number',
|
|
261
|
+
tls_auto: 'optional - tls auto value consumed by #office365',
|
|
262
|
+
authentication: 'optional - authentication value consumed by #office365'
|
|
261
263
|
)
|
|
262
264
|
|
|
265
|
+
# attachment_name1.doc: attachment file path 1,
|
|
263
266
|
#{self}.gmail(
|
|
264
|
-
from: 'required',
|
|
265
|
-
to: 'required',
|
|
266
|
-
cc: 'optional',
|
|
267
|
-
bcc: 'optional',
|
|
268
|
-
reply_to: 'optional',
|
|
269
|
-
subject: 'optional',
|
|
270
|
-
html_body: 'optional',
|
|
271
|
-
txt_body: 'optional alternative to :html_body',
|
|
272
|
-
attachments_hash:
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
267
|
+
from: 'required - sender account or address to bind as operator',
|
|
268
|
+
to: 'required - to value consumed by #gmail',
|
|
269
|
+
cc: 'optional - cc value consumed by #gmail',
|
|
270
|
+
bcc: 'optional - bcc value consumed by #gmail',
|
|
271
|
+
reply_to: 'optional - reply to value consumed by #gmail',
|
|
272
|
+
subject: 'optional - subject value consumed by #gmail',
|
|
273
|
+
html_body: 'optional - html body value consumed by #gmail',
|
|
274
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
275
|
+
attachments_hash: 'optional - attachments hash value consumed by #gmail',
|
|
276
|
+
username: 'required - username value consumed by #gmail',
|
|
277
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
278
|
+
debug: 'optional - debug value consumed by #gmail',
|
|
279
|
+
address: 'optional - address value consumed by #gmail',
|
|
280
|
+
port: 'optional - TCP/UDP port number',
|
|
281
|
+
tls_auto: 'optional - tls auto value consumed by #gmail',
|
|
282
|
+
authentication: 'optional - authentication value consumed by #gmail'
|
|
279
283
|
)
|
|
280
284
|
|
|
285
|
+
# attachment_name1.doc: attachment file path 1,
|
|
281
286
|
#{self}.hotmail_n_live(
|
|
282
|
-
from: 'required',
|
|
283
|
-
to: 'required',
|
|
284
|
-
cc: 'optional',
|
|
285
|
-
bcc: 'optional',
|
|
286
|
-
reply_to: 'optional',
|
|
287
|
-
subject: 'optional',
|
|
288
|
-
html_body: 'optional',
|
|
289
|
-
txt_body: 'optional alternative to :html_body',
|
|
290
|
-
attachments_hash:
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
287
|
+
from: 'required - sender account or address to bind as operator',
|
|
288
|
+
to: 'required - to value consumed by #hotmail_n_live',
|
|
289
|
+
cc: 'optional - cc value consumed by #hotmail_n_live',
|
|
290
|
+
bcc: 'optional - bcc value consumed by #hotmail_n_live',
|
|
291
|
+
reply_to: 'optional - reply to value consumed by #hotmail_n_live',
|
|
292
|
+
subject: 'optional - subject value consumed by #hotmail_n_live',
|
|
293
|
+
html_body: 'optional - html body value consumed by #hotmail_n_live',
|
|
294
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
295
|
+
attachments_hash: 'optional - attachments hash value consumed by #hotmail_n_live',
|
|
296
|
+
username: 'required - username value consumed by #hotmail_n_live',
|
|
297
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
298
|
+
debug: 'optional - debug value consumed by #hotmail_n_live',
|
|
299
|
+
address: 'optional - address value consumed by #hotmail_n_live',
|
|
300
|
+
port: 'optional - TCP/UDP port number',
|
|
301
|
+
tls_auto: 'optional - tls auto value consumed by #hotmail_n_live',
|
|
302
|
+
authentication: 'optional - authentication value consumed by #hotmail_n_live'
|
|
297
303
|
)
|
|
298
304
|
|
|
305
|
+
# attachment_name1.doc: attachment file path 1,
|
|
299
306
|
#{self}.yahoo(
|
|
300
|
-
from: 'required',
|
|
301
|
-
to: 'required',
|
|
302
|
-
cc: 'optional',
|
|
303
|
-
bcc: 'optional',
|
|
304
|
-
reply_to: 'optional',
|
|
305
|
-
subject: 'optional',
|
|
306
|
-
html_body: 'optional',
|
|
307
|
-
txt_body: 'optional alternative to :html_body',
|
|
308
|
-
attachments_hash:
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
307
|
+
from: 'required - sender account or address to bind as operator',
|
|
308
|
+
to: 'required - to value consumed by #yahoo',
|
|
309
|
+
cc: 'optional - cc value consumed by #yahoo',
|
|
310
|
+
bcc: 'optional - bcc value consumed by #yahoo',
|
|
311
|
+
reply_to: 'optional - reply to value consumed by #yahoo',
|
|
312
|
+
subject: 'optional - subject value consumed by #yahoo',
|
|
313
|
+
html_body: 'optional - html body value consumed by #yahoo',
|
|
314
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
315
|
+
attachments_hash: 'optional - attachments hash value consumed by #yahoo',
|
|
316
|
+
username: 'required - username value consumed by #yahoo',
|
|
317
|
+
password: 'optional - optional (but will be prompted if not submitted)',
|
|
318
|
+
debug: 'optional - debug value consumed by #yahoo',
|
|
319
|
+
address: 'optional - address value consumed by #yahoo',
|
|
320
|
+
port: 'optional - TCP/UDP port number',
|
|
321
|
+
tls_auto: 'optional - tls auto value consumed by #yahoo',
|
|
322
|
+
authentication: 'optional - authentication value consumed by #yahoo'
|
|
315
323
|
)
|
|
316
324
|
|
|
325
|
+
# attachment_name1.doc: attachment file path 1,
|
|
317
326
|
#{self}.manual(
|
|
318
|
-
from: 'required',
|
|
319
|
-
to: 'required',
|
|
320
|
-
cc: 'optional',
|
|
321
|
-
bcc: 'optional',
|
|
322
|
-
reply_to: 'optional',
|
|
323
|
-
subject: 'optional',
|
|
324
|
-
html_body: 'optional',
|
|
325
|
-
txt_body: 'optional alternative to :html_body',
|
|
326
|
-
attachments_hash:
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
authentication: 'optional
|
|
334
|
-
username: 'optional',
|
|
335
|
-
password: 'optional',
|
|
336
|
-
debug: true|false
|
|
327
|
+
from: 'required - sender account or address to bind as operator',
|
|
328
|
+
to: 'required - to value consumed by #manual',
|
|
329
|
+
cc: 'optional - cc value consumed by #manual',
|
|
330
|
+
bcc: 'optional - bcc value consumed by #manual',
|
|
331
|
+
reply_to: 'optional - reply to value consumed by #manual',
|
|
332
|
+
subject: 'optional - subject value consumed by #manual',
|
|
333
|
+
html_body: 'optional - html body value consumed by #manual',
|
|
334
|
+
txt_body: 'optional - optional alternative to :html_body',
|
|
335
|
+
attachments_hash: 'optional - attachments hash value consumed by #manual',
|
|
336
|
+
address: 'optional - smtp server ip or domain',
|
|
337
|
+
port: 'optional - smtp port',
|
|
338
|
+
tls_auto: 'optional - tls auto value consumed by #manual',
|
|
339
|
+
username: 'optional - username value consumed by #manual',
|
|
340
|
+
password: 'optional - password value consumed by #manual',
|
|
341
|
+
debug: 'optional - debug value consumed by #manual',
|
|
342
|
+
authentication: 'optional - authentication value consumed by #manual'
|
|
337
343
|
)
|
|
338
344
|
|
|
345
|
+
# Print the AUTHOR(S) string for this module.
|
|
339
346
|
#{self}.authors
|
|
340
347
|
"
|
|
348
|
+
constants.sort
|
|
341
349
|
end
|
|
342
350
|
end
|
|
343
351
|
end
|
|
@@ -130,21 +130,26 @@ module PWN
|
|
|
130
130
|
|
|
131
131
|
public_class_method def self.help
|
|
132
132
|
puts "USAGE:
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
# Run connect and return its result
|
|
134
|
+
#{self}.connect(
|
|
135
|
+
yaml_conf: 'optional - path to userland yaml (defaults to /pwn/etc/userland/PWN_PROVIDEDR/metasploit/vagrant.yaml)'
|
|
135
136
|
)
|
|
136
137
|
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
# Run console exec and return its result
|
|
139
|
+
#{self}.console_exec(
|
|
140
|
+
console_obj: 'required - console_obj object returned from #connect method',
|
|
139
141
|
cmd: 'required - msfconsole command string or array of strings'
|
|
140
142
|
)
|
|
141
143
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
# Run disconnect and return its result
|
|
145
|
+
#{self}.disconnect(
|
|
146
|
+
console_obj: 'required - console_obj returned from #console_exec method to terminate'
|
|
144
147
|
)
|
|
145
148
|
|
|
149
|
+
# Print the AUTHOR(S) string for this module.
|
|
146
150
|
#{self}.authors
|
|
147
151
|
"
|
|
152
|
+
constants.sort
|
|
148
153
|
end
|
|
149
154
|
end
|
|
150
155
|
end
|
|
@@ -172,10 +172,13 @@ module PWN
|
|
|
172
172
|
|
|
173
173
|
public_class_method def self.help
|
|
174
174
|
puts "USAGE:
|
|
175
|
+
# Run pry and return its result
|
|
175
176
|
#{self}.pry
|
|
176
177
|
|
|
178
|
+
# Print the AUTHOR(S) string for this module.
|
|
177
179
|
#{self}.authors
|
|
178
180
|
"
|
|
181
|
+
constants.sort
|
|
179
182
|
end
|
|
180
183
|
end
|
|
181
184
|
end
|
data/lib/pwn/plugins/msr206.rb
CHANGED
|
@@ -1193,64 +1193,78 @@ module PWN
|
|
|
1193
1193
|
|
|
1194
1194
|
public_class_method def self.help
|
|
1195
1195
|
puts "USAGE:
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1196
|
+
# Run connect and return its result
|
|
1197
|
+
#{self}.connect(
|
|
1198
|
+
block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)',
|
|
1199
|
+
baud: 'optional - (defaults to 19200)',
|
|
1200
|
+
data_bits: 'optional - (defaults to 8)',
|
|
1201
|
+
stop_bits: 'optional - (defaults to 1)',
|
|
1202
|
+
parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none),',
|
|
1203
|
+
flow_control: 'optional - :none|:hard|:soft (defaults to :soft)'
|
|
1203
1204
|
)
|
|
1204
1205
|
|
|
1206
|
+
# Run list cmds and return its result
|
|
1207
|
+
#{self}.list_cmds
|
|
1208
|
+
|
|
1209
|
+
# Run set protocol and return its result
|
|
1205
1210
|
#{self}.set_protocol(
|
|
1206
1211
|
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1207
1212
|
protocol: 'optional - :usi0 or :usi1 (defaults to :usi0)'
|
|
1208
1213
|
)
|
|
1209
1214
|
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
msr206_obj: 'required msr206_obj returned from #connect method',
|
|
1215
|
+
# Run exec and return its result
|
|
1216
|
+
#{self}.exec(
|
|
1217
|
+
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1214
1218
|
cmd: 'required - cmd returned from #list_cmds method',
|
|
1215
|
-
params: 'optional - parameters for specific command'
|
|
1219
|
+
params: 'optional - parameters for specific command returned from #list_params method'
|
|
1216
1220
|
)
|
|
1217
1221
|
|
|
1218
|
-
|
|
1219
|
-
|
|
1222
|
+
# Run read card and return its result
|
|
1223
|
+
#{self}.read_card(
|
|
1224
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1220
1225
|
)
|
|
1221
1226
|
|
|
1222
|
-
|
|
1223
|
-
|
|
1227
|
+
# Run backup card and return its result
|
|
1228
|
+
#{self}.backup_card(
|
|
1229
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1224
1230
|
)
|
|
1225
1231
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1232
|
+
# Run write card and return its result
|
|
1233
|
+
#{self}.write_card(
|
|
1234
|
+
msr206_obj: 'required - msr206_obj returned from #connect method',
|
|
1228
1235
|
encoding: 'required - :iso || :iso_alt || :raw',
|
|
1229
|
-
track_data: 'required - track data to write'
|
|
1236
|
+
track_data: 'required - track data to write (see #backup_card for structure)'
|
|
1230
1237
|
)
|
|
1231
1238
|
|
|
1232
|
-
|
|
1233
|
-
|
|
1239
|
+
# Run clone card and return its result
|
|
1240
|
+
#{self}.clone_card(
|
|
1241
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1234
1242
|
)
|
|
1235
1243
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1244
|
+
# Run load card from file and return its result
|
|
1245
|
+
#{self}.load_card_from_file(
|
|
1246
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1238
1247
|
)
|
|
1239
1248
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1249
|
+
# Run update card and return its result
|
|
1250
|
+
#{self}.update_card(
|
|
1251
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1242
1252
|
)
|
|
1243
1253
|
|
|
1244
|
-
config
|
|
1245
|
-
|
|
1254
|
+
# Run get config and return its result
|
|
1255
|
+
#{self}.get_config(
|
|
1256
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1246
1257
|
)
|
|
1247
1258
|
|
|
1259
|
+
# Run disconnect and return its result
|
|
1248
1260
|
#{self}.disconnect(
|
|
1249
|
-
msr206_obj: 'required msr206_obj returned from #connect method'
|
|
1261
|
+
msr206_obj: 'required - msr206_obj returned from #connect method'
|
|
1250
1262
|
)
|
|
1251
1263
|
|
|
1264
|
+
# Print the AUTHOR(S) string for this module.
|
|
1252
1265
|
#{self}.authors
|
|
1253
1266
|
"
|
|
1267
|
+
constants.sort
|
|
1254
1268
|
end
|
|
1255
1269
|
end
|
|
1256
1270
|
end
|