渗透环境准备
渗透工具
Java
JDK 8
python
miniconda3虚拟环境中安装
VMware
虚拟机
Linux使用基础
kail Linux
1、下载Kail Linux 的iso镜像,使用VMWare虚拟机安装镜像,然后搭建一个kail Linux环境
2、配置Kail Lnux
虚拟靶场环境搭建
Docker
一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化容器(使用沙箱机制)
组成部分
Docker Client :客户端
Docker Daemon :守护进程
Docker Image :镜像
Docker Container :容器
安装
1、下载docker(这里使用了脚本)
2、查看docker服务状态 [root@localhost ~]# systemctl status docker
3、启动docker服务 [root@localhost ~]# systemctl start docker
4、开启自动启动Docker服务 [root@localhost ~]# systemctl enable docker
5、安装docker-compose(虽然新版Docker自带了compose命令,但是不好用,还是自己安装一个docker-compose)
6、配置为国内镜像源
基本操作
镜像操作
1、查看镜像 [root@localhost ~]# docker images/docker image ls -a
2、拉取镜像 [root@localhost ~]# docker image pull +镜像名
3、删除镜像 [root@localhost ~]# docker image rm +镜像名/docker rmi +镜像名/镜像ID(正在运行的容器是无法删除的)
4、停止镜像[root@localhost ~]# docker ps
5、镜像保存[root@localhost ~]# docker save -o 保存的文件 镜像名
6、镜像加载[root@localhost ~]# docker load -i 镜像文件
容器操作
1、创建容器 [root@localhost ~]# docker run -it +镜像名 /bin/bash(交互式容器)/docker run -dit +镜像名 /bn/bash(守护式容器)
2、查看容器 [root@localhost ~]# docker ps /docker container ls/docker ps -a/docker container ls --all
3、启动容器 [root@localhost ~]# docker start +容器ID(容器名)/docker container start +容器ID(容器名)
4、停止容器 [root@localhost ~]# docker stop +容器ID(容器名)/docker container stop +容器ID(容器名)
5、删除容器 [root@localhost ~]# docker rm +容器ID(容器名)/docker container rm +容器ID(容器名)/docker container rm -f +容器ID(容器名)
6、容器保存为镜像 [root@localhost ~]# docker commit +容器名 镜像名
渗透测试基础
网络协议基础
分层网络协议(OSI七层、TCP四层、五层)
这里使用的是五层模型
应用层
应用层关注于为用户提供应用功能,不用关心数据是如何传输的,工作在操作系统中的用户态。
应用层包含各种应用程序协议,如HTTP、FTP、STMP、POP3等
传输层
传输层负责为应用层提供网络支持,有两个传输协议TCP和UDP
1. TCP
传输层控制协议,具有流量控制、超时重传、拥塞控制等功能,可以保证数据包的可靠传输
TCP分段:TCP协议中将发送的数据包分块,这个分块称为一个TCP段,当数据包较大的时候,如果有一个分块丢失或损坏,只需要重新发送这个分块即可
端口:接受设备收到传输层发来的数据包时,需要编号将应用区分开,这个编号就是端口。
2. UDP
用户数据协议,只负责发送数据包,但不能保证数据包能否到达对方,但实时性相对更好,传输效率较高
UDP也可以实现可靠传输,将TCP的特性应用在UDP上就行,但代价较高
网络层
网络层最常见的协议是IP协议,IP协议会将传输层的报文作为数据部分,再加上IP包头组装成IP报文
IP协议的作用是寻址和路由:
1. 寻址:是告诉设备去往的下一个目的地该朝那个方向走,像是导航
2.路由:是根据下一个目的地址选择路径,像是操作方向盘
网络层需要IP地址对通信设备进行编号,IP地址是32位,IP地址的格式为:xxx.xxx.xxx.xxx
IP地址由网络号和主机号组成,网络号负责识别IP地址属于哪个子网,主机号识别同一子网中不同的主机
在寻址过程中,先匹配到相同的网络号,才会去找对应的主机
还有个子网掩码的概念,结合子网掩码,可以算出IP地址的网络号和主机号
数据链路层
数据链路层专门识别网络中的设备,让数据子在一个链路中传输,主要为网络层提供链路级别传输的服务
数据链路层主要靠设备的MAC地址,它是用来唯一标识设备的,通过路由器计算出下一个目的地的IP地址,然后通过ARP协议找到该目的地的MAC地址,然后就知道IP地址是哪个设备的了
物理层
物理层主要是靠物理设备进行连接,如中继器、集线器、网桥、交换机、路由器
网关等
图解IP
IP的作用是在复杂的网络环境中奖数据包发送给最终目的主机 每台设备都有一个IP和默认网关,IP通过路由器中的路由表进行寻址 路由协议:多个不相连的设备进行互通
IP和MAC的关系:IP负责在没有直连的两个网络之间进行通信传输,MAC是实现两个直连设备之间的通信,在通信过程中,源IP和目的IP是不变的,而源MAC和目的MAC一直在变化
1、IP地址分类
A类:0+网络号(7位)+主机号(24位)0.0.0.0-127.255.255.255
B类:10+网络号(14位)+主机号(16位)120.0.0.0-191.255.255.255
C类:110+网络号(21位)+主机号(8位)192.0.0.0-223.255.255.255
[注:两个特殊IP地址:
主机号全为0:192.168.1.0,指定为某个网络
主机号全为1:192.168.1.255,指定某个网络下的所有主机用于广播
]
D类:1110+组播地址(28位)
E类:11110+留待后用(27位)
2、子网划分
控制网络位来换分子网,可以借助主机位增加网络位,如127.0.0.0/7
3、子网掩码
网络号全为1,主机号全为0
Burpsuite
burpsuite是一款集成化的渗透测试工具,集合了多种渗透测试组件,自动化或手动完成对web应用的渗透和攻击
- 使用
- proxy(代理) BP通过以拦截代理的方式,拦截所以通过代理的网络流量,如客户端的请求数据、服务端的返回信息等(主要拦截)
