心胜于物

心胜于物

= 下次太阳的光辉一定会照到我的 =

HTTPS协议分析

# HTTPS介绍 HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。 而在整个HTTPS流程中,用到了两种加密方式:对称加密和非对称加密。 这是因为非对称加密的效率远不如对称加密,因此通常是用非对称加密来加密对称加密的密钥。 使用对称加密来加密真正的http数据。 ![image-20220401135729951](https://ruyue-1258558004.cos.ap-guan
more...

非对称密码-SSL证书

# SSL证书和公私钥的关系 先说结论:SSL证书是公私钥密码中的一种应用,属于公钥认证。 ## SSL证书是上面? 在互联网信道上传输数据,我们需要考虑三个问题:①信息监听窃取②信息篡改③身份伪造 为了解决信息监听窃取这个问题,我们使用非对称加密对我们的信息进行加密,这样只有目标能够解密获取明文,整个链路上的窃听者都无法获取到明文,可以称之为公钥加密。 而信息篡改这个问题,也很好解决,使用数字签名hash算法对我们的明文进行一个hash,然后将hash跟着明文一起加密后发送过去就可以了。 那么身份伪造怎么解决呢?显然这个身份证明不能由当事人自己发出来,因此
more...

非对称密码-公私钥的创建

# 简述 我们这里创建的并非SSL证书,而是一对公私钥,SSL证书只能说是公私钥加密的一种应用。 # OpenSSL工具 OpenSSL是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。 ## 生成私钥 ```bash openssl genrsa -out rsa_private_key.pem 2048 #生成密钥长度为2048的文本形式的私钥,如果不加长度,默认是1024长度的私钥。 ``
more...

非对称密码-RSA原理

# 简述 1976 年,美国学者 Dime 和 Henman 为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议(迪菲-赫尔曼密钥交换协议,简称EDH),允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。 公钥(Public Key)与私钥(Private Key)是通过加密算法得到的一个密钥对(即一个公钥和一个私钥,也就是非对称加密方式)。公钥可对会话进行加密、验证数字签名,只有使用对应的私钥才能解密会话数据,从而保证数据传输的安全性。公钥是密钥对外公开的部分,私钥则是非公开的部分,由用户自行保管。 使用密钥对的时候
more...

自写工具-PupilSearch

# 为什么要写这样的工具 在平时挖洞渗透的过程中,我发现,前端往往会暴露很多敏感信息,但是如果我们手动去一个个的筛选,就会很浪费时间。而且涉及到深度较深的js还可能无法看到或者忽略。网上现有的工具如jsfinder,hae等工具也都有一些缺陷。因此这里博百家之长,自己重新实现了一个爬虫,并针对一些敏感数据进行正则匹配,从而帮助我们发现前端中泄露的各种信息让我们更方便的挖洞。 # PupilSearch https://github.com/ruyueattention/PupilSearch PupilSearch本质上就是一个爬虫,能够自动帮我们查询搜索web前端中泄露的信息
more...

docker网络

# docker中的网络 众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。 一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。一个Docker容器一般会分配一个独立的Network Namespace 在Docker安装时,他会自动创建三个网络,bridge(类似桥接)、None(无网络)、host(类似NAT)
more...

Tengine动态修改upstream

# 环境搭建 ## 目的 在更新nginx upstream pool时,一般方案是更新nginx配置文件,然后reload nginx, 在nginx繁忙时会导致worker process长久处于shutdowning, 并且频繁的upstram可能导致nginx芭比Q。 所以我们这里需要解决的问题就是怎么不reload就能实现修改nginx配置。 以下环境搭建是基于Ubuntu的。 ## 下载tar包 到官方下载tar包 http://tengine.taobao.org/download.html 这里下载最新的2.3.3 ```bash wget http://tengin
more...

k8s-kunbernetes配置不当漏洞利用

# api-server未授权漏洞 ## 介绍 通过apiserver可以管控整个集群。 默认情况,Kubernetes API Server提供HTTP的两个端口: 1.本地主机端口 (高版本已弃用) • HTTP服务 • 默认端口8080,修改标识–insecure-port • 默认IP是本地主机,修改标识—insecure-bind-address • 在HTTP中没有认证和授权检查 • 主机访问受保护 2.Secure Port • 默认端口6443,修改标识—secure-port • 默认IP是首个非本地主机的网络接口,修改标识—bind
more...

k8s-Kubernetes权限维持

## shadow api-server(个人感觉没什么用) 该技术由研究人员在 "RSAC 2020: Advanced Persistence Threats: The Future of Kubernetes Attacks" 提出,旨在创建一种针对K8s集群的隐蔽持续控制通道。 ![image-20220303165609002](https://ruyue-1258558004.cos.ap-guangzhou.myqcloud.com/note/image-20220303165609002.png) 该思路是创建一个具有API Server功能的Pod,后续命令通
more...

k8s-Kubernetes用户和访问控制

## 简介 K8S中有两种用户(User)——服务账号(ServiceAccount)和普通意义上的用户(User) ServiceAccount是由K8S管理的,相当于系统账号。而User通常是在我们添加的,但K8S不存储用户列表——也就是说,添加/编辑/删除用户都是在外部进行,无需与K8S API交互,虽然K8S并不管理用户,但是在K8S接收API请求时,是可以认知到发出请求的用户的。 而这里我主要介绍的是User普通用户。 通过以上介绍,我们知道了普通用户是不需要api-server存储的,那api-server是怎么判断用户是否为合法用户和它具有的权限的呢?我们带着这个
more...