GithubHelp home page GithubHelp logo

niamtokik / arweave_nse Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 59 KB

Nmap Script to detect and extract arweave node information

License: ISC License

Lua 100.00%
arweave extract nmap nse scan script security

arweave_nse's Introduction

Arweave Nmap Script Engine

A way to get more information about Arweave Nodes using nmap. This script is a work in progress but can already return interesting value.

Usage

One can try it on mainnet servers hardcoded in arweave source code:

Identify Mode

This mode only return basic information on the target.

# default scan, using identify mode
nmap -p 1984 --script=arweave.nse 206.189.70.139

# forced scan with identify mode
nmap -p 1984 --script=+arweave.nse 206.189.70.139

Fingerprint Mode

This mode is an advanced identify mode, returning more information and checking all default end-points.

# fingerprint mode
nmap -p 1984 --script=arweave.nse --script-args="arweave.mode=fingerprint" 206.189.70.139

(WIP) Fuzzing Mode

This mode create random data for each end-point automatically and check the result.

# fuzzing mode
nmap -p 1984 --script=arweave.nse --script-args="arweave.mode=fuzzing" 206.189.70.139

(WIP) Inject mode

This mode is mainly used to inject crafted data.

# inject mode
nmap -p 1984 --script=arweave.nse --script-args="arweave.mode=inject" 206.189.70.139

(WIP) File mode

This mode list files available on the target.

TODO

  • HTTP GET method support without parameters
  • HTTP HEAD method
  • HTTP GET method with path parameters
  • HTTP POST method with path parameters and configured body
  • HTTP PUT method with path parameters and configured body
  • HTTP OPTIONS method (not supported by default nmap library)
  • Randomized Scanner end-points
  • Add arguments supports:
    • arweave.http_header_content_type="application/json"
    • arweave.randomize=true: randomize path scan
    • arweave.mode=identify: default scan
    • arweave.mode=fingerprint:
    • arweave.mode=fuzzing:
    • arweave.mode=inject:
    • arweave.scan_only=api_id: scan only one path (bypass scan mode)
    • arweave.scan_filter=.*: filter scanned parse (bypass scan mode)
    • arweave.http_header_authentication: add bearer support
  • Custom options for api
    • arweave.get_price_size.size
    • arweave.get_price_size_target.size
    • arweave.get_wallet_balance.address
    • arweave.get_wallet_last_tx.address
    • arweave.get_block_height.height
    • arweave.get_block_hash.hash
    • arweave.get_tx.tx_id
    • arweave.get_tx_offset.tx_id
    • arweave.get_tx_state.tx_id
    • arweave.get_chunks.offset
    • arweave.post_admin_queue_tx.body
    • arweave.put_admin_block_data.body
    • arweave.get_farcaster_frame_tx.tx_id
    • arweave.post_farcaster_frame_tx.tx_id
    • arweave.post_block2.body
    • arweave.post_block_announcement.body
    • arweave.post_block.body
    • arweave.post_block.body
    • arweave.post_coordinated_mining_h1.body
    • arweave.post_coordinated_mining_h2.body
    • arweave.post_height.body
    • arweave.post_partial_solution.body
    • arweave.post_peers.body
    • arweave.post_tx.body
    • arweave.post_tx2.body
    • arweave.post_unsigned_tx.body
    • arweave.post_vdf.body
    • arweave.post_wallet.body
  • Fuzzer:
    • Simple ETF parser
    • Simple ETF serializer
    • Automatic code injection
  • Other features to add:
    • CORS headers check
    • Comments/details regarding a port
    • custom state for each end-point
    • Version fingerprinting (e.g. add score in each end-point, seen on each version...)
    • external service notification support
    • add risks evaluation on each end-point
    • includes default bearer/api_secret in the API

References and resources

AR.IO Network+Token White Paper

AR.IO documentation

AR.IO admin API

arweave_nse's People

Contributors

niamtokik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.