本帖最后由 吃饭要用券 于 2023-3-29 11:24 编辑
当设备遭到入侵后,我们该如何排查可疑程序和进程?
一.Windows系统 对于windows系统首先考虑的是杀毒软件进行杀毒扫描,但如果shell是免杀类型,就只能进行手动排查。 *先介绍下免杀手段: 1.特征修改 杀毒软件会记录每个恶意程序的特征码。在查杀病毒时,如果特征码和数据库中的匹配。哪么他就是病毒程序了。 (这也是大数据时代云查杀的原理)因此,我们需要消除其特征码。这个主要从两个方面入手,一方面是shellcode和硬编码字符串。我们需要消除这些特征,另一个是加载器的关联特征也需要消除。 2.花指令免杀 花指令其实就是一段毫无意义的指令,也可以称之为垃圾指令。花指令是否存在对程序的执行结果没有影响,所以它存在的唯一目的就是阻止反汇编程序,或对反汇编设置障碍。就好像给恶意程序穿了好几件新衣裳,杀毒软件不认识了。 3.加壳免杀 简单地说,软件加壳其实也可以称为软件加密。壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。加密壳基本上可以把特征码全部掩盖,但是缺点也非常的明显,因为壳自己也有特征。 4.内存免杀 将恶意程序直接加载进内存,避免文件落地,可以绕过文件扫描。但是对内存的扫描还需对shellcode特征做隐藏处理。对windows来说,新下载的文件和从外部来的文件,都会被windows打上标记,会被优先重点扫描。而无文件落地可以规避这一策略。 5.分离免杀 整个shellcode加载器分为两个部分,分离下载shellcode和执行。通常杀软只检测一个进程的行为,所以如果存在两个恶意进程通过进程间通信就能逃过检测、达到免杀。分离免杀的方法多种多样,既可以用windows的管道,也可以用socket通信,这样就可以做到shellcode不落地 6.二次编译免杀 像msf或者cs的shellcode在各个厂商里都盯的比较严,对于这些shellcode已经提取好特征只要使用就会被检测出。所以会使用各种编码器进行免杀编码器有很多种,这里仅推荐msf的shikata_ga nai,是一种多态编码器,次生成的payload都不一样。 7.资源修改 杀软在检测程序的时候会对诸如文件的描述、版本号、创建日期作为特征检测,可用restorator对目标修改资源文件。比如: 加资源、替换资源、加签名等等 *排查步骤: 1.查看账号 攻击者为了方便登录系统。往往会给自己添加相应的账号,并且有些账号可能是隐藏账号 普通账号:win+r 输入lusrmgr.msc查看 隐藏账号:win+r输入regedit查看HKEY_LOCAL MACHINE SAM SAMDomains Account\Users 2.系统日志分析 win+r输入eventvwr.msc -> windows日志 3.排查网络与端口 如果设备遭到入侵,那么设备和攻击者之间会建立通信 cmd输入netstat -ano 4.排查恶意进程 cmd输入tasklist 5.检查自启动 win+r输入msconfig 6.检查计划任务 cmd输入schtasks 7.查看最近打开文件 win+r输入%UserProfile% Recent 二.Linux系统 对于Linux系统,排查难度和Windows相比难度略有提升。在使用安全狗 D盾云锁等常规WAF无果的情况下。我们可以手动进行排查。 1.历史执行命令记录 history 2.检查定时任务 ls /etc/cron* 3.查看用户 cat /etc/passwd 4.查看登录及重启记录 last 5.查看网络及其端口 netstat -alntp 6.查看进程 ps -aux 7.查看自启程序 ls -alt /etc/init.d/ |