首页 > 系统相关 >Linux系统排查

Linux系统排查

时间:2023-03-28 13:15:40浏览次数:33  
标签:文件 sshd grep 登录 etc 系统 cron 排查 Linux

排查进程

分析可疑的端口、IP、PID及程序进程:
netstat -anptl
lsof
ps aux | grep 进程名称或ID
lsof -i:1677 查看指定端口对应的程序
lsof -p 1234 检查pid号为1234进程调用情况
strace -f -p 1234 跟踪分析pid号为1234的进程
lsof -g gid 找恶意文件关联的lib文件
ps -aux或ps -ef
pstree -a
获取进程pid后可cd到/proc/对应pid/fd
是否存在可疑的隐藏进程:
ps -ef | awk '{print}' | sort -n | uniq >1
ls /proc | sort -n |uniq >2
diff 1 2
top

排查文件

find /etc –ctime n –print 在/etc查找n天以前文件状态被修改过的所有文件
find /etc –mtime n –print 在/etc查找n天以前文件内容被修改过的所有文件

查找72小时内新增的文件:
find / -ctime -2
文件日期、新增文件、可疑/异常文件、最近使用文件、浏览器下载文件
/var/run/utmp 有关当前登录用户的信息记录
/etc/passwd 用户列表
/tmp 临时目录
~/.ssh
/etc/ssh
查看文件:
ls -alt | head -n 10
查找24小时内被修改的JSP文件:
find ./ -mtime 0 -name "*.jsp"
根据确定时间去反推变更的文件:
ls -al /tmp | grep "Feb 27"
查找777的权限的文件:
find / *.jsp -perm 777
隐藏文件.xxx
分析sshd 文件是否包括IP信息:
strings /usr/bin/.sshd | egrep '[1-9]{1,3}.[1-9]{1,3}.'
更改:
find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime 0
访问:
find /tmp -iname "*" -atime 1 -type f
命令目录

排查历史命令

bash中默认命令记录为1000个。这些命令都保存在家目录下的.bash_history中。
设置时间戳:在/etc/profile中添加命令export HISTTIMEFORMAT="%F %T "

img

排查日志

使用w命令查看utmp日志,获得当前系统正在登录帐户的信息及来源
使用last命令查看wtmp日志,获得系统前N次登录记录

排查用户

last
img

uptime 查看当前用户登陆时间
img

/etc/shadow 密码登陆相关信息

/etc/sudoers sudo用户列表

/etc/passwd

格式:用户名:密码:用户ID:组ID:用户说明:家目录:登录之后shell
img

查看UID为0的帐号:
awk -F: '{if($3==0)print $1}' /etc/passwd
查看能够登录的帐号:
cat /etc/passwd | grep -E "/bin/bash$"
awk '/$1|$6/{print $1}' /etc/shadow
lastlog 系统中所有用户最近一次登录信息
lastb 用户错误的登录列表
more /etc/sudoers | grep -v "#|$" | grep "ALL=(ALL)"
who 查询utmp文件并报告当前登录的每个用户
w 查询utmp文件并显示当前系统中每个用户和它所运行的进程信息
users 打印当前登录的用户,每个用户名对应一个登录会话。如果一个用户不止一个登录会话,其用户名显示相同次数

排查端口

查看端口被占用情况:

netstat -ano|findstr "80"

1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4、TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

排查自启动

~/.bashrc rc.local
/etc/init.d
chkconfig
chkconfig --list | grep "3:on|5:on"
/etc/init.d/rc.local
/etc/rc.local
/etc/init.d/ 开机启动项
/etc/cron* 定时任务

排查计划任务

crontab -l
crontab /etc/cron*
crontab -u root -l
cat /etc/crontab
ls /etc/cron.*
/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/*
/var/log/cron*

检查SSH后门:
1)比对ssh的版本
ssh -V
2)查看ssh配置文件和/usr/sbin/sshd的时间:
stat /usr/sbin/sshd
3)strings检查/usr/sbin/sshd,是否有邮箱信息
4)通过strace监控sshd进程读写文件的操作
一般的sshd后门都会将账户密码记录到文件,可以通过strace进程跟踪到ssh登录密码文件。
ps axu | grep sshd | grep -v grep
root 65530 0.0 0.1 48428 1260 ? Ss 13:43 0:00 /usr/sbin/sshd
strace -o aa -ff -p 65530
grep open aa* | grep -v -e No -e null -e denied| grep WR
aa.102586:open("/tmp/ilog", O_WRONLY|O_CREAT|O_APPEND, 0666) = 4

标签:文件,sshd,grep,登录,etc,系统,cron,排查,Linux
From: https://www.cnblogs.com/KAKSKY/p/17264760.html

相关文章