Android————hook
Frida是一款基于python + javascript 的hook框架,由于是基于脚本的交互,因此相比xposed和substrace cydia更加便捷。
Frida的官网为:http://www.frida.re/
pip换源pip国内的一些镜像
阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
修改源方法:
临时使用:可以在使用pip的时候在后面加上-i参数,指定pip源pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
安装安装frida首先要保证你的android手机已经root。通过p ...
Android————加密解密
Openssl1. 原理之前我们介绍SSL工作原理了解到当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信。这些复杂的步骤的第一步,就是浏览器与服务器之间协商一个在后续通信中使用的密钥算法。这个过程简单来说是这样的:
浏览器把自身支持的一系列Cipher Suite(密钥算法套件,后文简称Cipher)[C1,C2,C3, …]发给服务器;
服务器接收到浏览器的所有Cipher后,与自己支持的套件作对比,如果找到双方都支持的Cipher,则告知浏览器;
浏览器与服务器使用匹配的Cipher进行后续通信。如果服务器没有找到匹配的算法,浏览器(以Firefox 30为例,后续例子中使用的浏览器均为此版本的Firefox)将给出错误信息:
2. 浏览器浏览器支持哪些Cipher?这取决于浏览器支持的SSL/TLS协议的版本。习惯上,我们通常把HTTPS与SSL协议放到一起;事实上,SSL协议是Netcape公司于上世纪90年代中期提出的协议,自身发展到3.0版本。1999年该协议由ITEL接管,进行了标准化,改名为TLS。可以说,TLS ...
OSCP————JIS-CTF VulnUpload
背景介绍
靶场题目:JIS-CTF: VulnUpload
靶场地址:https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/
Name: JIS-CTF: VulnUpload Date release: 8 Mar 2018 Author: Mohammad Khreesha Series: JIS-CTF
环境:kali2021、JIS-CTF在同一网段下(net模式)
注意:一开始ip查找,并没有找到,后来发现靶机的网卡并没有启动
修复方法:
进入bash 咋这个界面下安字母 ‘e’键
找到ro的位置
将其更改成 rw single init=/bin/bash
然后ctrl +x进入bash,输入ip a 查看网卡信息
查看网卡配置信息vim /etc/network/interfaces
将网卡名改成与之前ip a命令查看到的名称一致,然后重启网卡
输入 /etc/init. ...
Linux安全基础
Linux系统概述Linux文件与权限linux目录说明/boot: 存放的启动linux时使用的内核文件,包括链接文件及镜像文件
/etc : 存放所有系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统无法启动
/lib : 存放基本代码库(比如c++库),其作用类似于Windows下的DLL文件,几乎所有的应用程序都要用到这些分享库
/bin : 存放着一系列的普通命令
/sbin:存放着只有管理员才能使用的命令
/dev: Device(设备)的缩写,存放的时Linux的外部设备,在Linux中访问设备和访问 文件是一样的
/media:类Windows下的其它设备,如Upan光驱等
/mnt:用于临时挂在其它文件系统
/run:是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件应该被清除
/lost+found:一般情况下为空,用于存放系统非法关机后的产生的文件
/tmp:用于存放临时文件
/root: 系统管理员用户家目录
/home:除管理员以外的用户家目录所处的目录
/usr: 用户的应用程序和文件基本都放在这个目录下
/usr/bin ...
OD插件
由于大多数用的都是1.0版本的OD,所以,以下编写的是OLLYDBG1.0的插件
OllyDbg重命名插件编写前置知识日志窗口输出并关联指定地址 _Addtolist(指定地址,1,“字符串”);
反汇编 _Disasm
读取内存 _Readmemory
读取当前地址标签内容 _Findlabel
读取用户名输入的字符串 _Gettext
插件名称 _Insertname
函数模板123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687//======================================必须导出的函数=======================================================//************************************// ...
病毒分析————Peyta.exe
样本信息
看上去是没有加壳
文件名: petya virus.exe
大小: 230912 bytes
修改时间: 2017年7月2日, 16:54:38
MD5: AF2379CC4D607A45AC44D62135FB7015
SHA1: 39B6D40906C7F7F080E6BEFA93324DDDADCBD9FA
CRC32: 488C77E7
测试环境及工具Windows 7 x64
OD
PEID
逆向分析一开始我是拖到IDA中分析的,但是啥都看不到
使用OD单步分析
F7进入
继续单步,就看到获取一堆函数
继续单步
F7进入
F7进入
进入0x0041A8DA一堆循环,一直单步
获取到VirtualAlloc、GetprocAddress
申请空间0x003E000
写入dll一开始以为只是填充400个字节(DOS头、NT头、区段表),后来才发现是在释放一个dll文件
从申请到的空间0x003E000开始
再往后走发现,0x003E1000开始填充,填充83FF个字节
从0x003EA000开始,循环填充BFF次 ...
漏洞利用————基础
概述何为软件漏洞软件漏洞理论上所有的漏洞均是软件漏洞,即便看起来像硬件级的漏洞,其本质仍是软件漏洞,软件漏洞是目前信息安全领域讨论的终极话题
软件漏洞成因本质上是由于人类目前还没有办法再原点上区分数据与代码(无论是冯诺依曼结构或哈佛结构均是如此),从事件的成因来看则是目前人类还未理解编写安全代码的真正方法
如何有效预防通过修改公共库函数的安全性,从根本上让软件漏洞的出现频率降低,并通过操作系统级的干预,使得有效的溢出攻击变得越来越难实现
软件漏洞常见名词Vulnerability中文直译:“漏洞”,它是通过黑客们(或软件厂商的安全部门)调试分析出来可能导致安全性问题的软件缺陷
Exploit中文直译:“漏洞利用”,它是能够利用或触发一段代码,也就是一个漏洞利用方法。Exploit代码/方法一般执行再攻击者机器上,或执行再权限受限的环境中
ShellCode中文直译:“壳代码”,它是通过Exploit顺利执行后,将一部分代码以巧妙的方式再指定机器上以指定的权限运行,这段代码就被称之为ShellCode。ShellCode一般执行在被攻击者的机器上,或执行在权限相对受限的环境中
Paylo ...
驱动开发
概述每一个进程,都有一个进程空间,进程运行所需要的所有代码和数据,全部存储于进程空间,进程空间被分为两部分,用户空间与内核空间。
不同进程的用户空间,相互之间隔离,互不影响,但是内核空间是大家共享的,操作系统通过内核层代码给应用程序提供支持。
用户空间代码不能直接访问内核空间,所能执行的指令也有限制,在内核空间的代码可以执行特权指令,由用户空间访问内核空间,必须通过一定的接口。
我们编写的驱动程序,并非是平时我们看到的一个能够运行起来的程序,而是加载到内核空间,成为操作系统的一部分,成为应用程序与硬件的桥梁,为应用程序提供支持的
一个模块。
根据功能的不同我们将驱动开发大致分为两类
1仅仅作为 windows操作系统内核的扩展,而并非是使得一个硬件工作起来,我们将其称为内核程序
2针对于某一种硬件,使得其能够很好的工作起来,通常称之为驱动程序根据开发框架的不同我们将驱动开发分为三类
NT
WDM
WDF
想要在Window10 上运行必须要有签名
方法:使用管理员权限打开cmd窗口 输入bcdedit /set testsigning on (设置为测试模式,然后重启)
初识驱 ...
内核基础-------保护模式
分段机制
在 32 位保护模式下,段寄存器就不会再直接保存段基址了,而是分成了可见的 16 位段选择子部分和不可见的 80 位高速缓冲部分,对于访问内存需要用到的一些信息,例如段的基址、限长和访问属性等都会被保存在这里的不可见部分。这一部分的内容无法人为的直接读取到,在段寄存器进行切换时会被 CPU 自动加载。首先,会解析 16 位的段选择子部分,从 TI 位获取到要使用的是哪一张表(GDT?LDT?),由于Windows没有使用LDT,所以目前保存的都是 0,再从 INDEX 获取表内元素的下标,再进行权限检查后,从中加载段的信息到不可见的高速缓存部分。
在16位上是段基址,在32位上是段选择子
段选择子
从下面的结构体定义可以看出,段选择子由 INDEX、TI 以及 RPL 组成,其中 RPL 全称为请求权限级别,表示当前使用什么样的权限发出请求,TI 位指定了当前查找的是 GDT(0) 还是 LDT(1),INDEX 标识的是索引,需要将 index 配合 ti 位一起使用,找到最终的 段描述符。
段选择子是一个16位的数值,高13位为全局描述表的索引,第三位索引GDT,LDT ...
壳代码设计
概述壳作为当前软件保护行业的高端技术,从一出现开始,就一直在安全的对抗前沿领域,经过多年的发展,出现了各种各样的加密壳,但是无论如何基本的思想还是没有变化,即通过对pe文件的变形处理,达到防止软件被分析与破解的目的。
前置知识壳的运行原理:加壳过的EXE文件是可执行文件,它可以同正常的EXE文件一样执行。用户执 行的实际上是外壳程序,这个外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交 还给解开后的真正程序,这一切工作都是在内存中运行的,整个过程对用户是透明的。
编译:将单个的 .c 或 .cpp 编译成中间文件 (.obj),在 VS 下,这个过程由 cl.exe 程序完成。
链接:将编译出的 .obj 中间文件、系统的启动文件和用到的库文件链接成一个可执行文件 (.exe)。VS 下由 link.exe 程序完成
装载:将一个可执行文件映射到虚拟地址空间并执行,由操作系统完成。在装载的过程中, 完了让程序正常被执行,会有下列几个步骤:
1.判断是否开启重定位,如果开启了,将 PE 文件加载到指定位置,并且修复目标PE 文件的重 定位。
2.遍历导入表,加载使用到的所有模块 ...