Язык Lua на службе у пентестеров

Проверка lua кода на ошибки

Intro

Хакер #179. Интернет вещей — новый вектор атак

В работе мне довольно часто приходится анализировать большие объемы трафика, причем искать в них вполне конкретные паттерны. Поддержка Lua для написания расширений в Wireshark может сэкономить кучу времени (которую можно потратить, скажем, на сон).

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

Пример выполнения Lua-скрипта в Wireshark

Пример выполнения Lua-скрипта в Wireshark

Скрипт также можно выполнить через консоль, используя tshark:

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

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

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

Созданное окно с помощью расширения в Wirehark

Созданное окно с помощью расширения в Wirehark

Далее создадим переменные, которые будут обращаться к полям host и cookie HTTP-протокола:

Таким образом можно обращаться к любым полям любого протокола, а как мы все помним, этот замечательный снифер из коробки знает структуру колоссального числа протоколов и умеет «молотить» их на понятные части на лету (впрочем, для неизвестного протокола легко прописать структуру).

Теперь напишем функцию инициализации приемника пакетов и установим фильтр на HTTP-протокол:

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

Единственный нюанс: объединить переменные с помощью операции объединения строк нельзя, поскольку такие данные имеют тип userdata, а Lua не может напрямую их изменять. Но это можно обойти через метатаблицы.

Теперь выполним наш скрипт и запустим снифинг пакетов.

Работа нашего расширения в Wireshark

Работа нашего расширения в Wireshark

Работает! Но как видишь, у расширения есть минус — он выводит одинаковые кукисы, поэтому в идеале надо сделать таблицу, где будут храниться старые значения, и добавить проверку на уникальность. Но это я оставляю тебе в качестве домашнего задания. Если же ты не справишься или ты из тех людей, которые любят готовые рецепты, то полная версия будет ждать тебя на моем GitHub-аккаунте.

В сноске ты найдешь ссылки на вики и API с более подробной информацией по написанию расширений. Помимо этого, приведены примеры рабочих скриптов, один из которых сохраняет VoIP-звонки из пакетов в отдельные файлы и работает с SQL базой данных.

Расширение для Nmap

Разберем стандартную структуру скрипта. В начале каждого сценария добавляются стандартные библиотеки:

Далее идут метаданные:

После этого идет непосредственно код сценария. Для примера напишем простейший скрипт для брута пользователей популярной CMS LiveStreet.

Вначале определим стандартные переменные и подключим недостающие библиотеки:

Далее составим класс Driver для брута из соответствующей библиотеки. Напишем функцию инициализации с указанием хоста, порта и пути до формы логина:

Функции коннекта и дисконнекта оставим без изменений:

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

Ну и самая главная часть — функция логина. Сначала составляем HTTP-запрос:

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

В случае с сайтами на WordPress значение будет 302. Другой вариант — проверять появление нового HTML-элемента на странице (например, после логина обязательно появится ссылка для выхода пользователя из системы):

Сохраним полученный скрипт с расширением nse и положим рядом два файла: users. txt и passwords. txt — с некоторым количеством имен пользователей и паролей. В случае LiveStreet можно даже напарсить валидные имена пользователей или добавить этот функционал в скрипт.

Теперь запустим полученный сценарий (полный исходник скрипта можно скачать из моего GitHub-репозитория):

Если все пройдет успешно, то ты увидишь отчет о проделанном брутфорсе.

Отчет Nmap-скрипта для брута пользователей LiveStreet CMS

Отчет Nmap-скрипта для брута пользователей LiveStreet CMS

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

Шпаргалка по Lua

Вообще, использование Lua растет и растет. Так, на момент написания статьи была опубликована новость, что появился плагин для Olly Debugger версии 2+, добавляющий поддержку Lua.

Впрочем, язык не ограничивается одними программами для ИБ-сферы и может пригодиться в самых разных ситуациях. Как я уже говорил, его часто используют для игр, например World of Warcraft в своих аддонах (предоставляя API и довольно неплохую документацию по нему). Помимо игровых приложений, его задействуют такие программы, как Setup Factory. На нем написаны многие инсталляторы: Apache, nginx, Adobe Photoshop Lightroom, VLC и многие другие. Там, где нужно реализовать программируемое поведение программы, — интегрированный интерпретатор Lua точно будет очень неплохим вариантом.

Встраиваем компилятор в свою программу

Файлы LUA, такие как config. lua, классифицируются как файлы Разработчик (Lua Source). Как файл Lua Source он был создан для использования в McAfee Total Protection 2019 (16.0 R20) от компании McAfee, Inc..

Выпуск config. lua для Windows состоялся 07/29/2015 в Windows 10. Датой самого последнего выпуска файла для McAfee Total Protection 2019 (16.0 R20) является 08/29/2019 [версия 2019 (16.0 R20)]. Файл config. lua включен в McAfee Total Protection 2019 (16.0 R20), Motocross The Force 964 и Half-Life 2 Garry’s mod 9.04.

Ниже приведены подробные сведения о файле, порядок устранения неполадок, возникших с файлом LUA, и бесплатные загрузки некоторых версий файла config. lua.

Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с config. lua и (или) McAfee Total Protection.

Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Обзор файла

Сведения о разработчике и ПО
Программа: McAfee Total Protection 2019 (16.0 R20)
Разработчик: McAfee, Inc.
Программное обеспечение: McAfee Total Protection
Версия ПО: 2019 (16.0 R20)
Сведения о файле
Размер файла (байты): 4256
Дата первоначального файла: 03/18/2017
Дата последнего файла: 01/13/2020
Информация о файле Описание
Размер файла: 4.2 kB
Дата и время изменения файла: 2020:01:13 14:09:19+00:00

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

Что такое сообщения об ошибках config. lua?

Общие ошибки выполнения config. lua

Ошибки файла config. lua часто возникают на этапе запуска McAfee Total Protection, но также могут возникать во время работы программы. Эти типы ошибок LUA также известны как «ошибки выполнения», поскольку они возникают во время выполнения McAfee Total Protection. К числу наиболее распространенных ошибок выполнения config. lua относятся:

Программа: C:\Program Files\McAfee\MSK\Config\core\6713\config. lua

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

В большинстве случаев причинами ошибок в LUA являются отсутствующие или поврежденные файлы. Файл config. lua может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с McAfee Total Protection) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла config. lua может быть вызвано отключением питания при загрузке McAfee Total Protection, сбоем системы при загрузке или сохранении config. lua, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Как исправить ошибки config. lua — 3-шаговое руководство (время выполнения:

Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему config. lua. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку config. lua, перейдите к шагу 2 ниже.

Шаг 2. Если вы недавно установили приложение McAfee Total Protection (или схожее программное обеспечение), удалите его, затем попробуйте переустановить McAfee Total Protection.

Чтобы удалить программное обеспечение McAfee Total Protection, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

После полного удаления приложения следует перезагрузить ПК и заново установить McAfee Total Protection.

Если на этапе 2 также не удается устранить ошибку config. lua, перейдите к шагу 3 ниже.

McAfee Total Protection 2019 (16.0 R20)

Шаг 3. Выполните обновление Windows.

Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках config. lua может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:

Если Центр обновления Windows не смог устранить сообщение об ошибке config. lua, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл config. lua (внимание: для опытных пользователей)

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

Источники:

https://xakep. ru/2014/09/05/lua-for-pentest/

https://www. exefiles. com/ru/lua/config-lua/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: