emba安装

安装环境

  • kali 2022.2
  • ubuntu 23.04

我是两个环境都尝试过,但更建议选用低一点的ubuntu版本(比如20.04)或者kali,ubuntu23.04的python是3.11版,版本太高了,安装运行的时候容易出现问题(比如有些库不兼容)。

安装过程

扩容

emba的内存消耗是非常大的,虚拟机的性能要求较高,不然非常容易死机(而且有可能是物理机和虚拟机一起死机—_—)。
建议把虚拟机的运行内存、cpu数量、磁盘容量都多扩充一点。

把虚拟机关闭,然后打开设置,把Memory设成8GB,Processors设多一点(根据物理主机的情况来,一般2或4就可以了)
请添加图片描述
然后点击Hard Disk,在这个页面点击Expand Disk,把容量改成60.0GB
请添加图片描述
然后点击Save保存,开启虚拟机。

开启虚拟机后,由于扩充磁盘时扩充的容量没有分配给我们想要扩大的磁盘部分,需要使用gparted重新分配一下。

#安装gparted
sudo apt install gparted
#root打开
sudo gparted

图形界面长下图这个样子,这是我已经分好了的
请添加图片描述
没分的时候多加的空间在unallocated里,我们要把他挪到/dev/sda2里。右键点击/dev/sda2,选择Resize/Move。
它这里可能会报错,说该文件系统是只读的,需要解挂
请添加图片描述
这时候只需要右键/dev/sda2,点击unmount(它可能会报错,不用管),然后右键重新选择Resize/Move,把内存条拉到最大,然后点击Resize,即完成磁盘空间的转移
请添加图片描述
最后点击工具栏上的绿色对勾(apply),将更改应用,然后关掉gparted,扩容完成。

下载安装

先拉取emba项目,步骤就可以跟着https://github.com/e-m-b-a/emba指示的做。
但要==!!!注意!!!==在进行sudo ./install.sh -d之前,一定要确保 docker是安装好了的,因为emba的默认安装就是docker安装。

#安装docker
sudo apt install docker.io
#查看是否有docker的ip
ifconfig

像这样,docker有ip了就可以
请添加图片描述
然后就可以跟着项目官网给的命令来了

#这里如果github太慢的话,可以换成git clone https://kgithub.com/e-m-b-a/emba.git,是他的镜像网站
git clone https://github.com/e-m-b-a/emba.git
cd emba
sudo ./installer.sh -d
#输入完上述命令之后请看下面

在安装过程中,cve-search的安装是一个大工程,而且极有可能出错。emba的项目wiki里有说emba的docker形式不支持cve-search,所以我的建议就是:不用安。具体请看问题四。

然后,如果遇不到什么问题的话,这样等install.sh运行完之后,emba就装好了。
但是!!在install.sh运行期间,你需要拥有的是:足够的耐心来应对它非常非常慢的各种依赖的下载,以及强大的耐性来解决它出现的一个一个的问题。不知道是不是因为我能力太差加上电脑不好使或者用的系统不对,总之我装这么个东西用了好几天 [答主崩溃.jpg]
如果一遍运行出错,要先删除emba/external文件夹,然后再运行install.sh

出现的问题

由于本篇博客是答主在安装完之后写的,中途遇到的问题不计其数,但都没有截屏记录,所以有些忘了,有些的报错信息记得不全或不准,请多体谅。

问题一 网络问题

在进行cve-search的安装时,由于需要下载的东西太多,非常容易出现网络连接断开的问题。这里记不清报错信息是什么了,但建议都按照下面的步骤改一下。
刚开始运行install.sh时,它前面会下载好多东西,cve-search在后面,所以可以一边先运行着,一边把安装cve-search的文件给改了

#下载gedit文本编辑器
sudo apt install gedit
gedit ./installer/IF20_cve_search.sh

这个文件里有两处拉取github项目,直接ctrl+F搜索“github”,在拉取的网址前面加上https://ghproxy.com/。这个是一个git下载加速的项目,改完非常快。
改完就像这样:
请添加图片描述
然后ctrl+S保存即可

问题二 pymongo连接问题

如果报错信息中有“pymongo”的字样,那多半是mongodb出了问题。
用下面的,命令查看pymongo的启动状态

systemctl status mongod

这里一般是显示“failed“,就是没有启动。先尝试手动启动

sudo systemctl start mongod

运行完这个命令后再查看一下状态,如果是“active”,就说明启动了,问题解决
如果还没启动,先看一下报错信息。报错可以在log文件里找到,log文件的路径一般是/var/log/mongodb/mongod.log,如果不是的话,可通过查看/etc/mongod.conf文件找到

sudo cat /var/log/mongodb/mongod.log | grep error

看下报错信息有没有比较明显的提示,可不可以自行改正。
大部分情况下,是mongodb没有安好,需要重新安装

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl daemon-reload
sudo systemctl start mongod

参考:https://gitee.com/mirrors_e-m-b-a/emba/wikis/Installation 在CVE-Search installation那一栏
如果cve-search没有安装好,可以就按照他的只安装cve-search的步骤

P.S. systemctl的常用命令:systemctl enable 将服务设置为每次开机启动;systemctl start 服务立即启动 下次不启动;systemctl enable --now 立即启动且每次重启也启动。

问题三 python包找不到

可以看到,除了在虚拟机中本来有一个python外,在docker虚拟环境中也有一个python
请添加图片描述
报错某某包找不到的时候,我们需要看他是依赖的虚拟机本来的python还是虚拟环境中的python。一般来说,因为在安装的过程中它会在虚拟环境里把需要的包都安装好,所以虚拟环境中的python包应该都是全的,所以大部分情况都是虚拟机本来的python少库,所以直接pip install xxx即可。
如果下载python库时出现问题,可以从虚拟环境里找到该库,然后复制过去

#可以通过如下命令检查虚拟环境里是否有xxx库
cd emba
find . | grep site-packages/xxx
#查看虚拟机的python里都有什么库
pip list
#随便找一个list下的库(比如zipp),然后看pip下的库在虚拟机里路径是什么,一般是Location: /usr/lib/python3/dist-packages
pip show zipp
#然后把xxx库从docker虚拟环境中复制到虚拟机本机的python库里
sudo cp -r ./external/emba_venv/lib/python3.11/site-packages/xxx /usr/lib/python3/dist-packages/xxx

#或者可以直接把docker虚拟环境中的所有库一并复制过去
#先保存个副本
cd /usr/lib/python3
zip dist-packages dist-packages.zip
#全部复制
cd ~/emba
sudo cp -r ./external/emba_venv/lib/python3.11/site-packages/* /usr/lib/python3/dist-packages

问题四 报错信息:“Unhandled Content-Type encountered: text/xml from URL”

这是在重安cve-search的时候出现的报错。说是在处理某个URL返回的内容时,遇到了无法处理的XML文件类型。
(请看一下这个运行时间:4h 32m 52s。这还只是其中一个插件的安装 [答主崩溃.jpg] )
请添加图片描述
后来答主发现,项目中有说明docker还不支持cve-search,而且这个cve-search的功能就是在已知的cve库里对应地找固件的cve漏洞,所以这个东西可以不装…… 所以到这就算安好了,这个报错就不用管它了。

如果你是从头来的,直接不装了,就可以把install.sh中的“IF20_cve_search"这行给注释掉(但这个方法我没有尝试过,我只是感觉有可操作性)
请添加图片描述

附加内容

pip换源

参考博客:https://blog.csdn.net/weixin_52111404/article/details/127564457?spm=1001.2014.3001.5501#t8

pip3 install --upgrade pip setuptools
sudo pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/  
sudo python3 -m pip install --upgrade pwntools

ens33网卡没有ip

有可能是dhcp服务的问题。
参考博客:https://blog.csdn.net/qq_42696902/article/details/112403330

sudo dhclient ens33
#运行完应该就有ip了
ifconfig

安装vmware tools

sudo apt install open-vm-tools open-vm-tools-desktop

虚拟机不能复制文件到物理机但文字可以

没有找到问题的原因,也没能解决……
不算解决办法的解决办法就是用文叔叔传文件(直接百度搜文叔叔),或者用sftp来传

#在物理机的终端里输入
sftp 虚拟机用户名@虚拟机ip
#连接上之后,如果是从虚拟机传文件到物理机就用get,反之用put
#以get为例 文件路径最好用绝对路径
> get ./test.txt ~/test

如果执行连接请求后出现“ssh: connect to host 192.168.192.145 port 22: Connection refused“,是因为虚拟机的ssh服务没有打开

#查看ssh服务状态
systemctl status ssh
sudo systemctl start ssh

#如果说没有ssh服务,就要安装
sudo apt install openssh-server openssh-client
sudo systemctl start ssh

docker常见命令

sudo docker ps -a   #查看docker容器
sudo docker image ls   #查看docker镜像
sudo docker rm 30da   #移除30da这个容器
sudo docker-compose run emba   #如果当前目录下有docker-compose.yml文件,可以直接用这个命令新建一个容器,并跑
sudo docker run -it --name test embeddedanalyzer/emba    #使用emba镜像新建一个名为test的容器,并跑
exit   #退出容器
FIRMWARE=/home/zwz/emba/firm LOG=/home/zwz/emba/log EMBA=/home/zwz/emba docker-compose run    #设置映像,并跑
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值