Linux下黑客入侵排除步骤


Linux下黑客入侵排除步骤

文章插图
 
0x00 前言
当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失 。
针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些linux服务器入侵排查的思路 。
0x01 入侵排查思路
1.1 账号安全
基本使用:
1、用户信息文件/etc/passwdroot:x:0:0:root:/root:/bin/bashaccount:password:UID:GID:GECOS:directory:shell用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell注意:无密码只允许本机登陆,远程不允许登陆2、影子文件/etc/shadowroot:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留who 查看当前登录用户(tty本地登陆 pts远程登录)w 查看系统信息,想知道某一时刻用户的行为uptime 查看登陆多久、多少用户,负载入侵排查:
1、查询特权用户特权用户(uid 为0)[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd2、查询可以远程登录的帐号信息[root@localhost ~]# awk '/$1|$6/{print $1}' /etc/shadow3、除root帐号外,其他帐号是否存在sudo权限 。如非管理需要,普通帐号应删除sudo权限[root@localhost ~]# more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)"4、禁用或删除多余及可疑的帐号 usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头 userdel user 删除user用户 userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除1.2 历史命令
基本使用:
通过.bash_history查看帐号执行过的系统命令1、root的历史命令histroy2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令为历史的命令增加登录的IP地址、执行命令时间等信息:1)保存1万条命令sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile2)在/etc/profile的文件尾部添加如下行数配置信息:######jiagu history xianshi#########USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiexport HISTTIMEFORMAT="%F %T $USER_IP `whoami` "shopt -s histAppendexport PROMPT_COMMAND="history -a"######### jiagu history xianshi ##########3)source /etc/profile让配置生效生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile3、历史操作命令的清除:history -c但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录 。入侵排查:
进入用户目录下cat .bash_history >> history.txt1.3 检查异常端口
使用netstat 网络连接命令,分析可疑端口、IP、PID
netstat -antlp|more查看下pid所对应的进程文件路径,运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)1.4 检查异常进程
使用ps命令,分析进程
ps aux | grep pid1.5 检查开机启动项
基本使用:
系统运行级别示意图:
| 运行级别 | 含义 | | :-----------: | :--------------------------: | | 0 | 关机 | | 1 | 单用户模式,可以想象为windows的安全模式,主要用于系统修复 | | 2 | 不完全的命令行模式,不含NFS服务 | | 3 | 完全的命令行模式,就是标准字符界面 | | 4 | 系统保留 | | 5 | 图形模式 | | 6 | 重启动 |
查看运行级别命令 runlevel
系统默认允许级别
vi /etc/inittabid=3:initdefault 系统开机后直接进入哪个运行级别开机启动配置文件
/etc/rc.local/etc/rc.d/rc[0~6].d例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的 。
入侵排查:
启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
1.6 检查定时任务
基本使用
1、利用crontab创建计划任务
  • 基本命令
crontab -l 列出某个用户cron服务的详细内容


推荐阅读