macOS 上发送 CANFD 报文
0x00 前因
我的主力机是 Mac,手头有个 PEAK PCAN-USB Pro FD,平时拿它发车上的诊断请求
它在 Windows 上用着没问题,在 Mac 上却一直发不出 CANFD,但一连上就反复报 bus error / bus-off
把诊断线全拔掉、只留 USB,空闲通道的状态查询照样报错

我的主力机是 Mac,手头有个 PEAK PCAN-USB Pro FD,平时拿它发车上的诊断请求
它在 Windows 上用着没问题,在 Mac 上却一直发不出 CANFD,但一连上就反复报 bus error / bus-off
把诊断线全拔掉、只留 USB,空闲通道的状态查询照样报错
安卓开发中,JNI 就是 Java Native Interface 的缩写,它允许 Java 代码调用原生的 C/C++ 代码,或者允许 C/C++ 代码调用 Java 代码。
在 Android Stdio 中,有以下 3 种方法使用 so 文件:
more...1、手机端安装一个 server 程序
2、然后把手机端的端口转到 PC 端
3、PC 端写 js 脚本进行通信
frida -U -f com.package.name -l exploit.js
function hook() {
console.log("[*] Starting script")
Java.perform(function () {
var <class_reference> = Java.use("<package_name>.<class>");
<class_reference>.<method>.implementation = function(<args>) {
console.log("hook <class_reference>.<method>()")
console.log("args is:", args)
var ret = this.<method_to_hook>(args);
return ret
}
})
}
调用静态函数
package com.example.test.ui.test;
public class TestFrida {
public static String staticFunc(boolean isOk) {
if (isOk){
return "flag{sdfjwiejflkjf}";
} else {
return "nonono";
}
}
}
function hook_static_func() {
console.log("[*] Starting script")
Java.perform(function () {
var TestFrida = Java.use("com.example.test.ui.test.TestFrida")
var str = TestFrida.staticFunc(true)
console.log(str)
})
}
调用非静态函数
package com.example.test.ui.test;
public class TestFrida {
public String noStaticFunc(boolean isOk){
if (isOk){
return "flag{orjkwjflkjd}";
} else {
return "nonono";
}
}
}
function hook_no_static_func() {
console.log("[*] Starting script")
Java.perform(function () {
var TestFrida = Java.use("com.example.test.ui.test.TestFrida")
var testFrida = TestFrida.$new();
var str = testFrida.noStaticFunc(true);
console.log(str)
})
}
固件通常由 bootloader、内核、根文件系统及其他资源文件组成
固件采用的根系统文件类型有很多种,常见的有 squashfs、ubifs、ext4、jeffs2 等。
固件文件通常以 bin、zip、LZMA、arj 等文件压缩类型封装,最常见的为 bin 和 zip 格式
最常采用的文件系统是 squashfs,分析人员可以使用 unsqushfs 工具对文件系统提取数据。
主要用来读写固件,常见 JTAG 接口引脚有 10PIN、14PIN、20PIN
一般需要接的引脚:
GND:接地引脚
TDI:测试数据输入,用于向被测设备传输测试数据
TDO:测试数据输出,用于从被测设备读取测试数据
TCK:测试时钟,用于同步测试数据的传输
TMS:测试模式选择,用于控制 JTAG 状态机的状态转移
TRST:可选,TRST 可以用来对 TAPController 进行复位(初始化)
环境
攻击机 MSF:172.20.10.2
DC (Server2008R2X64):10.11.11.5
目标机 (Win7ProX86):10.11.11.14
PtH 和 PtT
PtH 一般用来进行域内横向
PtT 一般是在已经获取域控的前提下利用,用来做权限维持
Kerberos 协议有两个基础认证模块: AS 和 TGS,以及微软扩展的两个认证模块 S4U 和 PAC。
常见的基于 Kerberos 协议攻击的方法如下图所示:

认证的大致过程:
more...JNDI(Java Naming and Directory Interface) 是 Java 提供的 Java 命名和目录接口
JNDI 可访问的现有的目录及服务有:JDBC、LDAP、RMI、DNS、NIS、CORBA
more...在 https://github.com/gophish/gophish/releases 下载
然后编辑 config.json,之后直接 ./gophish 运行即可
more...