本文介绍 Python 装饰器的使用和原理,并且编写了一个简单的插件式聊天 Bot 框架

装饰器是什么

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数或类对象

它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

阅读全文 »

Python asyncio 异步协程 I/O

asyncio 是 Python 的一个内置库,主要用于编写单线程并发代码,通过协程实现异步 I/O 操作。它在 Python 3.4 版本中引入,提供了基于事件循环的并发模型,本文介绍了如何使用 Python asyncio,以及举出几个常见的应用场景

基本概念

阻塞与非阻塞

阻塞状态指程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。 常见的阻塞形式有:网络 I/O 阻塞、磁盘 I/O 阻塞、用户输入阻塞等。阻塞是无处不在的,包括 CPU 切换上下文时,所有的进程都无法真正干事情,它们也会被阻塞。如果是多核 CPU 则正在执行上下文切换操作的核不可被利用。

阅读全文 »

红日靶场二的流程笔记

本文详细记录了对红日靶场二的渗透过程,包括外网打点、内网横移、权限维持等

文章说明

环境说明:

  1. 环境搭建部分不介绍
  2. 在打靶场前我已经在这个靶场做过很多攻击测试,在某些地方可能会和原版靶场不同
  3. 因为环境不同,可能某些攻击无法在原本靶场复现

网络配置:

  1. 10.10.10.xxx(不可访问外网):DC、PC、WEB
  2. 192.168.12.xxx(可访问外网):PC、WEB
阅读全文 »

对 Kerberos 认证的简单介绍

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。

本文结合 windows server 操作系统解释 Kerberos 如何在 windows server 上运作,并提出几个 Kerberos 的安全问题

认证流程

Kerberos 认证由 KDC(Key Distribution Center)服务提供,以下为 Kerberos 认证流程:

阅读全文 »

CobaltStrike 不出网上线的几种方法,包括:

  • SMB 中转
  • Listener 中转
  • 端口转发
  • 正向 TCP Beacon

环境配置

  1. Linux Server(CobaltStrike):xxx.xxx.xxx.xxx(具有公网地址)
  2. Windows10:192.168.12.154(NAT,出网)、192.168.134.130(不出网)
  3. Windows Server 2016:192.168.134.132(与 Windows10 同网段,不出网)
阅读全文 »