网络攻击溯源与流量分析

背景知识

拒绝服务攻击即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安全缺陷,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。具体原理是:TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),那么服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上,如果服务器的TC P/IP栈不够强大,那么最后的结果往往是堆栈溢出崩溃——即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时,从正常客户的角度看来,服务器失去响应,这种情况就称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)。

SYN半链接攻击流量分析

使用 wireshark 打开 nmap.pcap 文件。

打开数据包之后,发现大量来自 192.168.177.155 TCP 连接请求,且均为 TCP 三次握手中的第一次 SYN 请求,而且目的端口一直在改变。

观察数据包,当服务端进行进行第二次握手之后,客户端并没有响应。

由此可以判断出,此时 192.168.177.155 这台主机正在对 192.168.177.145 这台主机进行端口扫描。而且扫描模式为 SYN 半连接扫描。     注:SYN 半连接扫描使用含有 SYN 标志位的数据包进行端口探测。如果目标主机回复了SYN/ACK包,则说明该端口处于开放状态。如果回复的是 RST/ACK 包,则说明这个端口处于关闭状态;

基于 SYN 半连接扫描的特点,我们可以通过显示过滤器过滤出 192.168.177.145 回复了SYN/ACK 的数据包。以确定 192.168.177.145 开放了哪些端口。

经分析可知,192.168.177.145 这台机器一共回复了 15 SYN/ACK 数据包。所以可以判断出,这台机器一共开放了 15 个端口。且分别为红框中的 15 个端口。

 SQL注入攻击流量分析一

 使用 wireshark 打开提供的 web.pcap 数据包。

因为要分析针对 web 的攻击。所以在显示过滤器中输入 http 过滤出 http 协议相关的数据包。

查看 http 数据包的 get 请求参数处,发现大量的 sql 语句。我们可以判断,黑客正在对目标进行 sql 注入攻击。

通过 get 请求的来源 IP,可以判断出黑客的 IP 为 192.168.177.1。

观察 get 请求包的 user-agent 头为 python-reqursts,可以判断黑客使用了 python 脚本对目标实施的攻击。同时攻击的 payload 中 ascii,和比较符等关键字。说明黑客使用的注入技术为布尔盲注。

观察数据包 get 请求的参数,根据黑客提交的 payload,if(length(database()=0,1,0)),其中 length 是获取 database()的数据库名的长度。然后通过 0,1,2 等进行比较,当相等时,返回 1。这使得 ‘1’and 1 为真,有查询结果返回。所以通过这个 payload,我们可以得出,黑客此时是在判断数据库名的长度。

分别观察前 9 条请求的响应数据包。通过响应包内容可以发现,前 8 条请求的响应包内容相同,而第 9 条的响应包内容不同。根据 payload 的内容我们可以判断出黑客已经获得了数据库名的长度为 8。

在看第 9 条请求包之后的数据包,分析黑客提交的 payload,1'and%20if(ascii(substr(database(),1,1))=79,1,0)%20--+通过 substr 函数,将 database()函数的值,从第一位开始,截取一位,然后在转化为 ascii码跟 79 进行比较。如果数据库名称的第一位值的 ascii 码值等于 79,则会返回 1,否则返回0,这样当返回 1 时,’1’and 1 为 true,即可正常查询到数据。通过依次截取第一位,第二位,第三位等,这么就能获得数据名每一位的值,依次拼接之后,即可获得完整的数据库名。根据黑客提交的 payload 的含义,我们可以得出,黑客此时是在逐位获取数据库名称。

根据黑客测试的 payload 的回显示信息来判断,可得到当响应包中出现 You are in……的时候为查询正常。所以我们可以判断出数据库第一位的 ascii 码值为 115。对应的值为 s。

根据第 9 步的判断方法。依次判断后面的数据包,可得知,黑客获取数据库 8 位的全部字符。得到了数据库名称。最终数据库的名称为 security。

根据数据到的分析,我们可知最终黑客只获取了数据库名的长度和数据库名称。

 SQL注入攻击流量分析二

使用 wireshark 打开提供的 web.pcap 数据包。

因为要分析针对 web 的攻击。所以在显示过滤器中输入 http 过滤出 http 协议相关的数据包。

查看 http 数据包的 get 请求参数处,发现大量的 sql 语句。我们可以判断,黑客正在对目标进行 sql 注入攻击。且来源 IP 为 192.168.177.1。

当继续向下浏览数据包时,我们发现出现了大量的来自 192.168.177.145 的 IP,在步骤三时,已经判断出,来源 IP 为 192.168.177.1 正在对网站进行 sql 注入攻击,所以此时我们需要排除192.168.177.145 这个 IP 对的干扰,筛选出所有来源 IP 和目的 IP 为 192.168.177.1 的 http 请求。

观察 get 请求包的 user-agent 头为 python-reqursts,可以判断黑客使用了 python 脚本对目标实施的攻击。同时攻击的 payload 中具有 sleep()关键字。说明黑客使用的注入技术为时间盲注。

观察数据包 get 请求的参数,根据黑客提交的 payload,if(length(database())=8,sleep(5),0),其中通过 length函数来获取数据库的长度,然后跟 1-8 的数字进行比较,如果相同则,if 函数执行 sleep(5)。此时就请求包和响应包就会有一个明显的时间差。根据这个特点,我们可以得知,黑客获取了数据库长度为 8。

观察之后的 payload,通过 substring 函数截取数据库名的每一位,跟 26 个字母进行比较,如果相等,则会执行sleep()函数,请求包和响应包的时间会出现一个明显的差值。根据这个特点,分析之后的数据包。我们可以判断黑客得到了数据库的名称为 security。

 

 Web入侵溯源

使用 Wireshark 打开 webattack.pcap 数据包。因为是对 web 攻击进行溯源分析,所以我们只需要关注 http 协议的数据包。所以在显示过滤器中输入 http,过滤出 http 协议的数据包。从过滤出的数据包中,我们从请求方式和请求参数上来看属于正常浏览的数据包。

从数据包编号为 345 的数据包开始,之后出现了大量的 head 请求,以及大量的 404 响应。且来源 IP 都为同一个 IP,由此我们可以判断出,192.168.177.1 这个 IP 在对网站进行目录爆破。

从编号为 20553 的数据包开始收到大量的 POST 请求,POST 请求地址都为 admim/login.php 猜测黑客已经通过目录扫描找到了后台登录的路径。

在任意一个 POST 数据包上,右键选择追踪流->http 流,查看 http 请求和响应的具体内容。从请求中,我们看到,黑客以 admin 为用户名进行爆破。追踪多个 POST 数据数据包的 http流。发现请求的内容只有 admin_pwd 在变化,admin_name 不变所以可以断定黑客在爆破 admin的密码。

从 55019 个数据包开始,开始出现浏览后台文件的 get 请求,此处说明黑客在上一步爆破用户名密码时已经成功获取到了后台的 admin 账户的密码。成功登陆了后台,并开始浏览后台的相关功能。找寻下一步的利用点。

在 55500 个数据包这里,开始出现目录遍历的操作。

分别追踪这三个数据包的 http 流,前两个数据包的响应包内容均为 JS 代码的返回上一步操作。而第三个数据包的响应包内容为 index.php 的源代码。由此能判断出,黑客通过tpl_manage.php 读取到了 index.php 的源代码。

之后 tpl_manage 页面有一个 POST 请求,追踪该请求的 http 流,观察提交的内容和响应的内容。请求体中的内容经过了 URL 编码不利于观察,将其复制到 notepad++ 中进行 URL 解码后观察。解码后得到如下内容,在其中发现了 php 一句话木马。猜测黑客可能通过 tpl_manage.php文件向 index.php 中写入了一句话木马。

在之后的数据包中看到黑客之后又访问了 index.php 页面。而且是 post 请求。结合前一步得出的结论,黑客在 index.php 页面插入了一句话木马之后,这里有可能是黑客对一句话木马进行测试。同样追踪该数据包的 http 流,查看请求和响应的内容。

通过追踪 http 流,看到黑客向 index 页面的一句话传递了 phpinfo 函数,响应体的内容也证明了 phpinfo 函数被正确执行。由此确认了一句话写入成功。

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 网络溯源方式包括:1、IP定位技术,利用IP地址信息,根据IP定位攻击者所在地;2、域名溯源,分析域名注册和DNS记录,查询域名所有者和拥有者;3、日志查询,对历史日志记录进行分析,查询网络攻击者的IP地址和行为。 ### 回答2: 网络攻击追踪溯源是指通过各种手段追踪网络攻击的发起者,以便追究其法律责任。下面我将简要介绍三种常见的网络溯源方式。 首先是IP地址追踪。IP地址是计算机在网络上的唯一标识,通过追踪攻击的IP地址,可以初步确定攻击源的位置和归属。网络管理员可以通过日志记录等方式获取攻击的IP地址,并结合公开的IP地址数据库或互联网服务提供商协助追踪攻击源。 第二种方式是端口扫描追踪。网络攻击常常利用特定的端口进行入侵和攻击,例如攻击者可能使用常见的网络端口扫描工具进行目标计算机的扫描。通过监测和分析网络流量,网络管理员可以成功追踪到攻击者的活动轨迹,进一步掌握攻击者的位置和方法。 第三种方式是流量追踪分析。网络攻击通常会导致网络流量异常增加,管理员可以通过监控和分析网络流量,识别出具体的攻击流量,并通过分析攻击流量的特征和模式,追踪到攻击源的位置。此外,还可以利用网络入侵检测系统(IDS)和入侵防御系统(IPS)等工具来及时发现并阻断攻击。 总结起来,常见的网络溯源方式包括IP地址追踪、端口扫描追踪和流量追踪分析。这些方式为网络管理员提供了有效的手段来追踪网络攻击的发起者,维护网络安全并追究攻击者的法律责任。 ### 回答3: 网络攻击追踪溯源是指通过各种手段追踪网络攻击的发起者,以便能够追究其责任并采取相应的防护措施。下面简要介绍三种常见的网络溯源方式。 首先,IP地址追踪是网络攻击追踪溯源的一种常见方式。每台联网设备都会被分配一个唯一的IP地址,通过对网络流量的监控和分析,可以追踪到网络攻击的发起者所使用的IP地址。通过查找ISP(互联网服务提供商)的记录,可以确定IP地址的所有者,进而找到发起网络攻击的人。 其次,日志分析也是一种常用的追踪方式。各种网络设备和服务都会生成日志,其中包含了各种与网络攻击相关的信息。通过分析这些日志,可以获取与攻击相关的数据,如攻击时间、攻击类型等,进而推断出攻击的发起者及其所使用的设备和工具。 最后,前向溯源(Forward tracing)也是一种可行的方法。前向溯源是通过网络路由的记录和跟踪,从受攻击的目标开始,逆向追踪攻击流经的路径,以确定攻击的发起者。这种方式可以通过检查攻击流量的来源IP地址、经过的路由节点等信息,逐步确定攻击路径,并找到最后一个节点,即攻击的发起者。 综上所述,网络攻击追踪溯源可以通过IP地址追踪、日志分析和前向溯源等方式实现。这些方法可以相互结合,提高攻击追踪的准确性和有效性,帮助网络安全人员更好地应对和防范网络攻击

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值