【搬运】算法竞赛中的 SSH

警告:请勿在正式比赛中模仿!您将会被禁赛三年的风险。

纯技术性文章,请勿恶意举报、评论!

前置芝士

  • Linux 基本使用。

ssh的基本使用

ssh 是用来连接远程主机的命令行工具,名字来源是secure shell,即 sh 前加上 s,与其名字构成相同的有 scp,即 secure copy 远程复制。

一般用法有 ssh user@host -p port

直接输入 ssh 可以获得提示信息,不用加 -h

错误示范:

提示信息

前置条件

  1. 试机时到别人考场了解某很强的人的 IP 地址。
  2. 获得了别人的密码(或密码都是默认的 123456)。
  3. 对方机器开启 sshd(或本来自动开启,没有刻意关闭)。
  4. 对方是实体机/虚拟机开启端口映射到内网。
  5. 没有关交换机。

考场用法

对于NOI Linux,我们可以知道默认用户是 NOI Linux,密码是123456

此时假设我们已经在机试的时候进入了别人的机房, 获取了他的 IP 地址, 因为 IP 地址在短时间内不会变动, 具体更换时长由交换机配置决定, 所以在考试时 IP 是与机试一样的。

假设IP为 192.168.123.123

如果是NOI Linux,我们可以使用 ssh noilinux@192.168.123.123 登录进入他的电脑。

大多数Linux发行版默认ban掉了root的ssh登录, 所以我们需要使用普通用户登录, 然后再 sudo -i 或 su -- 切换到root。

(一般官方镜像安装的 Linux 在安装过程中会设置用户,所以不允许 root 以 ssh 登录,但可以在 sshd 的配置修改允许。如果您使用的是阿里等的云服务器,他们是自己做的镜像,允许了 root 登录。)

然后在找到对方源文件位置后就可以为所欲为了。gFdATe.png

你需要熟练使用vim,cat等命令行工具, 对其代码进行操作。

你可以选择仁慈的复制, 也可以选择阴险的修改乃至删除。

此处提供几个例子

  1. 用cat显示别人的代码然后自己改改,A掉。
  2. 删除别人的代码,用心险恶。
  3. 帮别人复制一个板子进去,赛后举报。
  4. 帮别人改动一下MLE/TLE/CE/RE。

源文件地址如果是虚拟机可以在 /mnt/hgfs/xxx 找到映射的文件夹。

如果是实体机目录就和你自己的机子一样。

更高明的方法

如果你不想使用vim,cat等留下踪迹,可以使用scp

用法:scp noilinux@192.168.123.123:/mnt/hgfs/WC-xxxx/express.cpp .

这样就会把 express.cpp 复制到 .(当前目录)。

这样比 ssh 高明了许多,不会在对方电脑上留下记录。

scp 是基于 ssh 的,但是只是复制文件,避免了登入别人电脑进行操作。

如果没有搞到密码

如果没有搞到密码, 难道我们就不能 ssh 了吗?

当然不是我们可以爆破密码(

此段内容可能对您的考试没有任何帮助, 不像上一段可以实操。

你得首先生成一个密码字典。

可以使用 C++ 生成,密码字典要求一行一个可能密码。

然后使用 hydra,hydra -l 用户名 -P 字典路径 -t 线程数 -s 22(端口) ssh://192.168.0.110

关于hydra,需要联网安装使用:apt-get install hydra -y,所以在考场上不一定具备实操性。

如何不留踪迹

搞完事以后 rm ~/.bash_history 删除你的 terminal 使用记录。

因为一般需要重启当前 terminal 才能看到别的 terminal 的使用记录, 赛场上一般不会有人显得无聊来重启 terminal,所以一般不会被发现。

只要清除了记录,赛后即使有人来查也不会被发现

sshd 的基本操作

sshd 是 Linux 中 ssh 服务端的进程。

如果你要 ssh 登入别人电脑,别人的电脑中 sshd 一定要是运行着的。

由于 Linux 一般作为服务器使用,所以大多数都安装了 sshd。

sshd 的开启和关闭都可以通过 service/systemctl 实现。

用 service ssh {stop|start|restart} 来实现停止、启动、重启。

如果关闭心切可以直接 pkill sshd

记住到考场上如果没有关闭交换机,一定要物理断网或关闭 ssh,不要给投机分子可乘之机!


【搬运】算法竞赛中的 SSH
https://blog.ikale.io/p/b32c9dd3/
作者
__OwO__
发布于
2022年1月22日
许可协议
CC-BY-SA