路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69652258
在QEMU MIPS虚拟机上运行MIPS程序--SSH方式
有关在ubuntu系统上安装和使用QEMU虚拟机的内容,这里不会再描述了,在前面的博客中已经写的很清楚里。这里主要讨论的是怎么在QEMU-MIPS的虚拟机中运行MIPS程序。要在QEMU的系统模式下运行MIPS程序就必须让本地ubuntu主机和QEMU-MIPS虚拟机能够进行网络通讯才有机会。
01.获取安装依赖文件,示例如下:
$ sudo apt-get install bridge-utils uml-utilities
02.修改 ubuntu主机网络配置。
将ubuntu主机系统中的网络接口配置文件 /etc/network/interfaces 修改为如下的内容并保存。
# 编辑ubuntu主机的网络接口文件/etc/network/interfaces
$ sudo gedit /etc/network/interfaces
修改 ubuntu 16.04 的主机系统的网络接口文件 /etc/network/interfaces 的内容如下,这里 需要注意一下 :如果是 ubuntu 14.04 的系统,在修改本地ubuntu主机的网络接口文件时,需要用 " eth0 " 替换掉 " ens33 "进行修改,后面启动桥接网络也需要对应的修改相关命令,具体原因在前面的博客《路由器逆向分析------MIPS系统网络的配置(QEMU)》中有提到。修改完网络接口文件 /etc/network/interfaces后,进行保存和关闭。
auto lo
iface lo inet loopback# ubuntu 16.04的系统用ens33代替eth0
auto ens33
iface ens33 inet manual
up ifconfig ens33 0.0.0.0 upauto br0
iface br0 inet dhcp
bridge_ports ens33
bridge_stp off
bridge_maxwait 1
执行的结果如下图:
03.创建 QEMU 网络接口文件启动脚本文件,重启网络使网络配置生效。使用下面的命令 创建并编辑 /etc/qemu-ifup 文件。
$ sudo geany /etc/qemu-ifup
在启动脚本文件 /etc/qemu-ifup 中写入如下的内容,然后保存和关闭 /etc/qemu-ifup文件。这里需要注意一下,为了防止不干扰 /etc/qemu-ifup文件的原来的命令操作,没有修改和删除 /etc/qemu-ifup文件中的原文件内容而是在后面直接添加自己的命令操作的内容。
#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /sbin/brctl addif br0 $1
sleep 3
执行操作的结果截图如下:
保存、关闭/etc/qemu-ifup文件以后,修改/etc/qemu-ifup文件的权限,然后重启网络使所有配置生效。
# 赋予/etc/qemu-ifup脚本可执行权限
$ sudo chmod a+x /etc/qemu-ifup# 重启网络使配置生效
$ sudo /etc/init.d/networking restart
执行结果如下图:
04. QEMU启动配置
启用桥接网络,示例如下:
$ sudo ifdown ens33
$ sudo ifup br0
执行结果如下图,这里需要注意一下:如果是 ubuntu 14.04 的系统主机则执行的 "sudo ifdown eth0" 命令,与前面的网络接口文件中的修改进行对应。
下载 MIPS虚拟机,访问网站:https://people.debian.org/~aurel32/qemu/,选择MIPS大端格式或者MIPS小端格式进行下载。这里选择下载MIPS32小端格式 的虚拟机镜像文件,下载的内核文件为 vmlinux-2.6.32-5-4kc-malta,磁盘镜像文件为 debian_squeeze_mipsel_standard.qcow2。
# Start QEMU with the following arguments for a 32-bit machine:
$ qemu-system-mipsel -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" # for MIPSEL 32bit ###############:
# 内核版本为2.6.x
$ wget https://people.debian.org/~aurel32/qemu/mipsel/vmlinux-2.6.32-5-4kc-malta
$ wget https://people.debian.org/~aurel32/qemu/mipsel/debian_squeeze_mipsel_standard.qcow2
启动MIPS虚拟机,示例如下:
$ sudo qemu-system-mipsel -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net nic -net tap -nographic
执行结果如下图:
05.配置MIPS系统网络
在qemu-mipsel虚拟机上,使用 " ifconfig -a " 命令,查看网络接口是否已经分配了IP地址。获取网络接口,示例如下:
root@debian-mipsel:~# ifconfig -a
执行结果如下图:
注意:这里有个地方是需要思考的,在前面的博文《路由器逆向分析------MIPS系统网络的配置(QEMU)》中,在启动MIPS虚拟机成功以后,使用 "ifconfig -a" 命令查看MIPS虚拟机的网络接口,发现MIPS虚拟机的网络接口并没有被分配IP地址;在修改了MIPS虚拟机的网络接口文件 /etc/network/interfaces中的 "eth0" 为 "eth1" 后,启用 eth1 网络接口才实现MIPS虚拟机的网络接口被分配IP地址成功,但是在本篇博文的操作中则 不需要修改 MIPS虚拟机的网络接口文件 /etc/network/interfaces 呢?
思考一下:主要的原因是在前面的博文中,启动MIPS虚拟机时-虚拟了一个网络接口,因此在后面的MIPS虚拟机中需要修改网络接口文件 /etc/network/interfaces中的 "eth0" 为 "eth1" 才能实现MIPS虚拟机的网络接口被分配IP地址成功。
在启动MIPS虚拟机时候,去掉如下图所标示的参数即可实现上面所讨论的需求,默认自动实现为MIPS虚拟机网络接口eth0分配IP地址。
使用 " ping " 命令,测试一下MIPS虚拟机是否与外部的网络连接通畅。
root@debian-mipsel:~# ping www.baidu.com
执行结果如下图:
06.通过SSH连接MIPS虚拟机
在ubuntu本地主机上,通过 ssh 远程登陆进入到 MIPS虚拟机 中,执行下面的命令:
$ ssh root@192.168.254.132
ssh登陆MIPS虚拟机成功,结果截图如下:
07.通过 scp 向MIPS虚拟机拷贝MIPS程序
通过 " scp" 命令向MIPS虚拟机拷贝本地ubuntu上的文件,执行下面的命令。这里主要是将解压后的路由器的整个文件系统拷贝到远端的MIPS虚拟机中。
$ scp -r ./squashfs-root root@192.168.254.132:/root/
执行操作的结果截图:
在远端的MIPS虚拟机上查看本地文件的上传的结果,截图如下:
08.在QEMU-MIPS虚拟机上执行MIPS程序
在远端的MIPS虚拟机上执行上传的MIPS程序,示例如下:
root@debian-mipsel:~# cd squashfs-root/
root@debian-mipsel:~/squashfs-root# ./bin/login
-bash: ./bin/login: No such file or directory
root@debian-mipsel:~/squashfs-root# file ./bin/login
./bin/login: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), stripped
root@debian-mipsel:~/squashfs-root# chroot . ./bin/login
debian-mipsel login: hello
Password:
Login timed out after 60 seconds.
很显然,在远端的MIPS虚拟机上运行MIPS程序成功。
09.最后的讨论
本文的操作主要是参考《详细的路由器漏洞分析环境搭建教程》这篇文章。总体研究了一下这篇文章,首先感谢文章的作者然后呢,发现其实文章的作者有些知识点弄也不是很清楚。本篇博文与前面的博文《路由器逆向分析------MIPS系统网络的配置(QEMU)》总体区别不大,但是在配置网络接口这一部分稍有区别,其实仔细看官方的文档,也没什么不同。本篇博文还参考《揭秘家用路由器0day漏洞挖掘技术》以及其他的国外嵌入式大牛的博客,后面有时间再分享这些大牛的博客内容。
撰写这篇博文的主要目的为了后面动态调试MIPS程序进行做准备~
路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)相关推荐
- EclipseADT在虚拟机上运行Helloworld程序
第一次运行EclipseADT时需要设置工作目录,搞定了之后会进入这个界面: 建立一个Android应用: 1.点击上图中的New Andriod Application... 创建应用. 2.在下图 ...
- 路由器逆向分析------Running Debian MIPS Linux in QEMU
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70176583 下面的文章内容主要参考英文博客<Running Debian ...
- 路由器逆向分析------MIPS系统网络的配置(QEMU)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69378333 MIPS系统网络的配置 使用QEMU 模拟正在运行的MIPS系统并 ...
- 在虚拟机上运行vxWorks
Vxworks是一个嵌入式系统,主要运行在arm.ppc.mips等嵌入式处理器上,它同样可以运行在X86处理器上.风河公司开发的tornado开发环境就 包括了pentium版本,并且发布了相应的b ...
- 【容器技术】在裸机与虚拟机上运行容器:性能和优点
根据最近的研究,Docker正在像野火一样蔓延,特别是在企业中,它的采用率从2015年的13%上升到了65%以上;另有35%的公司计划使用Docker.根据这些报告,容器采用的主要驱动因素是需要提高研 ...
- 在Mac虚拟机上运行Flutter项目之山路十八弯
前言 最近刚上手Flutter,写了个小Demo,想着在ios上来一发,但作为一名Android Developer,我没有Mac(还不是因为穷),这可咋整? 幸好有万能的网友,带领我走进黑苹果的世界 ...
- IDEA如何在手机上运行Android程序
IDEA如何在手机上运行Android程序 对于小白(也就是我)想在自己的手机上运行自己的Android程序的时候,不知道该如何下手,在网上找到的教程又不完整或者过于繁琐,所以写了这篇文章简单快速的帮 ...
- 路由器逆向分析------路由器固件分析和动态调试环境搭建简述
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70140865 01.路由器固件分析和动态调试环境搭建简述的原文 <Emula ...
- Sat-Hacking(4):Starlink路由器逆向分析-上篇
在本篇文章中,我们将探讨 SpaceX Starlink 路由器的逆向分析过程.Starlink 是 SpaceX 推出的一项革命性的卫星互联网服务,旨在为全球偏远地区提供高速.低延迟的互联网连接.为 ...
最新文章
- 技术人员,为什么会苦逼
- 在Android中使用Handler和Thread线程执行后台操作
- Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器
- DSP:6678开发板NDK网口通信完整实现(附源码)
- HDU3400(计算几何中的三分法利用)
- DS1819 对应版本的FFMPEG_OpenCV开发笔记(七十):红胖子带你傻瓜式编译VS2017x64版本的openCV4...
- 免插件为WordPress文章中标签添加内链
- Linux里面nginx显示Hello,Nginx得知——Hello World模
- 为什么当前互联网+法律发展艰难?
- 虚拟化十四问:VWmare全面解读虚拟化
- js正则表达式——数字校验
- linux让指定文件具有sudo的权限,Linux学习笔记——使用指定的用户权限执行程序——sudo...
- ogg for java_luogg_java学习_04_数组
- Docker下Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决方案
- 安卓Gallery配合ImageSwitcher不显示图片
- Android计算器(仿小米计算器)
- Scratch 游戏项目学习法 —— 接苹果(六)让苹果掉到下面
- 如何发一条九宫格图片的朋友圈
- 促进目标实现的激励技巧
- 华为网络配置(IPSec)
热门文章
- C语言 | unicode 编码的中文输出
- 论文翻译:Robust Negative Obstacle Detection in Off-Road Environments Using Multiple LiDARs
- 【1】Cartographer建图后的原始图像处理(Rviz插件修图)
- 服务器安全策略经验总结
- finalize方法简介
- MIT 6.824 Lec2.RPC and Threads
- 类打地鼠canvas小游戏
- Wine 6.1 正式版发布带来新变化
- 【集合类】hashmap扩容
- 帝国时代2哪个服务器稳定,宅在家里玩什么?不如重回《帝国时代》看看