• 20199302 2019-2020-2 《网络攻防实践》第5周作业


    作业所属课程:https://edu.cnblogs.com/campus/besti/19attackdefense/

    作业要求:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553

    目录

    • 1.实践内容
    • 2.实践过程
    • ARP缓存欺骗攻击
      ICMP重定向攻击
      SYN Flood攻击
      TCP RST攻击
      TCP会话劫持攻击
    • 3.学习中遇到的问题及解决
    • 4.学习感想和体会
    • 实践内容
      网络层

      IP欺骗原理:只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证

      攻击步骤:

      对受信任的主机进行拒绝服务攻击
      对目标主机的TCP初始序列号进行取样和猜测
      伪造源地址为受信任的主机IP的SYN数据包发送给主机
      等待目标主机将SYN/ACK包发给已经瘫痪的受信任的主机
      再次伪装成被信任的目标主机发送ACK包、建立连接。

      ARP欺骗攻击原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,但是局域网内可以存在内部攻击者,或者已经渗透进局域网的外部攻击者或恶意代码。这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系。
      源节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。
      攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。
      由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
      当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。
      如果ARP欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改

      ICMP路由重定向攻击:利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听
      攻击步骤:

      攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
      被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。
      攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
      在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。

      传输层
      TCP RST攻击:TCP协议头中将reset设为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
      攻击步骤:
      攻击主机C可以通过嗅探方式监视通信双方A、B之间的TCP连接。
      在获得源、目标IP地址及端口、序列号之后,接可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
      在确保端口号一致及序列号落入TCP造成通信双方正常网络通信的中断,达到拒绝服务的效果。
      TCP会话劫持攻击:劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
      攻击步骤:
      目标主机A与telnet服务器进行连接,并通过身份认证建立起会话。
      telnet服务器将会向目标主机发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。
      攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得目标主机A和telnet服务器间的通信内容,然后假冒目标主机A的IP地址及身份,向talent服务器发送数据包,声称自己是目标主机A。
      攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。 目标主机A仍然会继续持续talent服务器之间的连接会话,但是由于与telnet服务器之间的ACK值互相不匹配,会出现一个死锁现象。 TCP SYN Flood拒绝服务攻击:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
      攻击步骤:
      在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
      受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
      如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。

      ARP缓存欺骗攻击

      类型 IP地址 MAC地址
      攻击机 192.168.200.2 00:0C:29:47:A6:D4
      目标主机A 192.168.200.125 00:0C:29:0B:AD:OO
      目标主机B 192.168.200.124 00:0C:29:43:A4:D2

      在主机A上先对主机B进行ping命令,再使用命令arp -a对本地arp地址映射缓存表进行查询,图中所示192.168.200.3对应的mac地址为:00:0C:29:C4:0C:64

      主机A的arp映射缓存表:

      主机B的arp映射缓存表:

      使用命令 echo "1" > /proc/sys/net/ipv4/ip_forward打开攻击机的路由转发功能(此处为临时打开路由转发功能)

      使用netwox 33号工具对目标主机A和B进行arp欺骗,用法及其操作如下图


      欺骗B说自己是A:

      欺骗A说自己是B:

      确认arp:

      进行ftp登录(将192.168.200.124作为服务器):

      在攻击机上用wireshark抓包:

      ICMP重定向攻击
      ICMP重定向欺骗使用netwox 86号工具,其中-f后为目标主机192.168.200.125,-g为攻击机主机,即要成为一个虚假的路由的主机(192.168.200.2),-i为真正的路由的IP地址(此处为我们的蜜网网关地址192.168.200.1)

      之后在攻击机上运行wireshark,目标靶机上使用tracert baidu.com命令,可以看到攻击机上能够截获到192.168.200.125与baidu.com进行通信的数据包。

      SYN Flood攻击

      在kali上对192.168.200.125的23号端口进行洪水攻击

      在kali机上打开wireshark进行监控

      已经130万个包了,192.168.200.125还是反应灵敏的很,我死了!我一定是作孽了!
      换了一个目标主机,跑了一百四十多万个包,还是反应快得很,我真的是,无话可说。两个目标主机都是单核、内存几百兆,硬盘8G的玩意儿用3核内存2G硬盘50G的硬是搞不成?!ping也ping的通,按理说能够达到效果。

      找一个有wireshark的主机作为目标主机,看看是不是接收到SYN的攻击包。
      使用xp访问seed,使用kali攻击seed
      首先Xp访问Seed是可以的,之后打开seed上的wireshark进行捕包,在kali机上netwox 76 -i 192.168.200.4 -p 23对seed的23号进行洪水攻击。 But!我依然可以用xp telnet seed!来看seed上的wireshark。 按理说,在进行洪水攻击的时候,应该是收不到RST的拒绝包的,但是根据在seed上捕捉到的包显示,是有这样的数据包传回来的。?????!!!!!!!难道是因为seed联网了?

      开始怀疑是不是因为seed可以连接其他网络,那些地址的ip活跃,能够发送一个拒绝包,所以将seed的网络设为NAT1,设置静态ip地址,之后处于NAT8的kali能够ping通它,但是它不能ping通kali,所以将honey网关中的蜜罐主机加上它192.168.200.126,之后可以双向ping通了。

      这种ping之间的包,wireshark也可以捕捉到,所以就开始进行netwox 76 -i 192.168.200.126 -p 23 wireshark还是抓不到包!!!!!!!!!!!!暂时没法子了,或许是netwox出问题了?

      TCP RST攻击

      使用Windowsattack登录seed的远程连接telnet 192.168.200.4并在kali上使用wireshark进行抓包。

      使用xp(192.168.200.125)telnet winattack(192.168.200.3),使用kali进行捕包,使用seed(192.168.200.4)作为攻击者。工具netwox 40,使用方法如下图:

      xp telnet attack之后,在wireshark上找到最后一次服务器发给客户端的数据包。

      因为我们要伪造发下一个包,所以直接采用 next seq 作为下一个包的 ack ,采用 ack 作为下一个包的 seq
      然后呢,我就设置了这样一个命令

      回车后出现一个这样的框框

      然后发出去,wireshark捕捉到的内容成了这个样子

      还被人家服务器拒绝了

      遇到的问题和解决办法


      问题都写在实践中了,头疼,还解决不了。

      学习感想和体会

      我太菜了,太难受了,脑仁疼。这是一次失败的作业。

  • 相关阅读:
    java中关于AtomicInteger的使用
    什么是程序的原子性
    ReadWriteLock ReentrantReadWriteLock
    InputStream转换为String, byte[] data = new byte[1024]详解
    Invalid argument during startup: unknown conf file parameter : requirepass
    ArrayBlockingQueue 阻塞队列和 Semaphore 信号灯的应用
    java并发之同步辅助类CyclicBarrier和CountDownLatch
    CSS学习摘要-定位
    CSS学习摘要-布局
    CSS学习摘要-浮动与清除浮动
  • 原文地址:https://www.cnblogs.com/eosmomo/p/12604457.html
Copyright © 2020-2023  润新知