Windows黑客编程-注入技术 开机自启
注入技术全局钩子注入hook,指利用api来提前拦截并处理windows消息的一种技术。如键盘钩子,许多木马都有这东西,监视你的键盘操作。
全局钩子是系统钩子的一种,当指定的一些消息被系统中任何应用程序所处理时,这个钩子就被调用
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,
还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,
这个函数的原型是
HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId)
其中,第一个参数是钩子的类型;
第二个参数是钩子函数的地址;
第三个参数是包含钩子函数的模块句柄;
...
提权 CVE-2022-37706
CVE-2022-37706这是一个Linux上的提权漏洞
先需要安装 apt install enlightenment
/usr/lib/x86_64-linux-gnu/enlightenment/utils/ 下的 enlightenment_sys 文件 其中就包含了一段可以利用的提权代码。
eina_init();
uid = getuid();
v56 = getgid();
LODWORD(v57) = getegid();
v11 = getgroups(0x10000, v64);
if ( v11 < 0 )
{
puts("ERROR: MEMBER OF MORE THAN 65536 GROUPS");
exit(3);
}
v58 = v11;
if ( setuid(0) )
{
puts("ERROR: UNABLE TO ASSUME ROOT PRIVILEGES");// 提升了它的特权。
ex ...
CVE-2018-18708
ARM栈溢出 TENDA CVE-2018-5767IoT固件仿真的基础方法及排错思路。对ARM架构栈溢出漏洞的利用和调试方法。
arm指令
1.实验目标分析的漏洞为CVE-2018-5767,是一个输入验证漏洞,远程攻击者可借助COOKIE包头中特制的‘password’参数利用该漏洞执行代码。
固件下载地址:https://down.tenda.com.cn/uploadfile/AC15/US_AC15V1.0BR_V15.03.1.16_multi_TD01.zip
2.固件仿真首先使用binwalk导出固件文件系统,并通过ELF文件的头信息判断架构,得知为32位小端ARM。
binwalk -Me US_AC15V1.0BR_V15.03.1.16_multi_TD01.zip
readelf -h bin/busybox
可以看见该文件是 32位 arm架构
用chroot ./ ./qemu-arm-static ./bin/httpd 模拟运行一下发现会卡住
#安装qemu和arm的动态链接库
sudo apt install qemu-user-static lib ...
UE4蓝图开发
蓝图开发开关门自动开关门在内容浏览器中右键新建一个蓝图类
添加静态网格体组件 选取对应的模型door
添加 box collision 命名为Box 规定碰撞区域
为Box添加事件,组件重叠时触发(on component begin overlap(Box)),组件结束重叠时触发(on component end overlap(Box))
在事件图标中规定时间轴(timeline),并且在内部设置门旋转的角度和时间获取door 为door设置相对旋转(setrelativerotation) 注意,应该设置为相对旋转,否则将以世界坐标为参考(setworldrotation)导致门旋转异常。
最后根据执行流程绘制蓝图:组件重叠时开始以时间轴逐帧播放旋转动画,结束重叠时逆向播放动画,将相对旋转设定为door的z轴
按E开关门在自动关门的基础上添加 gate组件,利用flip flop 分别控制动画的正反播放
用E键控制gate能否执行,在组件是否重叠后 利用 启动输入(enable input) 和 禁用输入(disable input) 分别控制gate 的 open clo ...
UE4 C++ 开发游戏
UE4 C++ 开发游戏粉胖香菇
资源导入与人物创建
新增一个c++的character类 取名叫 benben
然后基于 benben 新建一个蓝图类 取名 BP_benben
打开 BP_benben 蓝图类 为其选择一个骨骼网格体,并且条件碰撞体的大小。
创建全局摄像机新建一个 gamemodebase 蓝图类,用于控制游戏的模式,取 BP_gamemode
在项目设置中 选择 default gamemode(默认游戏模式) 为BP_gamemode
default pawn class(默认角色类)为BP_benben
这样在视图中 playerstart 就是 BP_benben 了
添加一个C++ actor 类 取名 BP_gamecamera
在.h文件中声明camercomp类 然后在.cpp中实例化
需要先声明UCameraComponent 类 然后申请一个 CameraComp的类
CameraComp = CreateDefaultSubobject(TEXT(“CameraComp”)); //实例化摄像机CameraComp->Set ...
CVE-2018-18708
CVE-2018-18708 TENDA 缓冲区溢出 getshellmips架构简介
寄存器
寄存器 名字 用法
$0 $zero 常量0(constant value 0)
$1 $at 保留给汇编器(Reserved for assembler)
$2-$3 $v0-$v1 函数调用返回值(values for results and expression evaluation)
$4-$7 $a0-$a3 函数调用参数(arguments)
$8-$15 $t0-$t7 暂时的(或随便用的)
$16-$23 $s0-$s7 保存的(或如果用,需要SAVE/RESTORE的)(saved)
$24-$25 $t8-$t9 暂时的(或随便用的)
$28 $gp 全局指针(Global Pointer)
$29 $sp 堆栈指针(Stack Pointer)
$30 $fp 帧指针(Frame Pointer)
$31 $ra 返回地址(r ...
记第一个GitHub项目 --ghost远控
客户端界面的设计和编写1.1 创建窗口1.新建一个工程,看操作 我们必须给工程起一个响亮的名字 :-D 就叫CMDghost吧
2.添加最大化窗口,最小化窗口的属性
3.更改对话框到适当大小
4.添加服务端连接后显示的列表控件IDC_ONLINE,日志列表控件IDC_MESSAGE
6.添加列表控件变量m_CList_Online,m_CList_Message
7.相应对话框改变大小的消息WM_SIZE就是 向对话框抛出这个消息对话框就会改变大小,我们先相应这个消息,然后再把这个消息 向下传递
9.示范伸缩
10.伸缩同原来的有差别,介绍一个小技巧 在OnInitDialog:
当对话框改变时,WM_SIZE抛出消息由OnInitDialog响应,此时对话框还没有显示,可以在显示前改变对话框。
1.2 添加列表中的列名1.参考gh0st的列表中的列名: 0IP 1所在区域 2计算机名/备注 3操作系统 4CPU 5摄像头 6Ping
2.上一节我们为列表控件添加变量,我们来查看变量的类型: CListCtrl 类 查看MSDN 找到
int In ...
汇编学习
基础
-r 查看寄存器内容
-r ip
:0
将IP改为0000
-t 单步执行
-d 查看内存内容(几个字节)
-e 改写偏移地址
-u 将机器码编译为汇编指令
-a 以汇编语言的形式写入程序
MASA中move ax , [0] 将al的值赋值为0
move ax , ds:[0] 将偏移地址为0的内存单元的内容放进ax中
move ax , [bx] 将bx的内容放进ax中
dw 定义字形数据 //数据以字为单位,而非字节
dw 定义字形数据数据以字为单位,而非字节
dw定义 字 类型变量,一个字数据占2个字节单dao元,读完一个,偏移量加2
db定义 字节 类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1。
dd定义 双字类 型变量,一个双字数据占4个字节单元,读完一个,偏移量加4。
AX的 ...
Web学习 文件包含漏洞
文件包含
1、文件包含漏洞简介1、1什么是文件包含
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数
时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。
1、2 文件包含漏洞的成因
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包
含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。
1、3 PHP中常见包含文件的函数
Ø include( )当使用该函数包含文件时,只有代码执行到 include()函数时才将文件包含进来,发生错误时之给出一个警告,继续向下执行。Ø include_once( )功能与Include()相同,区别在于当重复调用同一文件时,程序只调用一次Ø require( )require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。Ø require_once( )功能与require()相同,区 ...
Web学习 文件上传漏洞
文件上传漏洞对文件上传类型进行区分,是属于编辑器文件上传,还是属于第三方应用,还是会员中心。要确保文件上传是什么类型,就用什么类型方法对它进行后期的测试。
常规类:扫描获取上传,会员中心上传,后台系统上传,各种途径上传
CMS类:已知CMS源码,搜索已知cms漏洞
编辑器类:ckeditor,fckeditor,kindeditor,xxxeditor,也是搜索相关编辑器漏洞
配合解析漏洞下的文件类型后门:可以通过解析漏洞,上传包含后门代码的图片
上传方法方法一
先直接传一个PHP,实战先传马。
实战先传一个正常的图片,看看有无返回存储地址。
如果能直接上传并解析,已离成功不远。
方法二 先传一个shell,然后进行修改。 connect-Type:image/jpeg,看看是否可以进行绕过,如果不行,在上传内容添加GIF89a 当然上传了还得看是否能够被解析为php,所有的上传都要考虑是否能够被解析。
方法三 上传一个abc.abcd,目的只是为了查看是否为白名单还是黑名单绕过。 黑名单限制一般为此文件类型不允许上传,考虑双写,大小写,空格,php2, ...








