<返回更多

Linux服务器入侵检测排查方法

2020-08-15    
加入收藏

1、账号安全

基本使用:

1 )用 户 信 息 文 件 /etc/passwd root:x:0:0:root:/root:/bin/bash

account:password:UID:GID:GECOS:directory:shell

用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell 注:无密码只允许本机登陆,远程不允许登陆

2)影子文件/etc/shadow

root:$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/passwd

2)查询可以远程登录的帐号信息

[root@localhost ~]# awk '/$1|$6/{print $1}' /etc/shadow

3)除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目录一并删除

2、文件排查

1)敏感目录的文件分析[类/tmp 目录,命令目录/usr/bin /usr/sbin 等]

ls用来显示目标列表

 

2)查看 tmp 目录下的文件:ls –alt /tmp/

Linux服务器入侵检测排查方法

 

3)查看开机启动项内容:ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d的软链接

Linux服务器入侵检测排查方法

 

基本使用:

系统运行级别示意图:

Linux服务器入侵检测排查方法

 

入侵排查:

启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d

4)按时间排序查看指定目录下文件:ls -alt | head -n 10

Linux服务器入侵检测排查方法

 

针对可疑文件可以使用 stat 进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。

(1) Access Time:简写为 atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。

(2) Modify Time:简写为 mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。

(3) Change Time:简写为 ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks 数。

Linux服务器入侵检测排查方法

 

5)查看历史命令记录文件~/.bash_history

查找~/.bash_history 命令执行记录,主要分析是否有账户执行过恶意操作系统;命令在 linux 系统里,只要执行过命令的用户,那么在这个用户的 HOME 目录下,都会有一个.bash_history 的文件记录着这个用户都执行过什么命令;

Linux服务器入侵检测排查方法

 

那么当安全事件发生的时候,我们就可以通过查看每个用户所执行过的命令,来分析一下这个用户是否有执行恶意命令,如果发现哪个用户执行过恶意命令, 那么我们就可以锁定这个线索,去做下一步的排查。

基本使用:

通过.bash_history查看帐号执行过的系统命令

①root的历史命令

histroy

②打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令

为历史的命令增加登录的IP地址、执行命令时间等信息:

a)保存1万条命令

sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

b)在/etc/profile的文件尾部添加如下行数配置信息:

######jiagu history xianshi#########

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` " shopt -s histAppend

export PROMPT_COMMAND="history -a"

######### jiagu history xianshi ##########

c)source /etc/profile让配置生效

生成效果: 12018-07-10 19:45:39 192.168.204.1 root source /etc/profile

③历史操作命令的清除:history -c

注:此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。

入侵排查:

进入用户目录下

cat .bash_history >> history.txt

6)查看操作系统用户信息文件/etc/passwd

查找/etc/passwd 文件, /etc/passwd 这个文件是保存着这个 linux 系统所有用户的信息,通过查看这个文件,我们就可以尝试查找有没有攻击者所创建的用户,或者存在异常的用户。我们主要关注的是第 3、4 列的用户标识号和组标识号,和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程序如果是设置为 nologin 的话,那么表示这个用户是不能登录的,所以可以结合我们上面所说的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令解释程序不是 nologin 的用户, 然后再到这些用户的用户主目录里, 找到bash_history,去查看这个用户有没执行过恶意命令。

Linux服务器入侵检测排查方法

 

/etc/passwd 中一行记录对应着一个用户,每行记录又被冒号(:)分隔为 7 个字段, 其格式和具体含义如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

 

7)查看新增文件

find:在指定目录下查找文件

 

例:find ./ -mtime 0 -name "*.php"(查找 24 小时内被修改的 php 文件)

Linux服务器入侵检测排查方法

 

find / -ctime 2(查找 72 小时内新增的文件)

Linux服务器入侵检测排查方法

 

8)特殊权限的文件查看

查找 777 的权限的文件:find / *.jsp -perm 4777

Linux服务器入侵检测排查方法

 

9)隐藏的文件(以 "."开头的具有隐藏属性的文件)

注:在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件;

3、端口、进程排查

1)使用netstat 网络连接命令,分析可疑端口、IP、PID

netstat -antlp|more

查看下pid所对应的进程文件路径:运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)

netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

选项参数:

-a 显示所有连线中的 Socket。

-n 直接使用 IP 地址,而不通过域名服务器。

-t 显示 TCP 传输协议的连线状况。

-u 显示 UDP 传输协议的连线状况。

-v 显示指令执行过程。

-p 显示正在使用 Socket 的程序识别码和程序名称。

-s 显示网络工作信息统计表。

Linux服务器入侵检测排查方法

 

2)根据 netstat 定位出的 pid,使用 ps 命令,分析进程

-a 代表 all。同时加上 x 参数会显示没有控制终端的进程

-aux 显示所有包含其他使用者的行程(ps -aux --sort -pcpu | less 根据 cpt 使用率进行排序)

-C 显示某的进程的信息

-axjf 以树形结构显示进程

 

ps aux | grep pid | grep –v grep

Linux服务器入侵检测排查方法

 

将 netstat 与 ps 结合:

Linux服务器入侵检测排查方法

 

4、日志排查

1)查看系统用户登录信息

a)使用 lastlog 命令,系统中所有用户最近一次登录信息。

Linux服务器入侵检测排查方法

 

b)使用 lastb 命令,用于显示用户错误的登录列表;

c)使用 last 命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp);

Linux服务器入侵检测排查方法

 

utmp 文件中保存的是当前正在本系统中的用户的信息。

wtmp 文件中保存的是登录过本系统的用户的信息。

/var/log/wtmp 文 件 结 构 和 /var/run/utmp 文 件 结 构 一 样 , 都 是 引 用

/usr/include/bits/utmp.h 中 的 struct utmp;

Linux服务器入侵检测排查方法
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>