12

我目前正在做 overthewire.org 的强盗战争游戏(对于那些不知道这是一个网站,你可以通过不同的任务来提高你的黑客技能的人)。我以前做过,但我很早就被卡住了,我用剧透把它们炸开了。好的部分是它留下了很多空间,让我们称之为“可重玩性”。xD 现在我在 bandit20,我需要使用一个可执行文件:

/home/bandit20/suconnect
usage: ./suconnect <port number>

即“将使用 TCP 连接到本地主机上的给定端口。如果它从另一端接收到正确的密码,则将下一个密码传回。”

我最初的反应是拉出 nmap 并寻找开放的端口。我确实找到了一些打开的,其中一些正在运行 echo 和一些 openssl。无论服务是否运行,总共有 5 个端口是打开的,我还发现使用 ps -alx 在后台运行的 netcat 正在侦听另一个第 6 个端口。

现在,任务描述说:

[文件] 在您指定为命令行参数的端口上连接到 localhost。然后它从连接中读取一行文本,并将其与上一级 (bandit20) 中的密码进行比较。如果密码正确,它将传送下一级(bandit21)的密码。注意:尝试连接到您自己的网络守护程序,看看它是否如您所想的那样工作

我使用预期的语法尝试了我找到的所有 6 个端口,但它们都没有返回任何内容。我确实在带有剧透的博客上找到了网站上的旧描述:

要通过这个级别,您需要登录两次:一次运行 setuid 命令,一次启动 setuid 将连接到的网络守护程序

我尝试了两次 sshing 并在所有这些端口上监听,并在第二个窗口中使用二进制文件,但它什么也没做。问题是,在我运行二进制文件后,它给了我一个空白命令行,但无论我输入什么,它都不会给出任何输出。我在文件上使用了字符串,我看到它确实有无法连接、密码错误、密码正确等失败消息,但我没有得到任何消息。

在这种情况下,我希望更多地了解基本概念,而不是被交给解决方案。我不确定连接到您自己的网络守护程序意味着什么(我尝试使用谷歌搜索并在 youtube 上查找,但我并不真正了解网络守护程序是什么或连接到它意味着什么)。还必须运行 2 个终端似乎很重要,因为他们把它拿出来了,但我似乎不知道你应该怎么做,或者在这种情况下你应该用它做什么。另外,为了收听本地主机上的端口,我使用了 netcat,不确定是否还有其他更好的方法,或者您是否应该使用其他任何东西。

非常感谢任何反馈,谢谢:)

4

1 回答 1

16

只是想说我设法找到了答案。事实证明 localhost 是本地守护程序,连接到它意味着执行 2 个 netcat:一个侦听端口,一个连接到它。

于 2018-08-18T22:46:25.540 回答