从 Apache shell 升级到 root

信息安全 linux 攻击 网络服务器 阿帕奇 特权升级
2021-09-05 17:43:29

我有一个菜鸟问题。我试图在我的 Slackware linux 服务器上利用 shellshock,但是在我连接反向 shell 和用户代理后,我知道我是 apache 用户并且 apache 用户没有太多权限,所以我认为有任何人都无法访问 root 帐户或在系统上做任何错误。我对吗?

一些尝试

2个回答

你是对的,你可以访问你所利用的进程/脚本的 UID。对于没有强制访问控制且没有适当分离开发人员和 apache 角色的 Apache 身份,您可以:

  • 破坏或破坏您的 Apache 运行的网站
  • 更改网站的代码以在固定 URL 处泄漏所有用户数据库,然后您可以查阅
  • 向页面添加恶意脚本以向网站的访问者提供恶意软件
  • 托管您自己的网站(例如,扩展现有僵尸网络的命令和控制基础设施)

使用基本的强制访问控制(例如 SELinux/AppArmor)策略,该策略不会将 Apache 管理员角色与实际进程(通常允许运行实际 Apache 二进制文件的域写入 apache_*_t 文件)和对 Web 代码的只读访问权限,您可能可以:

  • 改变 Apache 的配置
  • 关闭现有的 Apache 进程(因为它使用您的 UID 运行)并使用您的新配置启动一个新进程

可能还有其他一些事情……在这里,您根本不关心操作系统本身,您关心的是托管内容、窃取数据以及更改现有和访问过的网站的能力。您在利用后保留的安全性实际上取决于您首先划分操作系统的程度。

他们可能只能访问 Apache 用户帐户,但在您的特定系统上可能存在另一个漏洞利用或错误配置,这将使攻击者能够将他们的权限提升到 root 权限。

当一个用户获得另一个用户的系统权限时,就会发生本地权限提升。网络入侵者一旦在系统上站稳脚跟,就有许多增加特权的技术。最初的入侵可能从任何地方开始。访客帐户?不小心在便条纸上写下用户名和密码的本地用户?日常用户通常以相对较低的权限级别操作——特别是为了防止获得其凭据的人获得对系统的控制权。一旦进入,入侵者就会使用特权升级技术来提高对系统的控制级别。

例如,简单地运行Linux Kernel <= 2.6.36-rc8 - RDS Protocol Local Privilege Escalation漏洞利用将提升当前 shell 以在易受攻击的内核上 root:

[limited@fedora ~]$ whoami
limited
[limited@fedora ~]$ id
uid=500(limited) gid=500(limited) groups=500(limited)

[limited@fedora ~]$ ./linux-rds-exploit 
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
 [+] Resolved rds_proto_ops to 0xe125ca1c
 [+] Resolved rds_ioctl to 0xe124706a
 [+] Resolved commit_creds to 0xc0444f65
 [+] Resolved prepare_kernel_cred to 0xc0444dc6
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
[*] Got root!
sh-4.0# whoami
root