我正在运行 Linux Mint 17。
我找到了一个帕斯特宾python 文件在/usr/local/bin
鉴于人们使用pastebin的目的,这是否存在安全风险?
命令的输出stat
:
文件:“pastebin” 大小:576 块:8 个 IO 块:4096 个常规文件 设备:fc01h/64513d 索引节点:5768847 链接:1 访问权限:(0755/-rwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 访问时间: 2016-01-19 10:43:31.595833213 -0500 修改: 2015-02-03 07:15:10.000000000 -0500 更改: 2016-01-19 10:43:30.575833252 -0500 出生:-
据信,pastebin 是由原始发行版放在那里的。相关讨论在这里发行版入侵“/usr/local”。
答案1
无论是在/usr/local/bin
还是/usr/bin
无关紧要。它只是一个将其参数或其 STDIN 发布到 Web 服务的 Python 脚本:
#! /usr/bin/python
import sys, os, stat, subprocess
content = ""
mode = os.fstat(0).st_mode
if stat.S_ISFIFO(mode):
content = sys.stdin.read()
elif stat.S_ISREG(mode):
content = sys.stdin.read()
else:
args = sys.argv[1:]
if len(args) == 1 and os.path.exists(args[0]):
with open(args[0], 'r') as infile:
content = infile.read()
else:
str_args = ' '.join(args)
content = str_args
if content != "":
p = subprocess.Popen(["/bin/nc", "paste.linuxmint.com", "9999"], stdin = subprocess.PIPE)
p.communicate(content)
如果您的用户可以访问 Internet,则pastebin
不允许他们执行超出其已可以执行的操作的任何操作。
bash
顺便说一句,如果能将上面丑陋的 Python 代码压缩为:,那岂不是很好?
/bin/nc paste.linuxmint.com 9999 <<< "${*:-`cat`}"
(它的行为不会完全相同,但这并不重要。)