1
crepesofwrath OP 没有人知道吗,我接着去谷歌
|
2
ylck 2016-04-14 17:21:04 +08:00 via Android 1
非业务相关用户 可 看到,可执行。文件有默认权限。。
|
3
crepesofwrath OP |
4
pimin 2016-04-14 17:22:42 +08:00 via Android
本地提权,本来它没有机会的,你给他创造了便利
如果有某个内核漏洞你没及时处理,你以上所有安全假设都没用了 即便能打补丁的你都处理了,还有 0day 呢 |
5
lululau 2016-04-14 17:26:42 +08:00
chmod 777 会出问题不是因为你把权限放开了,而是因为这个操作把某些权限去掉了( set uid, 粘滞位等)
|
7
hellov22ex 2016-04-14 17:39:22 +08:00
777 权限太大,是个用户都可以执行,然后忘记了,好像是文件会丢一些信息?
|
8
crepesofwrath OP http://serverfault.com/questions/144194/is-chmod-775-safe-to-use/144195
上面的回答我不是很明白,这个提问说明了我对 Linux 用户和权限的理解还不够深刻,实际上还没入门 ... 上面的链接我得到的结论是,假设系统本身没有漏洞,黑客让 PHP 崩溃?,浏览器用户就能够下载我的 PHP 脚本,但是这仍然对我没有本质的威胁,因为我的脚本写的很严密,而且我的主机不是共享的,只有一个用户 ... 这个总结可能比较愚蠢,我的起点就是一个 Web 程序员... |
10
helloworldwt 2016-04-14 17:49:13 +08:00
如果使用 chmod 777 使文件有执行权限有风险,那么正确的命令是啥呢
|
11
crepesofwrath OP Wordpress 安装插件无法写入可能是我的解压和拷贝时没有拷贝正确的权限
|
12
demo 2016-04-14 18:00:48 +08:00
@helloworldwt 644 (斜眼
|
13
oott123 2016-04-14 18:05:46 +08:00 via Android
@helloworldwt chmod +x
|
14
cxbig 2016-04-14 18:21:48 +08:00 3
正常来说 folder 用 755 或 775 ,文件用 644 或 664
find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; 基本理念就是只给最少的权限 |
16
Bardon 2016-04-14 18:40:39 +08:00
就是表示你 /etc/passwd 下所有用户(明确指定 /bin/false 的用户除外),都有权限执行该目录下所有文件
|
17
crepesofwrath OP @cxbig thanks, least privileges principle 今天看到过 要完全理解只能到实践中去感受了
|
18
maskerTUI 2016-04-14 18:41:53 +08:00 3
我就是喜欢你这种有自信的年轻人
|
19
Pastsong 2016-04-14 18:42:09 +08:00
因为还有你不能控制的风险,就算有验证也可能有 bug 呢,可能被绕过呢?就算程序没有错误还有人呢是吧
|
20
crepesofwrath OP @Bardon <3 your answer
|
21
crepesofwrath OP @maskerTUI 一周前我的阿里云 SSH 登录密码被暴力破解,如果黑客不动我的网站我是不知道的,然后我就去学习 ssh key pair ,如果说我有什么自信的话也是被逼出来的,因为我的计算机科学专业课被完全浪费掉了, good thing i know a bit english
|
22
Bardon 2016-04-14 18:57:24 +08:00
@crepesofwrath 你是什么发行版
要知道 /sbin/nologin 对 777 的文件也是拥有执行权限的 |
23
crepesofwrath OP @Pastsong 这个绕过应该是上传文件的类型,其它 bug 除了数据库相关的 XSS 我还不是很有体会 but yes i'm too confident of my code
|
24
Bardon 2016-04-14 19:01:59 +08:00
@crepesofwrath ssh 暴力破解是最后一条路
之前通过其他用户提权成功的话,改一下 /etc/ssh/sshd_config 不是难事, echo 一下即可。 当然那要你的网站(譬如 php )开放了各种权限,譬如 ( php exec ) 安全问题,怎么严格都不过分 |
25
crepesofwrath OP @Bardon centos 7, sbin nologin, i will google on that, <3 += 1
|
26
crepesofwrath OP @Bardon i will turn that off, ;;; auguments.callee.counter++; // from function loveYouGuys
|
27
Bardon 2016-04-14 19:12:01 +08:00
普通的 centos 7 + 基本的 web 服务
$ cat /etc/passwd | grep nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin chrony:x:997:996::/var/lib/chrony:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin nginx:x:996:995:Nginx web server:/var/lib/nginx:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin dockerroot:x:995:993:Docker User:/var/lib/docker:/sbin/nologin systemd-bus-proxy:x:994:990:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:993:989:systemd Network Management:/:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin 精简的 centos 7 ,嫁基本的 web 服务 $ cat /etc/passwd | grep nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin nginx:x:999:998:nginx user:/var/cache/nginx:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin systemd-bus-proxy:x:998:996:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:997:995:systemd Network Management:/:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin 你怎么得出 小于 3 的? 人家黑你,又不是必须要先 ssh 的 |
28
crepesofwrath OP @Bardon 我没有明确说明,这个层次是我要完成的目标 No fancy code fears me :)
|
29
Pastsong 2016-04-14 19:22:12 +08:00
呃...不知道说什么好
|
30
tcdw 2016-04-14 19:22:34 +08:00 via Android
|
31
maskerTUI 2016-04-14 19:24:01 +08:00
@crepesofwrath 以前在学校做社团服务器运维时觉得 chmod 777 很方便,于是都是 777 开干,现在出来工作做渗透测试工作,再也不敢用 777 了,具体的危害只能用心去感受,只有真正了解的人才知道危害。另外,说你有自信并不是夸你。
|
32
crepesofwrath OP @tcdw 冷幽默
|
33
crepesofwrath OP @maskerTUI 我知道啊,只是害怕对我来说没有意义,服务器端不是我需要操心的, so far, 不够严谨地说 ...
|
34
Pastsong 2016-04-14 19:36:26 +08:00 via Android 1
再说一句,如果楼主是来问问题的,能不能只要问问题就好了,没人在乎你会不会英语,没人在乎你对你代码有没有自信,没人在乎你又用了什么增加交流成本的颜文字,整篇回复各种散发迷之自信
|
35
loading 2016-04-14 19:37:30 +08:00 via Android
我只知道 777 是水平低的表现,因为 766 都比这个好,至少做 chmod 的人知道哪个组需要 +x
|
36
crepesofwrath OP @Pastsong 语言只是一个工具,有时候表达更自然一些
|
37
crepesofwrath OP @loading loading.io 最近学后端 frustration 还是很多的,昨晚看了一点 Trump 视频,今天有点 show off ,你知道我是新手
|
38
loading 2016-04-14 19:49:33 +08:00 via Android
@crepesofwrath 我没其他意思。
只要有一个地方漏了,你给了 777 就非常危险,代码 bug 高手能尽量能避免,但是,谁能说其他地方没有漏洞呢? php 也许有个你我都不知道的 0day 呢~ |
39
crepesofwrath OP @loading 不会冒犯我啊 我去研究下 0day
|
40
loading 2016-04-14 20:33:23 +08:00 via Android
楼主,你要先看看这个。
http://m.blog.csdn.net/article/details?id=11743977 linux 只有一个 root ,和一个程序只做一个事等等策略,其实都是出于避免所有潜在危险的原因。 |
42
shiny 2016-04-14 20:44:02 +08:00
前几天在安全渗透测试的时候还用 mysql load_file 去读 php 源文件然后找到源码中的漏洞进后台。
正常情况下 mysql 用户不应该能读取 Web 文件。 再举个例子,前段时间 redis 因为以 root 启动+端口开放到公网,结果能够往 authorized_keys 写数据。 假设 redis 不是 root 启动,但你 Web 目录 777 ,还是有权限往上面写个 WebShell (假设没开 SELinux 或 AppArmor ) |
43
msg7086 2016-04-14 20:55:45 +08:00
如果你的程序用到了 PHP ,那么你能审计完 PHP 所有的代码并保证无错吗?
并不能吧。 同理还有 Web Server ,还有 Linux 内核,还有无数的其他东西。 |
44
crepesofwrath OP @shiny 前提是 mysql 被登录了对吗? root 启动+端口开放到公网,正符合我最近学习 redis 时阿里云控制台发出的安全警告
|
45
crepesofwrath OP @msg7086 对于一个最小型博客程序来说,保证无错难度不是很大,仍然会耗费时间,我只能站在高层语言的简单应用层次上这样说,对于复杂的程序,或者服务器,内核,不在我的能力范围
|
46
SlipStupig 2016-04-14 21:07:22 +08:00
这样坏处是会导致一些本来不该有执行权限的目录如果混入了脚本,就可以执行命令(上传目录)
|
47
msg7086 2016-04-14 21:07:46 +08:00
|
49
crepesofwrath OP @SlipStupig 如果混入了脚本 说明它的确是一个 risk
|
50
crepesofwrath OP @msg7086 哈哈 其实我现在的沮丧程度远远超过了自嘲的欲望,哈哈哈 yanlei"
|
51
lhbc 2016-04-14 21:15:42 +08:00 via Android
如果你有个脚本 /程序会用 root 跑,那 777 就相当于任何用户都可以提权到 root
|
52
raincious 2016-04-14 21:17:19 +08:00
|
53
julyclyde 2016-04-14 21:18:07 +08:00
setuid 会掉,导致你无法正常 su 、 sudo 和 passwd
|
54
crepesofwrath OP @lhbc 任何用户指的是我的一个浏览器用户成为了我的服务器用户,因为我特指 /var/www
|
55
shiny 2016-04-14 21:21:26 +08:00
@crepesofwrath 只是一个 SQL 注入点而已。
|
57
kfll 2016-04-14 21:39:48 +08:00 via iPhone
…其实就相当于 boss 在 76 层,本来第 10 层到第 75 层都有小 boss 结果你觉得前面 9 九层就够了就把 10-75 的都撤了…
|
58
crepesofwrath OP @kfll 直觉上前面 9 层最重要,实际上每一层有问题都不行,你的例子 不好
|
59
lhbc 2016-04-14 21:52:08 +08:00 via Android
@msg7086 如果某个 cron 或者脚本, root 会定时或者偶尔运行,设为 777 就表示其他用户能修改这个文件用于提权,比如直接加一个 id=0 的用户
|
60
asddsa 2016-04-14 21:57:33 +08:00 via iPhone
设置好 777 ,然后把你的网站发出来。
|
61
crepesofwrath OP @asddsa 等我设置一下 i got a feeling !!!
|
62
jarlyyn 2016-04-14 22:04:54 +08:00
php 的茅与盾的问题啊。
缺乏统一入口的锅。 |
64
crepesofwrath OP @jarlyyn 不明白,你的意思是 PHP 入门太简单,每个人都能拿这口锅煮东西吃,懒惰的笨蛋也能,然后它毕竟是口锅,它不适合明星球员
|
66
luckybird 2016-04-14 22:24:28 +08:00
运维功底还需加强啊
|
67
crepesofwrath OP @luckybird 我觉得前面几位以后可能不如我 🙃
|
68
InneRs 2016-04-14 22:32:52 +08:00
没有绝对安全的系统。你哪怕对你的网站再有信心,多一层安全防护又不是坏事,更何况它根本不影响正常功能
|
69
luckybird 2016-04-14 22:34:00 +08:00
@crepesofwrath 大家心平气和地讨论,一起学习进步嘛
|
70
loading 2016-04-14 22:34:49 +08:00 via Android
现在都是脱裤为目的,不需要提升到 root 权限。
|
71
crepesofwrath OP @InneRs 其实这源于昨天架设 Wordpress , Woocommerce 插件安装失败,还有 wp-config.php 需要自己 touch paste, 我觉得麻烦,,,几个小时后我就想 code Igniter 推荐把 application 移出可访问目录,我就 url 到了 mysite.com/wp-config.php 没有显示,我想可能是因为用的手机, Google 后我明白 PHP 正常运行 wp-config.php 是没有输出的,问题出在 PHP 配置错误可能会导致受攻击或出错崩溃 ... 要学习的太多了,
|
72
crepesofwrath OP @loading simple & straight, sir you have me respect
|
73
jarlyyn 2016-04-14 23:10:32 +08:00
|
74
crepesofwrath OP @jarlyyn 不知道你说的是不是 python 和 java ,做 web 我只用过 PHP ,其实最近看 python 和 swift 的官方教程,以及回头看 C 语言,我就觉得每个变量一个$很麻烦,我喜欢 python 和 swift ,对 java 有偏见--黑客与画家
|
75
jarlyyn 2016-04-14 23:18:31 +08:00
|
76
rubyvector 2016-04-14 23:19:09 +08:00
有潜在安全风险.具体的哥们去了解下 LINUX 文件权限基础啰
|
77
crepesofwrath OP @jarlyyn 是啊,入门之后我有点“忘恩负义”的倾向
|
78
crepesofwrath OP @rubyvector 今晚我会再看,用的少忘的很快
|
80
Kirscheis 2016-04-15 00:46:17 +08:00 via Android
给我的感觉你完全没接触过编程, web ,*nix 和运维。。只是个人感受,没什么根据。
当然了我非常希望大家都用 777 ,因为学校里就有不少这么设置的,方便我脱库 |
81
crepesofwrath OP @Kirscheis 最后一句, 777 方便脱裤;我没有任何项目经验,但是说我完全没接触过编程,那么很多前端 PHPer 不知道会作和感想;我想起了阮一峰博客里的类似评论,我肯定是会一点的 ... 无非是基础差经验少
|
82
konakona 2016-04-15 01:29:45 +08:00
本地能够提交的目录往往是服务器上的 755 , 755 不具备执行权利。
理论上来说,如果有人上传了什么木马、病毒上去没办法运行的,那么破坏程度的风险就会大大降低。 但是一旦不检测好文件类型,被上传了网马就可以通过命令漏洞(如 eval )或 SQL 漏洞(以获取 webshell 后进一步的了解服务器的全貌)找到更多可以使用的漏洞了。因此危害程度仍在。 安全还是要做充分的准备和考量哟。 |
83
RIcter 2016-04-15 01:41:00 +08:00 via iPhone 1
愿世界上多一点楼主这样的运维,我们的工作会方便许多…😌
|
84
googlebot 2016-04-15 01:47:05 +08:00 via Android
如果是 php , 777 没什么, ftp 目录也经常 777
只要没有 root 权限, |
85
crepesofwrath OP |
86
crepesofwrath OP @googlebot 我现在不确定了,上面的大神给我一种不安全感,首先我对端口和防火墙的设置都不了解,暴力猜测 SSH 密码是一回事,针对特定目标实施打击想想都很恐怖
|
87
crepesofwrath OP |
88
shiny 2016-04-15 08:44:59 +08:00
针对 PHP
一、我建议甚至 Web 目录也不要开写权限,只有明确需要写入缓存和静态文件的文件夹才需要写权限。 二、有写入权限的文件夹最好不要开 PHP 解析权限。 有大量安全漏洞的程序(类似 DedeCMS )经过这样设置,出问题概率降低一个级别。 |
89
alexyangjie 2016-04-15 09:06:18 +08:00
https://en.wikipedia.org/wiki/Defense_in_depth_(computing)
这个是现代信息系统的安全防护理念。打个比方, chmod 777 就相当于把自己所有的钱都散落放在家里面,当然家里的门是上锁的,可能上的是一把好锁。但是你永远不知道小偷会不会撬开一扇窗或挖一个地道进入家中,而一旦进入,家里散落的钱就可以直接拿走。 chmod 644 相当于把钱放在保险箱里,只有你自己能打开。当然小偷也许也有一些办法(escalation),但这样毕竟加大了他的难度。 |
91
lianyue 2016-04-15 09:24:49 +08:00 via iPhone
😂
@crepesofwrath 不要说了我亲自遇到过 wordpress 的 0day 然后整个服务区被格式化了 还好勤备份 |
92
Felldeadbird 2016-04-15 09:31:16 +08:00
我觉得楼主想问的:“ chrom -R 777 有什么典型的渗透例子”。
大家都有说这样做得危害性,但没有比较典型的具体例子。楼主是很难明白 过中的危害性的。 因为看不见真正的危害,是很难理解到 其中的可怕。 |
93
Ryan817 2016-04-15 09:41:36 +08:00
LZ 可以试着 chmod 777 -R /etc/ 试试看,把你折磨到哭,被坑的血泪史
|
94
pljhonglu 2016-04-15 10:05:03 +08:00
@Felldeadbird 同意,确实还没有一个具体的例子~
|
95
abc123ccc 2016-04-15 10:34:56 +08:00
楼主, denyhost, fail2ban , SSH 的端口,都可以用上呀,为啥把这个专注点放到文件的权限上面来呢,这不是折腾自个吗?
|
96
ivenvd 2016-04-15 10:46:17 +08:00
我来说个吧。
比如你的 SSH 或者 MySQL 有漏洞,用户拿到了 mysql 用户权限,但是因为用户密码在数据库是加密的,所以拿不到用户信息。 这时候发现 php 目录是 777 的,就可以用 mysql 用户修改 PHP 文件,来窃取用户密码(以及做其他坏事)。 |
98
ivenvd 2016-04-15 10:48:57 +08:00
另外假如 PHP 文件是 root 权限运行的(既然权限都 777 了,用 root 运行也不是不可能吧……),那么修改 PHP 文件,就相当于以 root 权限执行命令,达到提权的目的。
|
99
crepesofwrath OP @alexyangjie redit
Its intent is to provide redundancy in the event a security control fails or a vulnerability is exploited 目的是提供冗余 当安全防护出现故障或者 整个系统的? 的一个弱点被利用 In terms of computer network defense, defense in depth measures should not only prevent security breaches but also buy an organization time to detect and respond to an attack and so reduce and mitigate the consequences of a breach. 军事上是用空间换取时间,以求延缓而非阻止 |
100
crepesofwrath OP @shiny 目测经验之谈 我认为最有意思的是第三点
|