centos7 环境, 被挂码 /www/server/nginx/waf/config , 求排查思路,如果判断挂码来源,标准宝塔环境。
1
learningman 2022-11-08 01:05:52 +08:00
检查服务,比如经典 redis 。
检查代码,有无 webshell 。 检查 ssh log ,有无弱口令。 |
2
flywuhu 2022-11-08 01:06:00 +08:00
单纯的一个宝塔,还是宝塔上开着 web 站点?
|
3
dendi009 OP @flywuhu 宝塔环境 + php 站点, 可以基本可以确定 php 站点 是安全的,有完整的 php 站点请求审计,不可能是 php 网站的 漏洞
|
4
dendi009 OP @learningman 多台服务器出现了这个情况, 部分安装 redis 部分没安装 ,切端口均不对外,
php 站点 基本可以排除 webshell , 即使有没检查到的 web 漏洞, 也不会被轻松提权到 root 。 被挂码文件是 root 权限的 ssh 爆破登入可以 100% 排除 |
5
dendi009 OP 补充说明,这些机器开通时间不一, 时间长的 1 年左右, 时间短的 10 天不到, 大部分机器都是近期开通的。 排除已知 ssh 安全漏洞和内部人为因素 。 肯定是外部入侵导致的
|
6
learningman 2022-11-08 01:32:47 +08:00
多台出现可能是 ssh 内网横移了,只有有一点被突破就够了
|
7
Dart 2022-11-08 01:35:41 +08:00 2
我的个人经验:
1 、业务代码一定要自己开发,毕竟成品如 wordpress 的漏洞你不一定第一时间会打补丁,更不用说你可能会用到的各种插件。 2 、服务器上千万别用盗版(破解版) 3 、尽量做到各个服务之间的环境隔离,目前最容易的就是容器化( Docker compose 、K8S 、ECS 等) 4 、千万别让各个应用共享一个数据库用户,各个应用 /服务分别创建用户 5 、宝塔这样的第三方运维工具能不用就不用,必须用就用开源主流工具,如 Terraform 、Ansible 这样的。 6 、如果自己搞不定,可以考虑找个这方面的专家咨询或协助。 |
8
dendi009 OP @learningman 没有内网, 都是公网 IP ,各不相同的内容,不同 地区机器, 相互直接没有登陆过
|
9
daimaosix 2022-11-08 03:37:46 +08:00 via Android 1
那就是不用宝塔
|
10
felixcode 2022-11-08 07:16:01 +08:00 via Android
用了宝塔,只能先默认是宝塔的漏洞了。
|
11
bobryjosin 2022-11-08 07:17:17 +08:00 via Android
不要用宝塔,最好手动部署
|
12
R18 2022-11-08 07:17:32 +08:00 via Android
起码把你的马发出来吧。服务器被黑我碰到过两种情况一种就是 redis 对外访问还没口令。一种是用的 wp 用了网上的主题和扩展。
|
13
cwyalpha 2022-11-08 07:41:00 +08:00 via iPhone
pma ?
|
14
ltkun 2022-11-08 08:02:45 +08:00 via Android
第一次听到 bt 这个缩写我以为是 bt 下载 庆幸从未用过宝塔这种 debian 系 apt 安装已经够简单了 红帽系 yum slack 的 pacman 这些包管理一个比一个人性化 还想着投机取巧就有点说不过了
|
15
xyjincan 2022-11-08 08:06:50 +08:00 via Android
SELinux 开了没,看看记录
|
16
xyjincan 2022-11-08 08:13:24 +08:00 via Android
坐一个标准环境,啥都不放,看看会不会出问题
|
18
danhahaha 2022-11-08 08:57:02 +08:00
宝塔配 php 黑客最爱呀,别告诉我你用的是 thinkphp,如果是,那就马场
|
19
danbai 2022-11-08 09:07:20 +08:00
已经脱离宝塔,脱离 nginx 了。用 caddy
|
20
QKgf555H87Fp0cth 2022-11-08 09:49:12 +08:00
好歹发点有用的信息吧
|
21
virusdefender 2022-11-08 09:58:16 +08:00
/www/server/nginx/waf/config 拓展名都没有,php 能解析?文件内容发一下呢
|
22
xia0pia0 2022-11-08 10:07:55 +08:00
查日志,WEB 日志、系统日志,总会有蛛丝马迹的
|
23
mhycy 2022-11-08 10:18:54 +08:00
宝塔端口有对外么?
|
24
bao3 2022-11-08 11:22:42 +08:00 via iPhone 1
自己手动搭建 php 的环境是不是更安全。生产环境,千万不要使用什么一键安装、什么套件包,你很难相信有没有私货。
|
25
winterx 2022-11-08 11:50:45 +08:00
宝塔自己夹带私货,建议别用
|
26
dendi009 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 也没发现被篡改的地方, 哪位老板能支支招,怎么查这个问题 |
27
dendi009 OP @bobryjosin 不是自己的机器,跨部门的
|
28
dendi009 OP @R18 挂码内容是 lua 写的 概率跳转。 被挂了什么内容不是重点。 重点是怎么能一次次挂上去的。 参考最新发的 日志
|
29
dendi009 OP @virusdefender config 是 在 waf 里面运行 lua 代码, 而且是明文, 代码内容是一定概率跳转 web 请求到 灰色网站上面,跟 config 内容没什么关系
|