学习黑客Windows权限体系

已思考 24 秒

借着 Week 2 · Day 4 的号角,我们把权限系统这条「双持长枪」摆上擂台:一边是 Windows DACL/icacls,另一边是 Linux sudoers。你将看到二者在授权语法、常见配置漏洞与提权打法上的一一对照——尤其关注 可写服务(Writable Service)NOPASSWD sudo 等经典突破口。读完这篇,你不仅能用 icaclsvisudo 各自“开天眼”找弱点,还能立刻写出加固清单,做到攻防兼修。


1 权限模型鸟瞰

1.1 Windows:对象 + SID + DACL

  • 每个文件/服务/注册表键含 安全描述符 SD,内部保存两张 ACL:DACL 控谁能干什么,SACL 控审计。(微软技术社区)
  • 条目单位叫 ACE,描述「SID ➜ 权限位」。工具首选 icacls(取代旧 cacls)。(微软学习)

1.2 Linux:用户/组位 + SUID + sudoers

  • 标准 DAC 通过 rwx 位和 UID/GID 判定;需要跨用户执行高权任务时,用 SUIDsudo 升权。
  • sudoers 文件(/etc/sudoers)由 visudo 管理,可细粒度限定命令、RunAs 对象、是否要密码。(Super User)

2 核心指令对照

目标Windows (icacls)Linux (sudoers)
查看权限icacls C:\path\file (微软学习)ls -l / sudo -l (Stack Overflow)
授权用户读写icacls C:\data /grant demo:(M)demo ALL=(root) /usr/bin/vim
删除 ACEicacls C:\data /remove demodemo 行前加 # 注释
批量继承/t /c 递归Defaults !requiretty 等全局指令
转存 & 还原/save acl.txt/restore备份 /etc/sudoers;roll-back via visudo -f

记忆窍门icacls /grantsudoers ALL=(root)F (Full)≈NOPASSWD: ALL


3 提权面危险对照表

攻击面Windows 典型漏洞Linux 类比利用思路
可写服务二进制服务映像路径对 Users 可写 → 改 DLL/Binary 拿 SYSTEM (InfoSec Governance -)SUID 脚本世界可写重写文件 → 下次启动提权
服务控制权限ACE 允许 SERVICE_CHANGE_CONFIG → 指向恶意可执行 (微软学习)sudo demo ALL=NOPASSWD: /bin/systemctl restart *重配服务 → 重启拿 root
Unquoted Path"C:\Program Files\My App\svc.exe" 未加引号 → 上传 Program.bat (Microsoft for Developers)PATH 优先级劫持系统在空格处截断,先执行恶意文件
DLL 搜索顺序%PATH% 前目录可写 → 投放 DLL 注入LD_PRELOAD 保留劫持加载顺序
NOPASSWD sudo——demo ALL=(root) NOPASSWD: /usr/bin/vim (docs.datadoghq.com):!/bin/sh 弹 root shell
可写 sudoers——/etc/sudoers 可写添加 ALL=(ALL) NOPASSWD:ALL 即永久提权
Weak Registry Key服务 ImagePath 键 ACL 可写——修改键值指向后门 exe

4 动手演练:三分钟快速侦察

4.1 Windows:找“可写服务”

# 枚举自启动服务 + 权限
Get-WmiObject win32_service |
  Where-Object {$_.StartMode -eq "Auto"} |
  Select Name,PathName |
  ForEach-Object {
      icacls $_.PathName.Split(' ')[0] /c
  } | findstr "(M)"        # 查谁有 Modify
  • icacls … (M) 显示 Modify 权限——高危目标!(微软学习)
  • 如可写,再用 sc configbinPath= 改到你上传的 shell。

4.2 Linux:列出 NOPASSWD sudo

sudo -l
# 结果示例
(ALL) NOPASSWD: /usr/bin/vim /etc/httpd/httpd.conf
  • 交互式程序 (vim, less) 一旦免密,即可 :!/bin/sh 反弹 root。(Medium)
  • 写权限到任何脚本,如 /etc/init.d/backup.sh,立刻 SUID 化。

5 防御清单(双平台)

场景加固动作
可写服务icacls <svc.exe> /inheritance:r /grant:r "SYSTEM:(RX)";Linux 用 chown root:root + chmod 755
控制权限sc sdset 设置 D:(A;;CCDCLCSWRPWPDTLOCRRC;;;SY) 仅 SYSTEM 可改;sudoers 里 禁止通配符,拆分规则
Unquoted Pathsc qc <service> 检查;加引号 "C:\Program Files\App\svc.exe"
sudo NOPASSWD仅对自动化账号加特定命令;给每条规则加 !setenv,避免 LD_PRELOAD 注入
监控Windows 启用 AppLocker、Sysmon ID 4657;Linux auditd -w /etc/sudoers -p wa

6 总结 & 彩蛋

  • icacls ↔ sudoers 都是「写文本」即可改变高权行为;误配置=送钥匙给攻击者。
  • 最致命的两类:用户可写二进制/脚本免验证高权命令
  • 对照表背后逻辑一致:先找 可写/可改→再看 执行上下文→最后落地 Shell。
  • 彩蛋:icacls C:\temp /save acl.txt && icacls /restorevisudo -f /etc/sudoers.tmp——脚本化批量备份 / 回滚同样简单。

练完本节,你已经能在 Windows 上用 icacls 扫弱服务,在 Linux 上用 sudo -l 一眼洞悉 NOPASSWD,并写出对照 Hardening checklist。下一篇 Day 5,将正式进入 TCP/IP 协议抓包 —— 用 Wireshark 看 “三次握手” 的每一比特。冲!


参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海尔辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值