【问题标题】:Using netcat to allow users to use shell使用netcat允许用户使用shell
【发布时间】:2013-12-17 11:23:45
【问题描述】:

我不确定从哪里开始。我应该使用 netcat 允许任何人在 C 中远程访问我的 shell。我知道我需要使用套接字,但不确定还有什么。谁能指出我正确的方向。基本上,当我执行程序时,我希望它打开“nc -l 1234”,接收来自客户端的命令并做出响应。 谢谢。

【问题讨论】:

    标签: c linux unix netcat


    【解决方案1】:

    试试类似的东西

    mkfifo temp
    nc -l 1234 < temp 2>&1 | /bin/sh > temp 2>&1
    

    【讨论】:

    • 当我用 ./shell (我的可执行文件)替换 sh 时,它不起作用。我需要改变什么?
    • 试试nc -l 1234 &lt; temp 2&gt;&amp;1 | ./shell &gt; temp 2&gt;&amp;1
    • 所以我需要从套接字或服务器外壳中的其他东西读取吗?是这样的吗?还是这更像是一种黑客行为,我应该走另一条路?
    • 因为我收到此错误:写入错误:文件描述符错误
    • 嗯?您确定您的 netcat 程序没有错误并且您正确地创建了命名管道吗?
    【解决方案2】:

    你可以试试

    $nc -l 1234 -e /bin/bash -i  (server)
    
    $nc x.x.x.x 1234  (client)
    

    我们已经创建了一个netcat服务器,并指示它在连接成功时运行/bin/bash命令。

    这是一个很好的参考。 (使用 c)

    http://www.cs.swarthmore.edu/~aviv/classes/f12/cs43/labs/lab4/lab4.pdf
    

    【讨论】:

    • 我认为你需要在引号中加上'/bin/bash -i'
    • 我学校的服务器有较早版本的NC,所以不能使用-e标志。
    • 感谢您的参考。我会花一些时间来处理它。
    猜你喜欢
    • 2011-03-07
    • 2022-06-24
    • 1970-01-01
    • 2021-03-28
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多