目录
2.2.1.2.打开/home各账号目录下的.bash_history,查看普通账号的历史命令
1.黑客入侵后的利用思路
黑客入侵后的利用思路可以包括以下几个方面:
- 篡改网页:查找对应网站首页文件路径、查看文件时间、内容。
- 创建超级用户:查看password、shadow文件时间、内容;查看登录成功时间和不成功事件查看机器当前登录的全部用户;查看机器创建以来登陆过的用户;查看机器所有用户的连接时间(小时);查看历史命令;查看ssh远程连接情况:黑客删除登录日志文件(rm -rf /var/log/secure)、防守者恢复被黑客删除的文件(lsof grep /var/log/secure)
- 挖矿:查询异常进程所对应的执行脚本文件 ,top命令查看异常进程对应的PID
- 内网渗透:攻击者利用防守:反弹shell、植入cs/ms木马;防守思路:查看异常流量;使用tcpdump抓取网络包查看流量情况
2.入侵排查思路
2.1.账号安全
2.1.1.用户信息文件/etc/passwd
检查是否存在异常用户或未知用户。
关注用户权限设置,特别是特权用户(如root)。
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组id:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登录,不允许远程登录
2.1.2.影子文件/etc/shadow
影子文件存储了用户的加密密码信息。
检查密码字段是否被篡改或存在异常。
注意:直接查看/etc/shadow文件需要root权限,且出于安全考虑,通常不会直接显示密码哈希值。
root:$6$oGLFhf899ckdeMC2p3ZetrE$X485ouEWFSEmSgsWEH78423UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到警告天数:密码过期之后的宽限天数:账号失效时间:保留
2.1.3.入侵排查
2.1.3.1.排查当前系统登录信息
使用who
或w
命令查看当前登录用户。
awk文本处理工具,用于模式扫描和处理语言
who #查看当前登录用户(tty表示本地登录,pts远程登录)
w #查看系统信息,想知道某一时刻用户的行为
uptime #查看登录多久、多少用户、负载
awk -F: '$3==0{print $1}' /etc/passwd
-F来指定分隔符,默认的字段分隔符是任意空白字符(空格或者TAB)
awk的数据字段变量:
$0表示整行文本
$1表示文本中第一个数据字段
$2表示文本中第二个数据字段
$n表示文本中第n个数据字段
awk的用-F来指定分隔符
awk命令的完整语法:
awk ‘BEGIN{commands}pattern{commands}END{commands}’ file1
BEGIN是处理数据前执行的命令,END是处理数据后执行的命令,commands指的是awk里 面的子命令,并不是shell中的mkdir、ls等命令
2.1.4.2.查询可以远程登录的账号信息
检查/etc/ssh/sshd_config
文件中的AllowUsers
和DenyUsers
设置
grep -E '^AllowUsers|^DenyUsers' /etc/ssh/sshd_config
awk '/\$1|\$6/{print $1}' /etc/shadow
除root账号外,其他账号是否存在sudo权限,如非管理需要,普通账号应删除sudo权限。
more /etc/sudoers |grep -v "^#|^$" |grep "ALL=(ALL)"
usermod -L user #禁用账号,账号无法登录,/etc/shadow第二栏为!开头
userdel user #删除user用户
userdel -r user #将删除user用户,并且将/home目录下的user目录一并删除
2.2.历史命令
2.2.1.基本使用
2.2.1.1.root历史命令
history
使用history命令查看root用户的历史命令。
2.2.1.2.打开/home各账号目录下的.bash_history,查看普通账号的历史命令
为历史的命令增加登录的IP地址、执行命令时间等信息。将username
替换为具体用户的用户名。
cat /home/username/.bash_history
2.2.1.3.历史操作命令清除
清除当前shell会话的历史记录,要清除所有用户的历史记录,可以删除每个用户主目录下的.bash_history
文件。
history -c #此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
2.2.2.入侵排查
检查历史命令中是否存在异常操作,如未知命令、系统修改命令等
进入用户目录下:
cat .bash_history >> history.txt
2.3.检查异常端口
使用netstat
或ss
命令检查当前系统开放的端口,分析可疑端口、ip、PID
netstat -antlp|more
# 或
ss -tuln
关注非标准端口和未知服务的端口
2.4.检查异常进程
使用ps
命令查看当前系统中的进程。