-查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd-查找远程可以登录的账户
awk '/\$1|\$5|\$6/{print $1}' /etc/shadow$1:MD5(长度 22个字符)
$5:SHA-256(长度 43 个字符)
$6:SHA-512(长度86 个字符)
-检查sudo权限
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL"
-删除或锁定账号, 通过上面的步骤可以找到可疑的账号
-禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
usermod -L admin
-删除user用户
userdel admin
-将删除root用户,并且将/home目录下的root目录一并删除
userdel -r admin
-查看当前登录系统的信息
who #查看当前登录用户(tty本地登陆 pts远程登录)
w #查看系统信息,想知道某一时刻用户的行为
uptime #查看登陆多久、多少用户,负载
-检查异常端口
-使用netstat 网络连接命令,分析可疑端口、IP、PID等信息。
netstat -tunlp
-抓包分析
-精简模式显示 10个包
tcpdump -c 10 -q
-使用ps命令检查可疑的进程
ps -ef
-查超系统中占用资源最高的资源
top
-发现异常进一步检查
-查看该进程启动的完整命令行
ps eho command -p $PID
-查看该进程启动时候所在的目录
readlink /proc/$PID/cwd
-查看下pid所对应的进程文件路径
ls -l /proc/$PID/exe
-查看该进程启动时的完整环境变量:
strings -f /proc/$PID/environ | cut -f2 -d ''
-列出该进程所打开的所有文件
lsof -p $PID
-检查开机自启的服务
systemctl list-unit-files --type=service | grep "enabled"
-chkconfig就是CentOS6以前用来控制系统服务的工具,查看服务自启动状态
]chkconfig --list | grep "3:on\|5:on"
-命令查看下开机启动项中是否有异常的启动服务
cat /etc/rc.local
-检查计划任务,需要重点关注以下目录中是否存在恶意脚本
/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/*
-检查系统的异常文件, 如/tmp目录下的文件,同时注意隐藏文件夹,以.为名的文件夹具有隐藏属性
ls -al
-查找1天以内被访问过的文件, -iname不区分大小写,-atime最近一次被访问的时间,-type文件类型
find /opt -iname "*" -atime 1 -type f
-检查历史命令, 查看被入侵后,在系统上执行过哪些命令,使用root用户登录系统
vim /root/.bash_history
-设置保存1万条命令
sed -i 's/HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
-history加固
vim /etc/profile
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP"=="" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami`"
#为防止会话退出时覆盖其他会话写到HISTFILE的内容
shopt -s histappend
export PROMPT_COMMAND="history -a"
//配置生效source /etc/profile
-查找登录系统失败的20个账号
lastb | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 20-定位有多少IP在爆破主机的root帐号
grep "Failed password for root" /var/log/secure | sort | uniq -c | sort -nr | more
-查看所有重启日志信息
last reboot
-查看系统正常的运行时间
uptime -s
-查看哪些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
-查看哪些IP登录成功了
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more-登录成功的日期,用户名,IP
gerp "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'