主机论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 500|回复: 36

聊一聊AMH所谓“轻量”及问题

[复制链接]

15

主题

182

回帖

613

积分

高级会员

Rank: 4

积分
613
发表于 2024-10-23 18:42:50 | 显示全部楼层 |阅读模式
本帖最后由 haozi 于 2024-10-23 21:30 编辑

众所周知,AMH主打轻量,0占用。
那么它是如何实现这么轻量的呢?

首先,AMH是PHP写的,基于PHP-FPM运行。
也就是说,AMH实际上就是一个大号网站,跟你建的网站一样,没人访问自然就0占用了。
AMH也和你建的网站共用环境,nginx、php、mysql这些。
而其他面板都有自己独立的进程,与网站相隔离,有自己独立的数据库(一般sqlite)。

AMH这样做的好处,当然是极致轻量了,毕竟不访问就是0占用,这点是其他任何面板都没法比的。
坏处也有很多,随便列举一些:
1. nginx炸了,面板就上不去了。
2. php炸了,面板就上不去了。
3. mysql炸了,面板就上不去了。
4. 和网站共享环境没隔离开,有安全性问题(下面有说)。
5. 强绑定PHP,想不装都不可能。
6. 没有也做不到后台队列机制(想做到就要起后台进程,那就跟其他面板无二了)。
7. 因为PHP-FPM,做不到在线终端(AMH的终端是跑在Python上的,运行终端得起一个Python进程)
8. 都2024年了,极速安装的面板,还默认php7.4和mysql5.5?全是停止维护的老古董软件,php7.4还有不少漏洞。
9. 都2024年了,服务全部不使用systemd,让人怎么管理?人家宝塔至少还用了init.d,而1panel和耗子面板都标配systemd。
10. amh自带的文件管理无法操作/home外的文件,因为面板以www运行没有权限。

其他问题也随便列举一些,打破AMH所谓“无安全事件”:
1. 安全问题,面板文件权限给的过大(775/755),对比宝塔是600,耗子面板700。
2. 安全漏洞,/usr/local/amh-7.1/web/Amysql/Cxxx.php文件可任意用户读取(包括网站),内含mysql root密码。
3. 安全漏洞,网站可以直接写入/home/wwwroot/lnmp01/vhost/目录修改nginx配置。
4. 安全漏洞,网站可以通过运行amh命令任意操作,包括修改面板密码,安装任意软件,甚至卸载面板删库跑路。
5. /usr/bin/amh是二进制程序,违反了APL协议第1条禁止闭源发布源码程序,所有源码程序用户都可阅读(不过逆向也简单,扔ida一跑就出来了)。
6. 高危安全漏洞,amh命令行,shell命令注入(使用换行符+环境变量绕过检查执行任意命令),配合第4点危害很大。感谢12楼的提醒
总结一下就是只要一个网站被黑了/挂马了,那么整个服务器都可以被轻易拿下,这种情况在其他任何一个面板都不可能发生。

前面漏洞的poc就不放了,放两张压缩过的图吧。
QQ截图20241023183916.png (77.79 KB, 下载次数: 4)
QQ截图20241023211012.png (82.51 KB, 下载次数: 0)

题外话
我是不认可这种为了轻量所做的巨大牺牲,何况现在内存本来就是白菜价,多占一两百MB能有啥影响。
(2022年开发耗子面板前看到AMH这个设计我当时极为震惊,今天初略审计了一下更震撼了)
(源码中的love_you挺有意思,一边翻代码还能一边被喂、狗、粮)
至于天天吵的改UI,做过传统PHP开发的应该都知道,这玩意HTML和PHP杂糅在一起,10几年的代码沉淀下来哪有那么好改。想改成现代的vue/react,工作量不亚于整个程序扬了重写。
回复

使用道具 举报

15

主题

182

回帖

613

积分

高级会员

Rank: 4

积分
613
 楼主| 发表于 2024-10-23 23:44:08 | 显示全部楼层
本帖最后由 haozi 于 2024-10-24 00:09 编辑
Amysql 发表于 2024-10-23 23:01
amh就是最适合跑lnmp、lamp的,
面板不用php的话,还是要跑别的程序环境,
加上phpmyadmin这些常用程序,还 ...


第一条认同,确实是最适合的。
第二条,nginx、php这些都没有进程守护,挂掉了面板就打不开了,可以自行去服务器上kill掉nginx试试。
第三条,以宝塔为例nginx炸了并不会影响面板,但是amh支持多nginx这是优点。
第四条不认同,以宝塔为例nginx配置均为600权限,不可能随意读取写入,另外不说给600,起码该给644吧,随便都能往nginx配置目录写配置文件进去,也太离谱了。
第五条指的是chroot吧,开那个确实可以规避前面提的一切问题,但不影响这些问题的客观存在,另外amh默认也没开chroot和open_basedir,连php禁用函数都是空的。

附amh命令行注入的绕过,其他的直接file get content、file put content对应文件,shell exec("cd /usr/local/amh-7.1/web && amh xxx")就完事了,不值一提。
export "A=ls -l"
amh amh-7.1 admin exit '
${A}'
A环境变量设置任意命令即可。
PS:这论坛防火墙把命令全拦截了,只能这样了。
回复

使用道具 举报

99

主题

266

回帖

1153

积分

金牌会员

Rank: 6Rank: 6

积分
1153
发表于 2024-10-23 23:01:00 | 显示全部楼层
你这说的东西,amh更加不认了
UI那么明显的问题,他都视而不见!!!
你提的这些东西,怕不是把他裤子给脱了
回复

使用道具 举报

24

主题

143

回帖

594

积分

高级会员

Rank: 4

积分
594
发表于 2024-10-23 18:56:55 | 显示全部楼层
1、Linux版的php7.4没有什么漏洞,只要把危险函数禁用就行
2、搭建网站的话一般都要开启AMChroot这个插件,完全可以避免你说的这些所谓高危安全漏洞
3、/usr/bin/amh的二进制程序是用amh.c源码编译的,具体可以看安装脚本
回复

使用道具 举报

252

主题

1796

回帖

5268

积分

论坛元老

Rank: 8Rank: 8

积分
5268
发表于 2024-10-23 19:23:44 | 显示全部楼层
本帖最后由 华盛顿 于 2024-10-23 19:23 编辑

突然想起来,当时你发布 耗子面板 的时候,不是一堆人吐槽这个名字吗,
你也很坚持啊,
跟AMH  UI  的坚持有的一拼,

我也想再吐槽一下,光这个名字,就不可能做起来,连AMH的项背都望不到~~~~

回复

使用道具 举报

58

主题

1363

回帖

3150

积分

论坛元老

Rank: 8Rank: 8

积分
3150
发表于 2024-10-23 19:20:57 | 显示全部楼层
amh就是最适合跑lnmp、lamp的,
面板不用php的话,还是要跑别的程序环境,
加上phpmyadmin这些常用程序,还不是要跑回php了?面板不用php也要额外一套环境+php环境。


在amh都可以多nginx、多mysql、多php都可以同时共存,版本都可以自定义安装。
amh环境是独立,不同网站php进程也都独立的,不知道楼主说的都炸了是什么情况?

这么轻易炸了别的面板跑网站lnmp、lamp环境不一样容易炸了吗,
amh可分开限制每个网站进程数,至少一个站不会影响到所有站。



设的root:root的用户权限,755主是限写,限读环境无法跑的,
很多系统文件也都有读权限,情况没多少区别,如果lnmp环境都被入侵了,读取网站配置文件还不容易吗

php环境要安全隔离就开防跨站,amh的防跨站是模拟linux目录隔离的方式,
就完全限制在/web目录下,默认也是有限制运行amh命令的,能执行是什么条件下,ssh执行命令?

也可以直接上网站运行的代码,这边做验证。
或私信,谢谢。
回复

使用道具 举报

594

主题

2万

回帖

4万

积分

论坛元老

Rank: 8Rank: 8

积分
47532
发表于 2024-10-23 23:01:27 | 显示全部楼层
haozi 发表于 2024-10-23 23:44
第一条认同,确实是最适合的。
第二条,nginx、php这些都没有进程守护,挂掉了面板就打不开了,可以自行 ...

第二条同意,我曾经就遇到过nginx挂掉导致AMH面板打不开
回复

使用道具 举报

15

主题

182

回帖

613

积分

高级会员

Rank: 4

积分
613
 楼主| 发表于 2024-10-24 01:09:10 | 显示全部楼层
本帖最后由 haozi 于 2024-10-23 19:28 编辑
ccclt 发表于 2024-10-23 19:23
1、Linux版的php7.4没有什么漏洞,只要把危险函数禁用就行
2、搭建网站的话一般都要开启AMChroot这个插件, ...


但是其他面板什么都不用操作都不存在这些问题哦
回复

使用道具 举报

25

主题

105

回帖

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2024-10-23 23:44:00 | 显示全部楼层
amh默认还是php7.4,说安全有点搞笑
回复

使用道具 举报

18

主题

355

回帖

1018

积分

金牌会员

Rank: 6Rank: 6

积分
1018
发表于 2024-10-23 19:25:58 | 显示全部楼层
大部分说的都对。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2024-11-2 23:40 , Processed in 0.088208 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表