Windows认证过程
Windows认证过程今天超酱问了我个问题“非administrator账户是否能进行pth,以及原因是什么”,这个问题根据我的作战经验是不能进行hash传递的,但是原因是什么嘛,不知道,也同时暴露了一个问题,我从来没有好好的对windows认证过程学习过,写这个文章的目的是对windows认证过程进行一下系统学习,今天是2024.7.17,我希望这个文章是以windows的认证的发展史进行编写,同样也希望这个文章当中可以将我知道的关于windows认证的名词例如LM、NTLM、Kerbors等都讲清楚。
本文所用的代码均放到了我的个人Github当中WinAuth仓库当中
1. 本地认证在上世纪80年代,MS-DOS系统当中引入了LM(LAN Manager)认证,最早应用于一些LM软件以及一些网络操作,例如打印机等,它使用了补位加DES的模式进行加密,加密后的密文存储在SAM文件当中。
在上世纪九十年代初,随着NT系统的出现,微软引入了全新的认证系统来取代LM,那就是NTLM(NT Lan Manager),他有着较LM更强更复杂的hash算法,同样他的密文也是存储在SAM当中。
...
XDP在安全上的一些研究 I
1. 网络数据包是如何进入进计算机的众所周知,网络数据包通常需要在TCP/IP协议栈中进行处理,但网络数据包并不直接进入TCP/IP协议栈;相反,他们直接进入网络接口。因此,在数据包进入 TCP/IP 堆栈之前,它们已经到达计算机内部。到目前为止,大多数应用程序都是在 TCP/IP 堆栈之后处理的。
2. 什么是XDPXDP,全称eXpress Data Path,是Linux内核提供的一个高可用性和可编程性的网络数据包处理框架,XDP允许在网络数据包到达Linux网络栈之前,在网络驱动程序级别对数据包进行处理。 XDP 使内核有能力在数据包到达网络层时快速处理数据包,它有高性能、高灵活度、低开销等优点。
3. 开始一个简单的XDP项目挂载XDP程序请谨慎,一条错误的xdp规则是极有可能导致服务器失联的!
以下是一个很简单的XDP示例程序
12345678910111213141516171819#include <linux/bpf.h>SEC("xdp")//XDP 处理逻辑int xdp_main(stru ...
CVE-2024-21626
1. 疑点 1在描述当中说到,需要将暴露的cgroup handle作为当前目录启动容器,而漏洞描述当中只提到了设置 /proc/self/fd/7/,那么请问编号7的fd是如何获得的?
解决: 利用lsof 进行查询,找到cgroup对应的句柄序号
这样,找到了序号为6的fd
2. 第一次复现在找到fd序号之后,将/proc/self/fd/6/设置成工作目录,启动容器
别说是逃逸了,容器起都起不来。
3. 疑点 2就在第一次复现失败以后,我觉得是fd开启顺序的问题,对fd开启了遍历,同样也没有成功创建容器,就在这时,超桑的系统上,他复现成功了,我们第一时间比对了Container引擎的版本与kernel版本
经过比对,docker版本都是20.10往上,runc版本都在1.1.10以下,那么问题就在kernel版本上了
由于我比较复古,喜欢装Centos7的机器,导致我的测试环境都是3.10的内核,而超酱的是ubuntu,采用的是5.10的内核,不同内核之间会有不同的效果 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
自签名集群搭建
1. 生成2048位的ca.key1openssl genrsa -out ca.key 2048
2. 在 ca.key 文件的基础上,生成 ca.crt 文件1openssl req -x509 -new -nodes -key ca.key -subj "/CN=175.27.155.72" -days 3650 -out ca.crt
3. 生成apiserver.key1openssl genrsa -out apiserver.key 2048
4. 创建一个用于生成证书签名请求(CSR)的配置文件1234567891011121314151617181920212223242526272829303132333435[ req ]default_bits = 2048prompt = nodefault_md = sha256req_extensions = req_extdistinguished_name = dn[ dn ]C = CNST = BeijingL = BeijingO = KubernetesOU = KubernetesC ...
利用 CoreDNS 枚举集群Service & Port
利用 CoreDNS 枚举集群Service & Port1. 发现历程看代码的过程中,发现在/pkg/dnsutil/reverse.go存在 关于in-addr.arpa的定义
跟了一下,走到 /plugin/hosts/hosts.go ,发现CoreDNS是支持PTR解析记录的
看下k8s_external包,这个包是处理svc域名的一些操作。109行发现K8s插件也是支持ptr记录的,CoreDNS的使用过程是集群内部的域名,coreDNS分发至kubedns,集群外的域名则通过coreDNS进行递归。
2. 利用手法在公共DNS服务器上,很少会有ip存在PTR解析记录,而集群内部所有的域名都是通过Service进行管理,这样也就说明,如果CoreDNS的K8s插件若支持PTR记录,那么集群内部就可以通过ip来获取svc域名
正常情况下,查询一个service的A记录是这样的
1<SVC>.<NAMESPACE>.svc.cluster.local
若PTR可用,我们将会得到 ...
对Http.sys利用的一些总结
本文一切操作都在管理员权限之下
1. 什么是http.syshttp.sys是一个Windows系统的核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。微软在Win2003加入了Http.sys,用于侦听http流量并根据URL进行处理,允许任意用户进程共享专用于HTTP流量的TCP端口,也就是说,多个程序可以使用同一端口进行http的监听,而Http.sys充当了nginx的⻆色。通过netsh命令可以对http.sys的命名空间进行一系列操作。比如说IIS服务器,它的最底层就是HTTP.sys驱动,HTTP.sys有两个特点
允许端口服用,可以让多个程序使用同一个端口进行监听
对HOST敏感,可以通过HOST进行分发流量。
系统当中会有一些默认的http.sys的保留注册项,如下
而目前业内的普遍用法是使用5985端口的WinRM注册项,将其迁移到80端口进行复用,由于winrm服务在系统自带的命名空间当中已经被注册,命名空间与winrm程序之间已经有对应了,所以将winrm开在80端口就可以了,由于存在IIS的服务器IIS的80端口占用也是在Ht ...
Kubernetes 环境搭建
所有节点 绑定Hosts1234567# 不绑定会导致初始化失败[root@Perng-Node2 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.159.100 Perng-Master 192.168.159.110 Perng-Node1 192.168.159.120 Perng-Node2
所有节点 安装Docker12345678910111213#安装yum-utils[root@Perng-Master ~]# yum install yum-utils[root@Perng-Master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/ ...
HTTPS四层协议代理服务器搭建
HTTP代理在白皮书当中氛围两种,一种为RFC 7230的HTTP代理,以及RFC 7231 的 CONNECT 方法代理,前者只可以通过七层的HTTP的请求包,后者即为HTTPS代理,可通过CONNECT方法走四层协议包。
0.1 利用组件 Squid0.11 直接 yum 下载安装1yum install squid
0.12 配置文件
配置文件中存在acl的概念,将acl放开1-65535即全部端口放行,如果不需要全放行可根据自己需求进行使用,例如,搭建squid的目的为代理访问 22 端口,则开放acl 22端口,以此类推。
其次重要的是acl放行 CONNECT 方法,这是走四层包的核心功能。
修改 此字段,将不在ssl端口的connect方法放行。
修改此字段,改为允许。
可以通过四层包
常见HackNetTools流量分析
本文的所有工具都采用未加密模式,以此来进行流量分析
Protocoltcp
udp
区别
形象的说
Tool 1 EarthWorm
最大的特征就是 没有特征 ,灯下黑,下面加密的流量是我访问百度的流量。
Tool 2 Frptcp 模式由于是tcp模式,所以所有的包都在同一个tcp流当中
通过分析该流,发现存在一些特征
特征 握手包在程序刚运行的时候,客户端会向服务器端发送一个json格式的握手包,用来验证双方的版本、架构的信息
发现这些信息了,就说明frp已经上线了。
kcp 模式Frp作者在描述中这么写道
1kcp协议可以在恶劣的网络环境中提供更优的隧道连接
开始分析
首先,kcp协议基于udp协议,在百科上有这样的描述
1KCP是一个快速可靠协议,能以比TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果。
由于使用的是udp协议进行传输,那么作者所说的kcp可以在恶劣环境中提供更优的隧道服务也不难理解,毕竟服务态度决定了服务速度。
特征 握手包跟tcp协议一样,udp协议在第一步的时候也会发出一个验证握手包 ...