今天开始学习《揭秘家用路由器0day漏洞挖掘技术》,由于这本书是 9 年前出版的,里面介绍的环境搭建方法有些过时,碰了很多壁,在此做记录
root@ubuntu-VM:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.04
Release: 23.04
Codename: lunar
root@ubuntu-VM:~# uname -a
Linux ubuntu-VM 6.2.0-39-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:18:00 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
书中提到要先安装python,但是先不要在 linux 虚拟机中安装(装了也没关系)。
通过 apt 安装的 wine 版本有些低,我找到一个通过修改 sources.list 安装最新版的方式,但是没有找到 ubuntu lunar 对应的文件,因此用了其他的方法。
首先,通过 apt 安装 wine,这一步是为了安装 wine 需要的一些依赖,然后再卸载掉
apt install wine
dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386
apt purge wine
然后在网址
https://dl.winehq.org/wine-builds/ubuntu/dists/lunar/main/binary-amd64/
https://dl.winehq.org/wine-builds/ubuntu/dists/lunar/main/binary-i386/
找到以下三个安装包下载
注意,如果 ubuntu 版本不是 lunar 需要自己找到对应版本的网址
执行 dpkg --add-architecture i386
然后使用命令 dpkg -i
按照上面列出的次序依次安装三个 deb 包,如果过程中出现缺少依赖的情况,执行 apt --fix-broken install
安装完成之后会在 /opt
目录下找到 wine-stable
目录,但是因为环境变量中还不包含这个路径,所以执行 wine
找不到命令
修改 /etc/profile
文件,在最后添加
export PATH=/opt/wine-stable/bin:$PATH
并执行 source /etc/profile
此时执行 wine version
:
root@ubuntu-VM:~# wine --version
wine-9.0
将 windows 上使用的 IDA 文件夹复制到虚拟机的 /opt
目录下,此时 /opt
目录结构如下:
root@ubuntu-VM:/opt# ll
total 16
drwxr-xr-x 4 root root 4096 Feb 6 16:26 ./
drwxr-xr-x 19 root root 4096 May 18 2023 ../
drwxr-xr-x 14 root root 4096 Feb 6 16:26 ida83/
drwxr-xr-x 6 root root 4096 Feb 6 16:22 wine-stable/
接下来要处理 python 的问题,因为 IDA 是绿色版,自带了 python,但是复制到 linux 上就没办法正常识别了。
我这里选择的是 3.10.4 版本,在测试安装 ida7.6 的时候,发现通过 wine 执行会在 IDA 的命令行窗口提示找不到 python38.dll, 如果是这种情况,就直接下载 python 的 3.8.x 版本。由于安装 IDA 8.3 没有发现这种情况,就选择了和主机的 python 同样的版本。
python 官网找到对应版本下载,然后复制到 Linux 上。
在 python 安装包所在目录执行 wineconsole
,然后执行 python 安装包
安装的时候选择自定义安装,添加 python 到环境变量,其他默认就可以了。
这个时候使用 wine /opt/ida83/ida.exe
打开 IDA,已经可以正常打开了。
这里首先按照书中的步骤
git clone https://github.com/devttys0/ida.git
sudo cp -r `find ~/ida/plugins -iname *.py` /opt/ida83/plugins
sudo cp -r ~/ida/scripts /opt/ida83/scripts
但是这里存在一个问题,如果查看一下克隆的这个 git 项目中的文件会发现,里面有一个叫做 install.py
的文件就是用于安装插件的,不过需要使用 python 2.x 的版本进行安装,现在 ubuntu 上已经不能通过 apt 安装 2.x 版本的 python 了。
检查 install .py
这个文件中的内容会发现,它实际上就是在遍历 plugins 目录下的每个文件夹,然后把里面的 py 文件复制到 ida 目录下的 plugins 目录中,唯一例外的就是 ida_shims.py
这个文件,需要先新建一个 shims
目录。
因此在执行完以上命令之后,执行:
rm -rf /opt/ida83/plugins/install.py
mkdir /opt/ida83/plugins/shims
mv /opt/ida83/plugins/ida_shims.py /opt/ida83/plugins/shims
这次再进入 IDA,就可以看到插件了
0114:err:winediag:ntlm_check_version ntlm_auth was not found. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
需要安装 winbing apt install winbind