对于nc重定向至bash的理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于nc重定向至bash的理解相关的知识,希望对你有一定的参考价值。
nc的全名netcat,将nc服务端重定向至bash,就可以获得一个远程shell
1,在服务端:
1)建一个命名管道mkfifo pipe
2)结合匿名管道重定向nc -l -p 4444 < pipe|bash > pipe
2,在客户端:
假设服务端的ip为1.1.1.1nc 1.1.1.1 444
那么现在客户端就连接到了服务端1.1.1.1,并且获得了一个服务端的远程shell,可以像在本地一样执行远程命令
对于服务端的重定向命令乍看有点蒙,画个简图来帮助理解,如下:
根据这个图,捋一下整个远程shell的基本流程
当nc连接到服务端后
1) nc客户端通过网络发送命令到远程nc服务端
2) nc服务端通过匿名管道重定向至bash
3) bash执行客户端发送过来的命令,并重定向至命名管道pipe
4) 由于nc服务端重定向输入至命名管道pipe,所以bash执行结果会经过pipe,接着传送至nc服务端
5) nc服务端把从命名管道pipe读取的数据通过网络发送给nc客户端.
所以,这里其实是一条命令巧妙的包含了两条管道,并且使其各司其职.
但是nc建立的连接整个过程是没有加密的,因此并不是安全的,因此又出现了一款加密版的nc,名字叫cryptcat
,使用方法同nc基本无差,只不过比nc多了一层加密功能,使用起来相对比较安全.
以上是关于对于nc重定向至bash的理解的主要内容,如果未能解决你的问题,请参考以下文章