Wargames与bash知识07

Wargames与bash知识07

Bandit Level 13

关卡提示:
密码保存在文件/etc/bandit_pass/band14,但是这个文件只有bandit14用户能够读取。正因为如此,如果使用当前用户bandit13是无法获取的密码的。好的一点是您可以使用私钥免密登录bandit14.
注意: localhost代表的是本地主机。
命令提示:
ssh, telnet, nc, openssl, s_client, nmap

到目前为止,我们在大部分情况下使用的终端工具登录ssh服务器,比如我使用的MobaXterm,正因为如此,目前我们对ssh在命令行的用法还很陌生。下面我们看看ssh在命令行的用法。

ssh

SH(Secure Shell)是一种网络协议,用于通过加密的方式在网络上进行安全的远程登录和执行命令。下面是一些常用的SSH命令参数的详解:

-p:指定SSH服务器的端口号,默认是22端口。 例如:ssh -p 2222 user@host

-l:指定要登录的用户名。 例如:ssh -l username host

-i:指定用于身份验证的私钥文件。 例如:ssh -i private_key.pem user@host

-C:启用压缩功能,可以提高传输速度。 例如:ssh -C user@host

-X:启用X11转发,可以在远程主机上显示图形界面程序。 例如:ssh -X user@host

-N:不执行远程命令,只进行连接,常用于建立隧道。 例如:ssh -N -L 8080:localhost:80 user@host

-L:本地端口转发,将本地端口转发到远程主机。 例如:ssh -L 8080:localhost:80 user@host

-R:远程端口转发,将远程端口转发到本地主机。 例如:ssh -R 8080:localhost:80 user@host

-D:动态端口转发,可以将本地主机作为代理服务器使用。 例如:ssh -D 1080 user@host

localhost

在计算机网络中,localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口(loopback)的一个标准主机名,相对应的IP地址为127.0.0.1(IPv4)和[::1](IPv6)。

现在可以解题了:

bandit13@bandit:~$ ls
sshkey.private
bandit13@bandit:~$ ssh -i ./sshkey.private -p 2220 -l bandit14 localhost
The authenticity of host '[localhost]:2220 ([127.0.0.1]:2220)' can't be established.
ED25519 key fingerprint is SHA256:C2ihUBV7ihnV1wUXRb4RrEcLfXC5CXlhmAAM/urerLY.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

bandit14@bandit:~$ echo $USER
bandit14
bandit14@bandit:~$ id
uid=11014(bandit14) gid=11014(bandit14) groups=11014(bandit14)
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq

Bandit Level 14

关卡提示:
将当前密码发送到本地主机的30000端口获取密码
推荐命令:
ssh, telnet, nc, openssl, s_client, nmap
相关知识:
计算机连接Internet网络
IP地址
Localhost 本地主机
Ports 端口

nc命令

语法
nc [-hlnruz][-g<网关…>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v…][-w<超时秒数>][主机名称][通信端口…]
参数说明:

-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码转储。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

nc(netcat)是一款简单、可靠的网络工具,具有多种应用场景。以下是一些常见的nc应用:
1、实现任意TCP/UDP端口的侦听:nc可以作为server以TCP或UDP方式侦听指定端口,也可以作为client发起TCP或UDP连接。
2、端口扫描:nc可以扫描指定端口,检测其开放状态。
3、机器之间传输文件:通过nc可以实现两台机器之间的文件传输,只需在源机器上使用nc命令将文件发送到目标机器的特定端口,然后在目标机器上监听该端口即可接收文件。
4、机器之间网络测速:使用nc可以进行网络测速,测试两台机器之间的网络带宽。

可以解题了:
使用nmap查看端口使用情况

bandit14@bandit:~$ nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-03 03:38 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 994 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
1111/tcp  open  lmsocialserver
1840/tcp  open  netopia-vo2
4321/tcp  open  rwhois
8000/tcp  open  http-alt
30000/tcp open  ndmps

我觉得这个关卡使用nc比较合适:

bandit14@bandit:~$ echo "fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq" | nc localhost 30000
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt

使用telnet也可以达到目的:
bandit14@bandit:~$ telnet localhost 30000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
Connection closed by foreign host.

使用错误的字符串会报错:

bandit14@bandit:~$ echo "fGrHPx402xGC7U7rXKDaxiWFTO" | nc localhost 30000
Wrong! Please enter the correct current password

你可能感兴趣的:(bash,开发语言)