linux系统安全排查以及朔源应急响应技巧

10 篇文章 0 订阅
  1. linux应急
    1. 系统检查

1、端口检查

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

查看所有TCP链接

netstat -tnlpa

查看UDP链接

netstat -unlpa

也用于查看端口连接,但可以查看到发起的半连接,比如外发DOS攻击

lsof -i:22 -PnR

罗列TCP/UDP信息

lsof -i tcp/udp

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

lsof -p PID

2、关键文件检查

DNS配置文件,以及主机与IP静态解析

/etc/resolv.conf

HOSTS文件,域名和IP的绑定

/etc/hosts

下面两个文件,主要用于免密登录,使用以下命令可生成一对公私钥,上传私钥至目标,则可实现免密登录。

ssh-keygen -t rsa -P ''

公钥文件检查

/root/.ssh/*.pub

私钥文件检查

/root,ssh/id_rsa

3、服务检查

centos7及ubuntu,通过以下命令可检查哪些服务还运行着

systemctl | grep -E "\.service.*running"

只显示服务名

systemctl | grep -E "\.service.*running" | awk -F. '{ print $1 }'

centos6可通过以下命令查看服务情况

chkconfig --list | grep on

service --status-all

4、启动项检查

定时任务检查,如果不跟-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

5、进程检查

查看当前运行的进程,包括可执行文件路径、PID/PPID

ps -ef

ps -aux

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

top

top命令后,输入大写的P,按CPU排序

top命令后,输入大写的M,按内存排序。

输入q退出top。

只显示一次所有进程信息

top -b -n 1

查看某个进程对应的可执行文件路径,这边其实是一个软连接到真正文件

ls -al /proc/[pid]/exe

6、用户排查

查看已登录用户

w

检查是否有UID为0的用户,这一步主要是为了攻击者克隆了一个超级用户来登录。

more /etc/passwd | egrep -v '^#|^(\+:\*)?:0:0:::' | awk -F: '{if($3==0) print $1}'

攻击者在不知道root的密码的前提下,想使用root权限登录操作服务器,可创建用户,修改passwd文件里UID和GID均为0即可。

检查UID相同的用户,也是防止克隆用户

awk -F: '{a[$3]++}END{for(i in a)if(a[i]>1)print i}' /etc/passwd

查看哪些用户是可以登录的,这个主要观察/etc/passwd文件里用户结尾是否有/bin/bash或/bin/sh

,因为该结尾表示可登录,并且以指定环境来执行命令。

cat /etc/passwd  | grep -E "/bin/(bash|sh)$" | awk -F: '{print $1}'

查看空口令,查看shadow,影子文件会保存密码信息,如果第二列为空,则表示无密码。

gawk -F: '($2=="") {print $1}' /etc/shadow

排查是否允许空口令登录

more /etc/ssh/sshd_config |grep PermitEmptyPassword | grep -v "#"

排查除root用户外,root组是否还有其他用户,其实就是检查GID是否为0

more /etc/group | grep -v '^#' | gawk -F: '{if ($1!="root"&&$3==0) print $1}'

7、历史命令检查

应急还是渗透中都很有用

历史下载的脚本,通过wget/curl下载的后缀为sh/pl/py的脚本。

more /root/.bash_history | grep -E "((wget|curl).*\.(sh|pl|py))" | grep -v grep

历史增加的账号

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

历史下载到本地PC文件,sz可疑讲服务器上的文件下载到本地,很方便。

history | grep sz | grep -v grep | awk '{print $3}'

数据库操作历史命令

more /root/.mysql_history

8、文件完整性检查

主要侧重系统关键文件,因为是rootkit常用的手段,替换关键文件,进行隐藏等,如ifconfig/ls/cat/netstat。

替换netstat/lsof,可实现在使用时,会自动过滤不显示病毒进程和连接。

替换ls,可实现在查看文件时隐藏病毒文件。

查找文件位置,并计算MD5提交威胁情报平台检查

whereis netstat

md5sum /usr/bin/netstat

枚系统文件夹里的文件,查看七天内被修改过的的文件

find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -7

使用rkhunter查杀,系统命令(binary)检测,包括MD5校验等等,用的时候可能有些项告警,但会有误报情况,但一般误报项都固定,就是这个MD5校验问题。

chkrootkit

    1. 日志分析

登录成功

more /var/log/secure* | grep "Accepted password"

登录失败

more /var/log/secure* | grep "Failed password"

本机登录情况

more /var/log/secure* | grep -E "sshd:session.*session opened"

新增用户

more /var/log/secure* | grep "new user"

传输文件,这个其实是检测使用sz、rz命令传输文件的

more /var/log/message* | grep "ZMODEM:.*BPS"

除上述以外,下面命令也可以检查登录日志,对应日志文件是二进制保存无法直接查看。

所有用户登录日志

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)"

    1. 技巧

监控与目标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 -alt

查找七天内被改变的以php为后缀的文件。

find /var/www -ctime -7  -iname "*.php" | xargs ls -alt

1)当仅读取或访问文件时,access time 改变,而modify time ,change time 不会改变。

2)当修改文件内容时,modify time ,change time 会改变,access time 不一定改变。

3)当修改文件权限属性时,change time 改变,而access time ,modify time 不会改变。

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

stat file

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

it技术分享just_free

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值