linux提权之dirtycow
Dirty COW(脏牛)漏洞是一种影响Linux操作系统的本地特权升级漏洞,其全称为"Copy-On-Write"(写时复制)漏洞。这个漏洞在2016年被公开,并且影响了大量的Linux内核版本。
Dirty COW漏洞的根本原因是Linux在竞态条件下的复制时写入(Copy-On-Write)机制的实现存在缺陷。Copy-On-Write是一种内存管理技术,它允许多个进程共享同一个物理内存页面的副本,直到其中一个进程尝试修改该页面时,系统才会复制出一个新的页面供修改进程使用。
竞态条件(Race Condition)是多个并发操作或线程访问共享资源时可能出现的一种问题。竞态条件发生在多个操作之间存在依赖关系,并且操作的执行顺序会影响最终的结果。
听起来似乎比较复杂,我们可以简单一点
假设有一个变量a
1a="dirty"
同时还有另一个变量b
1b=a
尽管这是两个变量,但它们都指向同一个内存对象,因为不需要为相同的值占用两倍的内存量。但如果修改了b变量,操作系统就会为这个变量分配单独的内存。
1b+="cow"
修改时 ...
msi木马创建
MSI文件
MSI 文件指的是 Windows Installer Package 文件,它是一种用于安装、升级、修复和卸载软件的安装程序包格式。
Windows Installer 是 Microsoft Windows 操作系统中的一种安装技术,用于管理和执行软件的安装和卸载过程。MSI 文件是 Windows Installer 技术的核心组成部分,它以.msi 文件扩展名来标识。
MSI 文件是一种数据库式文件,其中包含了安装程序所需的文件、注册表项、配置信息、脚本和其他相关组件。它提供了一种标准化的方式来描述和定义软件的安装过程,使得软件的安装和管理更加可靠和可预测。
通过运行 MSI 文件,Windows Installer 将打开一个安装向导,引导用户完成软件的安装过程。安装过程中,Windows Installer 会根据 MSI 文件中的指令和设置,将文件复制到适当的位置,注册组件、创建快捷方式,执行系统配置等操作,最终将软件成功安装到目标计算机上。
MSI 文件具有一些特性,如安装过程的事务性、修复和升级功能、卸载功能、自定义操作等。它们被广泛用于 Windows ...
一个简单的准接入
目标
教育护网的时候出现了钓鱼的木马样本被安全人员分析导致cs服务器的ip被封的情况,就想着写一个简单的准接入控制平台,来控制肉鸡是否允许连接至cs服务器。
理想效果是:点击木马以后,会先发送连接请求到接入控制服务器,在服务器上允许接入以后,木马运行shellcode,否则程序结束。
肉鸡在请求连接的时候,会携带电脑的部分信息(处理器数量、内存大小等),方便攻击者判断是否为虚拟机环境
开搞
思路:控制服务器打算用python的flask来写,客户端与服务器的通信采用socket连接
客户端会发送自己的内存大小以及处理器数量给服务端
服务端将数据在网页中显示
攻击者选择是否允许接入
将选择结果返回给客户端
获取内存大小以及处理器数量
windows中自带了API可以非常方便的用来获取这两个参数,分别是GlobalMemoryStatusEx方法和GetSystemInfo方法
具体代码:
1234567891011//获取内存大小MEMORYSTATUSEX meminfo;meminfo.dwLength = sizeof(MEMORYSTATUSEX);GlobalMemoryS ...
恶意代码逃逸学习
在渗透的过程中会经常遇到对方机器安装了杀软的情况,这时就需要用到免杀技术,之前钓鱼邮件中提到的免杀是用GO写的,但我觉得这种东西还是更靠近计算机底层为好,正好这几天看了倾旋大佬的博客,对于用c++来实现恶意代码逃逸学到了很多,特此记录
简单的加载shellcode
首先我们要让cobalt strike生成的shellcode运行起来一共就三个步骤
申请计算机内存
将shellcode加载进内存
执行这一段内存
上面三个步骤对应的代码为:
123456789101112131415#include <Windows.h>using namespace std;/* length: 891 bytes */unsigned char buf[] = "\xfc\x48\x83\xe4\xf0\xe8\xc8\x00\x00\x00\x41\x51\x41\x50\x52\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48\x8b......";int main() { int ...
agent内存马学习
在Java中,agent是一种可以在运行时修改字节码的机制,它可以用来实现诸如性能监控、代码覆盖率分析、日志记录等功能。java agent主要分为两种——premain和agentmain
premain
首先新建一个maven项目,并创建一个PreDemo类
123456789import java.lang.instrument.Instrumentation;public class PreDemo { public static void premain(String args, Instrumentation inst) throws Exception{ for (int i = 0; i < 5; i++) { System.out.println("hello I`m premain agent!!!"); } }}
创建META-INF/MANIFEST.MF,需要指定Premain-Class
123Manifest- ...
邮箱钓鱼学习
邮箱钓鱼是一种常见的网络攻击手段,它利用伪造的电子邮件来诱导目标用户点击恶意链接或附件,从而窃取敏感信息或执行恶意代码。在进行网络攻击的时候非常常见,毕竟资产最薄弱的部分依旧还是人。
制作免杀马
邮箱钓鱼攻击的成功与否很大程度上取决于攻击者能否绕过目标系统的防御措施,如杀毒软件、防火墙、沙箱等。因此,学习如何制作免杀的恶意代码是提高邮箱钓鱼攻击效果的关键。
目前网上有非常多能够帮助shellcode免杀的工具,也可以自己尝试写一写,这里以绕过360为目标
参考云山雾隐的shellcode免杀入门文章我们可以得到一个基础的免杀马
大致原理是对shellcode进行异或加密再base64编码得到密文,然后再对密文进行解码同时加载到内存中,但这种方式同样容易被查杀(2023.6.2测试被杀),所以我们可以分开写,弄两个文件,一个文件(文件名为.DS_Store)存放我们所加密的shellcode,另外一个可执行文件负责读取shellcode并加载到内存中
shell.go代码如下:
1234567891011121314151617181920212223242526272829303132 ...
初识JAVA内存马
介绍
Java内存马(Java Memory Shell)是一种利用Java虚拟机(JVM)中的内存对象和反射技术来执行恶意代码的攻击手段。
与传统木马相比,Java内存马具有以下几个优势:
隐藏性更强:Java内存马不需要在受害者主机上创建任何文件,因此可以极大地减少被检测到的风险。它们完全存在于JVM内存中,很难通过常规的病毒扫描程序或防火墙来检测和拦截。
反应速度更快:Java内存马直接利用JVM中已经加载的Java类和对象,在攻击者成功上传恶意代码后即可立即执行,反应速度更快。
跨平台支持更好:由于JVM是跨平台的,因此Java内存马可以在各种操作系统上运行,包括Windows、Linux、macOS等。
内存马包括很多类型,这里以tomcat内存马作为学习
环境准备
在idea中首先创建一个JavaWeb项目
勾上Servlet
然后就完成了一个web项目的创建
我们可以看到idea为我们新建了一个HelloServlet作为例子,同时这里是通过注释的方式来连接url与对应的Servlet的
为了方便学习,我们将利用web.xml的方式修改url与Servlet间的 ...
暗月ack靶场学习记录
最近打了一套新的靶场——暗月ack,学到了很多新东西,特此记录
烂土豆(RottenPotato)
烂土豆(Rotten Potato) MS16-075 是一种利用 Windows 客户端操作系统中 NT AUTHORITY\SYSTEM 权限漏洞的攻击方法,可以实现本地提权,对应的补丁号为KB3164038
适用版本:Windows 7、8、10、2008、2012
当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞。成功利用此漏洞的攻击者可以使用提升的特权执行任意代码
若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统,可见,该漏洞的利用方式还是比较简单的
首先在拥有一个登录用户的情况下输入whoami /prive查看当前用户的权限
如果发现有SeAssignPrimaryTokenPrivilege权限或者SeImpersonatePrivilege 权限并且系统未打对应的补丁则可以成功利用烂土豆提权
MSSQL拿shell
拿到 ...
内网渗透之ms14_068和黄金、白银票据
MS14-068
MS14-068 是微软在 2014 年 11 月发布的一个安全公告,其中提到了 Windows 操作系统中存在的一个漏洞,对应的补丁号是KB3011780.该漏洞被称为 Kerberos Checksum Vulnerability,允许攻击者通过伪造 Kerberos 协议包来获取域控制器的权限,从而可能导致整个 Active Directory 域受到攻击.
该漏洞影响 Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2 等多个版本的 Windows 操作系统,并被评定为危急级别.
原理
在学习这个漏洞之前我们要先明白kerberos协议的认证流程:
在kerberos最初的设计流程中只说明了如何证明客户端的真实身份,并没有说明客户端是否有权限访问这个服务,为了解决这个问题,微软引入了PAC(Privilege Attribute Certificate)用来辨明用户的身份和权限.
PAC 包含了用户身份信息(包括用户的用户名、域名、S ...
java反序列化之fastjson
FastJson 1.2.22 - 1.2.24
fastjson是java反序列化中一个经典的漏洞了,早些在使用java写爬虫程序的时候就用过这个库,今天就针对其反序列化漏洞再来学习一次。
首先先介绍一下JavaBean ,JavaBean 包括一个默认的构造函数、私有的成员变量以及公共的 getter 和 setter 方法。这些方法用于对类中的属性进行读取和赋值操作,并且可以通过反射机制对其进行访问。
JavaBean 类通常被用作数据传输对象(DTO)或持久化对象(POJO),并且经常与 Web 应用程序框架(如 Spring MVC)一起使用。通过将数据映射到 JavaBean 对象中,我们可以方便地进行数据绑定、表单验证以及数据库访问等操作。
以下是一个简单的 JavaBean 类示例:
1234567891011121314151617181920212223242526272829303132public class Person { private String name; private int age; public Person() ...