{"id":18980585,"url":"https://github.com/niamtokik/arweave_nse","last_synced_at":"2026-04-11T16:30:19.377Z","repository":{"id":242551372,"uuid":"805478826","full_name":"niamtokik/arweave_nse","owner":"niamtokik","description":"Nmap Script to detect and extract arweave node information","archived":false,"fork":false,"pushed_at":"2024-05-31T13:58:59.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T11:12:53.908Z","etag":null,"topics":["arweave","extract","nmap","nse","scan","script","security"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niamtokik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-24T17:02:28.000Z","updated_at":"2024-06-03T14:53:53.000Z","dependencies_parsed_at":"2024-06-03T18:44:58.183Z","dependency_job_id":null,"html_url":"https://github.com/niamtokik/arweave_nse","commit_stats":null,"previous_names":["niamtokik/arweave_nse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niamtokik%2Farweave_nse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niamtokik%2Farweave_nse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niamtokik%2Farweave_nse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niamtokik%2Farweave_nse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niamtokik","download_url":"https://codeload.github.com/niamtokik/arweave_nse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239985726,"owners_count":19729515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arweave","extract","nmap","nse","scan","script","security"],"created_at":"2024-11-08T16:07:11.437Z","updated_at":"2026-04-11T16:30:19.308Z","avatar_url":"https://github.com/niamtokik.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arweave Nmap Script Engine\n\nA way to get more information about Arweave Nodes using nmap. This\nscript is a work in progress but can already return interesting value.\n\n## Usage\n\nOne can try it on mainnet servers hardcoded in arweave source code:\n\n - `sfo-1.na-west-1.arweave.net`\n    ([206.189.70.139](https://api.ipapi.is/?q=206.189.70.139))\n\n - `ams-1.eu-central-1.arweave.net`\n   ([178.62.222.154](https://api.ipapi.is/?q=178.62.222.154))\n\n - `fra-1.eu-central-2.arweave.net`\n   ([157.230.102.219](https://api.ipapi.is/?q=157.230.102.219))\n\n - `blr-1.ap-central-1.arweave.net`\n   ([139.59.19.218](https://api.ipapi.is/?q=139.59.19.218))\n\n - `sgp-1.ap-central-2.arweave.net`\n   ([178.128.89.236](https://api.ipapi.is/?q=178.128.89.236))\n\n### Identify Mode\n\nThis mode only return basic information on the target.\n\n```sh\n# default scan, using identify mode\nnmap -p 1984 --script=arweave.nse 206.189.70.139\n\n# forced scan with identify mode\nnmap -p 1984 --script=+arweave.nse 206.189.70.139\n```\n\n### Fingerprint Mode\n\nThis mode is an advanced identify mode, returning more information and\nchecking all default end-points.\n\n```sh\n# fingerprint mode\nnmap -p 1984 --script=arweave.nse --script-args=\"arweave.mode=fingerprint\" 206.189.70.139\n```\n\n### (WIP) Fuzzing Mode\n\nThis mode create random data for each end-point automatically and\ncheck the result.\n\n```sh\n# fuzzing mode\nnmap -p 1984 --script=arweave.nse --script-args=\"arweave.mode=fuzzing\" 206.189.70.139\n```\n\n### (WIP) Inject mode\n\nThis mode is mainly used to inject crafted data.\n\n```sh\n# inject mode\nnmap -p 1984 --script=arweave.nse --script-args=\"arweave.mode=inject\" 206.189.70.139\n```\n\n### (WIP) File mode\n\nThis mode list files available on the target.\n\n## TODO\n\n - [x] HTTP GET method support without parameters\n - [x] HTTP HEAD method\n - [x] HTTP GET method with path parameters\n - [x] HTTP POST method with path parameters and configured body\n - [x] HTTP PUT method with path parameters and configured body\n - [ ] ~~HTTP OPTIONS method~~ (not supported by default nmap library)\n - [ ] Randomized Scanner end-points\n - [ ] Add arguments supports:\n   - [ ] `arweave.http_header_content_type=\"application/json\"`\n   - [ ] `arweave.randomize=true`: randomize path scan\n   - [x] `arweave.mode=identify`: default scan\n   - [x] `arweave.mode=fingerprint`:\n   - [ ] `arweave.mode=fuzzing`:\n   - [ ] `arweave.mode=inject`:\n   - [x] `arweave.scan_only=api_id`: scan only one path (bypass scan mode)\n   - [x] `arweave.scan_filter=.*`: filter scanned parse (bypass scan mode)\n   - [ ] `arweave.http_header_authentication`: add bearer support\n - [x] Custom options for api\n   - [x] `arweave.get_price_size.size`\n   - [x] `arweave.get_price_size_target.size`\n   - [x] `arweave.get_wallet_balance.address`\n   - [x] `arweave.get_wallet_last_tx.address`\n   - [x] `arweave.get_block_height.height`\n   - [x] `arweave.get_block_hash.hash`\n   - [x] `arweave.get_tx.tx_id`\n   - [x] `arweave.get_tx_offset.tx_id`\n   - [x] `arweave.get_tx_state.tx_id`\n   - [x] `arweave.get_chunks.offset`\n   - [x] `arweave.post_admin_queue_tx.body`\n   - [x] `arweave.put_admin_block_data.body`\n   - [x] `arweave.get_farcaster_frame_tx.tx_id`\n   - [x] `arweave.post_farcaster_frame_tx.tx_id`\n   - [x] `arweave.post_block2.body`\n   - [x] `arweave.post_block_announcement.body`\n   - [x] `arweave.post_block.body`\n   - [x] `arweave.post_block.body`\n   - [x] `arweave.post_coordinated_mining_h1.body`\n   - [x] `arweave.post_coordinated_mining_h2.body`\n   - [x] `arweave.post_height.body`\n   - [x] `arweave.post_partial_solution.body`\n   - [x] `arweave.post_peers.body`\n   - [x] `arweave.post_tx.body`\n   - [x] `arweave.post_tx2.body`\n   - [x] `arweave.post_unsigned_tx.body`\n   - [x] `arweave.post_vdf.body`\n   - [x] `arweave.post_wallet.body`\n - [ ] Fuzzer:\n   - [ ] Simple ETF parser\n   - [ ] Simple ETF serializer\n   - [ ] Automatic code injection\n - [ ] Other features to add:\n   - [ ] CORS headers check\n   - [ ] Comments/details regarding a port\n   - [ ] custom state for each end-point\n   - [ ] Version fingerprinting (e.g. add score in each end-point, seen on each version...)\n   - [ ] external service notification support\n   - [ ] add risks evaluation on each end-point\n   - [ ] includes default bearer/api_secret in the API\n\n# References and resources\n\n[AR.IO Network+Token White\nPaper](https://stmnnh3s5hfbfaxxskvhx3d4l5vkbdxnep34ginzy5bsrlzzxxha.arweave.net/lNjWn3LpyhKC95Kqe-x8X2qgju0j98MhucdDKK85vc4)\n\n[AR.IO documentation](https://ar-io.dev/api-docs/)\n\n[AR.IO admin\nAPI](https://docs.ar.io/gateways/ar-io-node/admin/admin-api.html#overview)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniamtokik%2Farweave_nse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniamtokik%2Farweave_nse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniamtokik%2Farweave_nse/lists"}