系列文章目录
Web网络安全-----红蓝攻防之信息收集
Web网络安全-----Log4j高危漏洞原理及修复
前言
溯源在网络攻防中是极其重要的事情,笔者借最近做溯源这个契机,学习并总结一些Linux应急溯源常用命令,在后续学习过程中会不断更新
一、常用命令
1、账号相关
<1>查询特权用户特权用户(uid 为0):
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
root
<2>查询可以远程登录的帐号信息:
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
root:$1$VJkWOIro$gRi9wy.FrsUE/W5oc3vVS.:18644:0:99999:7:::
xxxxx:$1$VJkWOIro$gRi9wy.FrsUE/W5oc3vVS.:18644:0:99999:7::
<3>查看当前登录用户(tty 本地登陆 pts 远程登录) /var/log/utmp:
2、程序相关
<1>查看当前开放端口:
netstat -tnlp
<2>查看当前系统上运行的所有进程
ps -ef
<3>查找进程
//查看含有 a 的所有进程
ps aux | grep a
<4>查看进程实时情况
top
<5>查看cpu占用率前十的进程,互补top
ps aux --sort=pcpu | head -10
<6>杀死进程
kill 进程号
// 强制杀死进程
kill -9 进程号
3、日志相关
<1>日志默认存放位置:
/var/log/
日志文件 | 说明 |
---|---|
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/cups | 记录打印信息的日志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件 |
/var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
/var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
<2>一些日志命令
1.查看系统的成功登录、关机、重启等 /var/log/wtmp
last
2.查看登陆失败的用户日志 /var/log/btmp
lastb
3.#查看所有用户登陆日志 /var/log/lastlog
lastlog
4.#查看谁在使用某个端口
lsof -i :5001
5.#查看内部对外的网络连接
lsof -nPi
6.#集诊断、调试、统计一体的工具。`strace -f -p pid` 查看进行的行为
Strace
7.#Linux工具,如果系统命令被替换了可以使用此命令来查看系统相关信息。
busybox
<3>定位爆破root帐号的相关命令
1.定位爆破root帐号来源IP
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
#last命令,它会读取位于/var/log/wtmp的文件,并把该文件记录的登录系统的用户名单。
#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}'
#grep "useradd" /var/log/secure
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
<6>查询删除用户日志
# grep "userdel" /var/log/secure
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
4、定时任务相关
<1>排查以下文件定时文件
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
<2>#查看某目录下所有文件 <1>均可
more /etc/cron.daily/*
5、文本相关
<1>grep查找前后数据
1. 显示1.txt文件里匹配funk字串那行以及上下5行
grep -C 5 funk 1.txt
2.显示当前及前5行
grep -B 5 funk 1.txt
3.显示当前及后5行
grep -A 5 funk 1.txt
<2>grep查找含有某字符串的所有文件
grep -rn "funk" *
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
<3>显示文件几行
从第100行开始,显示200行,显示100~299行
cat shell.php | tail -n +100 | head -n 200
6、其他相关
<1>查看最近改动的各类脚本文件和其他文件
1.查找24小时内被修改的JSP文件
find ./ -mtime 0 -name "*.jsp"
find ./ -mtime 0 -name "*.php"
2.查看密码文件上一次修改的时间(最近改动)
stat /etc/passwd
3.查看除无法登录以外的用户,有无新增
cat /etc/passwd | grep -v nologin
4.查看哪些用户为root权限,有无新增
cat /etc/passwd | grep x:0
5.查看哪些用户使用shell
cat /etc/passwd | grep /bin/bash
<2>域名hosts
vim /etc/hosts
总结
不积跬步,无以至千里.不积小流,无以成江海