为了便于管理,我们将虚拟机都下载到一个文件夹中
1. 虚拟机VMware下载与安装教程(详细)
2. Kali Linux全网最细安装教程
3. kali汉化
4. Metasploitable2-Linux在VMware Workstation Pro上安装
5. 靶机windows7下载
官网:https://msdn.itellyou.cn/
点击"详细信息",复制下载链接,如果开启了迅雷,它会自动弹窗识别链接,点击下载即可
下载完成后,打开虚拟机,点击“文件”----“新建虚拟机”
为了区分操作系统的版本,我们将下载的镜像文件名复制过来作为 “虚拟机名称”
内存 8 个G
点击 “关闭”,再点击“完成” 即可
安装完成后,网络选择“公用网络”即可
然后点“关闭”即可
6. 下载靶机 owasp
下载链接
下载之后, E:\kaliLinux
下新建文件夹 OWASP_Broken_Web_Apps_VM_1.2,将其解压进去
在 Vmware 中点击 “文件”—“扫描虚拟机”,E:\kaliLinux\OWASP_Broken_Web_Apps_VM_1.2
开启该虚拟机
根据提示的 用户名 root 和 密码 owaspbwa 进行登录
使用 ifconfig
可以获取 ip 地址,方便在 kali 的虚拟机中进行测试
VMware的网络连接
NAT网络: 和其他同样设置NAT网络的虚拟机处于同一个局域网
桥接网络::和物理机处于同一个局域网内
仅主机模式: 不与外界进行联网,适合进行网络实验,比如测试蠕虫病毒
虚拟机快照
虚拟机快照可以用来保存虚拟机的当前状态。
最常用的场景是,刚刚安装好虚拟机的操作系统后创建一个虚拟机快照。如果后期做实验时,系统崩溃的话,可以恢复到初始状态,而不必再重新安装虚拟机及其操作系统。
选中某个虚拟机,鼠标右键“快照”—“拍摄快照”
虚拟机克隆
在工作中,经常会遇到需要同时开启多个同配置虚拟机的场景,此时无需创建多个虚拟机,使用VMware的克隆功能即可快速创建若干同配置的虚拟机。
选中某个关机状态的虚拟机,鼠标右键“管理”—“克隆”
导出虚拟机
将某个虚拟机导出为文件,别人可以直接打开就能使用
选中某个虚拟机,左上角“文件”—“导出为 vof”
【命令】
sudo
系统管理者的身份执行指令,也就是说,经由 sudo所执行的指令就好像是 root 亲自执行
sudo service apache2 start
开启apache服务
sudo passwd root
修改root密码
sudo ifconfig
查看网络连接信息
sudo apt update
sudo apt upgrade
sudo apt install XXX
系统更新和软件安装
【实操】
在 kali 中打开终端,开启 Apache 服务
将 ip 复制到浏览器,可以看到 Apache 服务成功开启!(上面的 ip 192.168.204.128 也可以)
再执行 sudo apt upgrade
升级软件包
【命令】
ls
命令,展示文件夹内内容
ls -a
:全部的档案,连同隐藏档(开头为﹒的档案)一起列出来
ls -l
:显示文件和目录的详细资料
pwd
命令,查看当前工作目录的完整路径
cd
命令,切换目录
cd /home
进入 '/ home’目录
cd ..
返回上一级目录
cd ../..
返回上两级目录
cp
命令,复制
格式:cp a/b/c/d.txt a1/b1/c1/d_copy.txt
rm
命令,删除
格式:rm a/b/c/d.txt
ARP协议是"Address Resolution Protocol”(地址解析协议)的缩写。在同一以太网中,通过地址解析协议,源主机可以通过目的主机的IP地址获得目的主机的MAC地址。
arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用(能获得 mac 地址就说明被占用了)。
实验环境
Windows 7,IP: 192.168.152.130(开启win7虚拟机,cmd 执行 ipconfig
获取 ip)
使用实例
查看某个IP的MAC地址
sudo arping 192.168.152.130
查看某个IP的MAC地址,并指定 count 数量(发包的数量)
sudo arping -c 1 192.168.152.130
-w timeout 设定一个扫描时间,单位是秒。
sudo arping -w 1 192.168.152.130
按 Ctrl + C 停止发包
hping3
hping 是面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具。
目前最新版是hping3,它支持TCP,UDP,ICMP和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能。
hping3是安全审计、防火墙测试等工作的标配工具。hping_优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。
实验靶机
Metasploitable2, IP:192.168.204.129
Windows7 ,IP:192.168.204.130
查看帮助
sudo hping3 --help
端口扫描
hping3 -I eth0 -S 192.168.204.129 -p 80
权限不够就加 sudo
拒绝服务攻击
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
使用这款工具的时候,大家用到最多的就是查询一个域名的A记录。
nslookup domain [dns-server]
如果没指定dns-server,用系统默认的dns服务器。
查询其他记录
直接查询返回的是A记录,我们可以指定参数,查询其他记录,比如AAAA、MX等。
nslookup -type=type domain [dns-server]
mx 邮件服务器记录
nslookup -type=mx mail.xxxx.com
type可以是以下这些类型:
A地址记录
AAAA地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO硬件配置记录,包括CPU、操作系统信息
ISDN域名对应的ISDN号码
MB存放指定邮箱的服务器
MG邮件组记录
MINFO邮件组和邮箱的信息记录
MR改名的邮箱记录
MX邮件服务器记录
NS名字服务器记录
PTR反向记录
RP负责人记录
RT路由穿透记录
SRV TCP服务器信息记录
TXT域名对应的文本信息
X25域名对应的x.25地址记录
dnsenum是一款域名信息收集工具。
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器等信息。
可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录)
DNS信息劫持
DNS重定向
ARP欺骗
案例:
在 kali 终端执行 dnsenum baidu.com
A (Address)记录是用来指定主机名或域名对应的IP地址记录。
NS (Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
MX (Mail Exchanger)记录是邮件交换记录,他指向一个邮件服务器,用于电子邮件系统发送邮件时根据收信人的地址后缀来定位邮件服务器。
PTR记录用于将一个IP地址映射到对应的域名,也可以看成是A记录的反向,IP地址的反向解析。
dnsmap的使用
DNS域名暴力穷举工具
参数说明
-w 后加字典文件
-r 指定结果用常规格式输出文件
-c 指定结果用csv去输出
-d 设置延迟
-i 设置忽略ip(当你遇到一个虚假ip时很有用)
案例
kali 终端:
dnsmap example.com
dnsmap example.com -w yourwordlist.txt -r /tmp/domainbf_results.txt
dnsmap example.com -r /tmp/ -d 3000
dnsmap example.com -r ./domainbf_results.txt
域名查询工具 DMitry
DMitry工具是用来查询IР或域名WHOIS信息的。WHIOS是用来查询域名是否已经被注册,以及被注册域名的详情的数据库(如域名所有人和域名注册商)。使用该工具可以查询到域名的注册商和过期时间等。
常用参数:
-o 将输出保存到 %host.txt 或由 -o 文件指定的文件
-i 对主机的IP地址执行whois查找
-w 对主机的域名执行whois查找
-n在主机上检索Netcraft.com信息
-s 执行搜索可能的子域
-e 执行搜索可能的电子邮件地址
-p 在主机上执行TCP端口扫描
-f 在显示输出报告过滤端口的主机上执行TCP端口扫描
-b 读取从扫描端口接收的banner
-t 0-9扫描TCP端口时设置TTL(默认为2)
Requires the -p 需要-p标记才能传递
dmitry -wnpb baidu.com
网站防火墙探测工具 Wafw00f
现在网站为了加强自身安全,通常都会安装各类防火墙。这些防火墙往往会拦截各种扫描请求,使得测试人员无法正确判断网站相关信息。Kali Linux提供了一款网站防火墙探测工具 Wafw00f。它可以通过发送正常和带恶意代码的HTTP请求,以探测网站是否存在防火墙,并识别防火墙的类型。
WAFW00F是怎样工作的?
为了实现这一目的,WAFWOOF会执行如下操作:
1、发送正常的HTP请求,然后分析响应,这可以识别出很多WAF。
2、如果不成功,它会发送一些(可能是恶意的)HTTP请求,使用简单的逻辑推断是哪一个WAF。
3、如果这也不成功,它会分析之前返回的响应,使用其它简单的算法猜测是否有某个WAF或者安全解决方案响应了我们的攻击。
它能检测什么?
它可以检测很多WAF。想要查看它能检测哪些 WAF,以 -I 参数执行WAFW00F
使用
wafw00f -a baidu.com
Nmap是什么?
诸神之眼,Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为 Dnamp。
Nmap可以完成以下任务:
主机探测
端口扫描
版本检测系统检测
支持探测脚本的编写
Nmap在实际中应用场合如下:
通过对设备或者防火墙的探测来审计它的安全性
探测目标主机所开放的端口
通过识别新的服务器审计网络的安全性
探测网络上的主机
Nmap的基本操作
1.对单个主机的扫描
nmap
2.对多个不连续的主机进行扫描
nmap 192.168.3.2 192.18.3.155 192.158.13.56
不同的IP之间用空格分开
3.对连续的主机进行扫描
nmap 192.168.152.100-200
4.对整个子网进行扫描
nmap 192.168.152.1-255
什么是端口?
端口是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。
端口对应着服务和软件
端口范围:0~65535
常见的端口及其说明,以及攻击方向汇总如下
文件共享服务端口
实验靶机: Metasploitable2 ,IP:192.168.204.129
Nmap端口扫描方法
-p 参数,通过该参数指定一个想要扫描的端口号,可以指定一个也可以指定一个范围。
nmap -p 80 192.168.204.129
nmap -p 80-800 192.168.204.129
扫描 tcp 端口
-sT
nmap -sT 192.168.204.129
扫描udp端口
-sU
nmap -sU 192.168.204.129
跳过Ping扫描阶段(无ping扫描)
通常Nmap在进行其他扫描之前,都会对目标进行一个Ping扫描。
如果目标对Ping 扫描没反应的话,就会直接结束整个扫描过程(服务器可以禁止Ping)
nmap -PN
仅使用Ping协议进行主机发现
有的时候,需要在大量的主机中去快速的发现主机,这个时候,仅使用Ping 协议进行扫描,速度会非常快
nmap -sP
使用ARP协议进行主机发现
ARP协议扫描只适用于局域网内,使用ARP,不仅速度快,而且结果也会更加准确。
nmap -PR
什么是指纹识别?
指纹识别技术是众多生物特征识别技术中的一种,所谓生物特征识别技术(biometrics ),系指利用人体所固有的生理特征或行为特征来进行个人身份鉴定,由于生物识别所具有的便捷与安全等优点使得生物识别技术在身份认证识别和网络安全领域拥有广阔的应用前景,可用的生物特征识别技术有指纹、人脸、声纹、虹膜等,指纹是其中应用最为广泛的一种。
服务和软件也有自己的特征,根据这些特征能够判断出具体的版本
不同的版本对应的不同的漏洞
实验靶机
Windows7, IP: 192.168.204.130
Linux, IP: 192.168.204.129
识别服务和软件版本
-sV
nmap -sV 192.168.204.129
识别操作系统版本
-O
nmap -O 192.168.204.129
在渗透测试过程中,信息收集非常重要,前面的课程中,我们介绍过非常多的信息收集工具,Nmap作为诸神之眼,扫描之王,像信息收集这样的任务,自然也可以去完成。
信息收集
nmap --script ip-geolocation-* www.0day.cn
Whois信息查询(域名)
nmap --script whois-domain www.0day.cn
NSE脚本
在 文件系统 的 /usr/share/nmap/scripts/ 目录下存放着众多的脚本可供使用
Legion是 Sparta的一个分支,它是一个开源的、易于使用的、超级可扩展的、半自动的网络渗透测试框架
是一款 kali linux系统默认集成的Python Gul应用程序工具。Legion是一个Nmap、Nikto、Hydra等工具的集合,利用各个工具的优秀功能,完成信息收集、扫描和爆破等任务。
Legion主要包含以下功能:
端口扫描,程序自动调用nmap进行扫描,根据nmap的扫描结果,nikto自动加载结果,展开更精确的扫描。
针对扫描的结果,特定使用,如 : 使用dirbuster目录爆破,利用webslayer进行web指纹识别。
针对可爆力破解的端口,可调用 hydra 进行暴力破解。
实验靶机: Metasploitable2 ,IP:192.168.204.129
不知道为啥全都 crashed …
https:// www.exploit-db.com
一个汇聚各种漏洞的网站
利用本地漏洞资源
kali Linux系统中,有搜索漏洞数据库(exploitdb)的本地副本,我们可以在终端窗口中输入命令去搜索。
Searchsploit
参数
-c, --case[Term] 执行区分大小写的搜索,默认搜索对大小写不敏感。
-e, --exact [Term]对exploit标题执行EXACT 匹配(默认为AND)
-j, --json[Term]以JSON格式显示结果
-m, --mirror [EDB-ID]将一个漏洞利用镜像(副本)到当前工作目录,后面跟漏洞ID号
-o, --overflow [Term]Exploit标题被允许溢出其列
-p, --path[EDB-ID]显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板)后面跟漏洞ID号
-t, --title[Term]仅仅搜索漏洞标题(默认是标题和文件的路径)
-u, --update检查并安装任何exploitdb 软件包更新(deb或git)
-w,–www [Term]显示Exploit-DB.com的 URL而不是本地路径(在线搜索)
使用实例
搜索标题中包含 oracle windows 的漏洞
searchsploit -t oracle windows
搜索漏洞号为39446 的漏洞
searchsploit -p 3389
查找mssql的漏洞
searchsploit mssql
查找apple的漏洞
searchsploit apple
【案例演示】
实验靶机: Windows7 下载 easy file sharing这款软件,IP:192.168.204.130
Easy File Sharing 这个软件,是一种允许访客容易地经由浏览器上传/下载文件的文件分享系统。
我们在kali 的本地漏洞库中去搜索这个软件的相关漏洞
searchsploit easy file sharing
执行漏洞脚本
python /usr/share/exploitdb/exploits/windows/remote/39009.py 192.168.204.130 80
注意:这个脚本是用 py2写的,如果报错了,说 print 有问题,是因为 py2 和 py3 输出不一样,py3 得是 print() ,带 () 的。
这个脚本会自动在 win7 中打开一个计算器,使得 Easy File Sharing 崩溃
安全建议:
系统和软件都使用最新版本
实验靶机: metasploitable2,IP:192.168.152.129
用Nmap扫描
nmap 192.168.152.129
用Metasploit模块扫描
search portscan
使用模块
use auxiliary/scanner/portscan/tcp
查看需要设置的参数
show options
设置参数
set rhosts 192.168.152.129
Metasploit:SMB扫描获取系统信息
实验靶机: Windows7 ,lP:192.168.152.134
什么是SMB
SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。
中文名:服务器信息块
通过扫描SMB,可以识别目标的系统信息
实验靶机:linux服务器,IP: 192.168.204.129
扫描服务器的SSH服务
search ssh_version
获取版本相关的模块,我们需要的是 scanner 包下的
使用该模块: use auxiliary/scanner/ssh/ssh_version
查看参数:show options
设置参数:
退出:back
实验环境
模拟用户: windows 7
实验靶机: windows server 2008(带有FTP服务),IP:192.168.152.135
切换管理员:sudo su
启动metasploit
输入命令 msfconsole
启动 metasploit
使用密码嗅探模块
use auxiliary/sniffer/psnuffle
该模块可以不设置如何参数,即可使用
执行命令:run
开始嗅探
什么是SNMP
SNMP是专门设计用于在IP网络管理网络节点(服务器,工作站,路由器﹐交换机等)的一种标准协议,它是一种应用层协议。
各种网络设备上都可以看到默认启用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。
实验靶机: Metasploitable2。 IP:192.168.152.137
默认情况下,Metasploitable的SNMP服务仅侦听本地主机。
打开并编辑 “/etc/default/snmpd ",然后将以下内容更改为:
SNMPDOPTS=‘-Lsd -Lf /dev/null -u snmp -l -smux-p /var/run/snmpd.pid 127.0.0.1’
修改为
SNMPDOPTS=‘-Lsd -Lf /dev/null -u snmp -l -smux-p /var/run/snmpd.pid 0.0.0.0’
【Linux编辑并保存文件】
sudo vim 文件名
编辑完之后,需要 sudo reboot
才能生效
实验靶机:多台windows
使用到的模块
auxiliary/scanner/smb/smb_login
操作过程
用这个 admin 和 123456 去尝试登录内网中的每个主机,0/24表示整个内网
这个用户名和密码可以换成字典,反复去暴力尝试
什么是VNC?
VNC(Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件。VNC是在基于UNIX和 Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和Windows和 MAC 中的任何远程控制软件媲美。在 Linux 中,VNC包括以下四个命令: vncserver,vncviewer,vncpasswd 和 vncconnect。大多数情况下用户只需要其中的两个命令: vncserver和 vncviewer。
实验靶机:Metasploitable2-Linux。 lP: 192.168.204.129
VNC无身份验证扫描
use auxiliary/scanner/vnc/vnc_none_auth
VNC密码爆破
use auxiliary/scanner/vnc/vnc_login
它会使用自带的密码字典进行爆破
VNC登录
新开一个普通的终端,密码就是上面爆破出来的 “password”
Wmap本身不是一个独立的漏洞扫描器,而是作为Metasploit的一个模块,结合Web漏洞和web服务相关的模块协同工作,完成目标服务器的扫描任务。它的扫描结果不会自动生成报告,而是直接存入 Metasploit的数据库。
加载 wmap
load wmap
向 wmap中添加一个扫描站点
msf > wmap_sites -a http://192.168.152.137/mutillidae/
查看已添加的站点
msf > wmap_sites -l
根据已添加站点的ID,设置带扫描的目标站点
msf > wmap_targets -d 0
检查已待扫描的目标主机
msf > wmap_targets -l
执行测试
msf > wmap_run -e
扫描完成后,使用Metasploit命令检查漏洞记录
msf > vulns
msf > wmap_vulns -l