centos7 环境, 被挂码 /www/server/nginx/waf/config , 求排查思路,如果判断挂码来源,标准宝塔环境。
|  |      1learningman      2022-11-08 01:05:52 +08:00 检查服务,比如经典 redis 。 检查代码,有无 webshell 。 检查 ssh log ,有无弱口令。 | 
|      2flywuhu      2022-11-08 01:06:00 +08:00 单纯的一个宝塔,还是宝塔上开着 web 站点? | 
|      3dendi009 OP @flywuhu   宝塔环境  +  php 站点, 可以基本可以确定 php 站点 是安全的,有完整的 php 站点请求审计,不可能是 php 网站的 漏洞 | 
|      4dendi009 OP @learningman   多台服务器出现了这个情况, 部分安装 redis 部分没安装 ,切端口均不对外, php 站点 基本可以排除 webshell , 即使有没检查到的 web 漏洞, 也不会被轻松提权到 root 。 被挂码文件是 root 权限的 ssh 爆破登入可以 100% 排除 | 
|      5dendi009 OP 补充说明,这些机器开通时间不一, 时间长的 1 年左右, 时间短的 10 天不到, 大部分机器都是近期开通的。 排除已知 ssh 安全漏洞和内部人为因素 。 肯定是外部入侵导致的 | 
|  |      6learningman      2022-11-08 01:32:47 +08:00 多台出现可能是 ssh 内网横移了,只有有一点被突破就够了 | 
|      7Dart      2022-11-08 01:35:41 +08:00  2 我的个人经验: 1 、业务代码一定要自己开发,毕竟成品如 wordpress 的漏洞你不一定第一时间会打补丁,更不用说你可能会用到的各种插件。 2 、服务器上千万别用盗版(破解版) 3 、尽量做到各个服务之间的环境隔离,目前最容易的就是容器化( Docker compose 、K8S 、ECS 等) 4 、千万别让各个应用共享一个数据库用户,各个应用 /服务分别创建用户 5 、宝塔这样的第三方运维工具能不用就不用,必须用就用开源主流工具,如 Terraform 、Ansible 这样的。 6 、如果自己搞不定,可以考虑找个这方面的专家咨询或协助。 | 
|      8dendi009 OP @learningman   没有内网, 都是公网 IP ,各不相同的内容,不同 地区机器, 相互直接没有登陆过 | 
|  |      9daimaosix      2022-11-08 03:37:46 +08:00 via Android  1 那就是不用宝塔 | 
|  |      10felixcode      2022-11-08 07:16:01 +08:00 via Android 用了宝塔,只能先默认是宝塔的漏洞了。 | 
|      11bobryjosin      2022-11-08 07:17:17 +08:00 via Android 不要用宝塔,最好手动部署 | 
|  |      12R18      2022-11-08 07:17:32 +08:00 via Android 起码把你的马发出来吧。服务器被黑我碰到过两种情况一种就是 redis 对外访问还没口令。一种是用的 wp 用了网上的主题和扩展。 | 
|      13cwyalpha      2022-11-08 07:41:00 +08:00 via iPhone pma ? | 
|      14ltkun      2022-11-08 08:02:45 +08:00 via Android 第一次听到 bt 这个缩写我以为是 bt 下载 庆幸从未用过宝塔这种 debian 系 apt 安装已经够简单了 红帽系 yum slack 的 pacman 这些包管理一个比一个人性化 还想着投机取巧就有点说不过了 | 
|  |      15xyjincan      2022-11-08 08:06:50 +08:00 via Android SELinux 开了没,看看记录 | 
|  |      16xyjincan      2022-11-08 08:13:24 +08:00 via Android 坐一个标准环境,啥都不放,看看会不会出问题 | 
|  |      18danhahaha      2022-11-08 08:57:02 +08:00 宝塔配 php 黑客最爱呀,别告诉我你用的是 thinkphp,如果是,那就马场 | 
|  |      19danbai PRO 已经脱离宝塔,脱离 nginx 了。用 caddy | 
|  |      20QKgf555H87Fp0cth      2022-11-08 09:49:12 +08:00 好歹发点有用的信息吧 | 
|  |      21virusdefender      2022-11-08 09:58:16 +08:00 /www/server/nginx/waf/config 拓展名都没有,php 能解析?文件内容发一下呢 | 
|      22xia0pia0      2022-11-08 10:07:55 +08:00 查日志,WEB 日志、系统日志,总会有蛛丝马迹的 | 
|  |      23mhycy      2022-11-08 10:18:54 +08:00 宝塔端口有对外么? | 
|  |      24bao3      2022-11-08 11:22:42 +08:00 via iPhone  1 自己手动搭建 php 的环境是不是更安全。生产环境,千万不要使用什么一键安装、什么套件包,你很难相信有没有私货。 | 
|  |      25winterx      2022-11-08 11:50:45 +08:00 宝塔自己夹带私货,建议别用 | 
|      26dendi009 OP type=PROCTITLE msg=audit(11/08/2022 11:35:38.933:42110) : proctitle=/usr/sbin/crond -n  type=PATH msg=audit(11/08/2022 11:35:38.933:42110) : item=1 name=/www/server/nginx/waf/config inode=2315713966 dev=fd:00 mode=file,644 ouid=root ogid=root rdev=00:00 obj=system_u:object_r:default_t:s0 objtype=CREATE cap_fp=none cap_fi=none cap_fe=0 cap_fver=0 type=PATH msg=audit(11/08/2022 11:35:38.933:42110) : item=0 name=/www/server/nginx/waf/ inode=2148973883 dev=fd:00 mode=dir,755 ouid=root ogid=root rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=PARENT cap_fp=none cap_fi=none cap_fe=0 cap_fver=0 type=CWD msg=audit(11/08/2022 11:35:38.933:42110) : cwd=/ type=SYSCALL msg=audit(11/08/2022 11:35:38.933:42110) : arch=x86_64 syscall=open success=yes exit=10 a0=0x7fb668026ab0 a1=O_WRONLY|O_CREAT|O_TRUNC a2=0666 a3=0x24 items=2 ppid=75054 pid=125380 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=unset comm=crond exe=/usr/sbin/crond subj=system_u:system_r:crond_t:s0-s0:c0.c1023 key=config 现在能确认到 /usr/sbin/crond -n 这个命令过程执行了 create 操作。 直接 SHELL 执行, /usr/sbin/crond -n 回显 "crond: can't lock /var/run/crond.pid, otherpid may be 109408: Resource temporarily unavailable" crond 守护进程状态正常, 通过 rpm -ql 在 逐个对比 文件 md5 也没发现被篡改的地方, 哪位老板能支支招,怎么查这个问题 | 
|      27dendi009 OP @bobryjosin  不是自己的机器,跨部门的 | 
|      28dendi009 OP @R18   挂码内容是 lua 写的 概率跳转。 被挂了什么内容不是重点。 重点是怎么能一次次挂上去的。 参考最新发的 日志 | 
|      29dendi009 OP @virusdefender   config 是 在 waf 里面运行 lua 代码, 而且是明文, 代码内容是一定概率跳转 web 请求到 灰色网站上面,跟 config 内容没什么关系 |