TCP三次握手与四次挥手
一. TCP协议简介TCP是传输层的协议,传输层的作用是:
定义应用层数据报文的端口号
流量控制
对原始数据进行分段处理
纠错
1. 传输层(1) 传输层所提供的服务传输连接服务
数据传输服务:浏览控制、差错控制,序列控制
(2) 传输层协议面向连接的传输协议 - TCP
用户数据报协议 - UDP
2. 传输层的TCP协议TCP要求数据在传输以前必须建立连接(三次握手);数据传输完成后,必须释放连接(四次挥手),而且它仅支持单播传输:在两个终端之间建立的点对点的连接
二. TCP数据包我们在kali一个http服务,然后用win7去访问它
kali IP:192.168.40.129
win7 IP:192.168.40.135
我们抓个包看看,抓到后我们看TCP的报文
1. 前面的一些报文
我们可以看到192.68.40.135和192.168.40.129这两个IP之间搭建了TCP连接
我们打开一个报文看看
可以看到,TCP报文里有一个发送的端口号49189,接收方的端口号80.
往下有一个Sequence Number(raw),这个是真实的序列,然后有raw和没有r ...
极其经典的病毒库
参考:盘点一些著名的病毒名称及样本分享
一. 脚本/整蛊/恐吓/恶意破坏类1. 彩虹猫病毒MD5:19dbec50735b5f2a72d4199c4e184960
英文名称:Trojan.Win32.MEMZ.A(标准)
该病毒属于MBR病毒,从功能上看,它是一款恶作剧病毒,它会修改MBR主引导扇区,以此来破坏电脑的正常启动。
在修改MBR后,电脑重启会停留在一个彩虹猫的画面,因此该病毒被称为是彩虹猫病毒。
运行该病毒后会出现两次窗口提示,仍然确认运行后即修改MBR,蓝屏前弹出许多页面,鼠标失控,桌面变成通道,蓝屏后无法正常开机,出现彩虹猫。
详细分析:https://www.sohu.com/a/448447210_120054144
样本:https://wwi.lanzoup.com/iz7pf0k6j1wj
2. CIH病毒MD5:008c786f3c188338d7ae9dd8be8838a6
MD5(源文件):d30ee3c2d3d9056f0f70fc8d48e61156
英文名称: Virus.Win9x.CIH.1 ...
IP数据包的格式
一. 网络层回顾路由器是属于三层设备(网络层)设备。
网络层的功能是来进行逻辑地址(IP地址)寻址,实现不同网络(网络地址不等或者说是内网和外网的分割,注意内网的IP地址是无法在外网上进行路由)直接的路径选择。
逻辑地址寻址就是去查找目的是否可以到达,如果可以到达,选择一条最优的路径,如果不能到达,直接返回给发送方一个消息
网络层所传输的PDU(传输数据单元)是数据包(IP数据包)
二. 网络层IP数据包的格式1. IPV4格式
它由两个部分组成,首部和数据部分。
首部单单由源IP地址和目的IP地址组成,它还有其他东西
(1) 版本版本里面主要包含了,你当前使用的IP版本是什么。版本是4就是叫做IPV4,版本是6就叫做IPV6
它占了4个字节
(2) 首部长度由于IP数据报文的首部有一个 “可选字段” 的存在,导致首部长度是可变的,所以需要去定义一下首部长度
(3) 区分服务(服务质量/优先级和服务类型)为了保障更好的服务,主要是在IP层做QoS
QoS指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题 ...
IP地址方面知识详解
一. IP地址的基本概念1. IP地址用于表示网络中的某一台主机(某一个网络接口),主机的唯一标识,保证主机间的正常通信(主机想要及及进行网络通信,就必须配置相应的IP地址)
IP地址是一种网络编码,用来确定网络中的一个节点
IP地址由32为的二进制组成
我们举一个例子:
123这里有一个IP是 192.162.18.22,这是十进制表示的我们把它用二进制表示就是:11000000.10101000.00010010.00010110
2. IP地址的组成部分网络部分:用于标识网络部分
主机部分:用于标识网络范围中的一个节点
举一个例子:
12345678910111213141516171819我们假设,刚才那个IP地址:192.168.18.22(1)情况一如果 192.168.18 是网络部分,22是主机部分我们看主机部分:主机部分的范围是 00000000 ~ 111111111,换成十进制就是 0 ~ 255所以在这个网络范围里头有 0 ~ 255 个IP地址,有2的8次方(256)个IP地址,22只不过是其中一个(2)情况二如果网络部分是 192.168 是网络部分,18 ...
ICMP协议与ICMP重定向
一. ICMP协议相关1. ICMP协议(1) 功能ICMP,Internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制信息指网络通不通,主机是否可达,路由是否可用等等
比如我们ping百度
能够ping通就说明,你能连上外网,百度那面的服务器没问题,你的路由器,路由表没问题,你的DNS解析没问题……
我们随便ping一个IP
发现ping不通,由于我们上面能够ping通百度,说明我们这里应该是没有问题的,既然这次ping不通,就说明是对方的问题。这时就有两个可能,到达了目的方,没做响应;没到达目的方。
我们搜一下这个IP
这个是一个美国IP,我还用了VPN,这还是个外网IP,按道理是能ping通的,我们访问一下
可以看见,是对面网站出了问题。
(2) 封装结构ICMP是网络层协议,封装在传输层与网络层之间,它的封装结构如下
我们抓个包来看一下它的报文
可以看到这个报文还是比较简单的。
2. ICMP报文格式这里面有两个是’Type’和’Code’,这两个通常一起来看
‘8,0’组合的都是请求报文,比如上面那张图展示的Type是8,Code为0
我们看一下响 ...
注册表有关知识及其应用、维护和优化
一. 注册表基础1. 概述注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统
注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息,它包括了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据。利用一个功强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性
2. 早期的注册表早期的注册表是以ini 为扩展名的文本文件的配置文件
3. Windows 95后的注册表自Windows 95操作系统开始,注册表真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用
(1) 注册表数据库由多个文件组成注册表的文件在:C:\Windows\System32\config
(2) Windows 提供了注册表编辑器,就是我们的命令regedit我们平时打开注册表是通过regedit命令来打开,其实它也可以通过exe双击直接打开
注册表管理的目录是:C:\Windows
4. 注册表的结 ...
用Socket建立简单的数据传输
一. Socket介绍1. Socket是啥我们先从插头说起,当我们把插头插入插座,那看起来就像插头和插座连在了一起
而插座的英文叫做socket
在进行网络编程的时候,我们也可以通过socekt进行连接
所以socket是来连接两个设备的,即有服务端和客户端之分,这俩的代码也是不一样的。
2. Socket的网络连接既然Socket主要是用来解决网络通信的,那么我们就来理解网络中进程是如何通信的。
1. 本地进程间通信
1、消息传递(管道、消息队列、FIFO)
2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)?【不是很明白】
3、共享内存(匿名的和具名的,eg:channel)
4、远程过程调用(RPC)
2. 网络中进程如何通信
我们要理解网络中进程如何通信,得解决两个问题:
1、我们要如何标识一台主机,即怎样确定我们将要通信的进程是在那一台主机上运行。
2、我们要如何标识唯一进程,本地通过pid标识,网络中应该怎样标识?
解决办法:
1、TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机
2、传输层的“协议 ...
Socket模块在通信中存在的问题
我们在这篇文章中(用Socket建立简单的数据传输 | Trtyr’s Blog),简单的做到了单次通信,但是在实际中肯定不会这么见简单
首先就是要做到持续通信,而且有可能我们需要多个不同的客户端,然后发现,我们之前写的那个 “玩具” 根本行不通,
一. 多次通信我们之前的程序,每次传输后,都会自动结束,所以我们要解决这个问题。
我们很容易能想到,加死循环,让它一直连接
先改客户端和先改服务端都一样。我们先改客户端玩玩
1. 客户端修改我们先看之前的代码
1234567891011121314151617# 服务端IP:172.40.66.163 # 客户端IP:192.168.40.129 import socket client = socket.socket() # 默认TCP连接 client.connect(('172.40.66.163', 8001)) # 服务端IP,以及服务端开放的端口 # 向服务端发送消息 client.send('我是客户端'.encode()) # 这个 "我是客 ...
Meterpreter相关介绍
一. Meterpreter是什么当我们利用MSF生成了一个木马,并且在靶机上运行后,我们的MSF会进入如下的一个界面
我们进入一个meterpreter的命令行。
我们建立了一个木马链接,这在MSF中叫做一个session,第一个建立的连接就是 session 1;如果你又建立了一个连接或者漏洞利用进程,它就是session 2.
Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用。
攻击荷在触发漏洞后会返回-个由我们控制的通道,可用于远程执行命令!
Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。
Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。
除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要了解下。
二. Meterpreter中常用的反弹类型
reverse tcp
...
虚拟局域网VLAN相关知识
这个主要用在交换机上
一台交换机默认情况下连接一个广播域,因为默认情况下所有的接口都是属于同一个vlan的,默认vlan1,所以是在同一个广播域中。
结合交换机的工作原理,数据来了之后,如果交换机上面的所有接口全部连着主机或者其他设备,那么交换机就会从所有的接口广播出去,造成广播域有点大,导致广播流量过多,这样会产生网络拥塞。
为了解决上述情况,就需要在交换机上划分广播域,使得一个交换机上存在多个广播域,这就是虚拟局域网VLAN
一. 目的1. 划分广播域虚拟局域网VLAN的目的是为了划分广播域,不同广播域中的主机,是不能够进行通信的,如果想要通信,这时候需要借助路由
简单画个图看一下
这是一个交换机(黑色框),有8个接口(红色的),这些接口都属于一个广播域,默认VLAN1,并且都有设备连接。现在从左面设备传来了一个数据,通过交换机广播给了其余的7个接口所对应的设备。
我们设置虚拟VLAN后是这样的
这样就变成了两个广播域,从左面设备传来的数据只会在本广播域进行广播,控制了广播
2. 增强网络的安全性还是刚才的那个网络
现在主机A沦陷了,于是向交换机发了一个ARP广播,那么这个广 ...