重放攻击

重放攻击

本小妞迷上赌 提交于 2020-02-09 03:35:13
重放攻击:   重复的会话请求就是重放攻击。可能是因为用户重复发起请求,也可能是因为请求被攻击者获取,然后重新发给服务器。 重放攻击的危害:   请求被攻击者获取,并重新发送给认证服务器,从而达到认证通过的目的。   我们可以通过加密,签名的方式防止信息泄露,会话被劫持修改。但这种方式防止不了重放攻击。 重放攻击的防御(保证请求一次有效): HTTPS连接过程(https协议就是http+ssl协议): 中间人攻击原理: HTTPS中间人攻击防御: SSL会话劫持成功的必要条件: HTTPS的作用:   1.保密:访问者的连接被加密,隐藏URL、Cookie和其他敏感元数据。   保证真实性:访问者是与“真实的”网站发生对话,而不是通过模仿者或者“中间人”进行对话。   2.保证可信性:访问者和网站之间发送的数据没有被篡改和修改。 为什么HTTPS仍然会不安全?   加密是发生再应用层和传输层之间,在传输层看到的数据是经过加密的。加密数据只有在客户端和服务端才能得到明文,客户端和服务端的通信过程是安全的。   而在浏览器的调试工具里可以看到请求信息,而且还是明文,是因为这里的数据是应用层的,还未经过加密。 HTTPS抓包过程分析(TLS与SSL在传输层对网络连接进行加密): 来源: https://www.cnblogs.com/happystudyhuan/p/12286076

钓鱼配合SMB欺骗重放攻击

耗尽温柔 提交于 2020-01-16 00:52:08
前言:之前自己看的时候不太理解,现在发现好理解多了,于是就打算自己写一点来记录下 SMB欺骗重放攻击,当访问\IP\File的时候,会默认将当前用户密码凭证送到SMB服务进行认证, 失败后才弹出需要输用户密码的对话框,但此时SMB服务器已经收到了相应数据,通过抓 包即能获取到用户凭证。有了这个凭证,再进一步利用Hashcat等工具进行破解即有可能 得到能利用的用户密码。 在实际渗透过程中,往往会配合钓鱼进行,我们的红队经常这么玩。 1、在共享上放置特殊的目录,当用户点到这个目录的时候会自动请求攻击的SMB; 2、在doc或邮件正文里插入文件,然后将相应的链接改为UNC路径,通过内网邮件发送给对 方; 3、利用PDF的GoTobe和GoToR功能让对方打开PDF时自动请求SMB服务器上的文件等等。 一般企业内部员工看到内部的邮件或公用共享文件夹会放松警惕,当点开之后,当前用户密 码登录凭证已经被人拿到。 关于这块的攻击手法非常多,感兴趣的可以访问: https://osandamalith.com/2017/03/24/places-of-interest-in-stealingnetntlm-hashes 来源: https://www.cnblogs.com/zpchcbd/p/12199386.html

深入了解重放攻击和如何防范

纵然是瞬间 提交于 2020-01-13 06:03:40
重放攻击的概念 根据百科的解释: 重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。 它是一种攻击类型,这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。从这个解释上理解,加密可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通讯过程中都可能发生。重放攻击是计算机世界黑客常用的攻击方式之一,它的书面定义对不了解密码学的人来说比较抽象。 概念性的几个防御手段 时间戳 “时戳”──代表当前时刻的数 基本思想──A接收一个消息当且仅当其包含一个对A而言足够接近当前时刻的时戳 原理──重放的时戳将相对远离当前时刻 时钟要求──通信各方的计算机时钟保持同步 处理方式──设置大小适当的时间窗(间隔),越大越能包容网络传输延时,越小越能防重放攻击 适用性──用于非连接性的对话(在连接情形下双方时钟若偶然出现不同步,则正确的信息可能会被误判为重放信息而丢弃,而错误的重放信息可能会当作最新信息而接收) 序号 通信双方通过消息中的序列号来判断消息的新鲜性 要求通信双方必须事先协商一个初始序列号

API设计中防重放攻击

时光总嘲笑我的痴心妄想 提交于 2019-12-02 03:12:06
HTTPS数据加密是否可以防止重放攻击? 否,加密可以有效防止明文数据被监听,但是却防止不了重放攻击。 防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正常逻辑是插入数据库操作,那么一旦插入数据库的语句写的不好,就有可能出现多条重复的数据。一旦是比较慢的查询操作,就可能导致数据库堵住等情况。 付款接口,或者购买接口会造成损失 需要采用防重放的机制来做请求验证。 timestamp+nonce 我们常用的防止重放的机制是使用timestamp和nonce来做的重放机制。 timestamp用来表示请求的当前时间戳,这个时间戳当然要和服务器时间戳进行校正过的。我们预期正常请求带的timestamp参数会是不同的(预期是正常的人每秒至多只会做一个操作)。每个请求带的时间戳不能和当前时间超过一定规定的时间。比如60s。这样,这个请求即使被截取了,你也只能在60s内进行重放攻击。过期失效。 但是这样也是不够的,还有给攻击者60s的时间。所以我们就需要使用一个nonce,随机数。 nonce是由客户端根据足够随机的情况生成的,比如 md5(timestamp+rand(0, 1000)); 也可以使用UUID, 它就有一个要求,正常情况下,在短时间内