入侵排查:简单理解是针对权限维持技术的排查。 权限维持技术:攻击者入侵系统(Getshell)后,为了防止失去权限而通过持久化配置项保持权限的手段,包括注册表、计划任务、后面恶意账户等等。
1、收集系统主机的版本,右键此电脑->属性或者win+R->输入winver 会看到操作系统的版本,为什么要收集系统版本呢?因为根据版本就可以找到这个版本下的漏洞,如权限提升漏洞,可以根据提权漏洞的特点进行排查,如特点的日志等。 2、收集操作系统的其他信息,win+R->输入msinfo32 其中重点关注环境变量,另一种查看环境变量的方法是打开命令行输入set 3、关注环境变量的原因:环境变量劫持:我们都知道,命令行执行一条命令其实是执行一个.exe文件,而如果执行的.exe文件对应的命令不在当前目录,就会出现一种优先级,就是操作系统会找环境变量中指定的.exe文件,然后执行,而如果既不在目录,又不在环境变量中,就会提示不是内部命令。这样一来,想象一个场景,如果内部人员告诉你,自己执行ipconfig命令时,没有正常输出内容或者有安全设备提示有恶意外连等等时,你想拿正常的ipconfig.exe程序进行恶意文件分析,但是没有任何问题,就该注意是否有环境变量劫持了。这里简单做个实验,在环境变量中配置木马文件, 执行文件,并未出现正常内容, 并且C2中成功上线, 这里仅仅是简单的举例,这个例子很容易被发现异常,更隐蔽的做法是,也可以通过将正常的文件路径和木马路径绑在一起,效果就是正常程序和木马都运行了,那我们就可能在这一块儿很难发现恶意程序了。 4、网络连接信息收集,主要的命令netstat -ano、ipconfig /all、netstat -rn等等 这里重点关注分析状态为ESTABLISHED的IP地址,也可以借助威胁分析平台。netstat -rn是网络的路由信息 5、进程排查,主要方法是命令tasklist /v,可以看到进程的列表, 也可以在任务管理器->详细信息查看正在运行的进程 还有命令wmic process get * /value,格式化输出 这里比较重要的是CommandLine,它显示的是执行这个程序时所输入的完整命令,比如这个 为什么需要关注这个呢?我们知道,在C2工具生成有效载荷时,会有PowerShell Command, 执行成功后上线, 在通过wmic process get * /value查看,就能发现恶意进程。 这里也可以用条件表达式,直接过滤获取想看的可疑进程。
1、恶意用户:使用命令net user可以进行查看用户等等操作,这是添加了一个用户 我们也可以将用户进行隐藏,就是在用户后面加一个$符号,我们发现使用net user查询后并没有发现这个用户的信息,就是被隐藏了 但是这种方法对应其它命令和图形化注销时都能看到,因此这种隐藏用户还是比较鸡肋的。所以一些攻击者就会创建一些特定情况下存在的克隆账户,比如在域环境中存在hrbtgt用户,可能反而不会引起运维人员的关注。 2、排查:命令wmic useraccount get * /value,这个会显示所有用户的详细信息,包括刚刚创建的隐藏用户 另外通过注册表也可以看到用户,包括前面 提到的克隆账户其实就是把注册表中的信息进行调换,但是其实上面这条命令已经可以解决很多问题了。
1、注册表下的RUN子键和RUNONCE(只运行一次)子键开机启动项: 这里的启动项是通过管理员账户进行修改,但是在任意用户用户登录时运行,换句话说就是任意用户触发登录时都会运行,举个例子,重启电脑,进行登录,看会不会有cmd.exe运行 cmd.exe自启动 上面是其中一个目录,在注册表中还有一个其他目录也存在这个子键 那么区别显而易见了,就是前者是所以用户登录时触发,后者是只有当前用户登录时触发。另外,需要说明的是前者在前面说到了,只有管理员权限才能修改写入,普通用户只能修改后面的目录的内容。 2、services.msc服务文件:服务文件比较特殊的一点是它不需要用户登录,那么也就意味着它的可利用性更强,但是,创建服务文件的启动项必须是管理员权限才能创建的,同时当攻击者获取到权限时也会获取到system的权限。 这里配合C2做个示范,在C2工具中,有专门针对服务的程序,正常运行时运行不了,只能配合服务运行 这个命令就是进行服务启动项的命令(sc create 服务名称 binpath= "自启动的程序" start="auto" obj="服务运行时的权限") 就出现这个服务了,可以看到这个服务是没有描述的,除此之外,为了更加隐蔽,攻击者可能会添加其他字段来让这个服务更加隐蔽,这里讲排查,就不深入了 接下来进行服务启动 C2上线,并且权限很高,是system权限 另外重启一下看效果,这里重启就不需要登录,重启后上线 而且未登录 3、gpedit.msc本地组策略启动项: 点开启动->添加->添加恶意程序 这个依旧不需要登录,就可以上线C2 4、计划任务:命令schtasks 创建计划任务可以用命令schtasks /create /tn "计划任务名称" /tr "计划任务的所在位置" /sc minute /mo 1,表示一分钟执行一次 另外,计划任务图形化界面也可以操作
1、这个有很多,比如说火绒、D盾、windows安全基线核查加固助手
1、如果知道恶意程序的名称,可以直接去注册表搜索,持久化的东西大多数都可以用注册表搜出来,比如前面的服务文件、本地组策略文件和计划任务等等 2、那么如何找到恶意程序的名称呢?比较重要的一点就是确定时间线,我们可以在文件资源管理器中,指定日期或日期范围进行搜索 另外也可以用everything工具进行搜索,这个工具也有特定的语法可以筛选和过滤
对应入侵排查而言,这些仅仅可以解决一下基础的持久化的问题,而还有很多高端的不常见的甚至从未出现过的持久化手段需要更多的深入了解和学习的。