Gallia是一款专注于汽车安全的可扩展渗透测试框架,该工具可以对整辆汽车执行渗透测试,而且甚至可以还可以单独对车辆ECU进行测试。目前,Gallia主要针对的是UDS接口,并利用了模块化的设计分别实现了日志记录和归档功能。作为一个通用接口,日志记录功能实现了可重复的测试,并支持后续处理任务。
工具架构
下图显示的是Gallia的内部模块以及运行机制:

工具依赖
Linux>= 5.10 Python>= 3.9 poetry (可选,用于开发) dumpcap (可选,WireShark组件)
Python依赖组件可以在项目的pyproject.toml文件中查看。
扫描模式
常规的UDS扫描通常包含下列步骤:
1、在相关设备上搜索ECU:发现扫描;
2、在找到的ECU上搜索UDS服务:服务扫描;
3、在发现的UDS服务中搜索UDS标识符:标识符扫描;
4、针对其他特定服务的扫描:例如内存扫描、模糊测试等;
发现扫描
发现扫描特定于底层传输,如DoIP或ISO-TP。这个想法是制定一个有效的UDS
Payload。正常工作的Payload是1001,这也是DiagnosticSessionControl服务所要求的。该请求可以让ECU修改DefaultSession。
DiagnosticSessionControl服务和DefaultSession是始终可用的,因此这个Payload是最佳选择。除此之外,1003这个Payload也可以使用,因为很多ECU在启用ExtendedDiagnosticsSession(会话ID为0x03)时会提供声音反馈。
ECU的寻址由底层传输协议提供,大多数情况下有两个地址:测试器地址和ECU地址。发现扫描的基本思想是使用固定的测试器地址将有效的UDS
Payload发送到所有有效的ECU地址。当收到有效应答时,说明找到了ECU。
服务扫描
服务扫描在UDS协议级别运行,UDS提供了几个称为服务的节点。每个服务都有一个标识符和一个特定的参数列表,扫描过程是使用固定Payload去请求所有可能的服务。Payload不必是特定的;它可以是空的,也可以是全零。一些ECU在接收到无效Payload时可能表现得不是很稳定。
为了识别可用的服务,工具使用了反向匹配机制。根据UDS标准,当请求未实现的服务时,ECU会使用错误代码serviceNotSupported或serviceNotSupportedInActiveSession进行回复。因此,每个以不同错误代码响应的服务都被认为是可用的。
标识符扫描
标识符扫描在UDS协议级别运行,更具体地说,它在特定UDS服务的级别上运行。大多数UDS服务需要标识符作为输入参数。比如说,ReadDataByIdentifier服务需要为请求的资源输入数据标识符。为了找出特定服务的可用标识符,工具引入了标识符扫描。
为了识别可用的数据标识符,工具使用了反向匹配机制。根据UDS标准,当请求未实现的服务时,ECU将使用错误代码serviceNotSupported或serviceNotSupportedInActiveSession进行回复。如果ECU响应serviceNotSupported、serviceNotSupportedInActiveSession、subFunctionNotSupported、subFunctionNotSupportedInActiveSession或requestOutOfRange中的任何一个,则认为标识符不可用。
一些服务(如RoutineControl)也提供了一个子功能,可以使用相同的技术发现子函数参数,但反向匹配的错误代码不同。为了发现可用的子功能,以下错误代码表示该子功能不可用:serviceNotSupported、serviceNotSupportedInActiveSession、subFunctionNotSupported或subFunctionNotSupportedInActiveSession。
每个以不同错误代码响应的标识符或子功能都被视为可用。
工具安装
Arch Linux
paru -S gallia
手动安装
pip install gallia
工具使用
$ gallia simple-dtc --target "isotp://can0?src_addr=0x123&dst_addr=0x312&tx_padding=0xaa&rx_padding=0xaa" read
项目地址
https://github.com/Fraunhofer-AISEC/gallia
详细文档 :
https://fraunhofer-aisec.github.io/gallia/
最后
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以
点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的 学习成长路线图 。可以说是 最科学最系统的学习路线
,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料
2️⃣视频配套资料&国内外网安书籍、文档
① 文档和书籍资料

② 黑客技术


因篇幅有限,仅展示部分资料

3️⃣网络安全源码合集+工具包

4️⃣网络安全面试题

5️⃣汇总


所有资料 ⚡️ ,朋友们如果有需要全套 《 网络安全入门+进阶学习资源包 》, 扫码获取~

最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
扫码领取
