win7系统启动项内容删除 (win7系统启动项内容删除不了)

一、病毒分类

1、蠕虫病毒(worm)

文件夹蠕虫、网络蠕虫、邮件蠕虫等,主要特点是具有很强的传播性

2、挖矿病毒(CoinMiner/XMiner)

利用被感染主机进行挖矿,占用主机资源,近几年十分流行,通常与僵尸网络搭配

3、木马病毒(Trojan/Backdoor)

木马、后门等主要是为了获得主机的控制权限,窃取信息,执行C&C端的功能指令等

4、感染型病毒(Virus)

主要行为是感染文件,常见家族有Sality、Ramnit、Virut等

5、宏病毒(W200M/X97M/OMacro)

文档类,启用宏功能后执行宏代码,通常为一个DownLoader,下载执行其他恶意软件

6、勒索病毒(Ransom)

加密文件,勒索赎金

理解上,僵尸网络:是由大量中了木马病毒的主机组成,不特定单一主机中了僵尸网络病毒。

感染型病毒和蠕虫病毒:都具有扩散性,但感染型病毒只是在同台主机的不同文件间扩散;而蠕虫病毒是在不同主机间扩散,范围不一样。

勒索病毒:其实可以算是影响比较大的感染型病毒,也会感染文件,但它感染程度更恶劣,破坏文件。

宏病毒:比较类似木马病毒,用来执行指令,或者下载文件等。

二、进程排查

病毒的存在形式是多样的,可能是独立运行的进程,也可能是将动态库或恶意代码注入到系统进程、应用进程中运行。这里,粗略分为三种,即独立进程模块、动态库模块、隐藏模块。

1、独立进程块

这是最简单的一种形式,即病毒是独立可执行文件,以独立进程在运行。这类进程通常要么进程名随机,要么伪装成与系统进程相似的名字,或者名字与系统进程完全一样,但文件位置完全不是系统默认的正常路径。以某中毒主机为例,打开任务管理器后观察如下:病毒进程名为svch0st.exe,而系统进程为svchost.exe。

遇到这种,我们可以使用PCHunter对所有进程文件校验签名,检查无签名或签名可疑的进程。

或者使用微软提供的procexp,他支持自动上传进程文件至virustotal

电脑

2、动态库模块

病毒也可能以动态库的方式注入到系统进程或应用进程中去。如下图所示,客户某一中毒主机,我们使用PCHunter工具观察到病毒体sdbot.dll模块注入到系统进程explorer.exe进程中,并且对该进程挂了应用层钩子,包括IAT、EAT和inline等类型的钩子。

同上,可以使用PCHUNTER校验某个进程的dll文件做快速判断。

同时也可以使用procexp自动上传某个进程的dll至virustotal

如果已知病毒dll,需要找到对应的进程,可以使用如下命令。或者使用以上工具搜索所有进程的dll

tasklist /m 电脑 xxx.dll

3、隐藏模块

隐藏模块往往也是动态库模块,但它肉眼观察不到(Windows系统工具看不到,PCHunter等工具也看不到),是很隐蔽的一种手段,属于难查难杀的类型。

譬如,在某客户主机上,我们怀疑svchost.exe进程有问题(进程有问题并不代表进程对应的文件有问题,这一点一定要区分好),但我们使用系统工具和PCHunter等等工具均查看不到任何异常模块。至此,怀疑有隐藏模块,祭出特殊工具dump出该svchost.exe的所有模块空间(按模块分割成独立文件),观察到有隐藏的模块:

svchost_exe_PID384_hiddenmodule_2560000_x86.exe就是隐藏在svchost.exe进程中的模块

注:此特殊工具会将隐藏模块文件名加上“hiddenmodule”字眼

可使用微软的procdump工具pd64.exx -pid [PID]

4、进程内存字符串

在网络端检测出某个恶意域名或 IP 后,可以在所有系统进程中搜索该域名,帮助定位发起域名连接的进程,从而定位病毒文件。

深信服SfabAntiBot即可对内存进行扫描

需要注意的是上面扫描是对进程所有内存进行扫描,一个是会比较卡,并且同样会扫描到代码段,这样可能会有误判,把代码当成域名字符串。

所以需要结合process hacker等工具查看指定进程内存是否确实存在指定字符串信息。

电脑

三、网络行为排查

威胁情报等辅助网站

1、 https://www.virustotal.com/ , 国外知名安全站点,可能需翻墙,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。

2、 https://x.threatbook.cn/ , 国内威胁情报站点,可查询文件MD5、IP、域名、URL是否恶意,也可上传文件进行病毒扫描。

3、 http://beian.cndns.com/,国内站点备案查询,所有有企业备案的国内站点可认为是可信站点。

4、 http://www.alexa.com/,全球站点排行查询,top100万的站点可认为是可信站点(国外站点没有备案这一说法)。

5、 Google与Baidu等搜索引擎,输入文件MD5/IP/域名,有时候可以查询到对应病毒信息。

网络连接查看命令

netstat -ano

Process Hacker 查看网络连接,出现绿色的连接表示新增,红色的连接表示断开的。

四、文件排查

1、临时目录排查

黑客往往可能将病毒放在临时目录(tmp/temp),或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。

假设系统盘在C盘,则通常情况下的临时目录如下:

C:\Users\[用户名]\Local Settings\Temp

C:\Documents and Settings\[用户名]\Local Settings\Temp

C:\Users\[用户名]\桌面

C:\Documents and Settings\[用户名]\桌面

C:\Users\[用户名]\Local Settings\Temporary InternetFiles

C:\Documents and Settings\[用户名]\Local Settings\Temporary InternetFiles

2、浏览器相关文件排查

黑客可能通过浏览器下载恶意文件,或者盗取用户信息,因此需要检查下浏览器的历史访问记录、文件下载记录、cookie信息,对应相关文件目录如下:

C:\Users\[用户名]\Cookies

C:\Documents and Settings\[用户名]\Cookies

C:\Users\[用户名]\Local Settings\History

C:\Documents and Settings\[用户名]\Local Settings\History

C:\Users\[用户名]\Local Settings\Temporary InternetFiles

C:\Documents and Settings\[用户名]\Local Settings\Temporary InternetFiles

3、最新打开文件排查

检查下最近打开了哪些文件,可疑文件有可能就在最近打开的文件中,打开以下目录或者运行中输入recent即可看到:

C:\Users\[用户名]\Recent

C:\Documents and Settings\[用户名]\Recent

4、文件时间排查

可以根据文件夹内文件列表时间进行排序,查找可疑文件。一般情况下,修改时间离现象发现时间越近的文件越可疑。当然,黑客也有可能修改”修改日期“,但遇到很少。

用everything对所有exe文件排序,查找现象时间段内创建和修改的文件。

5、其他重要目录排查

System32也是常见的病毒释放目录,因此也要检查下该目录。hosts文件是系统配置文件,用于本地DNS查询的域名设置,可以强制将某个域名对应到某个IP上,因此需要检查hosts文件有没有被黑客恶意篡改。

C:\Windows\System32

C:\Windows\System32\drivers\hosts

五、远程登录排查

系统产生的日志默认分为三类:应用程序日志、安全性日志、系统日志

这些日志以evt文件形式存储在%systemroot%\system32\config目录下,使用日志查看器可查看这些日志(开始 – 运行 –eventvwr)

1、RDP远程登录

RDP登录日志位于windows安全日志中,登录类型为10,该日志记录了此主机上的所有登录行为。

审计RDP登录日志的目的是为了发现可疑登录记录,包括:

1.是否有异常的没有登录成功的审计事件,比如RDP爆破登录;

2.是否有成功登录的不明帐号记录;

3.是否有异常IP的登录事件,比如IP非此主机用户常用IP;

4.是否有异常时间的登录事件,比如凌晨2点远程登录主机;

注意:有时候登录记录会十分多,分析起来难度大,因此我们可以根据前期收集到的信息来帮助我们缩小审计范围,比如异常现象发生的时间,恶意文件创建的时间等,可在这类时间点附近查找异常的登录记录。

操作系统

事件ID

登录类型

说明

Xp/2003

528

10

RDP远程登录成功

Xp/2003

529

10

RDP远程登录失败

2008/2012/2016/win7/win8/win10

4624

10

RDP远程登录成功

2008/2012/2016/win7/win8/win10

4625

10

RDP远程登录失败

应用程序和服务日志 -> Microsoft -> Windows ->TerminalServices-RemoteConnectionManager->Operational,事件ID 1149为RDP登录成功日志,会记录源IP和用户。

查看本机登录过的IP:

打开注册表,打开此路径:HKCU\Software\Microsoft\Terminal ServerClient。

选中Default可以看到连接过的IP。

选中Servers -> [IP]可以查看登陆名。

2、SMB远程登录

共享目录登录记录位于windows安全日志中,登录类型为3,常见的基于共享目录的攻击行为是IPC爆破,若爆破成功,攻击者可以将受攻击主机的磁盘文件映射到本地,造成信息泄露。同时,共享目录可作为传输恶意文件的途径之一,了解共享目录的访问情况可以帮助我们了解攻击者的攻击方法。

操作系统

事件ID

登录类型

说明

Xp/2003

540

3

SMB远程登录成功

2008/2012/2016/win7/win8/win10

529

3

SMB远程登录失败

2008/2012/2016/win7/win8/win10

4624

3

SMB远程登录成功

2008/2012/2016/win7/win8/win10

4625

3

SMB远程登录失败

六、启动项排查

黑客为了保持病毒能够开机启动、登录启动或者定时启动,通常会有相应的启动项,因此有必要找出异常启动项,并删除之。启动项的排查,这里引入一个非常好用的工具,工具名字Autoruns(官网www.sysinternals.com)。

1、自启动项

autoruns查看

注册表查看

永久启动项

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

一次性启动项,下次启动会自动删除

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

32位程序启动项

HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

通过以下路径放置程序也可以自启动程序

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

2、任务计划

autoruns查看

微软自带工具

taskschd.msc可启动系统自带任务计划程序,可以查看任务计划具体操作,显示所有正在运行的任务,并且可以开启任务历史记录。

注册表查看

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Schedule\TaskCache\Tree

有些任务计划做了隐藏可通过注册表查看,这里任务计划只有名称,如果想知道任务计划执行内容,可以结合任务计划历史记录日志看判断。

服务排查

通过tasklist /svc,可以查看每个进程所对应的PID和服务

使用autoruns查看

注册表查看

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services存储着所有的服务启动项

七、账户排查

查看用户最后一次登录,修改密码时间,以及账户是否启动。

net user xxx

通过PCHunter等工具可以查看隐藏用户,如添加$符号的隐藏账号,以及克隆账号。

八、宏病毒分析处置

现象:

EDR等杀软报宏病毒,病毒名提示类似于W97M、VBA、MSWor、Macro。

分析过程:

根据文件后缀其实就能看出,该word文档是带有宏代码的,m即为macro。

为了分析脚本内容,打开文件就会触发脚本运行,但如果禁用宏的话,打开文档是看不到脚本内容的。为了以静态方式提取样本,这里会使用到一个分析程序oledump.py(https://github.com/decalage2/oledump-contrib)

oledump.py是一个用于分析OLE文件(复合文件二进制格式)的程序,而word、excel、ppt等文档是OLE格式文件的,可以用它来提取宏代码。

先进行文件基础分析,可以看到A3这段数据被标记为“M”,“M”即表示Macro,说明这段数据是带有VBA代码的。

python oledump.py SSL.docm

接下来我们就需要将这段VBA代码提取出来,执行以下命令,可以看到VBA代码就被提取出来了。我们把他重定向到一个文件里即可。

python oledump.py -s A3 -v SSL.docm

这段代码其实比较简单。

1.先判断操作系统位数设置不同路径的rundll32.exe,然后通过CreateProcessA启动rundll32.exe。

2.通过VirtualAllocEx在rundll32进程里申请一段内存空间。

3.通过WriteProcessMemory将myArray数组的内容,按字节写入到刚才申请的内存空间。

4.通过CreateRemoteThread在rundll32进程创建远程线程,入口点为刚才申请的内存空间首地址,并启动该线程。

综上所述,该代码为远程注入恶意代码到其他进程,可以判断为病毒。

九、勒索病毒

勒索病毒特征

1、文件被加密成统一后缀,无法使用。

2、桌面存在勒索信息文件,或勒索信息背景。

勒索信息文件里的一串二进制字符串,实际上是加密密钥,但它被其他算法又加密了一层。

加密原理

1.常见的勒索病毒加密算法为RSA+AES。

2.勒索病毒运行时会随机生成一串AES密钥,用该密钥来加密文件,加密结束后,使用RSA公钥对AES密钥进行加密,保存在本地。

3.解密需要病毒开发者提供RSA私钥,解密本地AES密钥文件,从而得到AES密钥来解密系统数据。

所以别寄希望于逆向分析来解密

十、sysmon监控

sysmon为windows提供了更强大的监控功能,但遗憾的是sysmon只支持2008以后的系统。

sysmon安装推荐xml文件下载链接

https://github.com/SwiftOnSecurity/sysmon-config

最常用的安装方式

sysmon.exe -accepteula -i -n

但上述方式不支持DNS记录,而且日志量会过大。

推荐安装命令,使用上述git里的配置,可支持DNS记录,并且可自行修改过滤器,记录自己需要的。

Sysmon64.exe -accepteula -i z-AlphaVersion.xml

卸载

sysmon.exe -u

日志通过事件查看器查看,因为sysmon的日志是以evtx格式存储的。

具体事件路径为

应用程序和服务日志-Microsoft-Windows-Sysmon-Operational

如下图所示,或者你直接去C盘指定路径查文件也行

如同windows自带的系统日志,安全日志有事件ID一样,sysmon日志也有对应的事件ID,最新版本支持23种事件。

Event ID 1: Process creation

Event ID 2: A process changed a file creation time

Event ID 3: Network connection

Event ID 4: Sysmon service state changed

Event ID 5: Process terminated

Event ID 6: Driver loaded

Event ID 7: Image loaded

Event ID 8: CreateRemoteThread

Event ID 9: RawAccessRead

Event ID 10: ProcessAccess

Event ID 11: FileCreate

Event ID 12: RegistryEvent (Object create and delete)

Event ID 13: RegistryEvent (Value Set)

Event ID 14: RegistryEvent (Key and Value Rename)

Event ID 15: FileCreateStreamHash

Event ID 17: PipeEvent (Pipe Created)

Event ID 18: PipeEvent (Pipe Connected)

Event ID 19: WmiEvent (WmiEventFilter activity detected)

Event ID 20: WmiEvent (WmiEventConsumer activity detected)

Event ID 21: WmiEvent (WmiEventConsumerToFilter activity detected)

Event ID 22: DNSEvent (DNS query)

Event ID 255: Error

案例

常用的有事件ID 1,监控进程创建,恶意进程的创建,包括他的父进程,PID,执行命令等等。

之前遇到过一起,开启会自动运行powershell,但查了启动项,任务计划,wmi都没发现痕迹,苦苦无解,然后使用sysmon监控进程创建,最终定位是谁拉起了powershell,往上溯源找到是一个伪造成正常程序图标和后缀的link文件,存放在Startup目录下,链接到存放在另一处的vbs脚本。

下图即为进程创建监控日志,可以看到几个关键点,创建的进程,命令行,以及父进程

事件ID3,监控网络连接,当恶意程序外连CC服务器或者矿池等操作的时候,可以监控到是哪个进程发起的连接。这边也举个例子,之前遇到一种病毒,当你去用进程管理器或分析工具去查看时,该病毒会自动退出,防止被检测到,并且随机一段时间重启,但态势感知上发现确实有挖矿行为,使用sysmon监控,当他不定时运行时,即可捕捉到他连接矿池的行为,从而定位到进程。

下图为网络连接监控日志,可以看到网络连接的五元组,和对应的进程。

事件ID22,是这次重磅推出的新功能,DNS查询记录,这功能让应急响应人员可以很轻松的通过域名定位到进程,并且你即使开启了dnscache服务,也能定位到原先进程。dnscache是一个缓存服务,简单来讲,就是会代理其他进程进行dns解析,并且会缓存解析结果,下一次解析就不再发送请求,读取缓存内容返回给指定程序即可。所以大家使用内存扫描工具,可能会定位到dnscache服务进程。

在监测设备上发现可疑域名解析时,通过这个功能,可以轻松定位到发起解析的进程,从而进一步分析进程文件是否确实有问题。

如下图所示,为dns查询日志,会记录解析域名和结果,以及对应的进程PID和路径。


电脑