权限提升Windows提权权限分类在Windows系统中,权限大概分为四中,分别是:
User:普通用户权限
Administrator:管理员权限,可以利用Windows机制提升为System权限
System:系统权限
TrustedInstaller:Windows中最高权限。有些文件,连System权限也无法修改,只能TrustedInstaller权限修改。TrustedInstaller为Windows系统中众多系统内置安全主体中的一个,本身是系统重要服务,用户无法直接在此服务的上下文中运行程序或另一个服务。它是操作系统上用来对系统进行维护、更新等操作的组。在Windows XP及以前,System账户与管理员组对系统文件都有着完全访问的权限。 这意味着以管理员身份运行的程序可以任意更改系统,降低了系统安全性。TrustedInstaller则改变了这一情况,使得只有拥有TrustedInstaller令牌的系统进程才能更改系统重要内容,而其他大部分系统服务就没有权限
我们windows下的提权目的是把user/administrator权限提升到sy ...
Cobalt Strike前置知识CS介绍Cobalt Strike是美国Red Team开发的渗透测试神器,简称cs,是一款渗透神器。
主要用于后渗透方面的攻击,且具备团队作战的功能
官网地址
Cobalt Strike的特点:
团队协作功能
丰富的生成木马模块:可生成exe,dll,powershell,hta,图片捆绑,bad USB,vba宏木马,以及shellcode等;
钓鱼攻击及探针模块:自动化挂马链接生成,自动化钓鱼及探针;
后渗透攻击模块:浏览器进程代理、文件操作、提权模块、跳板、DLL进程注入、端口转发、内网端口扫描、socks代理、令牌窃取利用、mimikatz套件等;
环境搭建
点后
这个是客户端
文件夹里这个是服务端
当多个客户端连接上同一个服务端(团队渗透)时 一台客户端获得的权限其他客户端也可以获得(权限共享)
在cobalt strike中,服务端最好运行在linux平台上,服务端的关键文件是teamserver和cobaltstrike.jar将这两个文件放在同一目录下运行运行服务端命令:(4.5以前 4.5以后增TeamServerImage) ...
matasploit前置知识介绍Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称MSF。是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布MSF时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为MSF团队一直都在努力开发各种攻击工具,并将它们贡献给所有MSF用户。
MSF的设计初衷是打造成一个攻击工具开发平台,然而在目前情况下,安全专家以及业余安全爱好者更多地将其当作一种点几下鼠标就可以利用其中附带的攻击工具进行成功攻击的环境。
kali中已经集成了MSF
MSF中的相关概念
渗透攻击(Exploit)
渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为。
流行的攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击,以及利用配置 ...
内网基础前置知识内网定义
内网渗透分类
简单架构
DMZ中存放一些对外的服务
内网常用概念工作组
域
活动目录(AD)
域权限
域控制器(DC)
内网渗透的攻击目标就是DC
其他
AGDLP策略
相关操作判断工作环境高级系统设置中–>计算机名
看到是工作组环境
在属性里面也可以看到
添加到域高级系统设置中–>计算机名–>更改
渗透流程
信息收集
权限提升
横向移动
权限维持
清理痕迹
信息收集
主要就是敲命令和用工具
Windows信息收集一、本机信息1、系统程序收集系统信息,包括操作系统版本,已安装补丁列表等。通常使用以下方法收集:
net config workstation # 查询简易系统信息
systeminfo # 查询全部内容
wmic qfe get Caption,Description,HotFixID,InstalledOn # 查询已安装的补丁列表
注:其中systeminfo命令查询内容最全,但如果系统 ...
JAVA–加载字节码前置定义:
Java字节码(ByteCode)其实仅仅指的是Java虚拟机执行使用的一类指令,通常被存储 在.class文件中。
众所周知,不同平台、不同CPU的计算机指令有差异,但因为Java是一门跨平台的编译型语言,所以这 些差异对于上层开发者来说是透明的,上层开发者只需要将自己的代码编译一次,即可运行在不同平台 的JVM虚拟机中。只要你的编译器能够将代码编译成.class文件,都可以在JVM虚拟机中运行(甚至可以用Scala、Kotlin这样的语言编写代码)
但是后文想说的字节码是广义”字节码”而不是狭义的“Java字节 码”:所有能够恢复成一个类并在JVM虚拟机里加 载的字节序列,都在我们的探讨范围内
Java中动态加载字节码的方法利用URLClassLoader加载远程class文件package com.govuln;import java.net.URL;import java.net.URLClassLoader;public class HelloClassLoader { public static void main(St ...
java反序列化–CC7利用条件 和CC5一样
只有:3.1>Common-Collection<=3.2.1&&Commons-Collections=4.0
POCpackage example;import org.apache.commons.collections4.Transformer;import org.apache.commons.collections4.functors.ChainedTransformer;import org.apache.commons.collections4.functors.ConstantTransformer;import org.apache.commons.collections4.functors.InvokerTransformer;import org.apache.commons.collections4.map.LazyMap;import java.io.*;import java.lang.reflect.Field;import java.util.HashMap ...
java反序列化–CC6前置学完CC1后 我们发现CC1只能在8u71以前利用 那么 我们自然想知道CC链该怎么在8u71以后的利用方式 这就是CC6存在的意义
首先 8u71后为什么不能利用了:
主要原因是 sun.reflect.annotation.AnnotationInvocationHandler.readObject 的逻辑变化了
同样 我们也是通过照ysoserial中的代码进行学习
利用条件:
Common-Collections 3.2.1
无 JDK 版本限制
CC6-demo分析代码java.io.ObjectInputStream.readObject()-->java.util.HashMap.readObject()-->java.util.HashMap.hash()-->org.apache.commons.collections.keyvalue.TiedMapEntry.hashCode()-->org.apache.commons.collections.keyvalue.TiedMapEntry.getValue() ...
java反序列化–CC5前置同样 重点分析链子
CC5可以在Commons-Collections=3.2.1与Commons-Collections=4.0
下都可以运行 包括在8u401和8u65下都可以运行
但是 和CC1等在Commons-Collections=4.0的运行一样 改动的地方也是一样的
但是有这个前置条件:3.1>Common-Collection<=3.2.1&&Commons-Collections=4.0
CC5和CC1很像
CC1的链子是:
ObjectInputStream.readObject() AnnotationInvocationHandler.readObject() Map(Proxy).entrySet() AnnotationInvocationHandler.invoke() LazyMap.get() ChainedTransformer.transform() ConstantTransformer.transform() InvokerTr ...
java反序列化–CC4我们后面学习的CC4、CC5、CC7据说实用价值比较低了
但是我们还是要学习 毕竟我们的java调试 审计能力还不够
继续提升我们的java能力吧
前置利用条件
Commons-Collections=4.0
javassist
CC4其实CC4就是CC2与CC3的组合体
基于TransformingComparator+priorityqueue是可以触发transforme()方法
所以可以利用这个两个类的组合来代替cc3链中的LazyMap或Transformedmmap+AnnotationinvocationHandler的组合,从而构成了cc4
直接上POC
通过POC来学习就行
POCpackage example;import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.org.apach ...
java反序列化–CC3我们知道 TemplatesImpl可以加载字节码的类 通过newTransformer() 方法 可以执行这段字节码的类构造器
这其实就是CC3
前置CC1的demo:
package org.example;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.ConstantTransformer;import org.apache.commons.collections.functors.InvokerTransformer;import org.apache.commons.collections.map.TransformedMap;import java.util.HashMap;import java.util.Map;public class CommonCollections ...