Skip to content

Commit 1d431e4

Browse files
Add files via upload
1 parent a2d66fa commit 1d431e4

35 files changed

+2077
-0
lines changed

CODE/APIGen.py

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import os
2+
import tkinter as tk
3+
from tkinter import messagebox # Explicitly import messagebox
4+
5+
# Initialize the main window
6+
root = tk.Tk()
7+
root.title("VPN API Key Request")
8+
9+
# Instructions for obtaining the API key
10+
instructions = """
11+
Please visit https://vpnapi.io/dashboard to create an account and obtain your API key. Once you have your API key,
12+
please enter it below and click 'Submit'.
13+
14+
We do apologise but for IP analysis we had to use this method, we ensure you its safe, if you are still in doubt you may use this pre-generated API key {c6048787b83f44b18d4ce50e5c8869ed}
15+
16+
The KEY should not include the {} given, the key has a limit of 1000 requests a day, so its recommended to use your own API key, Thank you and we apologise for this inconvenience, to skip the API function type API-NO as your key.
17+
"""
18+
19+
# Label to display instructions
20+
instruction_label = tk.Label(root, text=instructions)
21+
instruction_label.pack(pady=20) # Use pack for simpler layout
22+
23+
# Entry widget for the user to input the API key
24+
api_key_entry = tk.Entry(root)
25+
api_key_entry.pack(pady=10) # Use pack for simpler layout
26+
27+
# Entry widget for the user to re-enter the API key for double-entry validation
28+
api_key_entry_confirm = tk.Entry(root)
29+
api_key_entry_confirm.pack(pady=10) # Use pack for simpler layout
30+
31+
32+
def submit_api_key():
33+
api_key = api_key_entry.get().strip() # Retrieve and strip whitespace from the entered API key
34+
api_key_confirm = api_key_entry_confirm.get().strip() # Retrieve and strip whitespace from the confirmed API key
35+
36+
# Error check for empty inputs
37+
if not api_key or not api_key_confirm:
38+
messagebox.showerror(title="Error", message="Both fields must be filled out.")
39+
return
40+
41+
# Double-entry validation
42+
if api_key != api_key_confirm:
43+
messagebox.showwarning(title="Warning", message="The API keys do not match. Please try again.")
44+
return
45+
46+
# Check if the API.KEY file already exists
47+
if os.path.exists('SYSTEM/API.KEY'):
48+
messagebox.showerror(title="Error",
49+
message="A API.KEY file already exists in the SYSTEM directory. Please delete it before submitting a new API key.")
50+
return
51+
52+
# Proceed to create the API.KEY file with the submitted API key
53+
parent_dir = os.path.dirname(os.getcwd()) # Get the parent directory
54+
system_dir = os.path.join(parent_dir, "SYSTEM") # Construct the SYSTEM directory path
55+
os.makedirs(system_dir, exist_ok=True) # Ensure the SYSTEM directory exists
56+
57+
with open(os.path.join(system_dir, 'API.KEY'), 'w') as f:
58+
f.write(api_key + "\n") # Write the API key to the file followed by a newline character
59+
60+
messagebox.showinfo(title="Success", message="API key saved to API.KEY.")
61+
exit(1)
62+
63+
64+
# Submit button for the user to finalize the API key submission
65+
submit_button = tk.Button(root, text="Submit", command=submit_api_key)
66+
submit_button.pack(pady=10) # Use pack for simpler layout
67+
68+
# Start the application
69+
root.mainloop()

CODE/API_IP_Scraper.py

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import requests
2+
import os
3+
import colorlog
4+
5+
6+
# Configure colorlog
7+
logger = colorlog.getLogger()
8+
logger.setLevel(colorlog.INFO) # Set the log level
9+
handler = colorlog.StreamHandler()
10+
formatter = colorlog.ColoredFormatter(
11+
"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
12+
datefmt=None,
13+
reset=True,
14+
log_colors={
15+
'DEBUG': 'cyan',
16+
'INFO': 'green',
17+
'WARNING': 'yellow',
18+
'ERROR': 'red',
19+
'CRITICAL': 'red,bg_white',
20+
}
21+
)
22+
handler.setFormatter(formatter)
23+
logger.addHandler(handler)
24+
25+
26+
def get_public_ip():
27+
"""Fetches the public IP address."""
28+
try:
29+
response = requests.get('https://api.ipify.org?format=json')
30+
response.raise_for_status() # Raises an HTTPError if the response was unsuccessful
31+
return response.json()['ip']
32+
except requests.exceptions.RequestException as e:
33+
logger.error(f"Error fetching public IP: {e}")
34+
return None
35+
36+
37+
def save_to_file(filename, content):
38+
"""Saves the provided content to a file."""
39+
try:
40+
with open(filename, 'w') as file:
41+
file.write(content)
42+
except IOError as e:
43+
logger.error(f"Error writing to file: {e}")
44+
45+
46+
def main():
47+
script_dir = os.path.dirname(os.path.realpath(__file__))
48+
parent_dir = os.path.join(script_dir, '..')
49+
api_key_file_path = os.path.join(parent_dir, 'SYSTEM', 'API.KEY')
50+
51+
if not os.path.exists(api_key_file_path):
52+
logger.error("Exiting: The API.KEY file does not exist.")
53+
return
54+
55+
with open(api_key_file_path, 'r') as file:
56+
api_key = file.read().strip()
57+
if api_key == "API-NO":
58+
exit()
59+
60+
public_ip = get_public_ip()
61+
if not public_ip:
62+
logger.error("Exiting: Could not fetch your public IP address.")
63+
return
64+
65+
url = f'https://vpnapi.io/api/{public_ip}?key={api_key}'
66+
try:
67+
response = requests.get(url)
68+
response.raise_for_status() # Raises an HTTPError if the response was unsuccessful
69+
except requests.exceptions.HTTPError as e:
70+
logger.error(f"Exiting: Failed to retrieve data from VPNAPI. Error: {e}")
71+
return
72+
73+
data = response.json()
74+
75+
output = (
76+
f"Country: {data['location']['country']}\n"
77+
f"City: {data['location']['city']}\n"
78+
f"ISP: {data['network']['autonomous_system_organization']}\n"
79+
f"Organization: {data['network']['autonomous_system_organization']}\n\n"
80+
f"VPN Used: {'Yes' if data['security']['vpn'] else 'No'}\n"
81+
f"Proxy Used: {'Yes' if data['security']['proxy'] else 'No'}\n"
82+
f"Tor Used: {'Yes' if data['security']['tor'] else 'No'}\n"
83+
)
84+
85+
save_to_file('API_Output.txt', output)
86+
logger.info("Operation completed successfully.")
87+
88+
89+
if __name__ == "__main__":
90+
main()

CODE/Antivirus_Finder.ps1

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Define the list of antivirus names to search for
2+
$antivirusNames = @("Norton", "McAfee", "Avast", "AVG", "Bitdefender", "Kaspersky", "ESET", "Sophos", "TrendMicro", "Comodo", "Panda", "Avira", "F-Secure", "GData", "Malwarebytes", "Spybot", "ZoneAlarm", "Webroot", "IObit")
3+
4+
# Check if the 'tree' command is available
5+
if (-not (Get-Command tree -ErrorAction SilentlyContinue)) {
6+
Write-Host "ERROR: Tree command not found. Please install or use an alternative method."
7+
exit
8+
}
9+
10+
# Run the tree command and capture its output
11+
$treeOutput = tree /f
12+
13+
# Split the output into lines
14+
$lines = $treeOutput -split "`n"
15+
16+
# Remove duplicates from the antivirus names list
17+
$antivirusNames = $antivirusNames | Sort-Object | Get-Unique
18+
19+
# Initialize variables for progress tracking
20+
$completedLines = 0
21+
$foundAntivirus = @()
22+
23+
# Process each line
24+
foreach ($line in $lines) {
25+
$completedLines++
26+
27+
# Check for antivirus names in the line, ensuring it's a complete word
28+
foreach ($name in $antivirusNames) {
29+
if ($line -match "\b$name\b") {
30+
$foundAntivirus += $name
31+
}
32+
}
33+
}
34+
35+
# Print the total lines processed and what was found to the console
36+
Write-Host "Processed $completedLines lines."
37+
if ($foundAntivirus.Count -gt 0) {
38+
Write-Host "INFO: Found Antivirus:"
39+
$foundAntivirus | Sort-Object -Unique | ForEach-Object { Write-Host $_ }
40+
} else {
41+
Write-Host "INFO: No antivirus found."
42+
}

CODE/Browser_Policy_Miner.ps1

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Define the list of source paths with placeholders
2+
$sourcePaths = @(
3+
"C:\Users\{}\AppData\Local\Microsoft\Edge\User Data\Default\Network",
4+
"C:\Users\{}\AppData\Local\Google\Chrome\User Data\Default\Network",
5+
"C:\Users\{}\AppData\Roaming\Mozilla\Firefox\Profiles",
6+
"C:\Users\{}\AppData\Roaming\Opera Software\Opera Stable\Network",
7+
"C:\Users\{}\AppData\Roaming\Opera Software\Opera GX Stable\Network",
8+
'C:\\WINDOWS\\system32\\config\\SAM',
9+
'C:\\Windows\\System32\\config',
10+
'C:\\Windows\\System32\\GroupPolicy',
11+
'C:\\Windows\\System32\\GroupPolicyUsers',
12+
'C:\\Windows\\System32\\winevt\\Logs'
13+
)
14+
15+
# Define the list of identifiers for renaming
16+
$identifiers = @(
17+
"Edge",
18+
"Chrome",
19+
"Firefox",
20+
"OperaStable",
21+
"OperaGXStable",
22+
"SAM",
23+
"SystemConfig",
24+
"GroupPolicy",
25+
"GroupPolicyUsers",
26+
"WindowsEventLogs"
27+
)
28+
29+
# Get the current user's name
30+
$currentUser = $env:USERNAME
31+
32+
# Define the base directory for the destination
33+
$baseDirectory = "DATA"
34+
35+
# Loop through each source path
36+
foreach ($sourcePath in $sourcePaths) {
37+
# Replace the placeholder with the current user's name
38+
$fullSourcePath = $sourcePath -replace '\{\}', $currentUser
39+
40+
# Check if the source path exists and is readable
41+
if (-not (Test-Path $fullSourcePath -PathType Container -ErrorAction SilentlyContinue)) {
42+
Write-Host "WARNING: Source path $fullSourcePath does not exist or cannot be accessed."
43+
continue
44+
}
45+
46+
# Extract the identifier from the source path
47+
$identifier = $sourcePath.Split('\')[-1].Split('\\')[-1]
48+
49+
# Define the destination path
50+
$destinationPath = Join-Path -Path $baseDirectory -ChildPath "USER_$identifier"
51+
52+
# Check if the destination directory exists, create it if not
53+
if (-not (Test-Path $destinationPath -PathType Container -ErrorAction SilentlyContinue)) {
54+
New-Item -ItemType Directory -Path $destinationPath -Force | Out-Null
55+
}
56+
57+
# Attempt to copy the folder to the DATA directory and rename it
58+
try {
59+
Copy-Item -Path $fullSourcePath -Destination $destinationPath -Recurse -Force -ErrorAction SilentlyContinue
60+
# Print the message to the console
61+
Write-Host "INFO: Copied $fullSourcePath to $destinationPath"
62+
} catch {
63+
# Suppress all errors
64+
Write-Host "ERROR: A unspecified error has occured!, might be due to permissions or a program is using the file"
65+
}
66+
}

CODE/CMD_Disabled_Bypass.py

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import pyautogui
2+
import time
3+
import colorlog
4+
5+
# Create a logger
6+
logger = colorlog.getLogger()
7+
logger.setLevel(colorlog.INFO) # Set the log level
8+
9+
# Define a handler that outputs logs to console
10+
handler = colorlog.StreamHandler()
11+
formatter = colorlog.ColoredFormatter(
12+
"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
13+
datefmt=None,
14+
reset=True,
15+
log_colors={
16+
'DEBUG': 'cyan',
17+
'INFO': 'green',
18+
'WARNING': 'yellow',
19+
'ERROR': 'red',
20+
'CRITICAL': 'red,bg_white',
21+
}
22+
)
23+
handler.setFormatter(formatter)
24+
logger.addHandler(handler)
25+
26+
'''
27+
# WIP
28+
# Function to disable the mouse and keyboard
29+
def disable_input():
30+
pyautogui.mouseDown(button='left') # Simulate holding down the left mouse button
31+
pyautogui.keyDown('shift') # Simulate holding down the Shift key
32+
logger.info("Disabled mouse and keyboard input.")
33+
34+
35+
# Function to enable the mouse and keyboard after the main tasks are completed
36+
def enable_input():
37+
pyautogui.mouseUp(button='left') # Release the left mouse button
38+
pyautogui.keyUp('shift') # Release the Shift key
39+
logger.info("Enabled mouse and keyboard input.")
40+
'''
41+
42+
43+
# Function to simulate pressing Win+R to open the Run dialog
44+
def press_win_r():
45+
pyautogui.hotkey('win', 'r')
46+
logger.info("Simulated pressing Win+R to open the Run dialog.")
47+
48+
49+
# Function to type the command to enable the command prompt
50+
def type_command():
51+
pyautogui.write(
52+
'cmd.exe /k "REG add HKCU\\Software\\Policies\\Microsoft\\Windows\\System /v DisableCMD /t REG_DWORD /d 0 /f"')
53+
logger.info("Typed the command to enable the command prompt.")
54+
55+
56+
# Function to press Enter to execute the command
57+
def press_enter():
58+
pyautogui.press('enter')
59+
logger.info("Pressed Enter to execute the command.")
60+
61+
62+
# Function to simulate pressing Alt+F4 to close the command prompt window
63+
def press_alt_f4():
64+
pyautogui.hotkey('alt', 'f4')
65+
logger.info("Simulated pressing Alt+F4 to close the command prompt window.")
66+
67+
68+
# Main execution flow
69+
if __name__ == "__main__":
70+
# Wait a bit to ensure the script is ready to run
71+
time.sleep(2)
72+
73+
press_win_r()
74+
75+
# Wait a bit for the Run dialog to appear
76+
time.sleep(1)
77+
78+
type_command()
79+
80+
press_enter()
81+
82+
# Wait a bit for the command to execute and the command prompt to open
83+
time.sleep(2)
84+
85+
press_alt_f4()
86+
87+
logger.info(
88+
"INFO: Command executed to enable the command prompt and the window has been closed. Mouse and keyboard have been re-enabled.")

CODE/Clean.ps1

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# PowerShell Script to Automatically Delete 'DATA' Directories in the Current Working Directory
2+
3+
# Get the current working directory
4+
$currentWorkingDir = Get-Location
5+
6+
# Define the directory name to look for
7+
$directoryName = "DATA"
8+
9+
# Get all directories in the current working directory
10+
$directories = Get-ChildItem -Directory
11+
12+
# Loop through each directory
13+
foreach ($dir in $directories) {
14+
# Check if the directory name matches the target
15+
if ($dir.Name -eq $directoryName) {
16+
# Attempt to delete the directory
17+
try {
18+
Remove-Item -Recurse -Force $dir.FullName
19+
Write-Host "INFO: '$($dir.FullName)' has been deleted."
20+
} catch {
21+
Write-Host "ERROR: Failed to delete '$($dir.FullName)': $_"
22+
}
23+
}
24+
}
25+
26+
Write-Host "INFO: Script completed. All 'DATA' directories found have been deleted."

0 commit comments

Comments
 (0)