linux应急响应排查手册

月影
2023-08-20 / 0 评论 / 10 阅读 / 正在检测是否收录...

帐号安全

linux下攻击者一般不添加帐号,动作大

who
w
uptime
last

禁用或删除多余和可疑的帐号

sudo usermod --expiredate 1 username #禁止登录
sudo userdel -r username #删除帐号
awk -F: '($3 < 1000) {print $1,$3}' /etc/passwd #排查是否存在可疑帐号

历史命令

history

各用户家目录的.bash_history文件

端口

分析可疑端口、ip、pid等信息

netstat -tnlp

ss -tnlp

进程

ps -aux

开机启动项

systemctl list-unit-files --type=service #ubuntu

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

定时任务

crontab -l

/var/spool/cron/*

/etc/cron/*

服务

chkconfig —list #contos

日志

日志默认存放位置:/var/log/*

配置文件:/etc/rsyslog.conf,/etc/syslog.conf

日志服务:service auditd status

last

lastlog

lastb

ssh日志

/var/log/auth.log #ubuntu

/var/log/secure

查看登陆成功的ip

grep “Accepted “ /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more #ubuntu

grep ‘Accepted’ /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr #centos

中间件日志

C:\WINDOWS\system32\LogFiles #iis

/etc/httpd/logs/ #httpd

/var/log/apache2或/usr/local/apache/logs #apache,具体查看httpd.conf文件中的定义路径

/var/log/nginx/access.log #nginx

localhost_access.log #tomcat,具体查看conf/logging.properties文件中的定义路径

$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log #weblogic9,$MW_HOME weblogic安装目录

$MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log #weblogic8

文件

可疑文件

find / -ctime -2 #查看72小时内新增的文件

find ./ -mtime 0 -name “*.jsp” #查看24小时内修改的文件

find / *.jsp -perm 4777 #查看权限为777的文件

find ./ -type f -perm /u+x -mtime -10 #查找最近10天内修改过的具有可执行权限的文件

安全设备

态势感知 #蜜罐 #防火墙 #ips #ids #waf

查看cpu占用率

查看cpu占用率的目的是为了查清是哪个进程占用cpu过高(针对挖矿)

top -c -o %CPU
htop -t

查看cpu占用前五的进程

ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5

内存占用率

top -c -o %MEM
htop -t

查看内存占用前五的进程
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5

网络占用率

iftop # 需要安装,root权限运行,不会展示进程id
nethogs # 需要安装,root权限运行,展示进程id
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr # 查看本地网卡ip连接数(源ip)
ss -ntu | awk '{print $6}' | cut -d ":" -f1 | sort | uniq -c | sort -nr # 查看目的ip连接数(目的ip)

外连ip

根据目的ip查找
netstat -pantu | grep 1.1.1.1
netstat -pantu | grep 3389
lsof -i:3389 # root权限
根据本机ip查找
netstat -pantu | grep 3389
lsof -i:3389

寻找恶意样本

获取PID-找到恶意文件路径
找到了恶意文件-PID

根据进程名字或者部分字符串获取pid

pidof "name"
ps -aux | grep "name"
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
pgrep -f "name"

根据pid获取进程的详细信息

lsof -p PID # root权限
pwdx PID # root权限,获取该PID的进程启动时候的目录,也就是恶意文件启动的路径
systemctl status PID # 获取这个进程的status信息
cat /proc/PID/maps # 输出指定进程的内存映射信息
ls -al /proc/1505945/exe # 输出指定进程所执行的程序的绝对路径
cat /proc/$$/mountinfo # 查看当前进程所挂载的文件系统信息,其中,$$ 表示当前进程的进程 ID (PID)。

查看线程

ps H -T -p PID # pid是进程id,spid是线程id,CMD 表示进程/线程的命令行
ps -Lf PID # 显示指定进程中各个线程的信息
pstree -agplU # 显示系统中所有的进程关系

根据文件找PID

lsof | grep FILENAME
lsof FILENAME
fuser FILENAME # 用于查找使用特定文件或套接字的进程的命令

确定程序运行时间

ps -eo pid,lstart,etime,cmd | grep PID

对比恶意文件的创建时间
stat FILENAME
ls -al FILENAME

处理异常进程

1、从服务器上下载样本 2、病毒在线分析 3、进程查杀

1、查看是否存在子进程
ps ajfx
systemctl status

2、如果无子进程
kill -9 PID

3、如果存在子进程
kill -9 -PID

删除恶意文件

1、查看进程是否占用

lsof FILENAME
2、如果遇到a和i属性导致文件不可删除

chattr -a
chattr -i
3、奇怪文件名导致不能删除

使用inode节点进行删除
ls -li FILENAME # 查看inode

删除文件
find ./* -inum INODE -delete
find ./ -inum INODE -exec rm {} \;
find ./* -inum INODE -exec rm -i {} \; # 提示是否删除
find ./* -inum INODE -exec rm -f {} \; # 强制删除
find ./* -inum INODE | xargs rm -rf
rm find ./* -inum INODE
大部分的应急事件的流程大概需要的命令也就是这些了,针对不同的事件还有一些区别:

netstat 中TCP连接状态的示例

状态    类型    描述
LISTEN    TCP监听端口    侦听状态。表示该端口正在等待对端的连接,以进行通信。
SYN_SENT    TCP传输控制协议状态    已经发送连接请求。表示 TCP 连接已经被发起,但是尚未收到确认。
SYN_RECV    TCP传输控制协议状态    正在接收连接请求。表示 TCP 连接已经被接收,正在等待确认。通常在服务器上才会出现,表示已经接收到客户端的请求。
ESTABLISHED    TCP传输控制协议状态    表示 TCP 连接已经建立,正在通信中。
FIN_WAIT1    TCP传输控制协议状态    表示 TCP 连接已经被关闭,在等待对方关闭连接的请求。
FIN_WAIT2    TCP传输控制协议状态    表示 TCP 连接已经被关闭,在等待对方关闭连接的请求,或者正在从对方接收最终确认。
TIME_WAIT    TCP传输控制协议状态    表示 TCP 连接已经被关闭,并且所有数据都传输完毕,正在等待一段时间以确保所有分组都得到处理。
CLOSE_WAIT    TCP传输控制协议状态    表示 TCP 连接已经被关闭,但是本地应用程序尚未关闭连接。
LAST_ACK    TCP传输控制协议状态    已经发送关闭请求,正在等待对方的关闭请求。
CLOSING            TCP传输控制协议状态    表示 TCP 连接正在关闭过程中。

linux日志位置

日志位置    描述
/var/log/message    核心系统日志文件,包含系统启动引导、系统运行状态和大部分错误信息等。
/var/log/dmesg    核心启动日志,包含系统启动时硬件相关信息。
/var/log/auth.log或 /var/log/secure    认证日志,记录成功的登录、失败的登录尝试和认证方式。
/var/log/spooler    UUCP 和 news 设备相关的日志信息。
/var/log/cron    定时任务日志信息。
/var/log/maillog    邮件活动记录。
/var/log/boot    系统引导日志。
/var/log/wtmp和 /var/run/utmp    记录用户登录时间。(last)
/var/log/kern    内核的错误和警告数据记录,用于排除与定制内核相关的故障。
/var/log/btmp    记录错误登录日志,是二进制文件。(lastb)
/var/log/cups    记录打印信息的日志。
/var/log/lastlog    记录系统中所有用户最后一次登录时间的日志,是二进制文件。(lastlog)
/var/log/rpmpkgs    记录系统中安装各 rpm 包列表信息。
0

评论 (0)

取消