|
import gradio as gr |
|
from utils.gradio_utils import * |
|
import os |
|
|
|
|
|
USER = os.getenv("USERNAME") |
|
PASS = os.getenv("PASSWORD") |
|
|
|
|
|
list_iface = gr.Interface(fn=compute_offer, |
|
inputs=[gr.File(label="Upload CSV", type="file"), |
|
gr.Slider(1, 365, value=30, step=1, label="Days", info="Number of days to look back"), |
|
gr.Slider(5000, 100000, value=15000, step=1, label="Minimum Sent", info="Minimum number of emails sent") |
|
], |
|
outputs="dataframe") |
|
|
|
domains_template = """tenderax.com |
|
reach-fortune.com |
|
joyful-healthy-hair.com |
|
roadbastion.com |
|
telesellshow.com |
|
quoteinalley.com |
|
pulsetrens.com |
|
conzurup.com |
|
enhancexp.com |
|
crystaldump.com |
|
wizuite.com |
|
rental-navigate.com |
|
habitatbutler.com |
|
equir-group.com |
|
gardenscented.com |
|
send-xp.com |
|
muzicarea.com |
|
markiq-brand.com |
|
oceanoger.com |
|
sagepagecos.com |
|
onestopdistribute.com |
|
zotep.com |
|
social-ascend.com |
|
sorganbell.com |
|
dotbokeeping.com |
|
prentior.com |
|
allign-simple.com |
|
healthskoot.com |
|
busadminister.com |
|
roboryzor.com |
|
theadaptivetrips.com |
|
neat-true.com |
|
race-move.com |
|
chap-views.com |
|
sunysuites.com |
|
willpowersocial.com |
|
avantezores.com |
|
snortbears.com |
|
avatarctica.com |
|
realbloxes.com |
|
tradessprint.com |
|
pulsecoverage.com |
|
devicesco.com |
|
skyward-bill-board.com |
|
match-salon-finder.com |
|
appcanister.com |
|
natural-dermi-cool.com |
|
appotor.com |
|
kid-pocket.com |
|
cebnext.com |
|
inno-crista.com |
|
craftitbyhand.com |
|
taveas.com |
|
pro-story-anthology.com |
|
textropolitan.com |
|
decorld.com |
|
knockand-blok.com |
|
stratusdomain.com |
|
cloriyes.com |
|
intromobs.com |
|
funnygrids.com |
|
bright-seen.com |
|
close-stop.com |
|
lets-tech.com |
|
globehereme.com |
|
lemon-abode.com |
|
skyzark.com |
|
tracwares.com |
|
extraclubs.com |
|
magicspix.com |
|
technayas.com |
|
queltys.com |
|
meta-choose.com |
|
salesultrax.com |
|
travelingnarrative.com |
|
domtions.com |
|
rising-beats.com |
|
vintacrafts.com |
|
blaze-trophy.com |
|
clever-wiz.com |
|
encraftey.com |
|
canvats.com |
|
ad-nu-vu.com |
|
thehandshops.com |
|
craft-pleasure.com |
|
patio-style-chef.com |
|
rollerdip.com |
|
skilled-code.com |
|
atomic-boom.com |
|
thedropgears.com""" |
|
|
|
|
|
with gr.Blocks() as aeon: |
|
with gr.Tab(label="SWAKS"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
ip_addresses_raw = gr.Textbox(lines=2, value="192.168.1.1/24", label="IP Classes") |
|
with gr.Column(): |
|
with gr.Row(): |
|
with gr.Column(): |
|
max_ips = gr.Number(value=0, label="Max IPs to search for before stopping") |
|
with gr.Column(): |
|
sample_size = gr.Number(value=5, label="Number of commands per subdomain") |
|
domains = gr.Textbox(lines=5, max_lines=5,value=domains_template, label="Domains") |
|
with gr.Row(): |
|
header_box = gr.Textbox(label="Header Used to Create Commands", visible=False) |
|
max_ips.change(fn=update_header, inputs=max_ips, outputs=header_box) |
|
with gr.Row(): |
|
with gr.Column(): |
|
gen_cmds_btn = gr.Button(label="Generate Commands") |
|
|
|
|
|
|
|
with gr.Row(): |
|
cmds = gr.Code(lines=20, value="Generate Commands") |
|
|
|
gen_cmds_btn.click(fn=generate_cmds_from_bulk, inputs=[ip_addresses_raw, domains, max_ips, sample_size], outputs=[cmds]) |
|
|
|
with gr.Accordion("Tips and tricks"): |
|
gr.Markdown("""The subdomains are IPs from [1-19] and [201-254]. |
|
- Copy the commands and copy them in a file `nano check.sh` and paste and save. |
|
- Run in terminal `sh check.sh` and wait for it to finish |
|
- There will two types of files: `bune_IP_addr.txt` and `blocate_IP_addr.txt` |
|
- To get all the good IPs run: `cat bune*` |
|
""") |
|
|
|
|
|
with gr.Tab(label="Mix domains and IPs"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
ip_subclasses_raw = gr.Textbox(label="IP Subclasses plain text", \ |
|
value="""192.168.1.1/24""", lines=2) |
|
with gr.Column(): |
|
num_of_ips = gr.Number(label="Number of IPs per /24", value=4) |
|
with gr.Row(): |
|
domains_raw = gr.Textbox(label="Domains", value="gogu.com\nasd.com\ndsa.com\ngigi.com") |
|
greet_btn = gr.Button("Compute IPs") |
|
output_ips = gr.Textbox(label="List of IPs") |
|
|
|
greet_btn.click(fn=generate_ips_per_subclass, inputs=[ip_subclasses_raw, num_of_ips],\ |
|
outputs=output_ips) |
|
|
|
|
|
output_mix = gr.Code(label="Mixed IPs and Domains") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
reset_btn = gr.ClearButton(label="Reset", components=[ip_subclasses_raw, domains_raw]) |
|
with gr.Column(): |
|
mix_btn = gr.Button("Mix IPs and Domains") |
|
mix_btn.click(fn=mix, inputs=[domains_raw, output_ips, num_of_ips],\ |
|
outputs=output_mix) |
|
|
|
with gr.Tab(label="Top Lists"): |
|
list_iface.render() |
|
|
|
aeon.launch(auth=(USER, PASS)) |