vulnhub-DC-1
导语vulnhub入门靶机渗透。靶机有5个flag,让我们冲实验环境:192.168.77.0/24: kali 192.168.77.128 DC-1 unknown
信息收集首先arp-scan找局域网里存活的主机然后使用nmap查看他开的端口和服务可以看到开启了80的http和22的ssh,因此先去浏览器访问一下发现是Drupal7,查相关资料可以知道存在RCE漏洞。https://www.xctf.org.cn/library/details/58bd0f2c4d4c77aef7d15787cb65008a6533b87a/
漏洞利用直接用metasploit使用日期比较靠前的drupalgeddon2,成功起了一个meterpreter用shell命令获得shell,用id查看当前用户ls后发现一个flag1.txt,提示我们去查看config file于是查看drupal的配置文件settings/default/settings.php,发现flag2,提示我们字典暴破不是唯一的获取权限方法(这里也是提示我们可以直接暴破密码),并且提供数据库的账号密码于是我们 ...
安卓内核pwn之缓冲区溢出
导语AndroidKernelExploitationPlayground之kernel_exploit_challenges / challenge / stack_buffer_overflow / module / stack_buffer_overflow.c
代码如下
#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/proc_fs.h>#include <linux/string.h>#include <asm/uaccess.h>#define MAX_LENGTH 64MODULE_LICENSE("GPL");MODULE_AUTHOR("Ryan Welton");MODULE_DESCRIPTION("Stack Buffer Overflow Example");static struct proc_di ...
PlayWithAndroidKernel
导语Do you want to hack Android?
环境配置初学Android内核漏洞,github上的AndroidKernelExploitationPlayground是一个很不错的选择,虽然他还是安装4.4.2的内核,但是帮助我们理解的话还是很有价值的。我在我的Ubuntu16.04上配置,如果你的步骤有出入建议查找其他教程~配置AndroidKernelExploitationPlayground的环境基本可以分为一下步骤
下载goldfish源码
下载AndroidKernelExploitationPlayground
使用AndroidKernelExploitationPlayground的patch将有漏洞的内核模块加到goldfish的源码
安装交叉编译工具arm-linux-androideabi-4.6
编译虚拟机
下载安装对应版本的Androidsdk
以goldfish启动虚拟机
下载goldfish源码goldfish是安卓的模拟器平台内核的源码,安卓内核有许多的代码项目,目的是适配不同的平台,比如在 https://android.g ...
树的遍历
导语基础知识很重要,简单记一下树的三种遍历。
先序遍历先序遍历从根节点开始,先访问当前节点,如果左子树不空就访问左子树,如果右子树不空再访问右子树。我们可以拿优先级的思想来类比看待自己>左儿子>右儿子动图看的话就是这样
中序遍历中序遍历从左子树开始,然后访问当前节点,最后访问右子树左儿子>自己>右儿子动图如下
后序遍历后序遍历先左子树,然后右子树,然后自己左儿子>右儿子>自己动图如下
BST与AVL与RBT
导语BST(二叉排序树、二叉搜索树、二叉查找树),AVL(平衡二叉树)以及BRT(红黑树)是非常重要的数据结构。
BSTBST性质BST的中文名很多,实际上都是一个东西。
在二叉树中的第i层上至多有$2^{i-1}$个结点(i>=1)。
深度为k的二叉树至多有$2^k-1$个节点(k>=1)。
对任何一棵二叉树T,如果其叶结点数目为$n_0$,度为2的节点数目为$n_2$,则$n_0$=+1。
具有n个节点的完全二叉树的深度为$log_{2}{n}+1$
BST操作查找、插入、删除、遍历操作(比较简单)
#include<stdio.h>#include<stdlib.h>/* 二叉排序树 <==> 二叉搜索树 (BST) <==> 二叉查找树 1. 二叉排序树的查找功能 (递归、非递归实现) --> 查找效率很大程度上取决于二叉排序树的高度。 2. 二叉排序树的插入功能 (默认不同元素的值才插入) --> 先查找再插入 3. 二叉排序树的删除功能 (两种实现方式, 1.后继结点顶上来,删除后继 ...
单元测试框架
导语菜bpillar报名了他们学校的实训,听了老师对单元测试框架的讲解,觉得非常牛逼,打算写一篇博客整理整理。
测试程序古话说得好,只要是程序,就有bug,因此,一个测试程序对于程序本身来说是很有必要的。虽然说通过测试不代表就没有bug,但至少说明程序是概率性正确的。咱就跟着实训来的例子来看看测试程序怎么写。
谷歌测试框架谷歌有一个C++的测试框架gtest,我们在这个框架的基础上来看看。这是他的源码仓库:https://github.com/google/googletest其中还有一个介绍怎么整一个自己的测试模块的。https://github.com/google/googletest/tree/master/googletest
步骤gtest用cmake编译,所以如果你的电脑上没有cmake就去整一个然后按照上面的教程,在clone下来的源码里执行
mkdir mybuildcd mybuildcmake ${GTEST_DIR}
这里的GTEST_DIR随便设。然后我们就会发现mybuild文件夹里出现了一些新的文件,其中包含Makefile
所以我 ...
分区表
导语今天我们来深入理解一下MBR中的DPT部分
我们考试考的是MBR而不是GPT,而现在很多电脑都是GPT了,所以你看着可能有点脱离实际,有空应该会更新GPT。
MBR以前我们提到过主引导分区MBR(Master Boot Record),MBR的作用是什么呢?主要如下
提供开机菜单选项:可以供用户选择启动哪个操作系统,这是多重引导功能。
加载操作系统内核:每个操作系统都有自己的内核,需要引导程序来加载
转交给其他引导程序:可以将工作移交给其他引导程序来进行上述操作。
其实引导加载程序除了可以安装在MBR中,还可以直接安装在每个分区的引导扇区(DBR)中,注意下,每个分区(主分区、逻辑分区)都有一个自己的启动扇区,专门用来安装引导加载程序
DPT在之前的博文“FAT32文件系统”中有简单的讲MBR的格式,DPT就在他的MBR512字节的后64字节,每个DPT表项的长度为16字节。比如:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00这里我们直观地可以这样显示
其中,分区系统类型主要如下然而我们有可能看到0f,这也是在之后的FAT LB ...
VirtualProtect绕过DEP
导语这是我的软件安全作业,希望能同学们启发。
具体内容是设计一个shellcode绕过DEP保护然后让他打开计算器。
DEP数据执行保护 (DEP) 是一套软硬件技术,能够在内存上执行额外检查以防止在不可运行的内存区域上执行代码。 在 Microsoft Windows XP Service Pack 2、 Microsoft Windows Server 2003 Service Pack 1 、 Microsoft Windows XP Tablet PC Edition 2005 、 Microsoft Windows Vista 和 windows 7 中,由硬件和软件一起强制实施 DEP。DEP 有两种模式,如果CPU 支 持内存页NX 属性, 就是硬件支持的DEP。只有当处理器/系统支持NX/XD位(禁止执行)时,windows才能拥有硬件DEP,否则只能支持软件 DEP,相当于只有SafeSEH保护。简单来说就是会检查你的eip指向的内存段属性,如果不是代码段就给你中断了。
DEP的绕过思路一般有以下三个
关闭进程DEP
将shellcode存储位置设置为可执行
将s ...
i春秋-小可爱
导语点击这里去答题
小可爱白给一张图,winhex打开看看,肉眼看不出隐藏了什么内容。用binwalk打开,发现有一个zip,用-e把它提取出来知道密码为8位数字,直接用archpr暴破得到密码然后噩梦开始建议打印。我反正是吐了。拼完扫出来就是答案了。
i春秋-要想会,先学会
导语点击这里去答题
要想会,先学会题目是一个pcapng,用wireshark打开,先提取http对象,发现下面内容并且他们都是打不开的,说明思路有问题,这顶多是个提示。于是查看数据包,可以发现有很多icmp数据,我们都知道icmp最常见的应用是ping,他只是看看网络通不通,他有这么多一定有东西,所以我们筛出icmp数据包。可以发现数据包的长度都有所不同,且不同的内容全是ABCD啥的填充,结合弹出来的ascii,我们不难猜到这是ascii值,于是直接转换,发现是所以应该有偏移,我们知道f和l的差是6,而150-144=6,所以设偏移为42,发现确实如此