主机被入侵分析过程报告

标签: 技术分享 | 发表时间:2016-03-11 10:23 | 作者:HRay
出处:http://drops.wooyun.org

0x00 结论


14号上午接到同事报告,某主机cpu占用至100%并出现可疑进程,安全部接手调查后结论如下:

  1. 主机未限制端口访问,ssh端口暴露外网
  2. 外部大量ip(100+)对主机进行暴力破解,且从13号21:12分开始陆续有6外网ip成功验证ssh
  3. 验证成功后自动化程序部署后门,并加入至计划任务,第一个成功执行的恶意计划任务时间为22:21:01,发现多处后门,但比对后发现实际可执行文件有两个(通过部分行为及连接ip判断两个文件为同一伙人所留),其余只是文件名不同
  4. 14号上午由于恶意进程导致机器cpu占用100%,后门被发现

0x01 过程


分析过程如下:

登入主机后,找到可疑进程PID

p1

进入proc/进程目录找到对应文件绝对路径在/usr/bin目录下,stat信息如下:

[[email protected] 13146]# stat /usr/bin/faksiubbri
  file: `/usr/bin/faksiubbri'
  Size: 610224          Blocks: 1200       IO Block: 4096   regular file
Device: 802h/2050d      Inode: 312739      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-14 10:33:13.000000000 +0800
Modify: 2015-01-14 10:29:06.000000000 +0800
Change: 2015-01-14 10:29:06.000000000 +0800

[[email protected] 13862]# stat /usr/bin/ohzxttdhqk
file: `/usr/bin/ohzxttdhqk
Size: 625622          Blocks: 1232       IO Block: 4096   regular file
Device: 802h/2050d      Inode: 312741      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-14 10:32:59.000000000 +0800
Modify: 2015-01-14 10:29:26.000000000 +0800
Change: 2015-01-14 10:29:26.000000000 +0800

初步判断入侵时间在14号上午10:29分附近并且已有root权限

通过strings查看文件内容发现远程ip及其他信息

p2

搜索ip发现为香港主机,并且在微博上发现如下信息

p3

结合strings其他信息,确定该文件为恶意程序,目前首先要判断攻击者通过什么途径入侵进来,此处绕了一些弯路,原因如下几点:

  1. 服务器运行了web、ftp服务,但非root权限
  2. last并未发现异常登录信息、history未发现可疑操作、且默认ssh端口禁止对外开放,故忽视了ssh入侵的判断
  3. 服务器存在bash漏洞,导致怀疑是bash漏洞+提权、但未发现可疑的accesslog
  4. 此前stat文件判断时间有误,事后发现管理员之前有kill程序进程操作,进程结束后会删除自身并生成新的文件,所以stat到的时间信息其实是管理员kill进程的时间

后来有同事在网上查到该ddos后门通过ssh暴力破解方式传播,才重新把目光放到ssh。与相关人员确认得知,服务器由于特殊原因对外开放了22端口,并且机器为弱口令,结合此信息,推测服务器为暴力破解ssh入侵,故排查secure日志

p4

6台外网主机有ssh验证成功记录,时间在13号21:12至23:59分之间,其中ip118.193.199.132与ip104.149.220.27在secure日志中无密码错误记录,推测为使用其它主机暴力破解,成功后返回密码使用其余主机登录

查看cron日志发现每3分钟会执行两个恶意脚本

  /etc/cron.hourly/cron.sh
/etc/cron.hourly/udev.sh

cron.sh文件内容如下

p5

其中/lib/libgcc.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序ohzxttdhqk相同

udev.sh文件内容如下

p6

其中/lib/libgcc4.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序faksiubbri相同

分别查看第一次执行计划任务时间如下

p7

p8

时间上与暴力破解成功时间吻合,基本可判断后门程序通过ssh途径被植入

查看secure日志,取之前发现ip成功验证ssh至断开连接时间差,结果如下

221.235.189.229

p9

62.210.180.180

p10

103.41.124.48

p11

118.193.199.132

p12

175.126.82.235
Jan 13 23:22:23成功认证后无断开信息

104.149.220.27

p13

通过成功验证ssh至断开连接时间差可看到221.235.189.229、62.210.180.180、103.41.124.48时间差为0,推测暴力破解成功后无其他举动,那么结合计划任务运行时间与时间差信息可判断种植后门的两个ip应该为118.193.199.132与175.126.82.235

但118.193.199.132时间差也仅有5秒钟时间,人工很难完成种植后门的操作,由此判断是自动化程序完成

0x02 疑点


目前疑点主要为不清楚后门通过什么方式被部署进来?

验证发现通过scp远程拷贝文件至主机与ssh登录后退出都会产生Received disconnect的日志,如果通过ssh自动化部署,last为何会看不到记录?是否单独清除了相关记录?如果是scp远程拷贝,是通过什么方式执行程序的?目前暂不知晓通过何种方式可以仅将文件放入机器后可以让程序自动执行,是否还有其他部署方式?

0x03 改进建议


  1. 排查其他主机是否有重要端口对外
  2. 排查其他主机是否存在恶意文件,可注意以下几点:

    1. /etc/init.d/目录下是否存在10位随机字母文件名的文件
    2. /etc/rc%d.d/S90+10位随机字母文件名的文件(%d为0-5数字)
    3. 是否存在/etc/cron.hourly/udev.sh
    4. 是否存在/etc/ cron.hourly/cron.sh
    5. /etc/crontab中是否存在可疑计划任务
    6. /usr/bin目录下是否存在10位随机字母文件名的文件
  3. 修复主机bash漏洞

  4. 增加主机密码复杂度(包括重要端口不对外主机)

  5. 针对异常情况主机,安全人员排查前尽量不要有操作,如果需要对文件有操作,一定要先保存stat信息结果,备份文件内容,修改密码/新建账户/删除账户前一定要先 stat /etc/passwdstat /etc/shadow并保存执行结果

0x04 题外话


以上内容为之前对公司层面写的一份应急响应报告,大家可以参考下流程,有一点需要改正的是判断入侵途径这里因为主观判断认为不会是ssh入侵导致浪费了不少时间,在分析过程陷入瓶颈的时候,应该以多看日志为主,而非大脑空想,最后补充几个linux下应急响应中常用到的一些思路和命令,希望对大家有所帮助

web入侵

web类入侵事件可结合以下几点排查:

  1. 记录后门文件stat信息,判断入侵发生时间,另外需要与accesslog做对比,判断是否为第一个后门。
  2. 查找入侵者放置的其他后门可通过已知后门文件的mtime、文件内容等可作为特征查找,也可以与svn、此前备份文件做比对或者打包web目录文件使用一些webshell查杀软件。
  3. 查找一天内修改过的文件命令

    find /home/work –mtime -1 –type f
    
  4. 查找系统中包含指定字符的所有文件(可以拿已知shell密码及特定字符作为关键字)

    find /|xargs grep -ri "Bot1234" -l 2>/dev/null(执行后会改变所有文件的atime,请做完5中提到的点之后操作)
    
  5. 查看较大的日志文件时,可先通过fgrep指定字符筛选,比如已知shell文件为conf.php,可通过命令 fgrep –a ‘conf.php’ accesslog > conf_access来筛选conf.php的访问记录,如果为一些高危漏洞,也可根据漏洞利用的关键字来筛选,通过第一步筛选结果后可找出入侵者ip等信息,可继续通过这些信息在accesslog中找到攻击者的所有访问记录以便进一步排查

  6. 判断影响时,当webshell操作为post且无流量镜像时,判断一些敏感文件如源码打包文件、包含密码信息文件是否被读取可通过文件atime信息来判断,此外对webshell的请求条数以及返回的字节数都可以作为定损的大概依据

非web方式入侵

主要通过其他高危服务,目前遇到的案例中大多属于ssh对外且弱口令的情况,主要结合syslog判断

此外,可结合以下几点排查:

  1. 判断服务器是否支持访问外网,如支持,通过 netstat –an查看是否已与外部可疑服务器建立连接,如已建立需及时断开
  2. 记录后门文件stat信息,根据mtime查找其他后门文件,同时根据文件属组与属组对应运行服务判断入侵方式
  3. 如果权限组为root,需要检测是否被种rootkit,rootkit检测可使用rkhunter: http://rkhunter.sourceforge.net/
  4. 非web类后门,大部分人习惯把恶意文件放置在/tmp目录下,此外可通过可疑进程名与cpu占用率排查,有些后门会伪装正常进程名,但是top命令可通过cpu占用率找出后门进程,获取进程pid后可cd到/proc/对应pid目录, ls –al查看exe对应值可得知文件路径,另外可查看计划任务,后门程序为保证自启动往往会添加新的计划任务

相关 [主机 入侵 分析] 推荐:

主机被入侵分析过程报告

- - WooYun知识库
14号上午接到同事报告,某主机cpu占用至100%并出现可疑进程,安全部接手调查后结论如下:. 主机未限制端口访问,ssh端口暴露外网. 外部大量ip(100+)对主机进行暴力破解,且从13号21:12分开始陆续有6外网ip成功验证ssh. 验证成功后自动化程序部署后门,并加入至计划任务,第一个成功执行的恶意计划任务时间为22:21:01,发现多处后门,但比对后发现实际可执行文件有两个(通过部分行为及连接ip判断两个文件为同一伙人所留),其余只是文件名不同.

Linux.com 遭受入侵

- leafduo - LinuxTOY
Linux 基金会旗下的 Linux.com 和 LinuxFoundation.org 网站,由于发现安全漏洞,进入离线维护状态. 感谢 gbraad 提供消息. Linux Foundation infrastructure including LinuxFoundation.org, Linux.com, and their subdomains are down for maintenance due to a security breach that was discovered on September 8, 2011.

kernel.org服务器遭入侵

- Lamo - Solidot
kernel.org网站首页发布公告,声称多台服务器在本月初(8月12日前)遭黑客攻击,他们在8月28日发现了入侵. 入侵者利用一位用户凭证获得了服务器根访问权限,他们正在调查黑客是如何提升权限的;系统启动脚本被加入了一个木马启动文件;ssh相关文件被修改. kernel.org声称,他们相信Linux kernel源代码库未受影响,因为git分布式版本控制系统的特性决定了它可以很容易注意到代码变化.

Linux.com 遭受入侵(更新)

- leafduo - LinuxTOY
Linux 基金会旗下的 Linux.com 和 LinuxFoundation.org 网站,由于发现安全漏洞,进入离线维护状态. 感谢 gbraad 提供消息. Linux Foundation infrastructure including LinuxFoundation.org, Linux.com, and their subdomains are down for maintenance due to a security breach that was discovered on September 8, 2011.

Linux入侵检测基础

- - WooYun知识库
在linux中有5个用于审计的命令:. last:这个命令可用于查看我们系统的成功登录、关机、重启等情况;这个命令就是将/var/log/wtmp文件格式化输出. lastb:这个命令用于查看登录失败的情况;这个命令就是将/var/log/btmp文件格式化输出. lastlog:这个命令用于查看用户上一次的登录情况;这个命令就是将/var/log/lastlog文件格式化输出.

[警告] LastPass 可能被黑客入侵

- hongwen he - Chrome迷
提供基于 Web 的密码管理服务 LastPass 可能已经于近日遭受到黑客攻击,并要求用户修改主密码. LastPass 团队在博客中说道:. 周二早上我们发现我们的一个非主要服务器上有数分钟的网络流量异常,这种偶尔发生的情况最后通常确定是我们员工的操作或者是由一个自动执行的脚本引起. 但这一次我们没有找到根本原因,在对这个异常情况进行深入分析之后,我们在一个数据库上发现一个类似但更小的匹配流量异常(该数据库发送的流量比我们其他数据库接收的流量更多).

黑客轻易入侵花旗银行

- Wuvist - Solidot
Visame 写道 "盗取超过200,000名花旗银行客户资料的黑客使用了一种极其简单的方法入侵. 此举被称作是近年来最大胆的一次银行入侵. 黑客们仅仅是简单地登录花旗公司的信用卡客户专区,然后把浏览器地址栏中自己的帐号替换成他人的帐号,便可顺利进入他人的帐号. 随后黑客们使用计算机程序重复这一过程.

外星猫正在入侵地球

- 雪倩 - 鸸鹋动物园
借用微博上狗发发同学的话:“它们平时都是装出来的,它们在每个我们睡去的夜晚,都直立行走并且屹立在窗前抽着烟叹气:明天还要继续装萌喵,再忍忍喵,2012母舰就来接我们了喵”. © 丸子 for 鸸鹋动物园, 2011. 转发本文地址 外星猫正在入侵地球 http://www.ermiao.com/video/20110905/21712.html.

Wine HQ数据库被入侵

- Alu - Solidot
Wine HQ承认数据库遭黑客入侵,用户信息泄露. 官方声明称,黑客下载了Wine HQ Application Database登录数据库和bugzilla中的所有登录数据,虽然密码经过了加密,但只要有足够时间简单密码都是可以被轻易解密的. 他们已经封堵了允许读访问数据库表的系统漏洞,为防止未来的破坏,它重置了用户密码,并通过电子邮件向受影响的用户发送了新的密码.

俄亥俄州模拟僵尸入侵

- phus - Solidot
俄亥俄州特拉华县(Delaware County)联邦紧急事务管理局举行了一场僵尸入侵模拟演习,有超过225个志愿者打扮成了僵尸. 组织者希望,僵尸主题的模拟演习能比工业事故或车祸演习吸引更多的人参与. 当地的一位发言人称,特拉华县的人迷上了僵尸. 这一演习是受到了美国疾病控制和预防中心的僵尸预警指南的启发.