彩笔
2022-08-26

AirDrop主题密码题Wp

一道AirDrop主题密码题wp

题面

小A鼓起勇气向女神索要电话号码,但女神一定要考考他。女神说她最近刚看了一篇发表于安全顶会USENIX Security 2021的论文,论文发现苹果AirDrop隔空投送功能的漏洞,该漏洞可以向陌生人泄露AirDrop发起者或接收者的电话号码和电子邮箱。小A经过一番努力,获得了女神手机在AirDrop时传输的手机号哈希值,但再往下就不会了,你能继续帮助他吗?小A只记得女神手机号是170号段首批放号的联通号码。Hash:c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc
flag格式:flag{13位电话号码(纯数字,含国家代码)}


思路

  1. 尝试随波逐流暴力破解 -> 无果

  2. 尝试重新阅读题面 -> 女神号码前五位为 +86 170(去掉加号)(看见两位区域码+联通 直觉反应是cn号段了)

  3. 直接Google 这篇论文 还真查到了 PrivateDrop: Practical Privacy-Preserving Authentication for Apple AirDrop | USENIX (好长不想看)

  4. 继续找线索 另一篇文章 说明了简单解密原理 关键字段如下

  5. Privacy and security implications include the possibility of conducting
    advanced spear phishing attacks or deploying multiple “collector”
    devices in order to build databases that map contact identifiers to
    specific locations. For our proof-of-concept, we leverage a custom
    rainbow table construction to reverse SHA-256 hashes of phone numbers in
    a matter of milliseconds.

  6. 尝试 了解彩虹表

  7. 突然看到这篇Blog(题面 求13位 已知5位 13-5 = 8 但是密文是13位翻译来的 那试试能不能提供片段破解)

  8. 因为是电话号码 所以生成 13位 0-9 的彩虹表

    理论上生成的 表 前五位可以确定为 86170

    于是可以只生成 8位 0-9 组成的彩虹表,接着批处理加入 86170 的前缀

  9. 由此图大约判断出题者提供的hash为 sha256(utf16le($pass))

彩虹表

科普:彩虹表破解开机密码、MD5算法等的原理-bjutslg-ChinaUnix博客

暴力破解和彩虹表攻击的区别与联系 - 诸子流 - 博客园

暴力破解和彩虹表攻击宽泛来说都属于口令破解,但他们使用的场景完全是不一样的。

暴力破解:完全不知道密码—-通过系统提供的认证接口不断认证—-获取原始口令—-处于进入系统前

彩虹表攻击:已知密码hash值—-通过自己的工具及彩虹表不断查找—-获取原始口令—-处理进入系统后

暴力粗略估算10天左右,也知道密码hash值,于是采用彩虹表方案(到目前为止我还是不知道彩虹表怎么用)

杂谈:Password hashing and salting

Q:破解一个散列的电话号码容易吗?

我想对电话号码进行 SHA256 哈希处理以隐藏它们。这是一个好主意吗?有没有其他方法可以使这个安全?

最佳回答

不,散列电话号码不是一个好主意。电话号码数量有限,因此对手很容易尝试对所有电话号码进行哈希处理。然后您可以简单地将每个哈希值与存储的哈希值进行比较。通常,您不必处理所有电话号码,而只需处理一部分电话号码(针对特定国家或逻辑上不同的其他组)。

您可以使用带有盐和工作因子的慢速密码散列,但这只会意味着所需的时间乘以一个大的恒定值。它不会改变操作顺序。如果子集足够小,它可能无法阻止对手执行所有必要的计算。

在这种情况下,您可能需要加密电话号码。或者使用密钥散列,例如 HMAC。对于这两个选项,您都需要对密钥执行密钥管理;这并不像散列数字那么容易。

利用彩虹表破解Hash - 腾讯云开发者社区-腾讯云

youtu->此漏洞演示视频USENIX Security ‘21 - PrivateDrop: Practical Privacy-Preserving Authentication for Apple AirDrop - YouTube

1
rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index
1
2
// 结合题意和已知信息做出如下命令
rtgen sha256 numeric 13 13 0 10000000 10000000 0

参数含义

但是生成了很久也没出来 应该是长宽太大了

后来pl师傅说可以直接用hashcat搜后7-8位

1
.\hashcat.exe -m 1400 -a 3 c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc 86170?d?d?d?d?d?d?d?d

1s 出结果

屏幕截图 20220826 182932png

结论:直接用 hashcat 比彩虹表快(至少这道题如此

最后:为什么上面说可以只查七位呢?–见下图