{"id":18716698,"url":"https://github.com/juxhindb/synner","last_synced_at":"2025-04-09T22:17:53.683Z","repository":{"id":57669168,"uuid":"140425452","full_name":"JuxhinDB/synner","owner":"JuxhinDB","description":"A TCP SYN flood client written in Rust, powered by libpnet","archived":false,"fork":false,"pushed_at":"2023-02-09T19:29:34.000Z","size":886,"stargazers_count":96,"open_issues_count":1,"forks_count":21,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-09T22:17:46.591Z","etag":null,"topics":["libpnet","netsec","rust","rust-lang","tcp-client"],"latest_commit_sha":null,"homepage":"https://blog.digital-horror.com/synner-a-tcp-syn-client-written-in-rust/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuxhinDB.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":"2018-07-10T12:00:43.000Z","updated_at":"2024-12-31T22:31:18.000Z","dependencies_parsed_at":"2024-11-07T13:13:38.229Z","dependency_job_id":"fb434cf7-bac7-4d07-a77b-a2bac146e1e7","html_url":"https://github.com/JuxhinDB/synner","commit_stats":{"total_commits":15,"total_committers":6,"mean_commits":2.5,"dds":0.4666666666666667,"last_synced_commit":"74a070042ca0138f7a43940f480a2c149dd04c30"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuxhinDB%2Fsynner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuxhinDB%2Fsynner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuxhinDB%2Fsynner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuxhinDB%2Fsynner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuxhinDB","download_url":"https://codeload.github.com/JuxhinDB/synner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119286,"owners_count":21050755,"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":["libpnet","netsec","rust","rust-lang","tcp-client"],"created_at":"2024-11-07T13:13:29.411Z","updated_at":"2025-04-09T22:17:53.664Z","avatar_url":"https://github.com/JuxhinDB.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synner /'sɪnə'/\r\n\r\nA TCP SYN flood client written in Rust, powered by libpnet\r\n\r\n---\r\n\r\n### Prequisites\r\n\r\n- rustc/cargo v1.27.0\r\n- WinPcap for Windows for libpnet to work (see [this](https://github.com/libpnet/libpnet#windows))\r\n\r\n### Usage\r\n\r\n`cargo run TARGET_IP INTERFACE_NAME`\r\n\r\nIn order to be able to pull the list of network interfaces, make sure that you are running in a terminal/command prompt with admin privilieges. \r\n\r\nIf you are not sure about the interface name, you can run the tool with a dummy value (e.g. `\\DEVICE\\`) and wait for it to print out the list of interfaces like so:\r\n\r\n```\r\ncargo run 192.168.33.10 \\DEVICE\\\r\n   Compiling synner v0.1.0 (file:///C:/Users/juxhindb/Projects/synner)\r\n    Finished dev [unoptimized + debuginfo] target(s) in 1.63s\r\n     Running `target\\debug\\synner.exe 192.168.33.10 \\DEVICE\\`\r\nList of Available Interfaces\r\n\r\nInterface name: \"\\\\Device\\\\NPF_{B1BBC7C0-C3CF-490B-A640-00ABDB86F989}\"\r\nInterface MAC: 0a:00:27:00:00:12\r\nInterface IP: 192.168.99.1\r\n\r\nInterface name: \"\\\\Device\\\\NPF_{AD266AD1-7AE0-4360-8EE5-ED6283B43B9C}\"\r\nInterface MAC: 2a:56:5a:4f:fc:e9\r\nInterface IP: 0.0.0.0\r\n\r\nInterface name: \"\\\\Device\\\\NPF_{2288F93F-E56C-4F71-8B8E-C385BE71421F}\"\r\nInterface MAC: 1a:56:5a:4f:fc:e9\r\nInterface IP: 0.0.0.0\r\n```\r\n\r\nWhere you can then copy the name. Be sure to unescape the `\\\\`.\r\n\r\n### Example\r\n\r\nRunning `cargo run 206.189.96.237 \\Device\\NPF_{F94968E8-FBA0-410D-8CD3-F205AEAD4DC9}` again a test DigitalOcean droplet. The GIF below is split into three panels. Bottom one running `synner`, top-right is an SSH connection running a TCP dump (`sudo tcpdump  \"tcp[tcpflags] \u0026 (tcp-syn) != 0\" -i eth0 -n`) and the top-left is me attempting to make _another_ SSH connection to the target machine once the target is being flooded.\r\n\r\n![foo](res/example.gif)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuxhindb%2Fsynner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuxhindb%2Fsynner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuxhindb%2Fsynner/lists"}