应急响应基础-Linux篇
关键目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/etc/passwd 用户信息文件
/etc/crontab 定时任务文件
/etc/anacrontab 异步定时任务文件
/etc/rc.d/rc.local 开机启动项
/var/log/cron 定时任务执行日志
/var/log/secure 验证、授权等日志
/var/log/lastlog 所有用户最近登录信息,使用lastlog查看
/var/log/btmp 登录失败日志,使用last命令查看
/var/log/wtmp 包含用户登录日志,使用last命令查看
/var/log/utmp 当前登录系统的用户信息,使用last命令查看
|
常用命令
查看进程资源占用: top
查看进程: ps -aux
查看进程打开的文件,打开文件的进程,进程打开的端口: lsof
显示系统用户最近的登录信息: last
显示错误的尝试登录信息: lastb
显示所有用户最近的登录信息:lastlog
查看网络连接: netstat -antlp
查找符合条件的字符串: grep
查看定时任务: crontab -l 、 cat /etc/crontab
查看历史命令: history 、 cat ~/.bash_history

查看当前目录下所有文件并排序: ls -alt
校验RPM软件包: rpm -Va 、 dpkg -verify
1
2
3
4
5
6
7
8
|
S:表示对应文件的大小(Size)不一致;
M:表示对应文件的 mode 不一致;
5:表示对应文件的 MD5 不一致
D:表示文件的 major 和 minor 号不一致
L:表示文件的符号连接内容不一致
U:表示文件的 owner 不一致
G:表示文件的 group 不一致
T:表示文件的修改时间不一致
|
查看文件(文件夹)详细信息: stat
| 简名 |
全名 |
中文名 |
含义 |
| atime |
access time |
访问时间 |
文件中的数据库最后被访问的时间 |
| mtime |
modify time |
修改时间 |
文件内容被修改的最后时间 |
| ctime |
change time |
变化时间 |
文件的元数据发生变化。比如权限,所有者等 |
查找当前目录下,指定天数内修改的指定类型(or名称)文件:
1
|
find ./ -mtime 0 -name *.php
|
查找当前目录下,指定天数内新增的指定类型(or名称)文件:
1
|
find ./ -ctime 0 -name *.php
|
登录成功的IP:
1
|
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -rn | more
|
定位有爆破行为的IP:
1
|
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -rn | more
|
查看隐藏进程:
1
2
3
4
5
|
ps -ef | awk '{print}' | sort -n | uniq > 1
ls /proc/ | sort -n | uniq > 2
diff 1 2
|
应急工具
BusyBox
chkrootkit
The Rootkit Hunter project (sourceforge.net)
Web日志分析
Web日志存放位置
1、Apache
在 httpd.conf 和引用的 *.conf 文件中查找 CustomLog 、 logs/access.log 、 combined
1
2
3
4
|
说明:
1、CustomLog 访问日志配置指令
2、logs/access.log 访问日志记录文件
3、combined 日志格式
|
2、Nginx
在 nginx.conf 或引用的 *.conf 文件中查找 access_log 、 logs/access.log 、 main
1
2
3
4
|
说明:
1、access_log 访问日志配置指令
2、logs/access.log 访问日志记录文件
3、main 日志格式
|



常规黑客攻击思路

Web应急思路

找到webshell -> 通过webshell文件名从web日志中查找webshell访问日志 ->
文件内容中的恶意函数:
1
2
3
|
PHP:eval(、system(、assert( 等
JSP:getRunTime(、FileOutputStream( 等
ASP:eval、execute(、ExecuteGlobal( 等
|
Web日志统计
查看每个IP地址访问次数:
1
|
cat access.log | awk '{print $1}' | sort | uniq -c
|
访问URL排序:
1
|
cat access.log | awk '{print $11}' | sort | uniq -c | sort -rn | more
|
访问指定资源日志:
1
|
cat access.log | awk '{print $7}' | grep /admin | sort | uniq -c | sort -rn | more
|