`
yanghzaini
  • 浏览: 7506 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

linux系统被植入木马的排查流程

阅读更多
一、是否入侵检查
1)检查系统日志
检查系统错误登陆日志,统计IP重试次数(last命令是查看系统登陆日志,比如系统被reboot或登陆情况)
[root@localhost ~]# last

2)检查系统用户
查看是否有异常的系统用户
[root@localhost ~]# cat /etc/passwd

查看是否产生了新用户,UID和GID为0的用户
[root@localhost ~]# grep "0" /etc/passwd

查看passwd的修改时间,判断是否在不知的情况下添加用户
[root@localhost ~]# ls -l /etc/passwd

查看是否存在特权用户
[root@localhost ~]# awk -F: '$3==0 {print $1}' /etc/passwd

查看是否存在空口令帐户
[root@localhost ~]# awk -F: 'length($2)==0 {print $1}' /etc/shadow

3)检查异常进程
注意UID为0的进程
使用ps -ef命令查看进程

察看该进程所打开的端口和文件
[root@localhost ~]# lsof -p pid命令查看

检查隐藏进程
[root@localhost ~]# ps -ef | awk '{print }' | sort -n | uniq >1
[root@localhost ~]# ls /porc |sort -n|uniq >2
[root@localhost ~]# diff 1 2

4)检查异常系统文件
[root@localhost ~]# find / -uid 0 –perm -4000 –print
[root@localhost ~]# find / -size +10000k –print
[root@localhost ~]# find / -name "…" –print
[root@localhost ~]# find / -name ".." –print
[root@localhost ~]# find / -name "." –print
[root@localhost ~]# find / -name " " –print

5)检查系统文件完整性
[root@localhost ~]# rpm –qf /bin/ls
[root@localhost ~]# rpm -qf /bin/login
[root@localhost ~]# md5sum –b 文件名
[root@localhost ~]# md5sum –t 文件名

6)检查RPM的完整性
[root@localhost ~]# rpm -Va #注意相关的/sbin,/bin,/usr/sbin,/usr/bin
输出格式说明:
S – File size differs
M – Mode differs (permissions)
5 – MD5 sum differs
D – Device number mismatch
L – readLink path mismatch
U – user ownership differs
G – group ownership differs
T – modification time differs

7)检查网络
[root@localhost ~]# ip link | grep PROMISC(正常网卡不该在promisc模式,可能存在sniffer)
[root@localhost ~]# lsof –i
[root@localhost ~]# netstat –nap(察看不正常打开的TCP/UDP端口)
[root@localhost ~]# arp –a

8)检查系统计划任务
[root@localhost ~]# crontab –u root –l
[root@localhost ~]# cat /etc/crontab
[root@localhost ~]# ls /etc/cron.*

9)检查系统后门
[root@localhost ~]# cat /etc/crontab
[root@localhost ~]# ls /var/spool/cron/
[root@localhost ~]# cat /etc/rc.d/rc.local
[root@localhost ~]# ls /etc/rc.d
[root@localhost ~]# ls /etc/rc3.d

10)检查系统服务
[root@localhost ~]# chkconfig —list
[root@localhost ~]# rpcinfo -p(查看RPC服务)

11)检查rootkit
[root@localhost ~]# rkhunter -c
[root@localhost ~]# chkrootkit -q
二、linux系统被入侵/中毒的表象
比较常见的中毒表现在以下三个方面:
1)服务器出去的带宽会跑高这个是中毒的一个特征。
因为服务器中毒之后被别人拿去利用,常见的就是拿去当肉鸡攻击别人;再者就是拿你的数据之类的。
所以服务器带宽方面需要特别注意下,如果服务器出去的带宽跑很高,那肯定有些异常,需要及时检查一下!

2)系统里会产生多余的不明的用户
中毒或者被入侵之后会导致系统里产生一些不明用户或者登陆日志,所以这方面的检查也是可以看出一些异常的。

3)开机是否启动一些不明服务和crond任务里是否有一些来历不明的任务?
因为中毒会随系统的启动而启动的,所以一般会开机启动,检查一下启动的服务或者文件是否有异常,一般会在/etc/rc.local和crondtab -l 显示出来。
三、顺便说下一次Linux系统被入侵/中毒的解决过程
在工作中碰到系统经常卡,而且有时候远程连接不上,从本地以及远程检查一下这个系统,发现有不明的系统进程。
初步判断就是可能中毒了!!!

解决过程:
1)在监控里检查一下这台服务器的带宽,发现服务器出去的带宽跑很高,所以才会导致远程连接卡甚至连接不上,这是一个原因。
为什么服务器出去的带宽这么高且超出了开通的带宽值?这个原因只能进入服务器系统里检查了。

2)远程进入系统里检查了下, ps -aux查到不明进程 ,立刻关闭它。

3)检查一下开机启动项:
#chkconfig --list | grep 3:on
服务器启动级别是3的,我检查一下了开机启动项,没有特别明显的服务。
然后检查了一下开机启动的一个文件
#more /etc/rc.local
看到这个文件里被添加了很多未知项,注释了它。

4)然后在远程连接这台服务器的时候,还是有些卡。
检查了一下系统的计划任务crond,使用crondtab -l 命令进行查看,看到很多注释行。
这些注释行与/etc/rc.local的内容差不多。最后备份下/var/spool/cron/root文件(也就是root下的crontab计划任务内容),就删除了crontab内容,然后停止crond任务,并chkconfig crond off 禁用它开机启动。

5)为了彻底清除危害,我检查了一下系统的登陆日志(last命令查看),看到除了root用户之外还有其它的用户登陆过。
检查了一下/etc/passwd ,看到有不明的用户,立刻用usermod -L XXX 禁用这些用户。
然后更新了下系统的复杂密码。
----------------------------------------------------
禁用/锁定用户登录系统的方法
1. usermod -L username 锁定用户
    usermod -U username 解锁
2. passwd -l username 锁定用户
    passwd -u username 解锁
3.修改用户的shell类型为/sbin/nologin(/etc/passwd文件里修改)
4.在/etc/下创建空文件nologin,这样就锁定了除root之外的全部用户
----------------------------------------------------
四、怎样确保linux系统安全
1)从以往碰到的实例来分析,密码太简单是一个错
用户名默认,密码太简单是最容易被入侵的对象,所以切忌不要使用太过于简单的密码,先前碰到的那位客户就是使用了太简单的且规则的密码 1q2w3e4r5t, 这种密码在扫描的软件里是通用的,所以很容易被别人扫描出来的。

2)不要使用默认的远程端口,避免被扫描到
扫描的人都是根据端口扫描,然后再进行密码扫描,默认的端口往往就是扫描器的对象,他们扫描一个大的IP 段,哪些开放22端口且认为是ssh服务的linux系统,所以才会猜这机器的密码。更改远程端口也是安全的一个措施!

3)使用一些安全策略进行保护系统开放的端口
使用iptables或者配置/etc/hosts.deny 和/etc/hosts.allow进行白名单设置
可以对/etc/passwd、/etc/group、/etc/sudoers、/etc/shadow等用户信息文件进行锁定(chattr +ai)

4)禁ping设置
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
---------------------------------------------------------
发现一次服务器被getshell渗透的解决办法:
1)使用top命令发现一个python程序占用了95%的cpu
2)使用ps -ef|grep python发现下面程序:
   python -c import pty;pty.spamn("/bin/sh")
这个程序命令表示通过webshell反弹shell回来之后获取真正的ttyshell进行渗透到服务器里。kill掉这个进程!
3)发现在/var/spool/cron下面设置了一个nobody的定时执行上面获取getshell的渗透命令!果断删除这个任务!
4)ss -a发现一个可疑ip以及它的进程,果断在iptables里禁止这个ip的所有请求:
   -I INPUT -s 180.125.131.192 -j DROP
-----------------------------------------------------------------------------------------------------------
比如:
在一台服务器上,已经启动了80端口的nginx进程,但是执行“lsof -i:80”或者"ps -ef"命令后,没有任何信息输出!这是为什么?
怀疑机器上的ps命令被人黑了!执行:

[root@locahost ~]# which ps
/bin/ps
[root@locahost ~]# ls -l /bin/ps
-rwxr-xr-x. 1 root root 85304 5月  11 2016 /bin/ps
[root@locahost ~]# stat /bin/ps
  File: "/bin/ps"
  Size: 85304       Blocks: 168        IO Block: 4096   普通文件
Device: fc02h/64514d    Inode: 13549       Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-05-07 17:14:37.862999884 +0800
Modify: 2016-05-11 07:23:09.000000000 +0800
Change: 2017-05-07 17:14:37.146999967 +0800

发现ps命令的二进制文件果然在近期被改动过。
解决办法:可以拷贝别的机器上的/bin/ps二进制文件覆盖本机的这个文件。
-------------------------记一次Linux操作系统被入侵的排查过程--------------------------------------

某天突然发现IDC机房一台测试服务器的流量异常,几乎占满了机房的总带宽,导致其他服务器程序运行业务受阻!
意识到了这台测试机被人种了木马,于是开始了紧张的排查过程:

1)运行ps和top命令
发现了两个陌生名称的程序(比如mei34hu)占用了大部分CPU资源,显然这是别人植入的程序!
果断尝试kill掉这两个进程,kill后,测试机流量明显降下去。然而不幸的是,不一会儿又恢复了之前的状态。

2)将IDC这台测试机的外网关闭。远程通过跳板机内网登陆这台机器。

3)查看这些陌生程序所在路径
查找程序路径:
ls /proc/进程号/exe,然后再次kill掉进程,又会生成一个新的进程名,发现路径也是随机在PATH变量的路径中变换,有时在/bin目录,有时在/sbin,有时在/usr/bin目录中。
看来还有后台主控程序在作怪,继续查找。

4)尝试查找跟踪程序
查看/bin,/sbin,/usr/bin等目录下是否存在以.开头的文件名,发现不少,而且部分程序移除后会自动生成。
[root@localhost ~]# ls /usr/bin/.    //按Tab键补全
./  ../  .ssh.hmac

这说明还没找到主控程序。

5)接着用strace命令跟踪这些陌生程序:
[root@localhost ~]# strace /bin/mei34hu

结果发现在跟踪了这个程序后,它居然自杀了(把自己进程文件干掉了)!然后想用netstat看下网络连接情况,结果居然查不到任何对外的网络连接,于是开始怀疑命令被修改过了。
使用stat 查看系统命令ps、ls 、netstat、pstree等等:
[root@localhost ~]# which ps
/usr/bin/ps
[root@localhost ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[root@localhost ~]# which netstat
/usr/bin/netstat
[root@localhost ~]# stat /usr/bin/netstat
[root@localhost ~]# stat /usr/bin/ps
[root@localhost ~]# stat /usr/bin/ls
......

发现修改时间都是在最近的3天内,这让我猛然想起传说中的rootkit用户态级病毒!!
有可能是这台测试机刚安装好系统后,设置了root密码为123456,之后又把它放到过公网上被人入侵了。

接着查一下它在相关路径中还放了哪些程序:
[root@localhost ~]# find /bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /usr/bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /use/sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /sbin -mtime -3 -type f | xargs rm -f

将上面查找出的3天前的程序统统都删掉,并强制断电,重启服务器!然而可恨的是这些程序在机器重启后又好端端的运行以来!
很明显,这些程序都被设置了开机自启动

6)查看系统启动项
[root@localhost ~]# find /etc/rc.d/ -mtime -3 ! -type d

果然这些程序都被设置了开机自启动。于是,就再来一次删除,然后暴力重启服务器。
[root@localhost ~]# find /bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /usr/bin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /use/sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /sbin -mtime -3 -type f | xargs rm -f
[root@localhost ~]# find /etc/rc.d/ -mtime -3 ! -type d | xargs rm -f

重启完服务器后,用top命令查看,系统CPU使用率也不高了。居然这样就被干掉了。

7)顾虑到系统常用命令中(如ls,ps等)可能会隐藏启动进程,这样一旦执行又会拉起木马程序。于是再查看下系统中是否创建了除root以外的管理员账号:
[root@localhost ~]# awk -F":" '{if($3 == 0) print $1}' /etc/passwd
root

结果发现只输入了root这一个用户,说明系统用户是正常的。
其实,当系统被感染rootkit后,系统已经变得不可靠了,唯一的办法就是重装系统了。

8)对于一些常用命令程序的修复思路:找出常用命令所在的rpm包,然后强制删除,最后在通过yum安装(由于外网已拿掉,可以通过squid代理上网的yum下载)
[root@localhost ~]# rpm -qf /bin/ps
[root@localhost ~]# rpm -qf /bin/ls
[root@localhost ~]# rpm -qf /bin/netstat
[root@localhost ~]# rpm -qf /usr/bin/pstree

然后将上面命令查找出来的rpm包强制卸载
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......
[root@localhost ~]# rpm -e --nodeps ......

接着再重新安装
[root@localhost ~]# yum install -y procps coreutils net-tools psmisc

最后重启下系统即可。除了上面这次排查之外,还可以:
1)结合服务器的系统日志/var/log/messages、/var/log/secure进行仔细检查。
2)将可疑文件设为不可执行,用chattr +ai将几个重要目录改为不可添加和修改,再将进程杀了,再重启
3)chkrootkit之类的工具查一下

对于以上这些梳理的木马排查的思路要清楚,排查手段要熟练。遇到问题不要慌,静下心,细查系统日志,根据上面的排查思路来一步步处理,这样Hacker就基本"投降"了~~~
转载至:https://cloud.tencent.com/info/7cb7882411bcb115eb702ff5a77c0149.html
分享到:
评论

相关推荐

    木马常见植入技术大剖析

    木马植入技术是指将木马程序成功部署到目标系统的技术手段。主要包括以下几个方面: 1. **缓冲区溢出**:通过向程序中预留的空间输入超出预期的数据量,导致内存数据溢出,从而覆盖程序的其他内存空间,进而执行...

    Rmbv rm文件植入木马工具

    标题中的“Rmbv rm文件植入木马工具”是指一种特定的恶意软件工具,它能够将木马病毒植入RM(RealMedia)格式的视频文件中。这种工具通常被不法分子利用,目的是在用户观看这些视频文件时悄悄感染他们的计算机系统。...

    木马的植入与清除

    2. **利用漏洞**:通过利用操作系统或其他应用程序的安全漏洞,木马可以直接植入用户的计算机系统。 3. **社会工程学**:通过欺诈性邮件或网站诱导用户点击链接,进而下载木马。 4. **USB设备传播**:通过预先在...

    溢出植入型木马的原理实现

    总结来说,溢出植入型木马利用了程序设计中的漏洞,通过缓冲区溢出操控程序执行流程,植入恶意代码。防止这种攻击需要开发者在编写代码时采取安全措施,同时,用户也需要保持系统更新,安装防病毒软件,并保持警惕,...

    0x09.第九课 Metasploit生成linux木马并尝试提权.pdf

    ### Metasploit生成Linux木马并尝试提权 #### 一、课程背景与目标 本课程旨在通过实际操作,向学员展示如何利用Metasploit框架生成Linux木马,并尝试进行权限提升的过程。通过本课程的学习,学员将能够掌握以下...

    了解Linux系统内核安全的入侵侦察系统

    它能防止关键文件如/bin/login被篡改,避免特洛伊木马程序的植入。通过设置权限,LIDS使得即使拥有ROOT权限的用户也无法随意修改重要文件,增强了文件系统的完整性。 其次,LIDS保护系统进程,确保它们不会被非法...

    基于HRP系统的植入性医疗器械全流程供应链管理模式研究.pdf

    【基于HRP系统的植入性医疗器械全流程供应链管理模式研究】 在医疗领域,植入性医疗器械因其特殊性质,如种类繁多、技术要求高、医疗费用昂贵及潜在风险大,一直被视为需要严格管理的对象。《医疗器械监督管理条例...

    Linux系统中虚拟机可能会削弱安全性

    这份报告揭示了攻击者可能利用虚拟机作为攻击平台,通过在虚拟机中植入恶意程序如键盘记录器和特洛伊木马来窃取主操作系统信息的情景。然而,这种攻击方式并非易事,因为它涉及到对系统原始内核的修改,这是一个高度...

    linux巡检+webshell排查工具v0.4.1.zip

    Linux巡检工具是一种用于系统维护和安全检查的重要软件,它主要针对Linux操作系统,旨在帮助管理员进行常规的系统健康检查和潜在安全威胁的排查。在IT领域,系统运维和安全是两个至关重要的方面,确保系统的稳定运行...

    利用LKM提高Linux系统的安全性.pdf

    这些工具可以帮助创建一个多层次的安全防御体系,减少系统被攻击的可能性。 总之,Linux系统的安全性并非天生不足,而是需要通过合理的配置和使用工具,如LKM,来不断提升。通过这种方式,我们可以充分利用Linux的...

    清除Linux系统上的蠕虫程序Ramen

    它首先利用 RPC.statd 和 wu-FTP 的漏洞扫描网络上使用 RedHat 6.2/7.0 的服务器,然后尝试取得系统权限,一旦取得之后,会将一些一般的系统服务加以替换,并且将一个称之为“root kit”的程序码植入安全漏洞中。...

    Linux系统调用劫持:技术原理、应用及检测.pdf

    Linux系统调用劫持是一种黑客技术,用于在操作系统内核层面植入后门,以保持对系统的非法访问。这种技术常被用于制作rootkit,rootkit是攻击者用来隐藏其活动和保留管理员权限的工具集合。在Linux环境中,尤其是基于...

    Linux系统内核级安全审计方法研究.pdf

    在计算机安全领域,Linux系统内核级安全审计是至关重要的一个环节,它涉及对操作系统最核心部分的监控,以确保系统的稳定性和安全性。本文主要探讨了Linux系统内核级安全审计的方法,特别关注了Loadable Kernel ...

    9. 木马攻击与防御技术1

    木马攻击的原理是基于C/S组合架构流程,通过植入木马服务端和客户端,建立连接,进行远程控制,植入技术包括主动植入、本地安装、系统漏洞、第三方软件漏洞、被动植入、即时通信工具植入、移动存储设备植入等。...

    linux系统安全加固规范

    - **重要性**:限制root账户的远程登录可以显著降低系统被非法访问的风险。 - **2.1.3 检查是否存在除root之外UID为0的用户** - **目的**:确保系统中不存在其他具有超级用户权限的账户。 - **方法**: - 使用...

    网络安全技术课程设计—木马的植入方法及防范措施的研究

    木马会通过修改文件属性、隐藏自身进程、利用系统服务等方式进行隐藏,以避免被安全软件检测到。此外,木马还会通过伪装成正常文件,如图片、文档等,来欺骗用户。这些技术要求我们具备辨别可疑行为的能力,并定期...

    内核木马及系统启动木马

    - **驱动级植入**:利用操作系统提供的驱动程序接口,将自身伪装成正常的系统组件。 - **系统调用劫持**:通过拦截系统调用,修改系统行为,比如隐藏文件或进程等。 - **内存修改**:直接修改内存中的数据结构来...

    day09、渗透简单流程-及木马植入过程.txt

    网络安全课程笔记,渗透简单过程以及木马植入过程讲解。 网络安全之渗透笔记。 简单描述了渗透的过程以及木马植入的过程。只有大体框架。

    基于限定令牌木马防护系统设计

    5. **隐蔽运行**:木马在目标系统中隐藏运行,以避免被发现。 6. **执行任务**:按照攻击者的指令执行特定任务,如窃取信息、破坏系统等。 ##### 2.2 实现技术分析 当前的木马防护技术主要依赖于特征码匹配和行为...

Global site tag (gtag.js) - Google Analytics