小编pts*_*pts的帖子

如何检测音频线是否连接?

我正在使用 Ubuntu Lucid (10.04)。在以 root 身份运行的 shell 脚本中,我想检测音频线(模拟插孔)是否连接到笔记本电脑。我怎么做?我不需要便携式解决方案,我需要一些可以在我的笔记本电脑上运行的东西,无论多么笨拙。

linux ubuntu alsa

7
推荐指数
1
解决办法
5796
查看次数

当攻击者只能使用文件功能时,如何逃离 Linux 上强化的 chroot?

中存在chroot环境/var/myroot,攻击者在chroot中以root(EUID 0)身份运行的进程中获得了任意机器代码执行权限。但攻击者控制下的进程并未启用所有功能(仅文件系统功能)。攻击者想要逃避 chroot,并在/etc/passwdchroot 之外附加一行。他怎么能做到呢?

已制定以下安全措施:

  • 为了防止chdir("..") chroot 转义技术,使用hub_root(2)而不是chroot(2)进入 chroot 环境。请参阅jchroot.c如何完成。
  • 当 chroot 中的第一个进程启动时,它没有打开任何指向 chroot 外部的文件描述符。
  • chroot 中的每个进程至多拥有CAP_CHROOTCAP_FOWNERCAP_FSETIDCAP_CHOWNCAP_DAC_OVERRIDECAP_DAC_READ_SEARCHCAP_SETGID能力CAP_SETUID,并且无法获得其他进程。简而言之,攻击者能够绕过权限检查等进行任意文件系统读取和写入,但他无法向进程发送任意信号 ( )CAP_KILL或在网络上发送任意数据包 ( CAP_NET_RAW) 或重新启动系统 ( CAP_SYS_BOOT) 或修改内存中的任意字节 ( CAP_SYS_RAWIO) 等。
  • unshare(CLONE_NEWUSER)没有被调用,chroot进程的UID 0与chroot之外的UID 0相同。
  • unshare(CLONE_NEWPID)被调用,因此攻击者看不到在 chroot 之外运行的进程。
  • unshare(CLONE_NEWNS)在设置 chroot 时被调用,并且以下文件系统可见:
    • /var/chroot可见为/,重新安装为MS_NODEV和 …

linux security chroot capabilities

6
推荐指数
0
解决办法
2594
查看次数

Linux 上的跨进程复制

我想复制一个在 Linux 上无关进程中运行的文件描述符。我知道sendmsg(2)SCM_RIGHTS(例如/sf/ask/314260341/),但只有在另一个进程是合作。我需要一个不需要其他进程积极合作的解决方案。我也知道我可以先创建文件描述符,保留一个副本,然后创建另一个进程,但我需要一个解决方案,其中另一个进程创建自己的文件描述符。

我可以看到文件描述符:

$ ls -l /proc/13115/fd/3
lrwx------ 1 pts pts 64 2013-05-04 13:15 /proc/13115/fd/3 -> socket:[19445454]
Run Code Online (Sandbox Code Playgroud)

但是,open("/proc/13115/fd/3", O_RDWR)在另一个进程中执行返回错误No such device or address。还有其他可行的方法吗?可能与ptrace

linux file-descriptors socket

5
推荐指数
2
解决办法
3845
查看次数

如何在 Linux 上的文件系统内使用 chdir("..") 创建一个 root 无法逃脱的 chroot?

/var/mychoot我在与 相​​同的文件系统上有一个目录/,并且我已将程序启动/var/mychroot/progsudo chroot /var/mychroot /prog,因此该程序以 EUID 0 运行。

如果程序执行chdir("..") 转义技术,那么它就能够转义 chroot 并看到其中的所有内容/。(我已经在 Linux 4.18 上验证了这一点。)

我想阻止这样的逃跑。事实上,我想防止各种 chroot 转义,但在这个问题中,我只对如何在现代 Linux 系统上防止chdir("..") 转义技术感兴趣。为此,我正在寻找chroot(2)系统调用的替代方案。

我找到了 2 个解决方案:pivot_rootMS_MOVE,但它们仅在/var/mychroot是挂载点时才起作用,因此如果/var/mychroot只是文件系统中的子目录,它们就会失败/。在这种情况下还有其他解决方案吗?

我想避免使用技术LD_PRELOAD(因为LD_PRELOAD不影响静态链接的可执行文件),使用ptrace(2)strace的技术(因为这样我就无法在 chroot 中运行,也无法在ptrace(2) 中运行)很难正确执行:进程将崩溃或挂起)和真正的虚拟化(例如Xen或KVM或QEMU;因为性能开销和不太灵活的内存配置)。

回顾一下,我需要:

  • chroot(2)的替代方案系统调用
  • root 可以使用它限制以 root 身份运行的进程(EUID 0),
  • 到文件系统的子目录/
  • 这可以防止chdir("..") 转义技术
  • 并且不使用LD_PRELOAD …

linux chroot container

4
推荐指数
1
解决办法
5024
查看次数

终止时如何防止GNU屏幕清除屏幕?

当我跑

$ screen id
Run Code Online (Sandbox Code Playgroud)

我只能看到[screen is terminating]屏幕顶部的消息。我想看到的是id命令和[screen is terminating]消息的输出。我可以得到他的:

$ TERM=vt102 screen id
Run Code Online (Sandbox Code Playgroud)

在这种情况下, screen(1) 不会清除屏幕,但会在最后发出许多空行,因此我可以向上滚动并查看id.

但是,我不想使用TERM=vt102,因为我需要一些更高级的终端功能。

如何防止 screen(1) 在终止时清除屏幕?

gnu-screen

2
推荐指数
1
解决办法
2043
查看次数