Fork me on GitHub

OI竞赛中的ssh技术研究

警告:该方法仅供学习研究,请勿在正式比赛中使用,后果自负 (禁赛三年)!

ssh是什么?

SSH (Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。

为什么能使用ssh

OI竞赛专用的系统NOI Linux是自带ssh的。
事实上,所有的POSIX系统都自带ssh。

前置条件

ssh的使用前提是,没有关交换机,目标是实体机 (或虚拟机开启端口映射到内网),同时目标电脑开启了sshd (默认自动开启)。

如何使用ssh

我们都知道NOI Linux默认用户名为noilinux, 默认密码是123456
首先,打开本机终端,假设我们已经知道了目标主机的IP为192.168.123.123
接着我们可以执行ssh [email protected]命令登录,
这里我们没有使用root用户登录,而是用普通用户noilinux登录,是因为大多数Linux发行版默认禁止root的ssh登录 (可以修改通过sshd的配置来设置允许)。
通过普通用户登录后,我们可以再次执行sudo -isu命令切换到root。
然后,我们就可以完全控制这台电脑了。我们可以使用vimcat等命令行工具,查看并修改目标主机上的文件。

如果还想要把文件传输回本机,可以使用ftp。
利用scp命令就能够实现,而且不会在对方电脑上留下记录 (但scp也是基于ssh的)。
用法示例: scp [email protected]:/home/noilinux/Desktop/XXX/abc.cpp

删除痕迹

执行完操作以后,会留下终端操作痕迹,你可以执行rm ~/.bash_history删除你的terminal使用记录。

如何预防被ssh控制

最简单的方法,直接关掉sshd,这里有三种方法:

1.

1
sudo rm -f /etc/init/ssh.conf

最为彻底,直接删除ssh服务。

2.

1
service ssh stop

3.

1
pkill sshd

参考内容

https://www.luogu.com.cn/blog/my-vegetable-died/ssH-iN-OI