Issue-2018.07.11

 

[Выпуск 11.07.2018]

[[12.07.2018]]

[18:10:31]

Сегодня написал и отладил компоненты для создания стайлера для MacOS и Ubuntu Linux… В общем, мучился даже меньше, чем со стайлером для Windows. Это говорит о том, что самой защищённой счётной системой в мире остаются русские щёты… Но по порядку пройдёмся по всем проблемам.

Проблема 1

Макросы Bash перестают нормально работать, если строки заканчиваются специальными символами CRLF вместо просто LF! Казалось бы, давно известный факт, но он с завидным постоянством продолжает мне портить жизнь. По умолчанию Windows редакторы формируют строку именно в первом формате, а я постоянно забываю переключить вывод… 🙁 Самое интересное, что GitHub, наоборот, требует, чтобы строки заканчивались на CRLF, и перед заливкой в систему контроля версий мне всё приходится восстанавливать сначала.

Проблема 2

В случае если файлы в редакторе AkelPad вставлены из других редакторов с поддержкой UNICODE, в начало файла записывается невидимая последовательность символов, которая также мешает работе макросов. Чтобы сделать эту последовательность видимой, в редакторе mcedit необходимо выделить блок с начала файла. И эти символы тут же проявятся. После удаления символов макросы начинают работать нормально.

Проблема 3 (касающаяся сохранения результатов работы sed)

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

Проблема 4 (касающаяся вставки строк в sed)

По той же причине sed не меняет порядок и нумерацию строк в исходном файле и буфере. Поэтому:

  • Если Вы удалили при замене диапазон строк командой n,m d, то вставлять на их место новые строки нужно с позиции (n-1) ((n-1) a)! в противном случае вставленные строки “потеряются”.
  • Если Вам нужно вставить последовательно блок строк после строки n, вставляйте каждую новую строку с префиксом n a, например:

4a\
string1
4a\
string2
4a\
string3
...

То же самое будет и для вставки командой i.

  • Если в строке n была модификация командой c, то вставку текста после строки нужно начинать не с n a, а с (n+1) i. Почему возник такой баг, не знаю. Привожу правильный пример:

3c\
String 3
4i\
String 4
4i\
String 5
...
  • В команде поиска и замены по образцу я не нашёл способа включения шаблонов и регулярных выражений. Это делается, наверное, при запуске sed со специальной опцией.

Проблема 5 (преобразование макросов ed в sed)

Макросы данных языков похожи, но различия всё же есть.

  • В sed текст вставляется и изменяется построчно, а в ed возможна вставка и замена целыми блоками. Поэтому перед преобразованием блоков необходимо перед каждой строкой блока вставить строку с первоначальным префиксом блока.
  • В ed блок текста вставляется командой a, а в sed — a. Этого нигде нет в руководстве. То же самое относится и к командам i и c. А вот команда d в обоих редакторах нормальная. И выяснить работоспособность макросов возможно только опытным путём.
  • Редактор ed заканчивает операцию знаком «.» в начале строки, а в sed такая команда вызывает ошибку. Так что нужно удалить эти точки, заменив их пустой строкой.
  • Также в редакторе sed нет команд w и q. Их тоже нужно удалить.

Беда в том, что команда diff выводит файл преобразований, подходящий именно под старые версии ed, и в редакторе sed он не запустится. Необходимо будет сделать преобразования, указанные выше, не забыв “включить мозги” при преобразовании синтаксиса и обхода багов.

[18:59:04]

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

Для написания действительно опасного кода мне нужно разобраться с архиватором shar и уточнить запуск скриптов в “тихом” (фоновом?) режиме, а также работу ftp- клиента Linux. Весь остальной код можно позаимствовать из Windows версии. И это будет бомба!

[[01.07.2018]]

[22:07:34]

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

Ещё я добавил функцию автоматического удаления компонентов инсталлятора стайлера после его установки. Нечего светиться этим файлам после установки!

Фокус же с фейковой учётной записью я считаю ещё одним поводом для гордости! Он создаёт машинно и пользовательски независимую конфигурацию для работы стайлера! При этом возможно как независимое назначение системных заданий Windows (аналог cron в Linux), возможность удалённого подключения к компьютеру с административной учётной записью. Плюс эту учётную запись видит только локальный администратор компьютера!

[18:25:04]

Наконец-то полностью отладил работу стайлера “Экспонента”. Стайлер у меня теперь полностью в рабочей версии, и может уже получить приставку beta. Это по-настоящему здорово. У меня устанавливается сам модуль, плагины к модулю, создаётся и скрывается фейковая учётная запись, регистрируются задачи управления ботнетом.

Была даже решена задача, “отравлявшая мне жизнь” более месяца. Суть её заключалась в том, что у меня устанавливался пакет Hidden Start, но не регистрировался. Из-за этого не работали многие задачи. Решение оказалось простейшим — в файле регистрации необходимо все файлы заключить в двойные кавычки. После этого всё сработало.

У меня наблюдались трудности с установкой пакета sysinternals. Я так и не понял, временная это проблема, или мне придётся с ним распрощаться.

README_BAT2EXE.MD

Как работать с программой bat_to_exe_converter

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

  1. Установите программу из менеджера пакетов Chocolatey, используя следующую команду:

    choco install -y battoexeconverter

  2. Запустите команду, набрав в командной строке:

    bat_to_exe_converter.exe

  3. В открывшемся окне нажмите кнопку «Открыть» и загрузите конвертируемый командный файл (поддерживается только расширение *.bat). Если надо, отредактируйте его.
  4. Перейдите на вкладку «Опции».
  5. Отметьте флажком пункт «Иконка» и загрузите иконку из файла. Изменить иконку приложения ресурса нам нужно для того, чтобы программа «мимикрировалась» под другой известный файл, не вызывающий у пользователей подозрений. Иконку нужно получить из наиболее близкого стороннего приложения, используя программы «Resource_hacker», «IcoFX» и подобные, которые позволяют получать набор иконок из исполняемых файлов Windows, динамических библиотек и архивов ресурсов.
  6. В поле «Рабочая папка» укажите «Временная папка».
  7. В поле «Формат exe файла» укажите «32 бита | Окна (невидимые)».
  8. В поле «UAC» поставьте флажок: «Запросить права администратора», флажок «Включить сжатие UPX» оставьте снятым.
  9. В группе «Встраиваемые элементы» установите:
    • «Извлечь в» во «Временная папка»,
    • «Метод» — «Синхронно»,
    • «Удалять при выходе» — «Да»,
    • «Перезаписать» — «Да»,
  10. Остальные пункты на вкладке оставить без изменений.
  11. Перейдите на вкладку «Встроить».
  12. Нажмите кнопку «Добавить» и добавьте в проект все необходимые для исполнения программы файлы. Учтите, что все они будут извлекаться во временную папку.
  13. Перейдите на вкладку «Информация о версии» и убедитесь, что флажок «Включить информацию о версии» снят. Вы же не хотите «засветиться», если Ваш файл администратором всё-таки будет признан вредоносным.
  14. Нажмите на кнопку «Конвертировать» и выберите место и расположение конвертированного исполняемого файла.
  15. В качестве теста запустите этот файл. У Вас должно появиться окно с запросом «UAC», после чего Вы ничего не должны видеть до окончания работы программы и получения результатов.
  16. Установщик готов. Бинго.

README_CREATESFX.MD

Как создать самораспаковывающийся архив инсталлятора средствами 7zip

Программа 7zip предлагает собственные средства создания и распаковки архивов дистрибутивов, которые отличаются:

  1. Высокой степенью компрессии;
  2. Возможностью выполнения ряда задач после извлечения архива.

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

Установка дополнительных модулей 7zip

Для начала надо скачать и установить модуль, позволяющий организовать «тихую» распаковку и установку программ путём создания соответствующего SFX архива. Для этого нужно скачать программный продукт по ссылке: https://sourceforge.net/projects/s-zipsfxbuilder/. После этого нужно запустить инсталлятор, согласится с опциями по умолчанию и установить пакет. В результате в каталоге %ProgramFiles% у вас появится каталог «7z SFX Builder», в котором нас больше всего интересуют справочное руководство 7zSD_RU.chm и подкаталог с дополнительными расширениями «3rdParty\Modules». Из последнего мы будем брать модули для создания самораспаковывающегося SFX архива из архива 7zip.

Подготовка архива 7zip

Для начала подготовим архивный файл 7Zip, который мы будем дальше преобразовывать. Для этого:

  1. Щёлкните правой кнопкой мыши на каталоге, который Вы хотите заархивировать.
  2. В контекстном меню выберите «7zip >» -> «Добавить к архиву…».
  3. Откроется диалоговое окно, в котором сначала нужно выбрать месторасположение и имя архива.
  4. Затем укажите следующие опции:
  5. «Формат архива»: 7z;
  6. «Уровень сжатия»: Ультра;
  7. «Метод сжатия»: LZMA;
  8. «Размер словаря»: «32 MB»;
  9. «Размер слова»: 64;
  10. «Размер блока»: «По размеру файла»;
  11. «Число потоков»: 1;
  12. «Режим изменения»: «Добавить и заменить»;
  13. «Пути к файлам»: «Относительные пути»;
  14. Остальные опции оставить незаполненными;
  15. Снять все флажки;
  16. Нажать кнопку: «Ok».
  17. После этого архив будет создан. Бинго!

Подготовка файла конфигурации SFX

  1. Скопируйте 7zip файл с архивом в новую папку;
  2. Скопируйте файл «7zsd_LZMA.sfx» из каталога "C:\Program Files (x86)\7z SFX Builder\3rdParty\Modules" в эту же папку.
  3. Запустите программу «7z SFX Builder»;
  4. На первой вкладке отметьте опции: «Перезаписывать все файлы», «Скрыть все окна интерфейса», «Путь извлечения» — переменную или реальный каталог инсталляции пакетов;
  5. Перейдите на вкладку «SFX»;
  6. Выберите 7z архив в папке и установите флажок: «Добавить путь в файл конфигурации»;
  7. Выберите LZMA модуль в папке и установите флажок: «Добавить путь в файл конфигурации»;
  8. Выберите путь и имя SFX архива (с расширением *.exe) и установите флажок: «Добавить путь в файл конфигурации»;
  9. Нажмите кнопку «Сохранить как» на панели инструментов программы и сохраните файл конфигурации под именем «config.txt» в папку с 7zip архивом программы. В дальнейшем вы можете не выполнять пункты: 1-9, а просто открыть этот файл кнопкой «Открыть» на панели инструментов;
  10. Нажмите кнопку: «Создать SFX»;
  11. Бинго!

Файл SFX архива создан. Теперь, если запустить его, он ничего не покажет, а после завершения распаковки откроется распакованная из архива папка.

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

[[26.06.2018]]

[16:37:57]

Решить задачу указанием всех возможных записей не удалось — при импорте система принимает только одну учётную запись. Дополнительные требования к этой учётной записи:

  • Она должна иметь права локального администратора;
  • Она обязательно должна иметь пароль;
  • Она обязательно должна быть активной, и оставаться активной на время исполнения заданий;
  • Доменный префикс для данной записи не обязателен (слава богу).

И самое главное — она обязательно должна присутствовать на компьютере! Таким условиям не удовлетворяет ни один из стандартных и пользовательских аккаунтов, кроме специально созданных под эти цели. Попробую использовать аккаунт MSSQLSR, который я всё равно создаю для нужд сетевого администрирования и удалённого доступа.

[12:26:18]

Ещё раз убедился в истинности банальной заповеди: “Не мудрствуй лукаво”. Максимально упростив команду запуска файлов задания, я добился их скрытого выполнения! Под учётной записью локального администратора они выполняются, а остальное мне знать не положено — скорее всего, пакетник не запустится по другой причине.

Остаётся решить вопрос с учётной записью «Все». Есть одна задумка, как попробовать обойти ограничение… Путём перечисления всех возможных записей. Но эту проблему оставлю на потом.

[11:37:32]

В программе нашёл ещё один баг, от которого не знаю, как избавиться. Баг этот заключается в следующем.

В XML файле задания есть теги <Principals><Principal id="Author"><UserId>, которые определяют, от имени какой учётной записи будет выполняться задание. Всё бы хорошо, но на момент создания скрипта заранее не известно, какие учётные записи в каком домене есть на компьютере Windows. Да, есть универсальная запись «Все», обозначающая всех пользователей Windows. Но на моём компьютере она оказалась почему-то не активной. В чём дело — не понятно… 🙁 Также непонятно, как исправить. Указать учётную запись «Администратор»? Но она также может быть переименована! Так что вопрос пока без ответа…

[[25.06.2018]]

[12:58:13]

Отладил стайлер «Экспонента». На мой взгляд, он отлично работает. За исключением одного момента, который я пока не могу проверить.

Дело в том, что, вопреки моим ожиданиям и здравому смыслу, не происходит автоматической регистрации пакета Hidden Start при установке программы, хотя при ручном добавлении файлов регистрации она срабатывает. Есть предположение, что регистрация будет работать после перезагрузки компьютера, но проверить это предположение я могу только на “чистом компьютере”. Ещё, из-за отсутствия регистрации, появляется в конце установки пакета требование зарегистрировать UAC. Мне это сообщение, вообще-то, как соль на рану. Мало того, что оно выдаёт установку пакета, плюс ещё то, что в случае отрицательного ответа работа идёт псу под хвост. Но опять же предположения я могу проверить только на «чистом компьютере».

Из положительного. Установка пакета Chocolatey из командной строки протестирована и работает! Это мне как бальзам на душу, поскольку одна из основных частей пакета оказалась рабочей. Также подтвердилось предположение, что в случае сбоя загрузки файлов из Интернета их старые копии окажутся работоспособными. Осталось подтвердить возможность замены старых копий файлов скаченными из Интернета. Но это совсем другая история…

Что ж, стайлер показал себя вполне работоспособным. Все идеи, заложенные в него, после первой проверки кажутся работоспособными. Самое главное — стайлер нигде не показал себя как вредоносное программное обеспечение, а значит, перспективы у него есть. Ведь по заверениям всех антивирусных компаний, от которых я получил отзыв, “… данное ПО никогда не будет признано вредоносным на основании сигнатур или эвристик”. 🙂 Учитывая на стремительное падение цен на VPS хостинг, анонимно разместить сервер ля управления стайлером на компьютере-жертве тоже возможно. В среднем за 400 рублей в месяц.

Недостатком стайлера является сложная система установки дополнительных модулей и расширения функциональности стайлера. Одна неверная команда — и Вы потеряете доступ к стайлеру, а Ваша учётная запись будет скомпрометирована. Именно поэтому автор не видит коммерческих перспектив данного продукта — он очень сложен для пользователей, особенно начинающих. Но в опытных руках он может делать всё!

Ещё один момент. В дальнейшем нужно будет развивать пакет в плане перехода с протокола ftp на http (webdav). Только в этом случае он сможет работать через HTTP прокси.

[[18.06.2018]]

[7:07:37]

Итак, прописываем схему, по которой инсталлируются пакеты в стайлере «Экспонента»:

  1. «Хозяин» добавляет командный файл на инсталляцию пакета в один из файлов, который автоматически выполняется планировщиком на компьютере-жертве.
  2. Этот командный файл содержит три пункта:
  • проверка, что пакет не инсталлирован;
  • команда на скачку дистрибутива (если это нужно)
  • команда на установку дистрибутива
  • команда на внесение изменений в системные файлы Exponenta
  1. Файлы планировщика каждый час обновляются с сервера. Соответственно, во время очередного обновления, появится команда на скачивание и запуск этого командного файла.

[7:25:14]

Вырисовывается блок-схема инсталлятора стайлера «Экспонента»:

  1. Открываются необходимые порты брандмауэра, и регистрируются системные переменные стайлера «Экспонента»;
  2. Скачиваются архивы программ: «Exponenta», «Elevation», «Hidden Start» во временный каталог.
  3. Эти пакеты разархивируются в свои каталоги и запускаются скрипты их регистрации.
  4. Через PowerShell устанавливается пакет «Chocolatey». Здесь небольшая проблема. Нужно найти способ активировать его без перезагрузки.
  5. С помощью менеджера пакетов «Chocolatey» устанавливаются пакеты: sysinternals, curl, wget, unxutils, clink;
  6. Создаётся фейковая учётная запись на компьютере, и ей присваиваются права локального администратора. Далее эта запись скрывается при входе в систему;

[[17.06.2018]]

[17:17:27]

Наконец-то додумался до более простой форме инсталляции пакетов в стайлере «Экспонента», не требующих никаких ID и проверок, но, тем-не менее, достаточно эффективное при работе в Интернете.

Суть изменений — в файле onsysload, который будет выполняться каждый час. Выполнение будет прописано в планировщике заданий Windows (это отдельная тема). При своём запуске файл инициирует скачивание файлов user_hourly1.bat, user_dayly1.bat, user_onstart1.bat, которые должны выполняться соответственно раз в час, в сутки и при старте компьютера. А в этих файлах прописаны команды, которые должны выполняться на компьютере жертвы в указанные промежутки времени! Для того чтобы не возникало ошибок при запуске этих файлов, необходимо:

  1. Необходимо следить за целостностью данных на компьютере жертвы. Это самый сложный и серьёзный пункт, поскольку он не находится в исключительной компетенции хозяина, а зависит также от действий пользователя и администратора.
  2. Необходимо запускать указанные командные файлы с префиксом hstart, который позволит запустить эти командные файлы без консоли и с правами суперпользователя Windows.
  3. В этих файлах необходимо избегать команд, требующих безусловного подключения к Интернету. Иначе от сбоев компьютера жертвы Вы не гарантированы, даже при соблюдении вышеперечисленных условий. Стайлер должен самовосстанавливаться после сбоев, и не надо ему в этом мешать! К этим командам относится установление удалённого подключения, пересылка больших файлов без докачки и т.п. Сессии wget и curl к этим командам не относятся, поскольку сбой в Интернете обычно не приводит к фатальным результатам, кроме потери части файлов. При повторном подключении эти файлы можно докачать.

[17:38:46]

Теперь о способах создания заданий в планировщике Windows из командной строки. Для этого необходимо подать команду:

schtask /Create /XML «Файл задачи.xml» /TN «Задача» /F

где «Задача» — имя задачи, отображаемое в планировщике задач, «Файл задачи.xml» — подготовленный файл задачи на компьютере хозяина, в котором прописаны все параметры планировщика. Получить этот файл можно, щёлкнув левой клавишей мыши на экспортируемой задаче и выбора в правом вертикальном меню пункта «Экспорт».

[[19.05.2018]]

[9:33:43]

Данный материал был признан сложным и бесперспективным и в новой версии стайлера удалён

Формат NewManifest файла

ID — уникальный идентификатор модуля для инсталляции Exponenta/ Модули с разными ID не будут устанавливаться на компьютере.

ID представляет собой зашифрованную алгоритмом base64 следующую строку

“Ник группы хакеров”&“Ник хакера”&“Email Хакера” &“Телефон хакера в международном формате”&“Публичный хост хакера”&“Хост для размещения системы взлома”&“GMail для размещения системы взлома”&“Имя компьютера жертвы”&“Логин компьютера жертвы”&“Версия операционной системы”

Как вы сами понимаете, эта информация уникальна и достаточна

В ID допускаются только латинские буквы и арабские цифры, не желательны слова “anonymous”, “public”, “private”, “default”, “user”, “admin” и их производные по смыслу.

Если указана строка “ID=any”, то проверки на валидность ID проверяться не будет.

Проверка идентификатора осуществляется модулем “checknewid_e” при обновлении программы, её активации и деактивации.

Поле “Версия операционной системы”, желательно, должна принимать следующие параметры:

Win7 — Microsoft Windows 7 Service Pack 1 All versions Win8 — Microsoft Windows 8 or 8.1 All versions Win10Pro — Microsoft Windows 10 Pro and Enterprise Win10 — Other versions of Microsoft Windows 10 WinSrv — Microsoft Windows Server 2008 R2, 2012, 2016 DebLin — Linux на основе дистрибутивов Debian (Debian, Ubuntu, Mint) FedLin — Linux На основе дистрибутивов Fedora (Fedora, RedHat, CentOS); Linux — Other Linux Distributives (Gentoo, Alt, etc) FreeBSD — Дистрибутивы на основе FreeBSD, в том числе и MacOS X всех версий iOS, Android, WinPh — пока не реализованы

Version — версия плагина в произвольном формате. Версия указывается разработчиком, и не должна редактироваться. При обновлении номер версии, возможно, проверяется!

Active — строка, отвечающая за активацию и деактивацию модуля в программе. Может принимать значение:

Active=::yes для успешно активированного модуля, Active=::no для отключённого модуля Active=::error для модуля, установленного или активированного с ошибкой (или установленного и упровляемого другим источником) Active=::unknown для блока только что установленного и автоматически не активированного

Для модуля, не требующего активации, значение Active пустое (строка “Active=::”)

Пример файла манифеста:

ID=any Version=0.0.1 alpha Build 148 Active=::unknown

Файл манифеста создаётся на этапе установки программы, в инсталляторе и модифицируется программами _setactive _setinactive, программами обновления пакетов. Заметим, что при проведении процедуры продажи ботнета его манифест не меняется! ID всегда указывает на хакера, впервые заразившего компьютер.

[[18.05.2018]]

[16:51:49]

В основном отладил скрипт инсталляции-деинсталляции пакета на примере плагина к моему ботнету — программного пакета Elevation с дополнениями. Поскольку этот пакет является административным, я предусмотрел “скрытую” установку и “открытое” удаление дистрибутива этого пакета. Для чего скрыто устанавливать, думаю, всем понятно. А вот открытое удаление лежит в области психологии. Единожды установленный, этот пакет интегрируется в систему и воспринимается любым системным администратором как “что-то очень нужное”. Поскольку оно лежит открыто на жёстком диске, в папке, для которой она и была создана, у администратора может сложиться де жа вю, что “что-то подобное я устанавливал”. Ему и мысль не придёт, что запускаемый в командной строке по требованию файл cmd.exe может служить компонентом вируса. Да-да.

Теперь для тех, кто не в теме, что это за пакет Elevation. Elevation — это командное окружение, ядро которого написано на Visual Basics Script, а модули — в виде командных файлов, которые позволяют запускать программы с повышенными привилегиями из-под учётной записи пользователя компьютера. По идее эти программы не могут запускать вирусы, поскольку требуется дополнительное подтверждение UAC на выполнение операций на компьютере. Но это только по идее — предупреждения UAC можно скрывать при помощи других таких же системных программ. Основное же назначение этих пакетов — не давать никому на компьютере работать под учётной записью администратора, так как это небезопасно. Автор широко пользуется этим пакетом. Например, с его помощью можно запустить консоль cmd или Powershell из-под работающего cygwin, putty или вообще из подсистемы Linux. Надо только знать команды, и автор дополнил этот пакет дополнительным списком для обеспечения административного доступа. По понятным причинам, в публичную версию пакета не вошли файлы, содержащие пароли и список запущенных на компьютере автора служб. Но это и не нужно — под себя такие скрипты может написать любой грамотный системный администратор.

К сожалению, у данного инсталлятора осталась одна “ахиллесова пята”, которая не позволяет его называть “совершенно скрытым”. Да, инсталляция пакетов проходит в “шепчущем режиме”, не выводится ни одно сообщение, а о работе приложения можно судить только по запущенном в диспетчере процессов скрытых командных файлов и оболочки “cmd.exe”. Система автоматически реагирует на возможные проблемы с установкой, и даже при неполной установке операционная система остаётся полностью работоспособной, а сами пакеты — частично работоспособными. Правда, логи установки автор пока ещё сделать не додумался. 🙂 Но инсталлятор при установке запрашивает контроль учётных записей, а на значке приложения в Windows 10 видна пометка “запускать с правами администратора”. И это “с головой выдаёт” этот файл именно как исполняемый, даже если ему поменять расширение. К счастью, ни один из антивирусов не опознаёт этот пакет как зараженный (что было бы странно с их стороны, учитывая полную безопасность программ двойного назначения, входящих в пакет).

Для сборки инсталлятора дистрибутива автору потребовались дополнительно следующие пакеты:

  • Менеджер пакетов Windows Chocolatey. С его помощью можно незаметно, из командной строки, даже удалённо, устанавливать различные пакеты для Microsoft Windows и зависимости для него. Устанавливается из командной строки PowerShell 2.0, а значит для его работы нужна Windows 7 SP1 не ниже. Как установить менеджер пакетов, можно почитать на сайте https://chocolatey.org. Там же на сайте выложена база данных с присутствующими в системе пакетами.
  • Упаковщик 7z, позволяющий делать архивы минимального веса, к тому же и бесплатно. Он устанавливается из менеджера пакета chocolatey командой:

choco install -y 7zip.install 7zip
  • Программа Bat-to-exe Converter. Эта команда конвертирует командные файлы Windows с расширением BAT в полноценные файлы Microsoft Windows. Среди её полезных функций автор отмечает следующее:
  • Не смотря на то, что эта программа является по сути джойнером, она не определяется как вирус;
  • Программа позволяет, помимо основного файла, включать в себя любые дополнительные файлы для запуска. При этом можно указать, куда программа будет распаковывать дополнительные файлы и что с ними делать после завершения.
  • Программа позволяет запускать файл как в консольном, так и скрытом, “шепчущем” режиме.
  • Программа позволяет назначить файлу любой значок;
  • Программу можно настроить на запуск установки индивидуально для систем разной битности, что может помочь проводить эффективную специфичную инсталляцию под нужное железо, с невозможностью запуска программы на других платформах.

Установить программу можно с помощью менеджера пакета chocolatey командой:

choco install battoexeconverter
  • Альтернативный менеджер SFX архивов для 7Zip. Недостатком стандартного 7zip SFX модуля является невозможность в нём проводить скрытое разархивирование, без показа полосы прогресса. Из-за этого такие архивы не подходят для скрытой установки. Проблему решает альтернативный менеджер SFX, официальный сайт которого закрыт, а пакет можно скачать с сайта https://rsload.net/soft/cleaner-disk/11772-7z-sfx-builder.html или по прямой ссылке с сайта, требующей авторизации с сайта rsload.net: http://95.141.193.17/noload2/files/049/rsload.net.7z.SFX.Builder.2.1.zip. Также автор обязуется выложить ссылку на файл на своём FTP сервере. Не смотря на сложности скачивания, файл не содержит пароля, а содержит в себе инсталлятор модуля, который при этом “не лезет” в папку с оригинальным 7z.

Преобразование файла в формат EXE здесь занимает больше телодвижений, чем в родном инсталляторе (который, кстати, не затирается). Но со всем можно разобраться при помощи встроенной справки, которая в программе весьма толковая. Саама графическая оболочка поможет подготовить файл конфигурации для генерирования SFX архивов “индивидуально под Ваши условия на все времена”. Вам придётся написать небольшой командный файл для автоматизации генерации самораспаковывающегося архива, поместить этот командный файл, файл конфигурации, выбранный из богатого списка нужный SFX модуль (копируется из каталога с установленной программой), собственно 7z файл, собранный в любой программе, но со специально подобранными параметрами архивирования под выбранный модуль, и запустить командный файл. Через 5 секунд в Вашем каталоге появится файл уже с расширением EXE, который Вы можете использовать по своему усмотрению.

Возможностей альтернативного установщика 7zip SFX даже больше, чем в программе Bat-to-Exe Converter, однако он не является джойнером и с его помощью нельзя сделать по-настоящему незаметные действия. Кроме того, если назначить такому архиву запуск под учётной записью администратора, у него будут большие проблемы с незаметностью установки (замучаетесь подтверждать UAC, или у Вас ничего не заработает). Поэтому автор рекомендует осуществлять скрытую установку из этого архива только внутри контейнера Bat-to-Exe, запущенного с правами администратора. При этом разрешить архиву распаковываться под учётной записью обычного пользователя, даже если по логике вещей это невозможно.

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

[18:25:05]

Я наконец-то определился с планами по развитию разработки своего “зловреда”. В системе будет только один базовый инсталлятор, который является пользователе-чувствительным и должен настраиваться индивидуально, один раз при заражении, и система “плагинов”, которые расширяют базовую функциональность взломщика. В отличие от общей системы, деинсталляция плагинов не предусмотрена (возможно, только их отключение), и удаляются они только вместе со всем приложением — “зловредом” через скрытый деинсталлятор. Установка базовой части пакета будет осуществляться только при активном соединении с Интернетом, тогда как деинсталляция пакета возможна в режиме офлайн и даже удалённо. Кроме того, отдельные плагины можно деинсталлировать “ручками”, поскольку документация по плагинам открытая.

Базовый пакет инсталлируется при помощи одного инсталляционного файла, к которому при желании можно подключить загрузку дополнительных плагинов из списка доступных (в виде внедряемых инсталляторов с запуском из основного инсталлятора). Этот инсталляционный файл осуществляет следующие действия.

После инсталляции файлов пакета в системном окружении операционной системы появляются следующие переменные:

  • Hacker_User – имя (логин) учётной записи компьютера-жертвы на ftp серверах хозяина, с которых будет осуществляться управление ботнетом
  • Hacker_Pass – пароль для этой учётной записи. Его нужно указывать, чтобы посторонние не имели доступа к данным жертвы на сервере хозяина. Внимание! Пароль храниться в незащищённом виде! Просто автор не нашёл способа безопасного использования хеша и солей в программах коммуникации.
  • Hacker_host1 – доменное имя публичного хоста, с которого скачивается установочные файлы и публичные обновления ботнета. Её значение может совпадать со значением следующей переменной, когда используется только один хост.
  • Hacker_host2 – доменное имя приватного хоста, с которого скачиваются в офлайн-режиме команды управления ботнетом и на который передаются результаты его работы
  • Скрытый каталог C:1, в котором размещаются файлы пакета и доступ к которому возможен только для администратора. К этому каталогу впоследствии может быть организован удалённый доступ. В этом каталоге обязательно должна содержаться папка Util для запуска эксплоитов и административных задач. Остальные папки создаются по мере надобности
  • Учётная запись MSSQLSR Microsoft Windows с паролем “Admin01234” и административными привилегиями, которая тут же блокируется. Эта запись потом потребуется с целью организации удалённого доступа к компьютеру.

(указанные здесь переменные в стайлере пока не реализованы)

  • Hemail_User — логин от аккаунта Gmail для взлома (без обязательной части @gmail.com). Используется в модулях, которые передают сообщения по электронной почты
  • Hemail_Pass — пароль от аккаунта Gmail Примечание. Пароли записываются в незашифрованном виде. Будьте осторожны!
  • Файл для деинсталляции Exponenta вместе с модулями
  • Файл для продажи Exponenta другому лицу
  • Файл для автоматического выполнения командных файлов при загрузке компьютера (основная часть ботнета Exponenta) onsysload.bat

Список подготовленных плагинов автор приводит здесь:

Elevation. Must Have для всех последующих пакетов программ, которые должны организовывать запуск программ с правами администратора. Местоположение пакета: C:.

Hidden Start. Устанавливается дополнительно к пакету Elevation для сокрытия производимых им действий. Местоположение пакета “C:FilesStart”

Собственно троян-эксплоит Exponenta. С помощью этого модуля можно получать недостающие пакеты, для удалённого управления минуя социальный инжиниринг. Местоположение пакета C:1

Модуль для Exponenta для сбора информации о компьютере и передачи её на FTP сервер хозяина.

Модуль для Exponenta для передачи внешнего IP адреса компьютера в момент включения на FTP сервер хозяина

Модуль для Exponenta для открытия доступа к компьютеру по telnet протоколу (Инсталляция встроенного telnet-сервера). Одновременно эксплоит активирует запись для доступа. Не работает в Windows 10.

Модуль Exponenta для активации доступа к компьютеру по протоколу WinRM. Универсальное решение, но сложное в реализации.

Модуль Exponenta для переименования учётной записи локального администратора и смены в ней пароля. Это необходимо для первоначального доступа к компьютеру программой DameWare

Модуль Exponenta для DynDNS сервера разрабатывается индивидуально.

Модуль Exponenta для встраивания в планировщик задач. Пока не написан. (Уже написан и отлажен).

Модуль Exponenta для установки произвольных пакетов и плагинов

Модуль Exponenta для учёта времени включения компьютера

Примечание. Модули Exponenta могут обновляться через профиль пользователя на FTP сервере.

Chocolatey. Менеджер пакетов Must Have Windows. Инсталлируется в папку C:. Служит для оперативного скачивания зависимостей пакета.

sTunnel. Программа для туннелирования доступа компьютера-жертвы к различным серверам. Устанавливается через Chocolatey. Особо необходима для работы следующего пакета. Также вариант — проброс портов через прокси-сервер (пока только идея).

blat. Программа отправки почты по протоколу SMTP в Интернет. Служит для скрытой отправки сообщений с компьютера через почтовый ящик Google. Полезна, когда FTP сервер не работает

[19:35:57]

Полезные советы.

  1. Инсталлируйте только те модули, в которых Вы нуждаетесь. Вариант забит пакет модулями под завязку “на всякий случай” — плохая идея с точки зрения безопасности и анонимности.
  2. Чтобы не скомпрометировать учётные записи, периодически меняйте логины и пароли программы с помощью модуля “продажи ботнета”.
  3. Как только Вы получили устойчивый удалённый доступ к компьютеру-жертве, немедленно деактивируйте неактуальные модули, а может быть, весь ботнет Exponenta. А то, как бы чего не вышло.

[[17.05.2018]]

[6:35:36]

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

Основной каталог троянца — каталог C:1, который ассоциирован с переменной окружения %PUB1%. Дополнительно в систему устанавливаются пакеты Elevation в каталог C:\Elevation (переменная %ELEVATION%), пакет “Hidden Start” в каталоге "C:\Program Files\Hidden Start" (без установленной переменной, но с регистрацией в реестре) и пакет Chocolatey, который инсталлируется в командной строке по адресу: C:\ProgramData\chocolatey, его данные автоматически прописываются в реестр и автозагрузку. Каталоги %PUB1% и %ELEVATION% являются скрытыми. Через менеджер пакетов chocolatey устанавливается программа Sysinternals, используемая в Elevation.

[Проверяемые данные]

Вначале проверяется его установка:

— Существование каталогов c:\pub1, C:\Elevation, "C:\Program Files\Hidden Start", C:\ProgramData\chocolatey — Существование переменных в реестре: %PUB1%, %ELEVATION%, %Hacker_User%, %Hacker_Pass%, %Hacker_host1%, %Hacker_host2%, — Существует ли запись в реестре для пакета “Hidden Start”. — Существует ли учётная запись MSSQLSR — Существует ли запись “Onload Command Interface” в ветви реестра "HKLM\SOFTWERE\WOW6432Node\Microsoft\Windows\Current\Version\Run"

Если данные ресурсы существуют, они удаляются, кроме пакета chocolatey. Это основа работы деинсталлятора.

При установке троянца также устанавливаются службы WinRM и Telnet Server, которые не удаляются деинсталлятором, а приводятся их значения к стандартным параметрам. При этом предусмотрена обработка ошибок повторной инсталляции сервисов и смены несуществующих значений.

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

[10:30:38]

Скрипт проверки существования учётной записи.

check_uname_present.bat

Скрипт проверки учётной записи на наличие прав администратора

check_uname_admin.bat

Скрипт проверки существования записи в реестре

check_reg_item.bat

Скрипт проверки существования куста реестра

check_reg_node.bat

Тексты этих скриптов будут приведены на GitHab’е

[13:06:08]

[Хак для проверки значений реестра, передаваемых через параметры]

Для проверки существования веток реестра удобно использовать команду reg query, которая выдаёт информацию об имеющихся кустах и переменных реестра. К сожалению, у этой команды есть недостатки:

  1. Данная команда всегда возвращает код ошибки 0, даже если она ничего не нашла.
  2. При присвоении параметрам этой команды стандартных параметров командных файлов %номер поведение программы не предсказуемо из-за возможного переопределения области видимости переменной в командном файле (эка как мудрёно).

Для обхода первого ограничения необходим хак, который проверяет в контейнере вывода стандартных сообщений об ошибках программы типа “Ошибка. Неверный синтаксис” и “Ошибка: Не удается найти указанный раздел или параметр в реестре.”. Если эти сообщения появляются, то происходит выдача сообщения об отсутствии ключа или звена в реестре. Этот хак достаточно условный. Во-первых, он работает только с русскими версиями Windows. Во-вторых, он пропускает прочие сообщения об ошибках в этой программе, например, доступ к реестру запрещён. Так что этой программой можно проверить только гарантированное отсутствие ключа в реестре. В третьих, ложное срабатывание — если в значении параметра встречаются указанные строки.

Для обхода второго недостатка, присущему, кстати, всем командам reg, можно использовать, например, следующий хак:

set node=%1
reg query "!node!" /ve

В первой строчке мы присваиваем переменной node значение первого параметра командного файла. Во второй строке мы используем разименованное значение переменной %node% для обозначения куста реестра (который был передан командному файлу первым параметром).

Только с помощью этих двух хаков удалось проверить наличие кустов и переменных в реестре Windows.

[13:28:08]

Скрипт для добавления значения значений экспортированного куста реестра

reg_import_file.bat

Скрипт для экспорта резервной копии куста реестра

reg_export_reserve.bat

Скрипт для удаления куста реестра Windows:

reg_del_node.bat

Скрипт для удаления постоянной переменной из окружения Windows

reg_del_envvar.bat

Скрипт для запуска приложения или командного файла от имени администратора

RanAsAdminHere.cmd

Запуск окружения администратора в текущем каталоге

CmdAsAdminHere.cmd

Запуск системного окружения в текущем каталоге

CmdAsSystemHere.cmd

[[16.05.2018]]

Сегодня на тестовом компьютере попытался его “взломать” средствами программного комплекса DameWare. Вышло следующее.

  1. К компьютеру жертве, в любом случае, без вариантов, можно подключиться только под учётной записью локального администратора, чтобы можно было установить сервисы DameWare. У меня не прошла установка даже под административной учётной записью в Windows 7.
  2. DameWare не подключается к учётным записям, у которых отсутствует пароль, а также к заблокированным учётным записям. Это значительно осложняет удалённое подключение к компьютерам в реальной ситуации. По умолчанию Microsoft Windows устанавливается с учётной записью администратора без пароля, а учётная запись администратора не содержит пароля и про умолчанию отключена. Как попасть на такой компьютер, у меня нет идей. Если только воспользоваться своим эксплоитом, хотя это будет заметно и небезопасно.
  3. При подключении MRC DameWare экран компьютера-жертвы “дёргается”, и на нём пропадают обои. И это не смотря на то, что включён самый “тихий” режим наблюдения. Иначе говоря, без дополнительной разведки, которая включает в себя определение типа дисплея и видеокарты, настройки разрешения и цветности экрана, подключение к компьютеру невозможно без риска быть раскрытым.
  4. Сервисы DameWare нормально работают в локальной сети, даже между компьютерами в разных доменах, но сервис чувствителен к NAT и Proxy технологиям — они просто не пропускают трафик. Причём это в меньшей степени касается консольного доступа, который автоматически обходит защиту брандмауэра и закрытых портов. Для работы же MRC необходимо открыть на маршрутизаторе порт по умолчанию (задаётся в настройках).
  5. При работе MRC с закрытым портом по умолчанию не удалось запустить Mirror Driver, хотя связь установить удалось.
  6. При переконфигурации сети и DameWare клиента лучше не пытаться установить соединение со старым сервером, а удалить и заново установить на нём клиент.
  7. Мною не тестировалось подключение клиентского компьютера к серверу DameWare с отключённым на нём сервисами SMB протоколов (порты 137-139, 455). Эти порты не обязательно должны быть проброшены, но обязательно открыты, и чтобы к компьютеру было возможно подключение по SMB (CIF) протоколу (общие папки). Так, по крайней мере, написано в инструкции к программе DameWare. В домашних компьютерах эти порты по умолчанию закрыты, а на рабочих компьютерах — открыты. Эти же порты используются для проникновения вирусов WannaCry и Pete, а потому их советуют всегда держать закрытыми. Что намного усложняет удалённое подключение.

Полезным дополнением к программе проникновения был бы кейлоггер, который я недавно скачал из Интернета. По заверениям авторов, кейлоггер вроде бы не “палится”, и обладает широкими возможностями управления. А главное, он бесплатный. Но ни кейлоггер, ни эксплоит не являются в данном случае универсальным средством. Хотя бы потому, что их нужно доставить на компьютер жертвы, и запустить с правами локального администратора. Но в любом случае сочетание эксплоит+кейлоггер намного лучше и эффективнее банального фишинга.

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

[21:05:44]

В качестве метода социальной инженерии для запуска эксплоита можно использовать следующий приём. Жертва получает якобы от своего знакомого электронное сообщение со ссылкой на видео. Важно, что письмо отправляется по электронной почте — тогда вероятность его открытия на компьютере будет выше. По ссылке передаётся программа — распространитель эксплоита, которая имеет расширение, например, ролик.mp4.exe, с иконкой ролика формата MP4. По умолчанию расширение файла скрывается, так что вероятность того, что пользователь не заметит, что это исполняемый файл, очень велика.

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

Этот алгоритм подходит для заражения компьютеров как в Windows, так и UNIX-подобных. На UNIX подобных операционных системах этот способ затруднён только тем, что нужно заставить пользователя запустить файл с правами суперпользователя. В Windows в этом нужды нет, поскольку изначально существуют утилиты, запускающие программы с правами суперпользователя. А если эта программа — скрипт, то тут уже и антивирус не в помощь, поскольку в операционных системах Microsoft предусмотрена возможность принудительного запуска скрипта с правами администратора, при условии, что он использует только системные вызовы.

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

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

Теперь о существенном недостатке в безопасности данного метода. Любой специалист по безопасности сразу обнаружит FTP сервер, на который будет передаваться информация, с которого обязательно выйдут на вашу персоналию. По новому законодательству, анонимные FTP сервисы запрещены. Ни один провайдер не организует Вам неавторизированный FTP доступ и даже “приватный” доступ без Ваших идентификационных данных. В лучшем случае это e-mail и телефон, в худшем — паспортные данные и данные вашей кредитной карты. На собственный хостинг также мало надежды — постоянный IP адрес также предоставляется при предъявлении паспортных данных, а на DynDNS также мало надежды. Вариант — использовать иностранный туннельный брокер, но тогда Вы ограничиваетесь протоколом IPv6 и сложностью в использовании DynDNS, не говоря уже о том, что провайдер всё равно вас вычислит по MAC адресу. Но использование туннельного брокера в настоящее время является лучшим способом анонимности, исключая технологии VPN. Да, забыл отметить, что технологии VPN использовать в хакерских целях затруднительно, из-за регулирования этого рынка услуг различными государственными и коммерческими органами. Вам просто никто не даст развернуть FTP сервер на VPN соединении — смотри материал выше.

[21:51:20]

Завтра попытаюсь запустить кейлоггер плюс эксплоит в тестовой среде на виртуальной машине. Заодно постараюсь написать деинсталлятор данной программы. А пока настрою тестовую среду.

Тестовая среда представляет собой гостевую виртуальную машину Microsoft Windows 7 32-bit в Oracle VirtualBox, с установленными обновлениями безопасности, антивирусом по умолчанию и средой запуска приложений в “песочнице”. Эта конфигурация будет считаться оптимальной для тестирования — более защищённый компьютер трудно себе представить. Как и в реальной жизни, на нём будут отсутствовать пароли, а учётная запись администратора будет отключена. Конечная цель эксперимента — получить уязвимую систему для удалённого управления ею. Все действия должны быть, во-первых, максимально автоматизированы, во-вторых, скрыты, в третьих, быть универсальными.

Предполагается, что компьютер подключён к Интернет, а его домашний маршрутизатор уже взломан. То есть компьютер расположен не за NAT или прокси-сервером. В дальнейшем нужно будет избавиться от такого рода предположений, разместив гостевую ОС в другой подсети, не связанной логически с домашней сетью.

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

Само собой разумеется, что на сервере должны быть созданы учётные записи для взлома. Впрочем, они уже есть. 😉

[[26.05.2018]]

[26.05.2018 8:08:28]

Вчера вечером я установил одну очень интересную программу, скаченную мною с торрентов. Называется она 10-Strike Network Monitor. С помощью этой программы можно в реальном времени отслеживать активность хостов, сайтов, узлов сети, работающих по определённым протоколам. В отличие от простых пингаторов, эта программа позволяет проверять доступность узла не только по ping запросу (протокол IPCM), но и просматривать конкретные порты TCP протокола. Это важно, например, когда нужно определить доступность сайта, работающего на сервере за NAT маршрутизатором. К тому же система проверяет доступность узлов не только по его IP адресу, но и по доменному имени, что очень важно для серверов с динамическим IP.

Я хочу рекомендовать эту программу для проверки доступности моих HTTP и FTP серверов с варезом.

[[Настройка PHP в подсистеме Linux]]

После установки сервера Apache2 в подсистеме Linux Windows 10 необходимо настроить его доступ к PHP. Если эти модули Вы не устанавливали специально (через менеджер пакетов apt или aptitude), а использовались только для удовлетворения зависимостей, то при их работе у Вас могут возникнуть ошибки. Чтобы их исправить, необходимо подать следующие команды:

apt-get purge php* apache2*

apt-get install php, php-doc, php-dbg, apache2, apache2-doc, apache2-dbg

а затем через менеджер aptitude доустановить зависимости. Теперь, по крайней мере, будут понятны сообщения об ошибках настройки веб-серверов.

Затем нужно учесть следующее. При копировании файлов из Windows в подсистему Linux Windows атрибуты файлов будут совершенно неправильные и неожиданные. В результате, при работе скрипта, у Вас может возникнуть ошибка 500 или 403. Для её исправления необходимо:

  1. Войти в консоль подсистемы Linux Windows с правами суперпользователя;
  2. Перейти в каталог /var
  3. Выполнить в нём следующие команды:

sudo chown -R www-data:www-data www
sudo chmod -R 664 www
sudo chmod -R a+X www

Потом надо проверить, установлен ли на веб-сервере модуль поддержки PHP. Если он не установлен, то в браузере Вы вместо выполнения файла php увидите его код, или Вам предложат скачать этот файл на компьютер. Включить модуль в Apache2 можно командой:

sudo a2enmod php7.0

После этого модуль PHP в Apache2 у Вас должен заработать. Не забывайте только перезапускать сервер Apache2 командой:

service apache2 restart

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

sudo a2dismod <имя модуля>

Для сервера nginx ситуация другая. Поддержка PHP отсутствует в базовой версии nginx. Чтобы установить эту поддержку, необходимо установить пакет nginx full, подключив для начала ppa репозиторий nginx. Какой именно репозиторий подключать — решаете Вы. После подключения репозитория необходимо подать команду:

apt-get install -y nginx-extreas

и подождать удаления пакета nginx-core и установки полной версии nginx. Затем нужно будет установить поддержку модуля php-fpm. Это делается через менеджер пакетов Aptitude (запускаем, ищем модули? где встречается fcgi и fpm, фильтруем собственными мозгами результат выдачи, устанавливаем нужные пакеты).

Потом нужно будет запустить php-fpm сервис. Для этого нужно добавить в конец файла /etc/profile.d/zzzz-service-run-win10ubuntu.sh следующую строку:

echo <пароль> | sudo -S service php7.0-fpm start

О файле /etc/profile.d/zzzz-service-run-win10ubuntu.sh читай в статье Автозапуск в подсистеме Linux в Windows 10.

Осталось только настроить файлы конфигурации nginx. По большому счёту, в нём нужно только раскомментировать блок поддержки php, а в файл /etc/nginx/snippets/fastcgi.php.conf привести к виду:

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

include fastcgi.conf;
# user PHP PARAM
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_script_name;

Важно задать переменные SCRIPT_FILENAME и PATH_TRANSLATED, которых нет в примерах конфигурационного файла nginx.

После этого модуль php должен заработать и в nginx. Если этого не произошло, нужно проверить, под каким именем запускается модуль php7.0-fpm. Он должен иметь то же имя пользователя, как указано в файле /etc/nginx/nginx.conf, в параметре user. По умолчанию там стоить www-data, но если Вы скопировали файлы конфигурации из другой системы, то эти данные могут отличаться.

Просмотреть и изменить данные запуска php-fpm можно в файле /etc/php/7.0/fpm/pool.d/www.conf, ищите в нём

user = www-data
group = www-data

listen = /run/php/php7.0-fpm.sock

listen.owner = www-data
listen.group = www-data

и измените их, если они неправильные.

Как правило, этими вопросами исчерпываются проблемы в настройке PHP на веб-серверах в подсистеме Linux. Все остальные проблемы носят общесистемный характер, и решаются путем устранения неполадок системы и файлов конфигурации.

Оффтопик.

Иногда сервисы Apache и Nginx в подсистеме Linux Windows 10 не запускаются по банальной причине — прослушиваемый ими порт 80 HTTP сервера занят, например, запущенным Microsoft IIS. В этом случае необходимо в файлах конфигурации Apache и Nginx изменить параметр Listen с именем прослушиваемого порта с 80 на какой-либо другой, желательно со значением больше 1024. Это самая частая причина отказа запуска веб-серверов. При возникновении этой ошибки её номер часто не выводится ни в сообщение консоли, ни в логах сервера, но она настолько банальная, что об этом не знают только новички-администраторы. Проверить занятые (возможно, не открытые!) порты в Windows 10 можно программой cports, которую нужно обязательно скачать и установить любому администратору Windows.

[[24.05.2018]]

[[Автозапуск в подсистеме Linux в Windows 10]]

Подсистема Linux в Microsoft Windows 10 во многом хороша, позволяет избежать встроенной виртуализации и не зависит от сторонних решений, таких как msys и cygwin, которые пока работают неустойчиво. Однако, по сравнению с этими сервисами, у подсистемы Linux в Microsoft Windows есть существенный недостаток — в ней можно устанавливать сервисы, но невозможно запустить их в автозагрузку. Более того, эти сервисы, будучи однажды запущены, останавливаются при выходе из окна bash. Автор нашёл способ, как избавиться от этих недостатков.

Причина такого поведения — это отсутствие в подсистеме Linux корректного назначения уровней работы ядра Linux, поскольку ядра Linux в Windows нет, а оно в нём эмулируется. Поэтому, набрав в командной строке Linux команду “runlevel”, Вы увидите вместо привычных значений 2 или 5 значение “unknown”. А это значение полностью вгоняет в ступор все демоны Линукса. Тем не менее, демоны можно запустить в командной строке, используя команду “service”. Кроме того, в систему можно включить автозагрузку систем и настроек Linux при входе в её подсистему, поместив запускающий скрипт в папку /etc/profile.d. Именно этим мы и воспользуемся, написав два скрипта, один для подсистемы Linux, другой для Windows. Опишем их поподробнее.

Скрипт, запускающий демоны в подсистемы Linux, назовём следующим образом: zzzz-servicerun-win10ubuntu.sh. По-моему, название его говорит за себя. Первые 4 буквы “z” мы добавили, чтобы скрипт располагался в конце автозагрузки. Пример этого файла автор приводит ниже:

#!/bin/sh

### BEGIN INIT INFO
# Provides:     skeleton
# Folder Start      /etc/profile.d
# Must start Before:    none
# Mast Start After: All
# Interactive:      false
# Short-Description:    Service Run in Start Windows 10 Ubuntu
# Description:      This file should be used to Run in Start Windows 
#           10 Ubuntu scripts, written here
### END INIT INFO

echo <пароль> | sudo -S service apache2 start
echo <пароль> | sudo -S service nginx start
echo <пароль> | sudo -S service ssh start
echo <пароль> | sudo -S service cron start
echo <пароль> | sudo -S service networking start

где <пароль> — пароль от Вашей учётной записи в подсистеме Linux, которой разрешено вызывать команду sudo.

Начинаться скрипт должен с записи “#!/bin/sh”, указывающей, что это скрипт операционной системы Linux. Затем идёт описание скрипта, комментарии начинаются со знака “#”. Затем идёт конструкция “echo <пароль> | sudo -S”, которая запускает следующий скрипт с правами суперпользователя Линукс. Остальное понятно и без описания.

Осталось только войти в режим суперпользователя и скопировать этот скрипт в папку /etc/profile.d. После чего данный скрипт будет автоматически запускаться при каждом вызове команды “bash” в подсистеме Linux.

Осталась нерешённой ещё одна задача: как запускать подсистему Linux без раздражающего окна консоли, которое так и хочется закрыть? Выход автором найден при помощи сторонних утилит. Автор использовал shareware утилиту “Hidden Start”, как наиболее функциональную для сокрытия запущенных приложений. Для запуска подсистемы Linux в нормальном режиме, без отображения консоли, запросов UAC и с ожиданием завершения, автор использует следующую строку команд:

"C:\Program Files\Hidden Start\hstart64.exe" /NOCONSOLE /NOUAC /WAIT "C:\Windows\System32\bash.exe ~"

Для запуска же системы с повышенными привилегиями автор использует выражение:

"C:\Program Files\Hidden Start\hstart64.exe" /NOCONSOLE /NOUAC /WAIT "C:\Windows\System32\bash.exe -l"

Остановить же подобный “сервер” можно командой:

taskkill /IM bash.exe /F

Примечание. У последней команды есть недостаток: при завершении процессов bash могут закрыться не только подсистема Linux, но и cygwin, msys, mingw и других программ, с потерей всех их данных. Так что будьте осторожны, используя эту команду!

Примечание. За один раз можно открыть несколько окон bash либо в “нормальном режиме”, либо в режиме с повышенными привилегиями. Миксы в этой системе не допускаются!

Примечание. Режим запуска bash с повышенными привилегиями нужен для запуска программ Linux, которые взаимодействуют на системном уровне с программами Windows? также требующих для запуска административный режим.

[[21.03.2018]]

[20.03.2018 21:38:42]

Сегодня я обновил данные своей визитки на сайтах http://yudenisov.ru и http://yudenis.ucoz.ru/. Дело в том, что сайт Memiana приказал долго жить, и в Интернете практически не осталось площадок для публикации контактных данных пользователей для всеобщего обозрения. 🙁 Вследствие этого мне пришлось изготовить такую визитку на непредназначенных для этого хостингах, используя шаблон для построения таких визиток. Эти сайты, в принципе, у меня были готовы, пришлось только обновить некоторые ссылки, обновить баннеры и разместить обновлённые файлы на хостинге.

При проверки сайта http://yudenis.ucoz.ru/ у меня появились сообщения, что сайт содержит “вредоносное по”. Как оно попало на бесплатный хостинг, мне не ведомо… Либо это происки конкурентов. К моему сожалению, убрать этот статус будет затруднительно… 🙁

Далее сегодня я настраивал Mozilla Firefox Quantum. Это версия для разработчиков популярного браузера. Система действительно удобная, правда, не устанавливается из менеджера пакетов chocolatey… 🙁

Добавить комментарий