WeChall - Anderson Application Auditing (AAA)

Challenge

Anderson Application Auditing 是 storyline/realistic 多阶段挑战。背景:VSA 委托 SoftMicro 开发程序、Anderson 负责审计,你作为 hacker 需要劫持 Anderson 与 SoftMicro/VSA 之间的通信,替换被审计程序为恶意版本。过程中收集六段 secret code,拼接后提交。

已知信息:

  • SoftMicro 网段:207.46.197.0
  • 你的 public IP:17.149.160.49
  • Anderson 主页:index2.html

Solution

第一阶段:路由劫持

阅读 tech_spec.txt 获取网络文档,其中泄露了路由器管理凭据 admin/admin

访问 router_config.html,用默认凭据登录。添加两条路由,将 SoftMicro 和 Anderson 相关网段的流量劫持到你的 public IP:

1
2
route add -net 207.46.197.0 netmask 255.255.255.0 gw 17.149.160.49
route add -net 12.110.110.0 netmask 255.255.255.0 gw 17.149.160.49

成功添加后获得第一段 secret code。

第二阶段:MD5 碰撞

题目模拟 Anderson 通过 PKI/MD5 验证程序完整性。需要上传两个内容不同但 MD5 相同的文件来替换合法程序。

页面提示使用 MD5 碰撞工具。用 fastcoll(Linux)生成碰撞文件:

1
2
echo "prefix" > good.txt
fastcoll -p good.txt -o evil1.txt evil2.txt

上传两个碰撞文件后获得第二段 secret code。

第三阶段:SSH Fingerprint

服务只检查 SSH fingerprint 的前 2 字节和最后 1 字节。需要用 fuzzy fingerprint 工具生成满足部分匹配的密钥对。

使用 THC-FuzzyFingerprint(ffp)工具:

1
2
# 目标 fingerprint(16 进制,只关心前 2 和后 1 nibble)
ffp -f md5 -k 4 -l 1000 -t 03:88:9c:36:41:50:39:15:04:95:89:a4:15:84:fb:b3 -e -d /tmp

生成后上传 ssh-rsa00.pub(公钥)和 ssh-rsa00(私钥),通过验证后获得第三、四段 secret code。

第四阶段:清理痕迹

回到 router_config.html,删除之前添加的路由:

1
2
route del -net 207.46.197.0 netmask 255.255.255.0 gw 17.149.160.49
route del -net 12.110.110.0 netmask 255.255.255.0 gw 17.149.160.49

完成后获得第五、六段 secret code。

最终提交

六段 secret code 按顺序拼接:

routeevilmd5mitmfingerprintgameover