之前看了一个国外大牛的视频,决定和你们分享一下,这个东西真的好玩 !刺激!!给力!!!https://exploit-exercises.com/exploit-exercises.com?提供了各种虚拟机,文档和挑战,可用于了解和学习各种计算机安全问题,例如特权升级,漏洞分析,开发,调试,逆向工程和一般网络安全问题等。
那么,我们现在就开始来进行一场紧张而又刺激的漏洞攻防战吧!
1.下载Nebula
点击下载 =>?https://drive.google.com/drive/folders/0B9RbZkKdRR8qLWZBcVBvanlLb1U
登录使用下载完以后你将看到和我一样的界面:
2. level00
此级别要求您找到将作为“flag00”帐户运行的设置用户ID程序。您还可以通过仔细查看/可疑目录中的顶级目录来找到此信息。要访问此级别,请使用level00的密码登录为level00。进来以后我们看到用户id为level00:
那么我找了找在home目录中发现有很多文件夹分别查看了使用权限。可以看到level00和flag00这两个文件夹只有属于level00这个用户级别的 ,其他的文件夹属于其他的用户的级别。
其实到了这里,个人的思路也就断了,不得已从网上找了一份答案做了一个参考。作者通过用户名和用户组去搜索命令,于是跟着他的思路走,找到了第一条flag。
越权成功!
相关参考:http://www.cnblogs.com/zealoct/p/3511762.html
3. level01
在下面的程序中有一个漏洞,允许任意程序被执行,你能找到吗?无奈我还是做了弊,看了视频才知道是怎么回事!https://www.youtube.com/watch?v=-mtOlyxyJx4?要做这个级别请使用密码level01作为level01帐户登录 ,该级别的文件可以在/ home/flag01中找到。
进入level01这个账户后根据提示在/ home/flag01,发现有flag01这个文件 ,我尝试的执行这个文件得到了 and now what?输出
根据源代码可以看到setresuid()设置调用进程的真实用户ID,有效用户ID和保存的set-user-ID。非特权用户进程可以将真实的UID,有效的UID和保存的set-user-ID,各自改为以下之一:当前的真实UID,当前有效UID或当前保存的set-user-ID。特权进程(在Linux上,具有CAP_SETUID功能的进程)可以将真正的UID,有效的UID和保存的set-user-ID设置为任意值。setresgid()设置真正的GID,有效的GID和保存的调用进程的set-group-ID(并且始终将文件系统GID修改为与有效GID相同),对非特权进程具有相同的限制。关键点还是在/usr/bin/env,源代码中使用system 调用系统命令 ,使用env 这个命令,去输出and now what?字符串。
Linux系统里的env命令 可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令。下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的变量;env命令显示当前用户的变量;export命令显示当前导出成用户变量的shell变量。每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC,BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。
可以看到 在PATH 中环境变量中有带s的,意思就是spuer了,在视频中大牛进行了用户环境变量(包括源代码中也是使用env中去输出字符串)进行特定的权限赋予。
可以比对用户变量的前后改变。
当我再次运行的时候发现是失败的,原因是出在那呢?
这意味着我们可以提供我们自己的echo修改路径,以便这个echo被调用优先于内置然后我们可以运行任意命令。当然是少了echo这个文件!
越权成功,得到了flag!
转载请注明:即刻安全 » Exploit-Exercises–00&01笔记