一、Windows安全应急处置
1、从以下几个方面进行排查windows主机
(1) 是否有异常进程、用户
(2) 敏感端口开放情况
(3) 密码强度
(4) 日志分析
(5)异常启动项、服务、计划任务
(6) 注册表信息
(7) 其它
2、进程信息
使用tasklis或者打开任务管理器查看进程信息,我们可以根据CPU占用率、内存占用率、启动的事件来初步判断一下异常信息,根据PID找到异常进程。执行此命令查看进程名,路径,pid 再配合使用find或findstr就可以查到pid对应的路径了wmic process get name,executablepath,processid|findstr pid,如果查到对应的可疑文件后,我们可以通过多引擎查杀看一下是否有异常进程。
λ tasklist.exe
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 1,800 K
smss.exe 456 Services 0 744 K
csrss.exe 612 Services 0 3,904 K
wininit.exe 664 Services 0 3,584 K
csrss.exe 672 Console 1 67,196 K
services.exe 720 Services 0 6,084 K
winlogon.exe 752 Console 1 5,644 K
lsass.exe 780 Services 0 8,588 K
lsm.exe 788 Services 0 3,180 K
svchost.exe 896 Services 0 6,092 K
DesktopService.exe 1040 Services 0 6,660 K
QQPCRTP.exe 1096 Services 0 25,304 K
svchost.exe 1156 Services 0 6,896 K
svchost.exe 1300 Services 0 12,704 K
svchost.exe 1360 Services 0 84,328 K
svchost.exe 1384 Services 0 9,100 K
svchost.exe 1408 Services 0 24,012 K
stacsv.exe 1456 Services 0 5,792 K
svchost.exe 1640 Services 0 5,280 K
svchost.exe 1848 Services 0 12,716 K
spoolsv.exe 532 Services 0 8,640 K
taskeng.exe 844 Services 0 4,008 K
svchost.exe 604 Services 0 6,080 K
svchost.exe 1172 Services 0 5,784 K
dllhost.exe 1528 Services 0 13,112 K
dllhost.exe 1908 Services 0 3,080 K
arr_isrv.exe 2144 Services 0 5,068 K
HidMonitorSvc.exe 2176 Services 0 3,060 K
arr_srvs.exe 2196 Services 0 4,036 K
mDNSResponder.exe 2236 Services 0 4,840 K
svchost.exe 2268 Services 0 4,868 K
dllhost.exe 2276 Services 0 3,216 K
QQProtect.exe 2384 Services 0 12,956 K
SangforPW.exe 2552 Services 0 5,768 K
svchost.exe 2616 Services 0 3,664 K
taskhost.exe 2756 Console 1 10,556 K
Apoint.exe 2764 Console 1 6,844 K
dwm.exe 2840 Console 1 43,360 K
VPNCenter.exe 2860 Services 0 3,812 K
vmnat.exe 2916 Services 0 3,476 K
explorer.exe 2952 Console 1 67,032 K
XTXCoreSvr.exe 3032 Services 0 6,728 K
vmware-authd.exe 3080 Services 0 6,920 K
ApMsgFwd.exe 3228 Console 1 3,676 K
hidfind.exe 3276 Console 1 3,312 K
ApntEx.exe 3296 Console 1 3,908 K
XTXCoreSvr.exe 3384 Services 0 7,228 K
vmnetdhcp.exe 3508 Services 0 4,832 K
conhost.exe 3516 Console 1 3,672 K
vmware-usbarbitrator.exe 3560 Services 0 5,236 K
BJCAUpdate.exe 3732 Services 0 532 K
QQPCTray.exe 1696 Console 1 127,604 K
DesktopMgr.exe 376 Console 1 62,844 K
SearchIndexer.exe 4436 Services 0 43,712 K
QQPCRealTimeSpeedup.exe 6024 Console 1 28,340 K
o2flash.exe 7132 Services 0 2,512 K
MobaXterm_CHS.exe 7952 Console 1 36,000 K
XWin_MobaX.exe 6944 Console 1 12,144 K
TSBrowser.exe 3180 Console 1 280,084 K
TSBrowser.exe 7248 Console 1 5,532 K
TSBrowser.exe 3980 Console 1 4,776 K
TSBrowser.exe 7704 Console 1 184,268 K
TSBrowser.exe 1552 Console 1 208,408 K
TSBrowser.exe 8056 Console 1 9,832 K
MoTTY.exe 5888 Console 1 13,636 K
MoTTY.exe 4656 Console 1 11,232 K
WeChat.exe 8672 Console 1 179,052 K
WeChat.exe 9116 Console 1 60,592 K
WeChatApp.exe 8492 Console 1 94,024 K
WeChat.exe 9520 Console 1 109,040 K
WeChat.exe 1736 Console 1 44,464 K
TSBrowser.exe 3484 Console 1 245,052 K
TSBrowser.exe 3352 Console 1 148,616 K
MobaSCPRi.exe 7608 Console 1 4,368 K
conhost.exe 4104 Console 1 4,536 K
TSBrowser.exe 7828 Console 1 83,616 K
ConEmu.exe 6408 Console 1 17,440 K
ConEmuC.exe 8400 Console 1 4,972 K
conhost.exe 10196 Console 1 5,168 K
cmd.exe 1792 Console 1 6,468 K
WmiPrvSE.exe 8612 Services 0 6,720 K
tasklist.exe 7412 Console 1 5,508 K
除了上述命令查询外,我们也可以利用D盾来检测一下主机中的异常信息,需要注意的是没有签名验证信息的进程、没有描述信息的进程、进程的属主、进程的路径是否合法CPU或内存资源占用长时间过高的进程等方面。提示一下,D盾是需要在联网的状态下进行的。一般管理员建立临时账号是不会建立隐藏账号的,所以一旦查出来有隐藏账号,那么就顺藤摸瓜查一下这个账户的操作日志(日志完好的情况下,这里重点提示了不仅主机要开启日志记录的功能,还要有日志审计服务器)。
像这样的隐藏账号我们用命令是查询不到的,我么只能去注册表中查看是否有隐藏账号。注册表位置在DOS命令行输regedit,找到以下位置即可:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
3、敏感端口开放情况
敏感端口指的是什么,指的就是攻击者喜欢的,比如3389、445、135、139、1433、1521、3306等,如果这样的端口暴漏在公网服务器,那么后果不堪设想。
我们来拿3389远程桌面服务端口来说一下,当我们知道攻击者是通过远程桌面登陆到服务器的,那么我们就可以查一下他们是怎么登陆进来的?首先我们需要问一下3389是否对外网开放,是否开启了地址白名单限制、密码是否是弱口令等问题,我们来看一下服务器日志记录了什么,通过与管理员沟通,发现密码是123456?????这是什么操作?再结合日志分析出攻击者前期做了密码破解的攻击,我这个是2003的服务器,无法统计登陆失败的事件的次数。如果是这样的话我们需要与客户沟通在不影响业务的前提下封掉3389端口、修改口令强度。小白提醒一下,即使管理员修改了3389端口,攻击者也照样会通过端口扫描扫出来的。为了避免这种情况发生,我们可以采取白名单的策略、绑定MAC地址、设置登陆失败几次就可以锁定用户。当然有更好的策略能够限制爆破也是可以的。
4、日志分析
日志分析的前提是服务器开了日志审核策略,记录用户失败、成功的事件,首先将服务器的应用日志、安全日志、程序日志拷贝下来,进行本地分析一下入侵者的信息或者故障信息。对于 Windows 事件日志分析,不同的 EVENT ID 代表了不同的意义,摘录一些常见的安全事件的说明:
我们可以根据事件ID进行来筛选我们需要的事件:
我们输入事件ID:4625进行日志筛选,发现事件ID:4625,事件数175904,即用户登录失败了175904次,那么这台服务器管理员账号可能遭遇了暴力猜解。
可以利用 eventlog 事件来查看计算机开关机的记录:
1、在“开始”菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”;
2、在事件查看器中,单击“系统”,查看系统日志;
3、在系统日志右侧操作中,点击“筛选当前日志”,输入事件ID进行筛选。
其中事件ID 6006、ID 6005、ID 6009就表示不同状态的机器的情况(开关机)。
我们输入事件ID:6005-6006进行日志筛选,发现了两条在2018/7/6 17:53:51左右的记录,也就是我刚才对系统进行重启的时间。
这里推荐使用 Log Parser工具进行分析,个人觉得比较方便。以下几条是常用的查询命令,可以作为参考:
1、查询登录成功的事件
登录成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where EventID=4624”
指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where TimeGenerated>‘2018-06-19 23:32:11’ and TimeGenerated<‘2018-06-20 23:34:00’ and EventID=4624”
提取登录成功的用户名和IP:
LogParser.exe -i:EVT –o:DATAGRID “SELECT EXTRACT_TOKEN(Message,13,’ ‘) as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,’|’) as Username,EXTRACT_TOKEN(Message,38,’ ') as Loginip FROM c:\Security.evtx where EventID=4624”
2、查询登录失败的事件
登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where EventID=4625”
提取登录失败用户名进行聚合统计:
LogParser.exe -i:EVT “SELECT EXTRACT_TOKEN(Message,13,’ ‘) as EventType,EXTRACT_TOKEN(Message,19,’ ‘) as user,count(EXTRACT_TOKEN(Message,19,’ ‘)) as Times,EXTRACT_TOKEN(Message,39,’ ') as Loginip FROM c:\Security.evtx where EventID=4625 GROUP BY Message”
3、系统历史开关机记录:
LogParser.exe -i:EVT –o:DATAGRID “SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006”
xxx 异常启动项、服务、计划任务xxx
首先我们要知道攻击者如果在服务器上面留后门的话不可能直接把后门程序放在显眼的位置,后门程序可能加载到某个程序、开机启动项、计划任务、自建服务等操作。
我们先看看一下开启启动项的问题,攻击者会把后门程序放在开机启动项里面,这样只要服务器重启服务器就会加载后门程序,攻击端就会就会接收到来自服务器的木马连接程序。
Msconfig命令看一下是否有异常的启动程序在加载,这个需要和运维人员来确认。
注册表是个好东西,我们在排查入侵事件的时候要重点查询一下注册表,其中这三项注册表是必查的,我们可以查一下这几个注册表中是否添加了启动程序。
目前,只要新出的蠕虫/特洛伊类病毒一般都有修改系统注册表的动作。它们修改的位置一般有以下几个地方:
在系统启动时自动执行的程序
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\
在系统启动时自动执行的系统服务程序
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices\
在系统启动时自动执行的程序,这是病毒最有可能修改/添加的地方
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ HKEY_CLASSES_ROOT\exefile\shell\open\command
说明:此键值能使病毒在用户运行任何EXE程序时被运行,以此类推,…\txtfile… 或者 …\comfile… 也可被更改,以便实现病毒自动运行的功能。
另外,有些健值还可能被利用来实现比较特别的功能:
有些病毒会通过修改下面的键值来阻止用户查看和修改注册表:
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools =
为了阻止用户利用.REG文件修改注册表键值,以下键值也会被修改来显示一个内存访问错误窗口
例如:Win32.Swen.B 病毒 会将缺省健值修改为:
HKCR\regfile\shell\open\command(Default) = “cxsgrhcl.exe showerror”
通过对以上地方的修改,病毒程序主要达到的目的是在系统启动或者程序运行过程中能够自动被执行,已达到自动激活的目的。
服务
我们以MSF权限维持中的Metsvc 模块,只要攻击者使用这个模块的后门,在服务中就会自动生成meterpreter这个服务,类型为自动启动。只要遇见这样的服务,我们就可以断定服务器已经被别人盯上了,而且是已经留了后门。
5、其它
运维内部先自我排查一下,网站是否使用了低版本且存在漏洞的框架或者组件,比如Strust2、jboss(弱口令居多)、weblogic等常用的,查询一下网站管理后台以及其它后台(对外的)是否存在弱口令、上传文件的接口是否存在漏洞等,排查攻击者可以通过上传、写文件等方法来获取服务器权限的地方。虽然在这里说这些貌似没用,但是这也是一个排查的思路,毕竟多一个思路就多一个排查方向。
以上就是小白在日常中进行排查windows的大体方向,只是提供了一下框架,至于框架中的日志分析、进程分析等都需要大佬们结合实际情况来排查的。