Wargames与bash知识12

Wargames与bash知识12

Bandit20

关卡提示:
主目录中有一个setuid二进制文件,它执行以下操作:它在您指定为命令行参数的端口上连接到localhost。然后,它从连接中读取一行文本,并将其与前一级别的密码(bandit20)进行比较。如果密码正确,它将传输下一级别(bandit21)的密码。
注意:试着连接到您自己的网络守护程序,看看它是否如您所想的那样工作

推荐命令:
ssh, nc, cat, bash, screen, tmux, Unix ‘job control’ (bg, fg, jobs, &, CTRL-Z, …)

有没有觉得的这个关卡有点眼熟:某个关卡我们使用nc给一个端口(好像是30000)发送一个字符串,然后服务器给回复一个密码。这个关卡是展现服务器端是如何实现的吧,不过细究的还有有很大的区别:那个关卡回复是自动的,但在这个关卡我们需要手动运行一个程序才能实现。
Nc的命令前面已经谈过了,就不再复述。
解决这个问题需要使用两个终端,咱们继续使用windows的wls2子系统unbuntu来做演示。

使用ssh登录服务器
g

yj@guyanjun:~$ ssh -l bandit20 -p 2220 bandit.labs.overthewire.org
The authenticity of host '[bandit.labs.overthewire.org]:2220 ([51.20.13.48]:2220)' can't be established.
ECDSA key fingerprint is SHA256:IJ7FrX0mKSSHTJ63ezxjqtnOE0Hg116Aq+v5mN0+HdE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[bandit.labs.overthewire.org]:2220,[51.20.13.48]:2220' (ECDSA) to the list of known hosts.
                         _                     _ _ _
                        | |__   __ _ _ __   __| (_) |_
                        | '_ \ / _` | '_ \ / _` | | __|
                        | |_) | (_| | | | | (_| | | |_
                        |_.__/ \__,_|_| |_|\__,_|_|\__|


                      This is an OverTheWire game server.
            More information on http://www.overthewire.org/wargames
           ………

运行命令获得相关信息:

bandit20@bandit:~$ ./suconnect
Usage: ./suconnect <portnumber>
This program will connect to the given port on localhost using TCP. If it receives the correct password from the other side, the next password is transmitted back.

使用左边的终端向端口11000发送字符串(端口可以自行指定,注意不要使用知名端口),使用右边的终端运行./suconnect 11000命令获得所需密码

在这里插入图片描述

现在尝试发送一个错误是字符串看看会有什么报错

在这里插入图片描述

如果不喜欢使用的两个终端,可以尝试将nc放入后台

b

andit20@bandit:~$ nc -l 11000 <<< "VxCazJaVykI6W36BkBU0mJTCM8rR95XT" &
[1] 383771
bandit20@bandit:~$ ./suconnect 11000
Read: VxCazJaVykI6W36BkBU0mJTCM8rR95XT
Password matches, sending next password
NvEJF7oVjkddltPSrdKEFOllh9V1IBcq
[1]+  Done                    nc -l 11000 <<< "VxCazJaVykI6W36BkBU0mJTCM8rR95XT"
bandit20@bandit:~$

将linux命令放入后台的方法很简单,直接在命令结尾添加一个 & 符号。为演示效果,我使用while做了一个死循环。

gyj@guyanjun:~$ while true ; do sleep 200; done &
[1] 693

返回的信息:1 是任务后 693是进程号
可以使用jobs 查看后台运行的命令

gyj@guyanjun:~$ jobs
[1]+  运行中               while true; do
    sleep 200;
done &

可以使用kill %1或者 kill 693 “杀死”后台进程

gyj@guyanjun:~$ kill %1
gyj@guyanjun:~$ jobs
[1]+  已终止               while true; do
    sleep 200;
done

使用fg 任务号将命令放回前台

gyj@guyanjun:~$ fg
while true; do
    sleep 200;
done

使用crtl-z 将命令暂停且放入后台

gyj@guyanjun:~$ fg
while true; do
    sleep 200;
done
^Z
[1]+  已停止               while true; do
    sleep 200;
done

使用bg %1 恢复后台暂停的命令,使其在后台运行

gyj@guyanjun:~$ bg %1
[1]+ while true; do
    sleep 200;
done &

这个技巧可以解决命令忘记放入后台的情况。

使用&将命令放入后台,如果关闭了shell终端,后台的命令也会退出。为了解决这个问题,可以使用 nohup命令

gyj@guyanjun:~$ nohup sleep 2000 &
[2] 1261
gyj@guyanjun:~$ nohup: 忽略输入并把输出追加到'nohup.out'

gyj@guyanjun:~$ nohup sleep 3000 >aa.out &
[3] 1264
gyj@guyanjun:~$ nohup: 忽略输入重定向错误到标准输出端

gyj@guyanjun:~$ nohup sleep 3000 &>aa.out &
[4] 1265

gyj@guyanjun:~$ jobs
[1]   运行中               while true; do
    sleep 200;
done &
[2]   运行中               nohup sleep 2000 &
[3]-  运行中               nohup sleep 3000 > aa.out &
[4]+  运行中               nohup sleep 3000 &> aa.out &
gyj@guyanjun:~$

请注意使用nohup需要将后台的进程的输出处理一下,shell退出以后,后台程序原本输出到屏幕的输出就无处可去了。

相关推荐

  1. Wargamesbash知识10

    2024-01-10 08:58:03       54 阅读
  2. Wargamesbash知识11

    2024-01-10 08:58:03       55 阅读
  3. Wargamesbash知识13

    2024-01-10 08:58:03       41 阅读
  4. Wargamesbash知识14

    2024-01-10 08:58:03       57 阅读
  5. Wargamesbash知识15

    2024-01-10 08:58:03       52 阅读
  6. Wargamesbash知识18

    2024-01-10 08:58:03       40 阅读
  7. Wargamesbash知识19

    2024-01-10 08:58:03       41 阅读
  8. Wargamesbash知识16

    2024-01-10 08:58:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-10 08:58:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-10 08:58:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-10 08:58:03       82 阅读
  4. Python语言-面向对象

    2024-01-10 08:58:03       91 阅读

热门阅读

  1. Swagger2以及Spring Boot整合Swagger2教程

    2024-01-10 08:58:03       58 阅读
  2. BOM简介

    BOM简介

    2024-01-10 08:58:03      39 阅读
  3. kotlin map{}和mapOf{}

    2024-01-10 08:58:03       40 阅读
  4. 【css技巧】css设置文字不能被选中

    2024-01-10 08:58:03       64 阅读
  5. 我把从react重构成vue的项目,又重构回react了

    2024-01-10 08:58:03       66 阅读
  6. 命令行重置kafka消费最新数据 —— 筑梦之路

    2024-01-10 08:58:03       65 阅读
  7. 蓝桥杯备考01

    2024-01-10 08:58:03       45 阅读
  8. 基于云平台技术的车外视频隐私合规的浅谈

    2024-01-10 08:58:03       54 阅读
  9. 用pytorch给深度学习加速:正交与谱归一化技术

    2024-01-10 08:58:03       59 阅读
  10. 2024 年 Linux 和开源的六大趋势预测

    2024-01-10 08:58:03       54 阅读