码迷,mamicode.com
首页 > 其他好文 > 详细

对于nc重定向至bash的理解

时间:2020-11-24 12:27:45      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:netcat   src   结合   命名管道   安全   http   远程   匿名管道   info   

nc的全名netcat,将nc服务端重定向至bash,就可以获得一个远程shell
1,在服务端:
1)建一个命名管道
mkfifo pipe
2)结合匿名管道重定向
nc -l -p 4444 < pipe|bash > pipe
2,在客户端:
假设服务端的ip为1.1.1.1
nc 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的理解

标签:netcat   src   结合   命名管道   安全   http   远程   匿名管道   info   

原文地址:https://blog.51cto.com/3823536/2552381

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!