非常感谢卢克为我指明了正确的方向。 Procmon 是一个很棒的工具。毫不夸张地说,系统内部的新世界为我打开了。通过设置过滤器,很快就找到了罪魁祸首parent process ID = WINPID of a Cygwin bash.exe
然后只监视一个ls
命令。这是恶意软件挂接到名为AppCertDlls
,我之前当然完全不知道。
一旦我移动了恶意软件clipmote.dll
out of system32
,进程创建速度立即恢复正常。
我猜我是因为安装了有毒的免费软件而感染了这种病毒。
我花了一些时间调查这个问题,发现它既可怕又有趣,所以这就是我的发现,当然,我将感谢所有其他信息或您可能有的任何评论。
恶意软件 DLL 被加载到每个用户进程中,甚至是 Explorer、taskmgr 和 procmon 本身。仅在以下进程SYSTEM
(如中所列procexp.exe
)似乎仍未受到感染。
这里的问题是HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
检查(至少在我的系统上,但可能在许多系统上,甚至可能是默认情况下)加载 DLL,这些 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
hook 是 Windows 操作系统的常规部分,而不是一些恶意扩展。如果是这样,那么它就是一个病毒入口点,因为它允许将恶意软件动态配置到进程中。
具有讽刺意味的是,看起来它实际上是一个安全功能,与 JVM 中的安全管理器没有什么不同(请参阅我原来的问题)。一个名为的 Microsoft 实用程序appsec.exe
据报道使用此密钥。然后在加载的“安全”DLL 上调用的函数是CreateProcessNotify
,如上面引用的。据我了解,它被认为只是说是或否 - 但它可以做任何它想做的事。
就我而言,运行的单个实例ls.exe
我分析过,它创建了五个线程。它们加载或尝试加载其他 DLL 并与注册表交互。谁知道还有什么。
如果有人对这种危险机制有更多了解,我会洗耳恭听。
这是我发现的AppCertDlls
:
01/2007 早期提及(重新 http://www.rsdn.ru/forum/asm/2308423.1.aspx5 http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/0b12875b-b98e-41d9-96fe-ffdc828c4134: Блокировка запуска приложений)
AppCertDlls 在 Sysinternals 论坛 (Autoruns) 上进行了报道,10/2007 http://forum.sysinternals.com/appcertdlls_topic12546_post121704.html
关于 AppCertDlls - 提到的病毒 01/2008 http://worobow.spaces.live.com/blog/cns!10AD8E948BFD5383!178.entry
但微软本身广泛使用这个
功能,确切地说,实际上是
被认为是“一次性”的事情。
仅用作 - 限制的方式
可以在以下环境下运行的应用程序
终端服务器 2000。-- Andrew Worobow
有关 AppCertDlls 密钥和 CreateProcessNotify 的更多详细信息,01/2008 http://worobow.spaces.live.com/blog/cns!10AD8E948BFD5383!180.entry
06/2010 感染报告提供了一些详细信息 http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/0b12875b-b98e-41d9-96fe-ffdc828c4134
该恶意软件试图窃取银行帐户信息(显然还有金钱),但它也可能被配置为执行其他操作。下面还有其他注册表项HKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}
。当我使用网上银行时,它一定进行了一些屏幕抓取;它知道使用过 TAN。我记得有一次,当我在登录前或(可能)登录后不久,我看到一个屏幕要求大约 20 个 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
The Cicero
函数对我来说看起来很流氓,但它是C:\WINDOWS\system32\imm32.dll
、“Windows IMM32 API 客户端库”——无论是什么。
I ran sfc.exe
,微软的“系统文件检查器”。将对我的程序文件进行更多检查。并获取病毒扫描程序。欢迎推荐。