当前位置: 首页 > news >正文

MulVal安装记录

MulVAL 是一种端到端框架和推理系统,可在网络上进行多主机、多阶段漏洞分析MulVAL采用Datalog作为分析元素的建模语言(bug规范、配置描述、推理规则、操作系统权限和特权模型等)。通过在 Datalog 中表达它们的输出并将其馈送到我们的 MulVAL 推理引擎,我们可以轻松地利用现有的漏洞数据库和扫描工具。收集信息后,可以在几秒钟内对拥有数千台机器的网络进行分析

参考(步骤不全):MulVal工具的安装以及配置_mulval安装-CSDN博客

Analyzer主机1 ubuntu24.04

更新配置

sudo apt update && sudo apt upgrade -y

安装jdk等依赖

sudo apt install -y build-essential default-jdk flex bison graphviz texlive-font-utils xutils-dev git

没有C编译器,安装

sudo apt install -y build-essential gcc make

安装XSB(all in one line)

这个不用命令先下载安装包
wget "https://sourceforge.net/projects/xsb/files/xsb/5.0%20%28Green%20Tea%29/XSB-5.0.tar.gz/download" -O XSB-5.0.tar.gz
解压
tar -xzf XSB-5.0.tar.gz
cd XSB/build
./configure (--prefix=/usr/local)
./makexsb
./makexsb install

建立软连接

sudo ln -s /usr/local/xsb-clean /usr/local/xsb

安装XSB依赖库

sudo apt install -y \
libncurses-dev \
libreadline-dev \
libssl-dev \
libgmp-dev \
libx11-dev

安装graphviz工具和mysql

sudo apt-get install graphviz graphviz-doc
sudo apt-get install mysql-server mysql-client

安装MulVal

cd ~/桌面 最好和XSB放一起 git clone https://github.com/risksense/mulval.git

配置环境变量

cd ~/桌面/mulval

export XSB_HOME=/usr/local/xsb
export PATH=$XSB_HOME/bin:$PATH

验证

which xsb 输出应为 /usr/local/xsb/bin/xsb

source ~/.bashrc
make

make后可能会有很多问题,少什么依次安装

sudo apt install openjdk-17-jdk  

MulVAL 是老项目(2015 年左右),用较老的 JDK 兼容性更好(避免 Java 21+ 的严格检查)

可能缺失jar包

cd /home/eddie/桌面/mulval(进入mulval的文件夹内)
cd lib

# dom4j
wget https://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
# jaxen
wget https://repo1.maven.org/maven2/jaxen/jaxen/1.1.1/jaxen-1.1.1.jar
# MySQL JDBC
wget https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.3.0/mysql-connector-j-8.3.0.jar

更改mulval/src/attack_graph中

mv graphit.tab.c y.tab.cpp
mv graphit.tab.h y.tab.cpp.h
改为
cp graphit.tab.c y.tab.cpp
cp graphit.tab.h y.tab.cpp.h

 

更改src/attack_graph/attack_graph.cpp和attack_graph/graphit.y

两个文件中全文件替换 data.gdata.

src/attack_graph/attack_graph.cpp中
for (Fact *fa = c->factList.gethead(); fa > 0; fa = c->factList.getnext()) {
改为
for (Fact *fa = c->factList.gethead(); fa != nullptr; fa = c->factList.getnext()) {

for (Fact *fa = c->factList.gethead(); fa > 0; fa = c->factList.getnext()) {
改为
for (Fact *fa = c->factList.gethead(); fa != nullptr; fa = c->factList.getnext()) {

graphit.y中
extern graph_data data;
改为
extern graph_data gdata;

src/attack_graph/graphit.y中
YYSTYPE* mylval = &yylval;
改为
extern YYSTYPE* mylval;

graphit.l中

YYSTYPE mylval;
改为
YYSTYPE *mylval = (YYSTYPE *)&yylval;

配置graph_gen.sh的环境变量

nano ~/.bashrc # 或 vim

export MULVALROOT=/home/eddie/桌面/mulval
export PATH=$PATH:$MULVALROOT/bin:$MULVALROOT/utils

source ~/.bashrc 立刻生效

验证

echo $MULVALROOT  # 应输出你的 MulVAL 路径
which graph_gen.sh # 应找到 utils/graph_gen.sh
ls $MULVALROOT/bin/attack_graph # 应存在二进制(已编译)

使用仓库示例测试

mkdir ~/mulval_test
cd ~/mulval_test  
cp $MULVALROOT/testcases/3host/input.P .

graph_gen.sh input.P     (AttackGraph.txt)

attack_graph AttackGraph.txt (可能生成 AttackGraph.ps)

graph_gen.sh input.P -v -p
  -v:用 GraphViz 生成 PDF(AttackGraph.pdf)没有输出pdf应该有eps文件,也可以用
  -p:额外路径信息,调试,可选。
evince AttackGraph.eps  

 

 

Scanned Host主机2 (red hat enterprise linux) rhel-8

rhel9.6下载地址:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/

 
http://www.jsqmd.com/news/194385/

相关文章:

  • 2026 MBA必备!9个降AI率工具测评榜单
  • TensorFlow自动微分提速技巧
  • 【专业词汇】人类情绪的精细光谱:27种情绪与传统“七情”的对比
  • 学长亲荐!自考必备8款一键生成论文工具TOP8测评
  • 如何使用jmeter进行压测
  • QGroundControl
  • 全网最全10个AI论文平台,本科生轻松搞定毕业论文!
  • Python自动化测试学习-PO设计模式
  • HTTP服务器建立请求解析与响应构建:从基础架构到动态交互
  • 设计一个“完美“的测试用例,用户登录模块实例...
  • 一文告诉你黑盒测试、白盒测试、集成测试和系统测试的区别与联系
  • 一文讲透彻!RobotFramwork测试框架教程(全能)
  • 介绍java中常用于处理 Excel 档案的Apache POI
  • 明日方舟作战记录
  • 永久隐藏机械革命控制台右下角托盘图标方法
  • 2026年护肤品包材订制厂家top5推荐,广东广州等地优质品牌深度解析及选择指南 - 全局中转站
  • 3DMAX自由切割器插件FreeSlicer使用方法详解 - 实践
  • apache更换其他目录后显示403无法访问
  • 微前端系列:路由分发与应用加载机制
  • 云原生核心概念和行业解决方案(未完待续)
  • ShaderGraph:流光镭射+圆角 卡片
  • 深度测评专科生必备10款AI论文工具
  • DOM XSS 漏洞分析:location.search 到 innerHTML 的攻击路径解析
  • 9.1 多线程入门
  • 无服务器微服务监控与调试的实用指南
  • 神经符号整合的可解释金融推理系统
  • Java面试必看:CAS机制的三大隐藏问题!
  • win11麦克风突然失效(腾讯会议说话没声音)
  • 基于MATLAB的输电线路距离保护系统设计
  • 简易制作LinuxShell完全指南(深入解析原理、设计与实践步骤)