内网渗透体系建设-权限提升
权限提升可以分为横向权限提升和垂直权限提升,前者是指同级用户,后者是指低级用户到高级用户。
系统内核漏洞提权当目标系统存在该漏洞且没有更新安全补丁时,利用已知的系统内核漏洞进行提权测试人员往往可以获得系统级别的访问权限。
查找漏洞手动查找
systeminfo
可以利用该命令查看系统安装的补丁
然后可以结合系统版本信息,借助辅助工具寻找可用的提权漏洞。
借助WES-NG查找可用漏洞
项目地址:https://github.com/bitsadmin/wesng
使用方法:
执行下面命令更新漏洞库数据
python3 wes.py --update
在目标主机执行systeminfo命令,并将结果保存到sysinfo.txt中,然后执行下面命令,用WES-NG进行检查
python3 wes.py sysinfo.txt --impact "Elevation of Privilege"#--impact指定漏洞类型为提权漏洞
emmm我的win7systeminfo文件跑出来什么都没有,跑了一下我的win11竟然有cve没绷住
执行下面命令查找所 ...
内网渗透体系建设-端口转发和代理
端口转发和代理在渗透测试中,在获取目标外网权限后,需要通过转发端口或搭建代理等方式建立内网通道。
正向连接与反向连接两个基本概念:正向连接和反向连接。例如,Metasploit 大致可以分为两种Meterpreter,一种是以 windows/meterpreter/bind_tcp为代表的 Bind Shell,另一种是以 windows/meterpreter/reverse_tcp 为代表的 Reverse Shell。其中,Bind Shell用于正向连接,而ReverseShell用于反向连接。
正向连接:正向连接就是受控端主机监听一个端口,由控制端主机主动去连接受控端主机的过程,适用于受控主机具有公网IP的情况下。例如下图中,Attacker 和 Victim 主机都具有公网 IP,Attacker 可以直接通过IP地址访问到 Victim,所以能够使用正向连接来控制 Victim。
反向连接:反向连接是控制端主机监听一个端口,由受控端主机反向去连接控制端主机的过程适用于受控端主机没有公网 IP 的情况。如图所示,Victim ...
Nssctf刷题-网鼎杯
[网鼎杯 2020青龙组]Notes这里没给题目源码只能网上找,app.js源码如下:
var express = require('express');var path = require('path');const undefsafe = require('undefsafe');const { exec } = require('child_process');var app = express();class Notes { constructor() { this.owner = "whoknows"; this.num = 0; this.note_list = {}; } write_note(author, raw_note) { this.note_list[(this.num++).toString()] = ...
内网渗透体系建设-信息搜集
信息搜集当渗透测试人员通过 Web 渗透或其他方式获得服务器主机的权限后,需要以该主机为跳板,对其内网环境进行渗透。对于攻陷的第一台主机,其在内网中所处的网络位置当前登录的用户、该用户有什么样的权限、其操作系统信息、网络配置信息及当前运行的进程信息等都是未知的,这就需要测试人员以当前主机为中心进行信息收集。
本机基础信息搜集查看当前用户、权限
whoami /all
查看当前用户以及当前用户所处的用户组、所拥有的特权等信息,测试人员可以对当前用户所拥有的特权有一个大致的了解,并综合判断是否需要提升权限。
查看网络配置信息
ipconfig /all
查看当前主机的网络配置情况,包括主机的IP 地址、主机名、各网络适配器的信息可以从中判断出当前主机所处的内网网段
查看主机路由信息
route print
在路由表中的“网络目标”都是主机可以直接访问到的,测试人员在后续的横向渗透中可以尝试探测相关地址段的存活主机。
查看操作系统信息
systeminfosysteminfo | findstr /B /C:"0S Name" /C:"0S Ver ...
ctfhub的disable_function
这是ctfhub的Bypass disable_function知识体系
好多新东西能学的,来研究一下。
LD_PRELOAD这里首先来了解一下动态链接库(也叫共享库),这部分在深入理解计算机系统这本书有详细说明,这里简单了解一下
共享库(shared library)是致力于解决静态库缺陷的一个现代创新产物。共享库是一个目标模块,在运行或加载时,可以加载到任意的内存地址,并和一个在内存中的程序链接起来。这个过程称为动态链接(dynamic linking),是由一个叫做动态链接器(dynamic linker)的程序来执行的。共享库也称为共享目标(shared object),在 Linux 系统中通常用 .so 后缀来表示。微软的操作系统大量地使用了共享库,它们称为 DLL(动态链接库)。
程序编译的四个过程如图(预处理、编译、汇编、链接):
一个示例程序的动态链接的过程如图:
#include <stdio.h>#include "vector.h"int x[2] = {1, 2};int y[2] = {3, ...
proc目录作用总结
参考文章:Proc 目录在 CTF 中的利用-安全客 - 安全资讯平台 (anquanke.com)
/proc目录是什么Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
这里看一下/proc目录下有什么
ls -al /proc
目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号(PID),里面包含对应进程相关的多个信息文件。
进程号为1的文件里有这些文件,其中有些文件是每个进程都会有的,ctf中我们需要的就是利用这些通用的文件来获取一些进程中的相关信息。
/proc目录作用/proc/self指向的就是当前进程号的目录,这个会经常用到,因为比如靶机启动的时候会有一个自己的进程,这个时候就可以通过/proc/self来 ...
计算机网络学习-6
物理层概述
数据通信
数据通信模型
相关术语
通信方式
数据传输方式
数据传输相关术语
奈氏准则
失真
奈氏准则(奈奎斯特定理)
香农定理
奈式和香农的对比
编码与调制
基带信号与宽带信号
编码与调制的区分
编码与调制的具体方式
数字数据编码为数字信号
数字数据调制为模拟信号
模拟数据编码为数字信号
模拟数据调制为模拟信号
数据交换方式
电路交换(Circuit Exchanging)
报文交换(Message Exchanging)
分组交换(Packet Exchanging)
数据报方式
虚电路方式
数据报和虚电路对比
交换方式的选择
物理层传输介质
导向型传输介质
双绞线
同轴电缆
光纤
非导向型传输介质
物理层设备
中继器
集线器(多口中继器)
物理层概述导图:
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层主要任务:确定与传输媒体接口有关的一些特性
物理层特性
机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
电气特性:规定传 ...
计算机网络学习-5
数据链路层概述
基本概念结点:主机、路由器。
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
功能概述数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。
功能五:差错控制(帧错/位错)
封装成帧
透明传输透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须 ...
vm2沙箱逃逸
沙箱逃逸的概念
Nodejs命令执行
vm沙箱逃逸
vm模块的使用
利用沙箱来执行命令
vm绕过Object.create(null)
vm2沙箱逃逸
题目分析
[HFCTF2020]JustEscape
沙箱逃逸的概念
沙箱(sandbox)就是创建一个单独的运行代码的环境,和主机进行隔离,这样代码产生的危害就不会影响到主机,沙箱的工作机制主要是依靠重定向,将恶意代码的执行目标重定向到沙箱内部。
沙箱(sandbox)和 虚拟机(VM)和 容器(Docker)之间的区别:sandbox和VM使用的都是虚拟化技术,但二者间使用的目的不一样。沙箱用来隔离有害程序,而虚拟机则实现了我们在一台电脑上使用多个操作系统的功能。Docker属于sandbox的一种,通过创造一个有边界的运行环境将程序放在里面,使程序被边界困住,从而使程序与程序,程序与主机之间相互隔离开。在实际防护时,使用Docker和sandbox嵌套的方式更多一点,安全性也更高。
Nodejs中,通过vm模块来创建一个沙箱,但vm模块的漏洞较大,后续就出现了升级版的vm2,对vm做了优化,但是在旧版本仍然存在 ...
计算机网络-4
网络层概述这里放个导图
网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。
网络层的功能
功能一:路由选择与分组转发(选择最佳路径)
功能二:异构网络互联
功能三:拥塞控制
若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施缓解这种拥塞;
拥塞控制有两种方法:
开环控制:这是静态的,即提前考虑网络会产生拥塞的各种情况并做好准备
闭环控制:这是动态的,即在网络运行的时候进行实时调整
IP数据报格式IP协议在网络层的占比很大
ip数据包的整体结构
数据部分就是传输层的报文段
具体格式
IP数据报分片最大传送单元MTU
链路层数据帧可封装的数据的上限
以太网的MTU是1500字节
链路层的数据帧的数据部分就是IP分组,所以IP分组大小不能超过MTU,以太网就是不能超过1500字节;如果超过了MTU就要采取数据报分片的方法。
分片
分片的就和上面数据报中的标识、标志、片偏移三个部分相关
标识:同一数据报的分片使用同一标识。比如有三个数据报他们的标识都是888,那他们就是属于同一个 ...