标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3059] 作者: liu 发表于: [2022-04-02]
本文共 [305] 位读者顶过
0x00 结论14号上午接到同事报告,某主机cpu占用至100%并出现可疑进程,安全部接手调查后结论如下:
0x01 过程分析过程如下:登入主机后,找到可疑进程PID进入proc/进程目录找到对应文件绝对路径在/usr/bin目录下,stat信息如下: #!bash[[email protected] 13146]# stat /usr/bin/faksiubbri file: `/usr/bin/faksiubbri' Size: 610224 Blocks: 1200 IO Block: 4096 regular fileDevice: 802h/2050d Inode: 312739 Links: 1Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2015-01-14 10:33:13.000000000 +0800Modify: 2015-01-14 10:29:06.000000000 +0800Change: 2015-01-14 10:29:06.000000000 +0800 [[email protected] 13862]# stat /usr/bin/ohzxttdhqkfile: `/usr/bin/ohzxttdhqkSize: 625622 Blocks: 1232 IO Block: 4096 regular fileDevice: 802h/2050d Inode: 312741 Links: 1Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2015-01-14 10:32:59.000000000 +0800Modify: 2015-01-14 10:29:26.000000000 +0800Change: 2015-01-14 10:29:26.000000000 +0800
[出自:jiwo.org]
/etc/cron.hourly/cron.sh/etc/cron.hourly/udev.shcron.sh文件内容如下其中/lib/libgcc.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序ohzxttdhqk相同udev.sh文件内容如下其中/lib/libgcc4.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序faksiubbri相同分别查看第一次执行计划任务时间如下时间上与暴力破解成功时间吻合,基本可判断后门程序通过ssh途径被植入查看secure日志,取之前发现ip成功验证ssh至断开连接时间差,结果如下221.235.189.22962.210.180.180103.41.124.48118.193.199.132175.126.82.235 Jan 13 23:22:23成功认证后无断开信息104.149.220.27通过成功验证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 改进建议
0x04 题外话以上内容为之前对公司层面写的一份应急响应报告,大家可以参考下流程,有一点需要改正的是判断入侵途径这里因为主观判断认为不会是ssh入侵导致浪费了不少时间,在分析过程陷入瓶颈的时候,应该以多看日志为主,而非大脑空想,最后补充几个linux下应急响应中常用到的一些思路和命令,希望对大家有所帮助 web入侵web类入侵事件可结合以下几点排查:
find /home/work –mtime -1 –type f
4.查找系统中包含指定字符的所有文件(可以拿已知shell密码及特定字符作为关键字)
5. 查看较大的日志文件时,可先通过fgrep指定字符筛选,比如已知shell文件为conf.php,可通过命令fgrep –a ‘conf.php’ accesslog > conf_access来筛选conf.php的访问记录,如果为一些高危漏洞,也可根据漏洞利用的关键字来筛选,通过第一步筛选结果后可找出入侵者ip等信息,可继续通过这些信息在accesslog中找到攻击者的所有访问记录以便进一步排查 6. 判断影响时,当webshell操作为post且无流量镜像时,判断一些敏感文件如源码打包文件、包含密码信息文件是否被读取可通过文件atime信息来判断,此外对webshell的请求条数以及返回的字节数都可以作为定损的大概依据 |