《算法竞赛中的 SSH》

原帖地址: https://www.luogu.com.cn/blog/my-vegetable-died/how-to-shengxuan-over-300(已被删除)
以及其备份:https://www.luogu.com.cn/blog/my-vegetable-died/ssH-iN-OI

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

纯技术性日报, 请勿恶意举报 强校教练说的就是你

前置芝士

linux基本使用

前置条件

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

考场用法

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

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

假设IP为192.168.123.123

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

大多数Linux发行版默认ban掉了root的ssh登录, 所以我们需要使用普通用户登录, 然后再sudo -isu --切换到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, 所以一般不会被发现

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

补: ssh的基本使用

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

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

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

错误示范:

提示信息

ssh可以免密登录(考场上干这个干啥

你需要生成公钥和私钥, 然后将公钥复制到ssh的host上, 将私钥留在本地用于验证

使用ssh-keygen生成, 会自动保存在用户目录~/.ssh/内

然后需要将其复制到host中, 使用ssh-copy-id user@host -p port会把默认位置的证书复制到host去

然后就可以免密登录了

补: sshd的基本操作

sshd是Linux中ssh服务端的进程

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

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

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

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

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

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

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇