Большое спасибо Люку за то, что он указал мне правильное направление.Procmon - фантастический инструмент.Буквально, новый мир внутри системы открылся для меня.И виновник был быстро найден, установив фильтр для включения parent process ID = WINPID of a Cygwin bash.exe
, а затем просто отслеживая одну команду ls
.Это было вредоносное ПО, подключенное к ключу реестра с именем AppCertDlls
, о котором я, конечно, раньше ничего не знал.
Как только я переместил вредоносное ПО clipmote.dll
из system32
, скорость создания процесса немедленно вернулась кнормально.
Я предполагаю, что заразился этим вирусом, установив отравленное бесплатное программное обеспечение.
Я потратил некоторое время на изучение этой проблемы и нашел ее одновременно пугающей и интересной, так что вот что я нашел, иКонечно, я буду благодарен за всю дополнительную информацию или любые комментарии, которые у вас могут быть.
Вредоносная DLL-библиотека загружалась в каждый процесс пользователя, даже в Explorer, taskmgr и сам procmon.Похоже, что только процессы под SYSTEM
(как указано в procexp.exe
) остались незараженными.
Проблема здесь в том, что HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
проверен (по крайней мере, в моей системе, но, возможно, во многих системах,и, возможно, даже по умолчанию) для загрузки библиотек DLL, которые могут сказать, разрешено ли запускать какой-либо двоичный файл или нет, возвращая значение из вызываемой им функции:
NTSTATUS STDCALL CreateProcessNotify (LPCWSTR lpApplicationName, ULONG Reason);
ФактическиУ меня была запись под этим ключом под названием sethdown
, но имя могло быть любым.
RegEnumValue HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
Index: 0
Name: sethdown
Type: REG_SZ
Length: 66
Data: C:\WINDOWS\system32\clipmote.dll
Из отчетов, найденных в сети, я пришел к выводу, что хук AppCertDlls
является обычной частью Windowsоперационная система, а не какое-то мошенническое расширение.Если это так, то это точка входа вируса, так как она позволяет динамически настраивать вредоносные программы в процесс.
Похоже, что это на самом деле - и по иронии судьбы - означает функцию безопасности, а не отличную от менеджера безопасностив JVM (см. мой оригинальный вопрос).Сообщается, что этот ключ используется утилитой Microsoft appsec.exe
.Функция, которая затем вызывается для загруженной «DLL» безопасности, имеет значение CreateProcessNotify
, как указано выше.Из того, что я понял, предполагается, что он просто говорит «да» или «нет» - но он может делать все, что захочет.
В моем случае и в единственном экземпляре запуска ls.exe
, который я проанализировал, он создал пятьпотоки.Они загружают или пытаются загрузить другие библиотеки DLL и взаимодействовать с реестром.И кто знает, что еще.
Если кто-то знает больше об этом опасном механизме, я весь в ушах.
Вот что я нашел на AppCertDlls
:
раннее упоминание в 01/2007 (Re 5 : Блокировка запуска приложений)
AppCertDlls опубликовано на форуме Sysinternals (Autoruns), 10/2007
О AppCertDlls - вирус упоминается 01/2008
Но сама Microsoft широко использует эту функцию, именно она фактически была задумана как «одноразовая» вещь,Только для использования в качестве - способа ограничения приложений, которые могут быть запущены на сервере терминалов 2000. - Эндрю Воробов
подробнее о ключе AppCertDlls и CreateProcessNotify, 01/2008
06/2010 отчет о заражении с некоторыми подробностями
Вредоносная программа пыталась украсть информацию о банковском счете (и деньги, очевидно), но, возможно, ее можно было настроить наделай и другие вещи тоже.В разделе HKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}
были дополнительные записи реестра.Должно быть, он сделал некоторые снимки экрана, когда я занимался онлайн-банкингом;он знал, что использовал TAN.Я помню, однажды у меня сложилось впечатление, что мой банк был взломан, когда незадолго до или (вероятно) после входа в систему я увидел экран, запрашивающий около двадцати TAN одновременно.WTF, я думал, браузер получил неправильный URL, и я закрыл окно.Я должен был быть более обеспокоен.Я бы не подумал, что весь вопрос настолько опасен.К счастью, без повреждений.Думаю, просто повезло.
Вот список значительных строк, которые я нашел внутри вируса:
client.dll
EAPSFILT.dll
KERNEL32.dll
Я думаю, что первые дваэто могут быть другие вирусные библиотеки, которые он пытается загрузить.
_aullshr
CompareStringA
CreateEventA
CreateFileA
CreateFileMappingA
CreateProcessNotify
CtfImmIsCiceroStartedInThread
CtfImmTIMActivate
DllCleanupServer
DllStartupServer
ExitProcess
GetThreadContext
ImmDisableIme
ImmDisableIME
ImmGetConversionListA
ImmGetVirtualKey
ImmRegisterWordA
ImmSetCandidateWindow
InterlockedExchangeAdd
iswlower
lstrcmpA
MapViewOfFile
memset
OpenThread
ReadFile
RealDriveType
RegenerateUserEnvironment
RestartDialog
SetFilePointer
Sleep
strchr
TerminateThread
UnmapViewOfFile
vDbgPrintExWithPrefix
VirtualQueryEx
WaitForMultipleObjects
Функция Cicero
показалась мне мошеннической, но она является частью C:\WINDOWS\system32\imm32.dll
, «Клиентской библиотеки API Windows IMM32» - что бы это ни было.
Я запустил sfc.exe
, Microsoft «Проверка системных файлов». Будет делать больше проверки файлов моей программы. И получите сканер вирусов. Рекомендации приветствуются.