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 ...
随机推荐
- Python之路 day2 字符串函数
#Author:ersa name = "ersa" #首字母大写capitalize() print(name.capitalize()) name = "my nam ...
- jquery插件开发基础入门
jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...
- CMD规范(通用模块定义规范)(翻译)
最近在使用sea.js.大家知道sea.js遵循CMD规范.该规范的英文说明很简洁,我试着翻译了一下,旨在交流. Common Module Definition 通用模块定义规范 This spec ...
- 读<jquery 权威指南>[1]-选择器及DOM操作
今天是小年了,2013马上要过去了,但是学习不能间断啊.最近正在看<jQuery权威指南>,先温习一下选择器和DOM操作. 一.基本选择器 1.table单双行: $(function ( ...
- 第十二章 非对称加密算法-RSA
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与D ...
- HDU 4940 Destroy Transportation system(2014 Multi-University Training Contest 7)
思路:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可. 为什么呢? 如果存在可行流 那么说明对于任意的 S 集合流出的肯定等于 流入的, ...
- uboot 各种烧写命令
norflash 烧写 (7) Nor Flash指令 Nor Flash 的命令经常用于烧写数据到Nor Flash . flinfo 打印Flash存储器的信息,并列出所有Sector. fli ...
- sqoop将关系型数据库的表导入hive中
1.sqoop 将关系型数据库的数据导入hive的参数说明:
- tinymce 编辑器 上传图片
tinymce编辑器进行本地图片上传 首先下载tinymce.js之后 在form中添加一个<textarea>元素 给其一个id和name 然后就可以初始化编辑器了 tinymce.in ...
- 北大poj-1088
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 88484 Accepted: 33177 Description ...