溯源(二)之 windows-还原攻击路径
windows-如何还原攻击路径
web入侵的流程图如下所示:
windows排查
日志分析
1.什么是日志?
日志是记录一个服务或应用程序在运行过程中所发生的事件和活动,通过对日志文件的分析,可以让我们对服务器的行为一目了然,可以分析攻击IP,哪个IP用什么样的方式访问过哪个目录,可以帮助我们去做溯源分析,分析那些可以导致攻击事件的web漏洞,同时日志还可以去监控服务器的性能和异常信息
2、日志分类
日志分为两类:
web日志:
web日志存放路径
windows默认路径:在安装目录下的logs文件夹下
tomcat日志有catalina.out、localhost、manager、localhost_access_log4种格式日志
apache日志、nginx日志、IIS日志有access_log和error_log两种日志
我们搭建了一个环境
通过sql注入,爆破出了账号和密码
http://192.168.0.102/uploads/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\%27%20or%20mid=@`\%27`%20/*!50000union*//*!50000select*/1,2,3,(select%20CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`%20limit+0,1),5,6,7,8,9%23@`\%27`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294%20```%20
我们通过sqlmap去爆破这个sql注入漏洞,来产生一些sql爆破的日志信息
sqlmap -u http://192.168.0.102/uploads/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=*+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294%20```%20
然后我们通过蚁剑在后台页面文件式管理处上传一句话木马
然后我们去分析我们的日志文件,因为我这里用的是phpstudy搭的环境,所以服务器的日志文件存储在这个路径下
我们打开日志文件去分析
很明显这里发现了来自192.168.0.105的sql注入攻击,也就是我们上一部分内容进行的sql注入所造成的日志文件
同样继续查找也可以找到我们刚刚上传一句话木马的日志信息
那么问题来了,如果我们都用记事本去查看日志的话,面对大批量的数据,岂不是很难处理,而且还需要过滤很多没有用的信息,所以我们这里就需要用到web日志分析工具,来帮助我们分析日志
在线工具:https://tilipa.zlsam.com/loger/
打开文件
选择打开
导入我们想要查看的日志文件
就可以查看了
面对浩瀚如海的日志文件信息,我们不可能一条条的去看,这时我们就需要进行筛选,筛选出对我们溯源有用的信息,比如通过前期的观察和分析,我们已经确定攻击者的IP是来自192.168.0.105的,现在我们就需要去过滤来自192.168.0.105的信息
打开文件,选择过滤
填写我们要过滤的IP
就能过滤出来自192.168.0.105的信息
这里可以很明显的看出攻击者做出的SQL注入留下的日志文件信息
在我们实际上的溯源过程中,需要我们一步一步的去慢慢排查这些信息,比如说我们通过前期的排查和推断,并且结合经验,推断出了攻击者上传了1.php的木马文件,这时就需要我们去过滤出有1.php文件的信息
然后我们可以根据经验去判断他大概做了一些什么事情,这种日志排查没有一个大概的流程,全凭经验和搜索到的信息去判断
查看日志文件分析只是溯源部分中的一小部分,溯源最终的目的还是要拿到攻击者的身份信息,我们通过刚刚的分析得到了攻击者的IP,实际环境中,攻击者一般都会使用代理服务器来隐藏自己的身份或者跳板机(如果遇到这样的情况怎么办?至少我们首先溯源得到了跳板机的信息,得到了下一步的线索,我们可以继续在溯源的跳板机上继续排查日志等文件信息,最终一步步溯源出真实的IP)然后分析到了攻击者使用SQL注入爆破了我们的网站的账号和密码,登陆了我们的网站后台,并且上传了一句话木马,然后使用一句话木马控制了我们的网站,这里我们就通过分析日志发现了一个存在的SQL注入漏洞和上传的一句话木马文件,完成了还原整个攻击过程的流程
那怎么知道我们的服务器被入侵了呢?举个列子,我们通过警报发现我们内网的服务器受到了攻击,通过查看受到攻击的服务器的信息,发现攻击者的IP是我们的web服务器,我们这台服务器受到了来自web服务器的攻击,那我们这里是不是得到了痕迹,知道了我们的Web服务器遭受到了攻击,web服务器被黑客拿下之后,对我们其他的内网主机发起了攻击,或者说我们通过企业布置的一些安全设备,比如waf防火墙,态势感知等等,通过这些安全设备呢,发现某个IP对我们的web服务器发起了漏洞扫描,甚至是木马连接的一些告警,那我们是不是可以通过以上这些东西获得一些信息,比如说攻击者的IP和攻击的时间等等信息,那这些信息是不是就是一个切入点,具体的IP还有大致范围内的一个时间点,我们在做日志分析的时候是不是可以通过这些过滤点去过滤出一个大概的关键信息
,
系统日志
windows系统日志包含系统日志,安全日志、应用日志等,我们在溯源分析中用到最多的就是我们的安全日志,安全日志记录了我们服务器的登陆记录,比如说:
敏感事件id:
4624 登录成功
4625 登录失败
4720 创建用户
4634 注销成功
4647 用户启动的注销
4672 使用超级用户/管理员用户进行登录
我们可以通过这些敏感id去排查攻击者的一些操作,攻击者通过一些web漏洞,控制了我们的主机,那他会不会进行一些远程登录,或者是创建一些用户,留下一些后门,这些我们都可以通过Windows的安全日志去查看,我们在护网中,如果去溯源出了攻击者留下的账号或者后门,那这也是溯源的一部分,同时也是加分项,在日常的应急响应中,也需要我们去排查,排查攻击者对服务器做的一些权限维持等操作,我们需要去排查并清理这些出权限维持
现在我们来打开我们Windows系统的安全日志
按win+R键,输入eventvwr打开安全日志
点击Windwos日志,可以查看我们的应用程序日志和安全日志还有系统日志
我们可以通过查看事件ID去查看这个事件发生了什么,登录就是普通用户登录,特殊登录就是指超级管理员用户登录
Windows系统日志自带了筛选日志的功能
点击筛选当前日志可以筛选日志信息
在我们整个的排查过程中,时间都是非常重要的一点,不仅是我们木马创建的时间还是攻击者攻击web漏洞的时间,这些时间都需要我们去排查和记录下来,这些时间我们在所有的排查中都会用到,比如这里的筛选日志:筛选某个时间点范围内登陆过或者创建过的用户
通过在这里输入4624,我们就可以排查出所有在某个时间段内登录的用户
我们可以通过去看到一些账号的详细信息
同时也可以去发现一些隐藏的账号,一些由攻击者所创建的隐藏账号通过net user是发现不了的
这里我们通过net user创建了一个隐藏账号,在username后面加上一个$符号就是隐藏账号的意思,可以看到我们通过寻常的net user 是发现不了我们创建了这个账号的
但是如果我们使用隐藏账号登录是可以在系统日志中查看到的
我们这里登录一下我们的隐藏账号
然后我们在切换回我们的管理员账户
输入筛选的事件ID,便可以找到关键信息
输入4720,便可以查找到新建用户的事件
点击查看信息,发现了我们刚刚注册的隐藏用户的信息
在我们实际排查的过程中4625事件ID可以重点关注一下,如果短时间内存在大量的登陆失败,那是不是就存在了一个暴力破解的行为,那么这些呢,是我们通过Windows自带的系统日志工具可以查询到的信息,除此之外,我们还有其他用来进行系统日志排查的工具-Log Parser
系统日志默认路径如下:
%SystemRoot%\System32\Winevt\Logs\System.evtx
Windows安全日志存储在:
C:\Windows\System32\winevt\Logs\Security.evtx
Windows 2000 / Server2003 / Windows XP 安全日志默认位置在C:\WINDOWS\System32\config\SecEvent.Evt )
应用程序日志默认位置:
%SystemRoot%\System32\Winevt\Logs\Application.evtx
查看登录成功的所有事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx where EventID=4624"
Security.evtx 文件路径
这里可以将文件放在根目录下,或者直接指定绝对路径
指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx where TimeGenerated>'2022-06-19 23:32:11' and TimeGenerated
提取登录成功的用户名和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 Security.evtx where EventID=4624"
登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx EventID=4625"
webshell还能通过什么方式去排查,刚刚我们是不是通过web日志排查到了webshell的连接记录,我们可以通过日志文件去排查,但是有一些攻击者会通过痕迹清理去删除一些日志,这时我们可以通过其他方式去排查
1.文件排查:
(1)各个盘下的temp相关目录%temp%
我们可以去排查各个盘下的临时目录,一些恶意程序在执行时会去释放子体,通俗的将就是恶意程序运行时投放出来的文件
(2)开机启动文件(启动菜单、注册表)
在权限维持时一般都会用到启动项,这些地方可以着重关注一下
(3)浏览器的历史记录
可能有一些攻击者会通过浏览器去下载一些恶意文件,他在使用后可能不会把浏览器浏览记录清空,这也是可以排查的一点
(4)Recent文件
Recent文件就是我们最近打开的一些文件,我们可以通过去看最近运行了哪些文件去排查有没有一些可疑的文件
(5)攻击日期内新增的文件
forfiles /m *.exe /d 2022/10/5 /s /c "cmd /c echo @path @fdate @ftime"
(6)使用工具D盾、HwsKill、WebshellKill去查杀一些木马等
按win+R键输入%temp%可以查看临时文件
在临时文件的排查过程中,一些可执行的文件,比如.exe,.msi结尾的文件可以重点关注一下,还有一些.tmp文件
正常来说程序在运行过成中产生的临时文件一般来说只有几十kb,如果碰到很大的临时文件那可以着重关注一下,那我们怎么知道这些文件哪些是正常文件,哪些是恶意文件呢?
我们可以通过在线的一些病毒扫描的平台,将这些文件上传到平台,看他到底是不是恶意文件
按win+R键输入recent可以查看最近打开的文件
如果在这里面看到了一些比较可疑的文件,我们又不确定他是不是木马文件,比如说这里的1.php文件,我们都可以将他上传到病毒扫描平台,来判断这是不是一个木马文件
我们可以右键打开这个文件所在的位置
通过点击属性来发现这个文件创建的时间,通过这个文件创建的信息,我们也可以推断攻击者攻击大概所发生的一个时间范围
实际上,很多攻击者的信息就是通过线索这么一点一点排查出来的,假设我们排查出了木马文件上传的路径和时间,上传的路劲是我们web网站的目录下,那么这是不是可以推断出攻击者是通过web网站上传木马的,接下来我们就可以去排查web网站的日志文件,进一步寻找攻击者的信息
假如我们排查到了恶意文件产生的时间信息,那我们是不是可以去排查这个时间内有哪些新增加的文件
我们可以通过这条命令去排查某个时间段后新增加了哪些可执行的exe文件
forfiles /m *.exe /d 2022/10/5 /s /c "cmd /c echo @path @fdate @ftime"
2、进程排查
tasklist 列出进程
(1)查看端口得到PID
netstat -nao | findstr 端口
(2)根据PID查看进程对应的程序名称
tasklist /V | findstr PID
wmic process list brief | findstr PID
(3)得到程序全路径名
wmic process where processid=PID get processid,executablepath,name
(4)杀掉进程
taskkill /PID /F
wmic process where name="mysqld.exe" delete
wmic process where processid=PID call terminate
新增、隐藏账号的排查
1、通过命令:“net user”查看
2、通过“计算机管理”查看,lusrmgr.msc
3、通过Windows安全日志进行排查 eventvwr
4、通过查看注册表文件进行排查 regedit
5、通过Windows管理工具
wmic useraccount get name,SID
这里我们着重来讲解下注册表
(1)HKEY_CLASSES_ROOT(HKCR)
存储着Windows资源管理器执行时打开正确的程序,一些规则,点击和拖放的操作,还有用户界面的一些详细的信息
(2)HKEY_CURRENT_USER(HKCU)
这里存放着用户配置的一些信息,控制面板的设置等信息
(3)HKEY_LOCAL_MACHINE(HKLM)
包含着操作系统还有计算机硬件的一些特定的信息,包括一些驱动,应用程序的配置等
(4)HKEY_USERS(HKU)
存储着所有用户配置文件的配置信息
注册表是我们操作系统中非常重要的一个数据库,它是用来存储我们系统一些必须的信息,很多木马病毒还有权限维持等操作都会借助它来进行,比如启动项,比如计划任务
按win+R键输入regedit打开注册表
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
路径下存储着我们计算机账户的信息,我们可以通过这个查看计算机的账户
这里确实可以看到我们之前新建的隐藏账号
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
这四个注册表的路径也是需要我们重点排查的,这四个注册表是Windows系统的启动项,攻击者常常会在这四个注册表的位置留下后门进行权限维持等操作
有些攻击者也会通过计划任务来进行权限维持的操作,所以计划任务也是我们需要排查的一个点
schtasks
我们之前不是所过可以通过在线的平台去查杀木马文件,这里给大家提供一点平台帮助大家在实际的过程中去查杀病毒
病毒分析
PCHunter:http://www.xuetr.com
火绒剑:https://www.huorong.cn
Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
processhacker:https://processhacker.sourceforge.io/downloads.php
病毒查杀
卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新病毒库)
大蜘蛛:http://free.drweb.ru/download+cureit+free
病毒动态
CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn
微步在线威胁情报社区:https://x.threatbook.cn
火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html
爱毒霸社区:http://bbs.duba.net
腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html
在线病毒扫描网站
Virustotal:https://www.virustotal.com
Virscan:http://www.virscan.org
腾讯哈勃分析系统:https://habo.qq.com
Jotti 恶意软件扫描系统:https://virusscan.jotti.org
webshell查杀
D盾_Web查杀:http://www.d99net.net/index.asp
河马 WebShell 查杀:http://www.shellpub.com