渗透测试基础 - - - linux入侵排查
排查思路
深入分析,查找入侵原因
检查隐藏帐户及弱口令
使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器
通过less /var/log/secure|grep 'Accepted'命令,查看是否有可疑 IP 成功登录机器
检查系统是否采用 默认管理端口
检查/etc/passwd文件,看是否有非授权帐户登录
检查恶意进程及非法端口
运行netstat -antp,查看服务器是否有未被授权的端口被监听,查看下对应的 pid
使用ps -ef和top命令查看是否有异常进程
检查恶意程序和可疑启动项
使用chkconfig --list和cat /etc/rc.local命令,查看开机启动项中是否有异常的启动服务
进入 cron 文件目录,查看是否存在非法定时任务脚本
检查第三方软件漏洞
如果您服务器内有运行 Web、数据库等应用服务,请您限制应用程序帐户对文件系统的写权限,同时尽量使用非 root 帐户运行
升级修复应用程序漏洞
Part1熟悉主机环境
首先,先对排查主机的基本信息有一个了解。
- uname -a
- cat /proc/version
- lsb_release -a
Part2运行进程排查
首先熟悉一下ps命令的参数:
- ps [选项]
-e 显示所有进程。
- -f 全格式。
- -h 不显示标题。
- -l 长格式。
- -w 宽输出。
- a 显示终端上的所有进程,包括其他用户的进程。
- r 只显示正在运行的进程。
- u 以用户为主的格式来显示程序状况。
- x 显示所有程序,不以终端机来区分。·
- 参数含义:
- 1.UID 用户ID
- 2.PID 进程ID
- 3.PPID 父进程ID
- 4.C CPU占用率
- 5.STIME 开始时间
- 6.TTY 开始此进程的TTY----终端设备
- 7.TIME 此进程运行的总时间
- 8.CMD 命令名
- ps aux
- 参数含义:
- USER //用户名
- %CPU //进程占用的CPU百分比
- %MEM //占用内存的百分比
- VSZ //该进程使用的虚拟內存量(KB)
- RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
- STAT //进程的状态
- START //该进程被触发启动时间
- TIME //该进程实际使用CPU运行的时间
- top (动态查看进程)
pstree(树形结构显示进程之间的关系
通过进程运行的命令、资源占用、位置等来查找可疑进程。查找到可以进程后可以使用ll /proc/[进程pid]来获取进程运行的路径。
查找到可以进程后可以使用kill -9 [进程pid]来杀死进程。
ps -p [pid] -o lstart(查看进程开放的时间)
- pstree -h [pid] -p -a 查看某个pid的进程树
Part3端口开放检查
netstat -antpl(查看开放端口)
可以通过判断开放的异常端口来进行排查,或通过state字段来判断有没有端口进行网络连接。
- lsof -i(查看正在进行的网络连接)
- lsof -p [pid]查看进程PID打开的文件
lsof -c [进程名]查看该进程打开的文件
- lsof -i:[端口号]查看该端口对应的进程
- fuser -n tcp [端口号]查看该端口对应的进程pid
Part4检查主机服务
service --status-all(枚举主机的所有服务)
Part5检查历史命令
- history
- cat ~/.bash_history
Part6查看计划任务
- crontab -l
- cat /etc/anacrontab 查看异步定时任务
- more /var/log/cron 查看计划任务日志
- more /var/spool/cron/*
Part7查看制定文件夹七天内被修改过的文件
- find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -alh
Part8扫描主机驱动程序
- lsmod
Part9查看攻击者是否在authorized_keys添加ssh私钥
- ll ~/.ssh
- cat ~/.ssh/root/authorized_keys
Part10日志排查
- /var/log/message 包括整体系统信息
- /var/log/auth.log 包含系统授权信息,包括用户登录和使用的权限机制等
- /var/log/userlog 记录所有等级用户信息的日志
- /var/log/cron 记录crontab命令是否被正确的执行
- /var/log/xferlog(vsftpd.log) 记录Linux FTP日志
- /var/log/lastlog 记录登录的用户,可以使用命令lastlog查看
- /var/log/secure 记录大多数应用输入的账号与密码,登录成功与否
- /var/log/wtmp 记录登录系统成功的账户信息,等同于命令last
- /var/log/faillog 记录登录系统不成功的账号信息,一般会被黑客删除 如果开启了一些服务,也需要对服务运行的日志进行排查
Part11登陆排查
- who (查看当前登录的用户)
- w(显示已登陆的用户,且在执行的命令)
- last (查看登录成功的用户)
- lastb(查看最近登录失败的用户)
- lastlog (查看所有用户最近登录的时间)
- cat /etc/passwd(查看用户信息)
排查passwd时,注意查看可登录shell的用户,即:shell为/bin/bash
- awk -F: '$3==0{print $1}' /etc/passwd #查看超级用户(uid=0)
Part12启动项排查
- chkconfig --list 列出所有开机启动项
- 主要排查的启动项有:
- /etc/rc.d/rc
- /etc/rc
- /etc/rc.local
- /etc/rc.d/rc.local
- /etc/rc.d/rc
- /etc/init/*.conf
- /etc/rc$runlevel.d/
- /etc/profile
- 点赞
- 收藏
- 关注作者
评论(0)