Linux系统入侵排查(二)

简介: 本文介绍了Linux系统入侵排查的步骤,包括检查历史命令记录、可疑端口和进程、开机启动项以及定时任务。作者强调了了解这些技能对于攻防两端的重要性,并提供了相关命令示例,如查看`/root/.bash_history`记录、使用`netstat`分析网络连接、检查`/etc/rc.local`和`/etc/cron.*`目录下的可疑脚本等。此外,还提到了如何查看和管理服务的自启动设置,以判断是否被恶意篡改。文章旨在帮助读者掌握Linux服务器安全维护的基本技巧。

前言


版权声明:本文为本博主在CSDN的原创文章搬运而来,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                            

原文链接:https://blog.csdn.net/weixin_72543266/article/details/138620902


       对我处在学生时期的我来说,目前web渗透还是为主,但是还是需要对于蓝队相关的应急响应,等保测评等还是需要有一定的了解的,攻防兼备才能越站越勇嘛,linux入侵排查也能够让我更加熟悉liunx命令,本篇博文紧接上一篇博文开始进行.

为什么要做系统入侵排查

       当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些Linux服务器入侵排查的思路。

入侵排查思路

作为渗透小子一名,当然是通过kali来进行练习和总结了

入侵排查1

1.排查历史命令记录

       进入用户目录下,这里用户指的是,觉得可疑的用户或是要排查的用户,这里用root用户进行示例进入用户目录下后将需要查询的历史操作命令追加到,一个自己命名的txt文件中,然后自己查看,历史命令看是否存在可疑的命令.

cd /root/
cat .bash_history >> his.txt(自己命名)

image.gif

2.可疑端口排查

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

netstat -antlp|more

image.gif

image.gif

其中图中Local Address代表开放的端口,如图所示只开放了22,36029这两个端口,查看下pid所对应的进程文件路径,这里我用上图所示的1039进程做个示例,可以查看对应进程文件件的位置,如果发现可疑端口开放,可以查看对应的进程进行关闭进程

运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)

image.gif

image.gif

发现可疑的进程,通过下面的命令进行关闭

sudo kill -9 进程PID号

image.gif

3.可疑进程排查

这个其实上面的基本就处理了一部分了

使用ps命令,分析进程

ps aux | grep pid

image.gif

image.gif

  1. 第一列是进程ID(PID),例如911、1885和5836。
  2. 第二列是进程所属用户,例如message+、kali和root。
  3. 第三列是进程占用的CPU百分比,例如0.0、0.3和0.1。
  4. 第四列是进程占用的内存百分比,例如0.3、0.3和0.1。
  5. 第五列是进程占用的虚拟内存大小,单位为KB,例如11948、10632和6572。
  6. 第六列是进程占用的常驻内存大小,单位为KB,例如6144、6144和2304。
  7. 第七列是进程状态,例如Ss、Ss和S+。其中S表示休眠状态,s表示中断等待状态,+表示前台运行状态。
  8. 第八列是进程启动时间,例如13:29、13:35和17:10。
  9. 第九列是进程运行时间,例如0:01、0:01和0:00。
  10. 第十列是进程的命令行,例如/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile

4.开机启动项

基本使用:

4.1系统运行级别示意图:

运行级别 含义
0 关机
1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

4.2查看运行级别命令

runlevel

image.gif

┌──(root㉿kali)-[~]

└─# runlevel

N 5  代表我现在使用的是图形界面

4.3系统默认允许级别

vi /etc/inittab
id=3:initdefault 系统开机后直接进入哪个运行级别

image.gif

4.4.开机启动配置文件

/etc/rc.local

/etc/rc.d/rc[0~6].d

例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在 /etc/init.d 目录下,然后在 /etc/rc.d/rc*.d 中建立软链接即可

┌──(root㉿kali)-[~]

└─# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

入侵排查2:

1.启动项文件排查:

排查启动项文件夹,下面的是通过简化方式进行写的,主要看当然目录的位置  ,示例: more /etc/rc0.d

image.gif

more /etc/rc.local /etc/rc.d /etc/rc[0~6].d 
ls -l /etc/rc.d/rc3.d/

image.gif

2.定时任务排查

基本使用

1、利用crontab创建计划任务

基本命令

crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
如:/1 * echo "hello world" >> /tmp/test.txt 每分钟写入文件

image.gif

2、利用anacron实现异步定时任务调度

使用示例:每天运行 /home/backup.sh 脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash   /home/backup.sh  当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待7天。

3.入侵排查

重点关注以下目录中是否存在恶意脚本,查看方法和上面的一致,基本都是查看对应目录下是否有可疑的文件.

/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

image.gif

小技巧:

more /etc/cron.daily/* 查看目录下所有文件

image.gif

3.服务排查

服务自启动

3.1第一种修改方法:

chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level  2345 httpd on 开启自启动
chkconfig httpd on (默认level是2345)

image.gif

3.2第二种修改方法:

修改/etc/re.d/rc.local 文件  
加入 /etc/init.d/httpd start

image.gif

3.3第三种修改方法:

使用ntsysv命令管理自启动,可以管理独立服务和xinetd服务。

3.4入侵排查

1、查询已安装的服务:

RPM包安装的服务

chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
系统在3与5级别下的启动项
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"

image.gif

2.源码包安装的服务

查看服务安装位置 ,一般是在/user/local/   service httpd start   搜索/etc/rc.d/init.d/ 查看是否存在


总结

       对系统进行入侵排查也是比较费时间和精力的一次行动,本篇目前只记录这么多,后续会继续记录和总结.

相关文章
|
11月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
962 3
Linux系统禁用swap
|
11月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1561 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
1040 3
Linux系统初始化脚本
|
11月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1185 1
|
11月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1464 1
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
9902 0
|
关系型数据库 MySQL Linux
卸载、下载、安装mysql(Linux系统centos7)
卸载、下载、安装mysql(Linux系统centos7)
702 0
|
Linux
手把手教会你安装Linux系统
手把手教会你安装Linux系统
445 0
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
824 1
从头安装Arch Linux系统