Linux-记录一次被当肉鸡行为
转自:http://huoding.com/2016/03/07/495
话说从前些天开始,我的某台服务器不时会出现外网访问响应速度变慢的情况,不过内网访问倒是一直正常。因为并不是核心服务器,所以一开始我便忽略了监控报警,但是随着服务器的可用性越来越差,我不得不腾出手来看看到底发生了什么。
既然是网络问题,那么可以在客户端用「mtr <IP>」检查一下网络情况:

发现丢包主要发生在最后一跳,接着可以在服务器用「sar -n DEV」检查带宽:

明显可见 TX 流量时不时便会到达一定的高峰,说明服务器在向外发送大量数据,导致触及了带宽阈值,那么到底是什么原因造成的呢?是时候祭出「iptraf」神器了,本例的服务器中,内网(eth0)正常;外网(eth1)异常:

单独监控外网网卡发现大部分流量都集中在 UDP 协议之上:

按照端口监控发现流量主要集中在 UDP 的 53 端口上。不过需要说明的是这里的端口既可能是源端口,也可能是目标端口,并且 iptraf 缺省只监控 1024 以下的端口:

监控具体的流量包,发现本地端口在不停的往远程的端口发请求:

随便提一下,在上面的确诊过程中,我详细描述了 iptraf 的用法,其实 iftop 也不错,但是需要说明的是,iftop 缺省并不显示端口信息(按 p 键显示)。

如果要想知道某个端口运行的是什么程序,可以使用 lsof 命令:
lsof -i:<PORT>
结果发现可疑进程是通过 jenkins 用户启动的,于是我们基本上可以确认攻击者是通过 jenkins 漏洞攻陷服务器的,让我的服务器成为一台肉鸡,进而对目标发起 DNS 反射攻击。既然已经大概搞清楚了被攻击的原因,那么最简单的方法就是把问题服务器直接下线,重新配置一个新服务器,不过有时候事情并不简单,所以得想办法恢复它。
因为攻击者可能会在服务器上做手脚,所以我们需要仔细排查每一个存在隐患的地方,比如 cron 配置,还有 /etc/passwd 和 /etc/rc.d/init.d/* 等文件。此外,一些常用的命令也存在被感染的可能性,如果操作系统是 CentOS 的话,可以按如下方式确认:
rpm -V $(rpm -qa)
它会检测文件在安装后是否发生了变化,如果是,那么会给出相应的提示,比如:长度变化提示 S,权限变化提示 M,最重要是的 MD5 变化的话提示 5,一旦发现了某个命令可能存在问题,重新安装它(前提是 yum 没有被感染):
yum reinstall <PACKAGE>
即便再小心,也难免百密一疏,木马可能会死灰复燃,此时可以试试 sysdig 命令:
sysdig -c spy_users
它会监控所有的用户行为,如果木马有动作,自然也会被记录下来。
回想整个事件,如果我不在外网服务器上乱装服务,或者及时升级到最新版,那么可能就不会被黑;如果我没有忽视监控报警,那么可能很早就会发现问题。不过出问题并不可怕,更重要的是我们要能理清问题的来龙去脉,别重复摔在同一个坑里。
Linux-记录一次被当肉鸡行为的更多相关文章
- Linux记录从此开始
Linux记录从此开始~ 希望自己多写代码同时多记录~
- linux记录登录ip方法
PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...
- Arch Linux 记录
2017.1.8 开始花了两天装 Arch Linux,因为是第一次安装 Arch Linux,所以过程中遇到许多问题,特记录如下. 安装过程及遇到的问题: 下载镜像,刻盘. 重启进入 LiveCD ...
- Linux记录-sysctl.conf优化方案
Sysctl是一个允许您改变正在运行中的Linux系统的接口.它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能.用sysctl可以读取设置超过五百 ...
- Linux记录-salt分析
salt-master建立分组 如dn: 'L@dnxxx,dyyy' salt -N dn state.apply hadoop test=true salt -N dn cmd.run ' ...
- Linux 记录所有用户登录和操作的详细日志
1.起因 最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行 ...
- Linux记录history命令
对后面的(1)方法的提取文件改写法(强烈推荐) 记录存储位置: mkdir -p /usr/local/records chmod 777 /usr/local/records/chmod +t /u ...
- Linux记录-shell 100例(转载)
1.编写hello world脚本 #!/bin/bash # 编写hello world脚本 echo "Hello World!" 2.通过位置变量创建 Linux 系统账户及 ...
- Linux记录-史上最全的MySQL高性能优化实战总结(转载)
史上最全的MySQL高性能优化实战总结! 1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优 ...
- 树莓派安装parrot linux记录
手头这台树莓派3b安装parrot linux arm遇到了不少问题,写篇博客记录一下. 1.下载和刻录 网址:https://www.parrotsec.org/download-other.php ...
随机推荐
- Head First 设计模式 --7 适配器模式 外观模式
适配器模式:将一个类东街口转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 适配器模式有两种,对象适配器和类的适配器.先看一下对象适配器. 还是看最开始鸭子的例子,如果此时鸭子不够 ...
- angularjs简述
1.MVC设计模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式 Model(模型)表示应用程序核心(比如数据库记录列表 ...
- zoj 1789 The Suspects
好高兴,又AC一道 ,不过是很类似的两道..还是好高兴呀思想跟2833是一样的,不过要重新设计输入和输出.老师上课又重新讲解了一下,因为嫌疑人已知是0,所以加入集中时应该默认让数值小的做树根,即最终让 ...
- Ubuntu 安装桌面且远程连接
前言: 一般服务器是不装桌面的,因为会牺牲很多性能,这里就选择很小桌面,牺牲一定性能 这里就采用x2go, 这里是在ubuntu server 14.04 安装成功,其实它是可用于linux所有 ...
- POJ----(3974 )Palindrome [最长回文串]
Time Limit: 15000MS Memory Limit: 65536K Total Submissions: 5121 Accepted: 1834 Description Andy ...
- Yii批量添加的问题
使用Yii进行批量添加的时候,执行后会发现表中只插入了foreach循环的最后一条数据,而其它数据没有添加成功,那是因为内存地址中循环时新一条数据会覆盖前一条数据,解决办法如下: 第一种方法: < ...
- Python 代码优化常见技巧
代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 80% 的工作量.优化通常包含两方 ...
- Swift 02.Array
数组可以存放任意类型,初始化时候的类型 决定了数组后面可以添加什么类型的元素 let 不可变数组 let arrayC = [,,,,,,] var 可变数组 var arrayM = [,,,,,, ...
- 用jQuery Mobile搭建一个简单的手机页面
1.新增html页面. 2.声明html5Document. 3.载入jQuery Mobile Css.jQuery与jQuery Mobile链接库. 4.使用jQuery Mobile定义的ht ...
- iPhone/iPad/Android UI尺寸规范
iPhone界面尺寸