应急响应-汇总
应急响应-综合汇总 1.应急响应介绍 2.Linux和Windows入侵排查方法 3.Linux应急案例 4.Windows应急案例之页面篡改 5.溯源排查之道 6.日志分析 # 应急响应流程 ## 1.沟通 # 联系客户,咨询当前服务器状态,发生的准确时间点,服务器上有什么业务,提供异常截图,事件 发生后有木有做过处理,做了哪些处理,之前有没有发生过安全事件,是否有完整的日志,服务器上是否存在安全设备。 ## 2.确认 # 初步了解服务器相关信息,要求客户对服务器的重要数据进行备份,然后提供给我们应急服务器的账号密码,如果服务器上存在对应的web服务,需要提供对应的web域名,整理客户描述的信息,进行初步确认,判断是不是安全事件,切不可盲目相信他人所述,如果是安全事件提供对应的止损方案 ## 3.深入分析 # 分析服务器上的进程,网络连接,计划任务,日志,查找异常项,帮助客户恢复服务器正常状态,刻画攻击路径 ## 4.沟通 # 保持跟客户的持续沟通,不要让客户感觉你没有在处理事件,及时同步处理进展,有不知道的信息就 主动问客户获取,客户提供越多信息,对我们完成应急越有帮助 ## 5.总结 # 整理并输出完整的应急报告 # 注意事项 # 1.由于应急需要注意时效性,客户一般都是非常着急的,尽可能快速定位到问题, 解决问题才是最重要 # 2.止损第一 # 3.不要造成二次伤害 # 应急响应整体思路 # 1.应急响应的整体思路,就是上层有指导性原则的思路,下层有技能,知识点与工具, 共同推进和保障应急响应流程的全生命周期 ''' 应急响应 https://www.freebuf.com/articles/terminal/192859.html 3W1H:W - Who,What,Why 1H - How 做应急响应要带着疑问来做事情,一定要收集清楚这些信息。网络拓扑是怎么样的,需求是啥,发生了是事情,能做什么,用户用了什么产品,产品版本多少,病毒版本是多少,多少主机中了,主机是普通PC还是服务器,服务器是做什么的 ..... 信息收集的越多,对应急响应越有利 易失性原则:做应急响应免不了要做信息收集和取证的,但这里是有一定的先后顺序的,即最容易丢失的证据,应该最先收集,其它的依次类推 要素原则:做应急响应,主要是抓关键证据,即要素,这些要素包括样本,流量,日志,进程及模块,内存,启动项 避害原则:要做到趋利避害,不能问他还没有解决,反而引入了新的问题,譬如,自己使用的工具被感染而不知情,给用户使用不恰当的工具或软件造成客户主机出现问题,给别人发样本,不加密,不压缩,导致别人误点中毒,最极端的场景就是给别人发勒索样本不加密压缩,导致别人误点中毒 ''' # 事件介绍 网络攻击事件: * 安全扫描攻击:攻击者利用扫描器对目标进行漏洞探测,并在发现漏洞后进一步利用漏洞进行攻击 * 暴力破解攻击:对目标系统账号密码进行暴力破解,获取后台管理员权限 * 系统漏洞攻击:利用操作系统,应用系统中存在的漏洞进行攻击 * Web漏洞攻击:通过SQL注入漏洞,上传漏洞,XSS漏洞,等各种Web漏洞进行攻击 * 拒绝服务攻击:通过大流量DDoS或者CC攻击目标,使用目标服务器无法提供正常服务 * 其他网络攻击行为 恶意程序事件: * 病毒,蠕虫:造成系统缓慢,数据损坏,运行异常 * 远控木马:主机被黑客远程控制 * 僵尸网络程序:(肉鸡行为):主机对外发起DDoS攻击,对外发起扫描攻击行为 * 挖矿程序:造成系统资源大量消耗 Web恶意代码: * Webshell后面:黑客通过Webshell控制主机 * 网页挂马:页面被植入带病毒的内容,影响访问者安全 * 网页暗链:网站被注入博彩,色情,游戏等广告内容 信息破坏事件: * 系统配置遭篡改:系统中出现异常的服务,进程,启动项,账号等等 * 数据库内容篡改:业务数据遭到恶意篡改,引起业务异常和损失 * 信息数据泄露事件:服务器数据,会员账号遭到窃取并泄露 其他安全事件: * 账号被异常登录:系统账号在异地登录,可能出现账号密码泄露 * 支付盗刷 事件处理流程 * 一般像web攻击类安全事件,处理方法就是加WAF,增加攻击者的攻击成本,然后查找漏洞,修复漏洞 ,如果是CMS漏洞,需要根据官方修复建议进行修复 * 挖矿类安全事件,先暂停挖矿进程,修改远程木马下载地址为本地host,然后排查处理 * 信息泄露类安全事件,要根据泄露数据样本判断是哪里存在漏洞,然后采取相应的措施 * 支付类安全事件,禁止支付密钥,关闭提现业务 总结: * 沟通 - 》 确认 -》 异常发现与追踪 -》 事件处理 -》 事件总结 * https://mp.weixin.qq.com/s/H_ewge2jOCgFz-SelVFkUw # Linux排查方法 * 系统完整性 rpm -Va * 进程 top, ps -aux, lsof * 网络连接 netstat -tunlpa * 开机启动项 /etc/init.d/* /etc/rc*.d /etc/rc.local * webshell查杀 河马webshell查杀 自动脚本 * 计划任务 - cat /var/log/cron | grep "bash" - cat /var/log/cron | grep "wget" - cat /var/log/cron | grep "cat" - cat /var/log/cron | grep "id" - cat /var/log/cron | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" - cat /etc/crontab - /var/spool/cron/* - /etc/cron.d/ - /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.weekly/ - /etc/cron.monthly/ * 查看登录情况 历史登录成功IP和账号,当前登录成功账号IP cat /var/log/secure last * 查看ssh key cat .ssh/authorized_keys * 用户及hosts /etc/passwd /etc/hosts * 查看动态链接库 echo $LD_PRELOAD Linux预加载库 /etc/ld.so.preload /usr/local/lib 查看每个命令加载的动态链接库 ldd `which top` * 日志分析 Linux日志存放 /var/log/ /var/log/message 记录系统重要信息的日志,这个日志文件会记录Linux系统的绝大多数重要信息 /var/log/cron 记录系统定时任务相关日志 /var/log/btmp 记录错误登录日志,不能直接使用vi查看,需要使用lastb /var/log/lastlog 记录系统中所有用户最后一次登录事件的日志,不能使用vi 使用lastlog /var/log/secure 记录验证和授权方面的信息,只要设计账号和密码的程序都会记录,比如ssh 登录,su切换用户,sudo授权 - 定位有多少个IP爆破主机的root账号 grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr| more - 登录成功的IP有哪些 grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more # Windows 排查方法 * 系统状态排查 查看CPU 内存 网络占有率 * 文件分析 - 临时文件 黑客往往可能将病毒放在临时目录,或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。 假设系统盘在C盘,则通常情况下的临时目录如下: C:\Users\\shit\Local Settings\Temp C:\Documents and Settings\\shit\Local Settings\Temp C:\Users\\shit\桌面 C:\Documents and Settings\\shit\桌面 C:\Users\\shit\Local Settings\Temporary Internet Files C:\Documents and Settings\\shit\Local Settings\Temporary Internet Files - 浏览器相对文件 黑客可能通过浏览器下载恶意文件,或者盗取用户信息,因此需要检查下浏览器的历史访问记录,文件下载记录,cookie信息,对应相关文件目录如下: C:\Users\\shit\Cookies C:\Documents and Settings\\shit\Cookies C:\Users\\shit\Local Settings\History C:\Documents and Settings\\shit\Local Settings\History C:\Users\\shit\Local Settings\Temporary Internet Files C:\Documents and Settings\\shit\Local Settings\Temporary Internet Files - 最近文件 检查下最近打开了哪些文件,可疑文件有可能就在最近打开的文件中,打开一下这些目录即可看到: C:\Users\\shit\Recent C:\Document and Settings\shit\Recent - 文件修改时间 可以根据文件夹内文件列表时间进行排序,查找可疑文件,一般情况下,修改时间越近的文件越可疑 - system32和hosts文件 System32也是常见的病毒释放目录,因此也要检查下改目录,hosts文件是系统配置文件,用于本地DNS查询的域名设置,可以强制将某个域名对应到某个IP上,因此需要检查hosts文件有没有被黑客恶意篡改 这里以hosts文件为例,如上图,检查3种异常: 1.知名站点,检查对应IP是否真的归属该站点,防止”钓鱼“ 2.未知站点,检查该域名和IP是否恶意 3.无法访问的安全站点,即IP是否指向127.0.0.1 0.0.0.0等本地地址,无效地址 - 网络连接 使用命令 netstat -ano 查看当前的网络连接,排查可疑的服务,端口,外连的IP 如发现netstat定位出的pid有问题,可再通过tasklist命令进一步追踪该可疑程序(tasklist | findstr PID) - 流量分析 流量分析可以使用wireshark 主要分析下当前主机访问了哪些域名,URL,服务,或者有哪些外网IP在访问本地主机的哪些端口,服务和目录,又使用了何种协议等等 例如:使用了Wireshark观察到,主机访问了sjb555.3322.org 这种动态域名,即可粗略猜测这是一个C&C服务器 - 漏洞与补丁信息 使用命令systeminfo ,查看系统版本信息以及补丁信息,确认当前系统是否存在漏洞,是否以及打了相应的补丁 - 进程分析 * 进程名字异常 * 进程信息分析 - 启动项排查 黑客为了保持病毒能够开机启动,登录启动或者定时启动,通常会有相应的启动项,这里有个非常好的工具,Autoruns(www.sysinternals.com) - 用户排查 net user - Tips * 删除guest用户 - 按键 "win + r" 输入regedit打开注册表; - 展开 "HKEY_LOCAL_MACHINE\SAM\SAM", 右键 "权限";设置管理员完全控制权限 - 关闭注册表,重新打开 "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Guest" - 将注册表对应的类似"0x2f3", 进行删除 "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000002f3"和 "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Guest"这两个键即可 - 常用的工具和命令 Webshell查杀 D盾 深信服WebShellkiller CloudWalker(牧云) - 木马病毒类查杀 ClamAV RKHunter Chkrootkit - 进程分析 火绒剑 - 流量分析 Wireshark Tcpdump - 启动项分析 Autoruns - 其他辅助工具 IP分析 超级文件监控工具V1.0 # Linux木马案例(一) * 系统完整性 rpm -Va * 进程 lsof ps aux ps -ef ps aux --sort=start_time top * 网络连接 netstat -tunlpa * 开机启动项 /etc/init.d/* /etc/rc*.d/ /etc/rc.local ls -altr /etc/rc.local * webshell查杀 河马webshell查杀 自写脚本 find / -ctime +1 -ctime -30 * 计划任务 ls -altr /var/spool/cron ls -altr /etc/cron.daily/ ls -altr /etc/cron.weekly/ ls -altr /etc/cron.hourly/ ls -altr /etc/cron.monthly/ ls -altr /etc/crontab * 查看登录情况 last cat /var/log/secure* | grep "Access" cat /var/log/secure* | grep "Fail" * 查看key cd /root/.ssh cat authorized * 用户及hosts cat /etc/passwd cat /etc/hosts * 查看动态链接库 echo $LD_PRELOAD strace -f ls Linux预加载库 /etc/ld.so.preload /usr/local/lib * 木马处理 核心:找异常(尽可能多的找出异常) lsof -f -p 3322 find -ctime +1 -ctime -7 | more * 隐藏木马处理 使用busybox busybox ps 1.rpm -Va 2.busybox ls -altr /etc/cron.d 发现存在root的计划任务 3.busybox cat /etc/cron.d/root 通过微步在线的威胁情报查询域名是否是恶意挖矿之类的域名 4.busybox ls -altr /etc/cron.daily/ 5.busybox ls -altr /etc/cron.weekly/ 6.busybox ls -altr /etc/cron.hourly/ 7.busybox ls -altr /etc/cron.monthly/ 8.busybox ls -altr /etc/crontab 9.busybox cat /etc/crontab 10.busybox ls -altr /var/spool/cron/ 查看可疑的基础 top 如果查看不出来,那么使用busybox busybox top busybox ps aux 查看Linux动态链接库 busybox echo $LD_PRELOAD 根据lsof查看进程pid的位置 lsof -f -p 2290 可疑隐藏木马位置 计划任务,进程,文件,动态链接库 偷梁换柱 1.隐藏原理 * 通过替换系统中常见的进程查看工具(比如:ps top lsof)的二进制程序,导致原先查看进程相关信息的工具(ps,top,lsof)等都被掉包了 2.防护手段 * 从干净的系统上拷贝这些工具到备份至当前系统,对比前后的输出是否一致,不一致,则说明被替换了 * 检测这些工具的hash值是否与系统初始化的时候值不一致,如果是,则说明被替换了 * 专业一点的话,使用一些系统完整性检查工具,比如tripwrie,aide等 * 部署主机入侵检查工具(比如ossec),监控系统文件是否被替换,如有替换,则会报警记录 3.Hook系统调用型 隐藏原理 ps,top等工具的工作原理,以ps工作原理为例说明这些进程信息查看工具的原理 /proc 是一个虚拟文件系统,是VFS的一个实现形式,/proc中包含了内核信息 硬件信息,进程信息等,ps等工具就是通过分析/proc文件系统中进程相关目录的信息获取进程信息汇总,Hook系统调用型的进程隐藏方式都是通过拦截或者迷惑ps等工具从/proc获取分析结果的过程,而不是真的/proc文件系统生成本身。 ps首先会调用openat系统函数获取/proc目录的文件句柄,然后调用系统函数getdents递归获取/proc目录下所有文件信息(包括子目录),然后开始open函数打开/proc/进程pid/stat, /proc/进程pid/status, /proc/进程pid/cmdline 文件开始获取进程信息,然后打印给你看,攻击者通过劫持getdents 等系统调用函数或libc中的readdir函数,实现对特定进程名进程的隐藏,以达到进程隐藏的目的 劫持getdents等系统调用函数或libc中的readdir函数等系统调用一般来说3个途径 1. 修改内核调用,比如getdents的源码 2. 修改libc库中readdir函数的源码 3. 利用环境变量LD_PRELOAD 或者配置ld.so.preload文件以使得恶意的动态库先于系统标准库加载,以达到架空系统标准库中相关函数的目的,最终实现对特定进程的隐藏 Linux木马隐藏方式 * 防护手段 1.检查LD_PRELOAD环境变量是否有异常 2.检查ld.so.preload等配置文件是否有异常 3.写个python小工具,直接读取/proc中的内容,对比ps等工具的结果,如果对不上,则存在被劫持的可能 4.使用sysdig(有开源版,可以监控ps等的调用过程,观察是否有恶意动态库被加载,strace有类似功能) 或者 prochunter * 伪造进程名类型 - 隐藏原理 在恶意代码中通过设置具有迷惑性的进程名字,以达到躲避管理员检查的目的 - 挂载覆盖型 利用mount -bind 将另外一个目录挂载覆盖至/proc/目录下指定进程ID的目录,我们知道ps,top等工具会读取/proc目录下的所有文件,获取进程信息,如果将进程ID的目录信息覆盖,则原来的进程信息将从ps的输出结果中隐匿 # Windows应急响应挂马篡改 * 挂马是指在获取网站或者网站服务器的权限后,在网页文件中插入一段恶意代码或者广告 常见的网页挂马方式有: - iframe框架挂马,就是加iframe标签 - script挂马,通过各种方法加载js代码 - 图片挂马,伪装成图片,内容是恶意代码 - Global.asax挂马,篡改入口文件挂马 - IIS URL重写 - 修改dll挂马 * 检测网站挂马工具 - URL Snooper:URL嗅探工具,会自动抓取网站中的连接 - D盾:Windows下webshell检测工具 - 超级字符串批量替换工具:查找文件中是否包含特定字符 - 超级文件监控工具:监控目录下发生改变的文件 * 清除恶意代码 - 清除网站中的恶意代码首先需要知道哪些文件被挂马了,判断方法如下: 1.通过直接查看代码,从代码中找出挂马代码 2.通过查看网站目录修改时间,通过时间进行判断 3.工具监控,查找恶意代码
迷茫的人生,需要不断努力,才能看清远方模糊的志向!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-12-17 HTB-靶机-RedCross
2020-12-17 HTB-靶机-Vault