该文章介绍了等保测评中的系统检查,包括端口、网络连接、关键文件、服务、启动项、进程、用户、历史命令、文件完整性和溯源分析等方面的检查。这些检查有助于排查服务器安全漏洞和攻击行为。
摘要由作者通过智能技术生成
有用
#等保测评#

系统检查

(1) 端口检查

主要用于排查服务器开了哪些端口,并且和哪些IP建立连接。

  • 查看所有TCP链接:netstat -tnlpa

  • 查看UDP链接:netstat -unlpa

  • 罗列TCP/UDP信息:lsof -i tcp/udp

  • 查看该PID进程对应信息,比如加载了哪些文件:lsof -p PID

2)网络连接检查

  • 查看已建立TCP连接:netstat -antlp | grep ESTABLISHED

  • 查看监听的端口:netstat -antlp | grep LISTEN

  • 查看是否存在反弹bash:netstat -antlp | grep EST | grep bash

  • 查看系统中root用户外连情况 :lsof -u root |egrep "ESTABLISHED|SYN_SENT|LISTEN"



(3)关键文件检查

DNS配置文件,以及主机与IP静态解析:cat /etc/resolv.conf

HOSTS文件,域名和IP的绑定:cat /etc/resolv.conf

(4)服务检查

centos7及ubuntu,通过以下命令可检查哪些服务还运行着:systemctl | grep -E "\.service.*running"

只显示服务名:systemctl | grep -E "\.service.*running" | awk -F. '{ print $1 }'

centos6可通过以下命令查看服务情况:chkconfig --list | grep on或service --status-all

(5)启动项检查

定时任务检查,如果不跟-u,则表示查看root用户的定时任务:crontab -u user -l

查看异步定时任务:cat /etc/anacrontab

定时任务配置文件保存于/etc/cron*开头路径里,按日、周、月分:more /etc/cron*

linux启动时分两大步骤:按级别加载/etc/rc(0-6).d目录下的启动脚本;然后加载/etc/rc.local。

/etc/rc(0-6).d下面实际上是软连接到/etc/init.d/下的文件,S开头表示启动脚本,K开头表示停止脚本:more /etc/rc.local

(6)进程检查

查看当前运行的进程,包括可执行文件路径、PID/PPID:ps -ef或ps -aux

显示实时进程状态,加-d 1,可修改刷新时间,默认为3秒。:top

只显示一次所有进程信息:top -b -n 1

查看某个进程对应的可执行文件路径,这边其实是一个软连接到真正文件:ls -al /proc/[pid]/exe

(7)用户检查

1. 查看用户登录命令

w : 详细查询已登录当前计算机的用户 命令格式:w [-fhlsuV] [用户名称] 不加任何参数,显示当前用户

who : 显示已登录当前计算机用户的简单信息

logname : 显示当前用户的登录名称

users : 用单独的一行显示出当前登录的用户

last : 显示近期用户登录情况

lastb : 列出登录系统失败的用户信息

lastlog : 查看用户上次登录的时间

2. 检查是否有UID为0的用户,这一步主要是为了攻击者克隆了一个超级用户来登录。more /etc/passwd | egrep -v '^#|^(\+:\*)?:0:0:::' | awk -F: '{if($3==0) print $1}'

3. 检查UID相同的用户,也是防止克隆用户:awk -F: '{a[$3]++}END{for(i in a)if(a>1)print i}' /etc/passwd

4. 查看哪些用户是可以登录的,这个主要观察/etc/passwd文件里用户结尾是否有/bin/bash或/bin/sh,因为该结尾表示可登录,并且以指定环境来执行命令。cat /etc/passwd | grep -E "/bin/(bash|sh)$" | awk -F: '{print $1}'

5. 查看空口令,查看shadow,影子文件会保存密码信息,如果第二列为空,则表示无密码。gawk -F: '($2=="") {print $1}' /etc/shadow

6. 排查是否允许空口令登录:more /etc/ssh/sshd_config |grep PermitEmptyPassword | grep -v "#"

7. 排查除root用户外,root组是否还有其他用户,其实就是检查GID是否为0,more /etc/group | grep -v '^#' | gawk -F: '{if ($1!="root"&&$3==0) print $1}'

(8)历史命令检查

历史增加的账号:history | egrep "(useradd|groupadd)" | grep -v grep

历史是否删除过账号:history | egrep "(userdel|groupdel)" | grep -v grep

可疑历史命令:使用过入侵扫描的操作行为,这个概率比较低,不会在目标服务器上装这些应用的,一般代理为主。history | grep -E "(whois|sqlmap|nmap|beef|nikto|john|ettercap|backdoor|proxy|msfconsole|msf)" | grep -v grep

过滤sz下载文件到本地命令history | grep sz | grep -v grep | awk '{print $3}'

数据库操作历史命令:more /root/.mysql_history

history查询:cat ~/.bash_history

(9)文件完整性检查

查找系统文件夹里的文件,查看七天内被修改过的的文件:find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -7

查找文件位置,并计算MD5提交威胁情报平台检查:whereis netstat和md5sum /usr/bin/netstat

02

溯源分析命令

登录成功more /var/log/secure* | grep "Accepted password"

登录失败:more /var/log/secure* | grep "Failed password"

SSH成功登录IP:grep 'Accepted' /var/log/secure | awk '{print $11}'

本机登录情况:more /var/log/secure* | grep -E "sshd:session.*session opened"

新增用户:more /var/log/secure* | grep "new user"

所有用户登录日志:last | grep pts | grep -vw :0

定时任务日志,定时任务日志会按日期存放,所以有多个需要检查。会记录定时任务历史运行过的记录。more /var/log/cron*

定时执行脚本,主要检查py/sh/pl脚本运行:more /var/log/cron* | grep -E "\.py|\.sh|\.pl"

下载软件情况,可以检查攻击者是否安装了新程序。more /var/log/yum* | grep Installed

卸载软件情况:more /var/log/yum* | grep Erased

可疑工具安装检查,检查nc/nmap等关键词:more /var/log/yum* | awk -F: '{print $NF}' | awk -F '[-]' '{print $1}' | sort | uniq | grep -E "(^nc|sqlmap|nmap|beef|nikto|john|ettercap|backdoor|proxy|msfconsole|msf)"

通过stat可查看文件属性,包括以上时间属性:stat file

监控与目标IP通信的进程:while true; do netstat -tnlpa|grep [ip];done

查找七天内被修改的以php为后缀的文件,七天前就是+7:find /var/www -mtime -7 -iname "*.php" | xargs ls -alt

查找七天内被访问的以php为后缀的文件,如cat file就会修改该时间。find /var/www -atime -7 -iname "*.php" | xargs ls -al

查找七天内被改变的以php为后缀的文件。find /var/www -ctime -7 -iname "*.php" | xargs ls -alt

举报/反馈

亿林小园做等保

483获赞 129粉丝
关注
0
0
收藏
分享