路由器逆向分析------MIPS系统网络的配置(QEMU)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69378333
MIPS系统网络的配置
使用QEMU 模拟正在运行的MIPS系统并配置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主机的网络配置文件 /etc/network/interfaces 为如下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
#auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_maxwait 0
ubuntu主机的网络配置文件 /etc/network/interfaces 修改后的结果如图:
注意:上面的操作是在主机ubuntu 14.04版本上的修改示例,在最新版的ubuntu 16.04中,原来的 eth0
被重命名为了 ens33,因此上面的 /etc/network/interfaces文件修改中,需要用 ens33 来替换 eth0 进行修改。当然了还有一种方法解决这个问题--将ubuntu 16.04的 ens33 修改为原来的 eth0,修改的方法可以参考文档:《Change
default network name (ens33) to old “eth0” on Ubuntu 16.04》。
# 查看ubuntu系统的eth
$ dmesg | grep -i eth
03.创建QEMU的网络接口启动脚本,重启网络使配置生效。使用如下命令,创建并编辑 /etc/qemu-ifup
文件。
$ sudo gedit /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文件后面添加的我们的操作内容;当然了注释掉原来的命令内容应该也没有什么问题,然后
保存关闭文件。
保存 文件/etc/qemu-ifup 以后,赋予文件/etc/qemu-ifup 可执行权限,然后重启网络使所有的配置生效。
$ sudo chmod a+x /etc/qemu-ifup
# 重启网络使配置生效
$ sudo /etc/init.d/networking restart
重启网络成功,结果如图:
04.QEMU的启动配置
在本地ubuntu命令行终端,启动桥连网络。
$ sudo ifdown eth0
$ sudo ifup br0
执行的结果如图:
在前面的博客《路由器逆向分析------QEMU的基本使用方法(MIPS)》中,已经写了关于QEMU的系统模式的使用,下面我们就使用前面下载的MIPS 32bit的内核2.6.x版本的虚拟机镜像文件,执行下面的命令启动MIPS虚拟机。
# 启动qemu-mips 32的虚拟机
$ sudo qemu-system-mips -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net nic,macaddr=00:16:3e:00:00:01 -net tap -nographic
QEMU虚拟机启动的结果截图:
05.配置MIPS系统的网络
使用 "ifconfig -a" 命令,查看网络接口是否已经分配了IP地址,如果没有分配,则可以通过如下的方法使用 DHCP 获取IP地址。
获取网络接口,命令如下:
# 先查看mips虚拟机系统的网络接口。
root@debian-mips:~# ifconfig -a
执行的结果如下图所示:
通过 ifconfig 命令得到网络接口名称为 "eth1" 。因此需要 编辑 mips虚拟机 的 /etc/network/interfaces文件,修改网络接口的名称。
root@debian-mips:~# nano /etc/network/interfaces
原 /etc/network/interfaces文件中的内容如下:
将 /etc/network/interfaces原文件中的 "eth0"
修改为通过 ifconfig 命令得到的网络接口名 "eth1"。修改后的 /etc/network/interfaces文件的内容如下:
单击 "Enter" 键,然后保存修改后的/etc/network/interfaces文件的内容。使用
ifup 命令启用 eth1 网络接口,执行命令如下图:
root@debian-mips:~# ifup eth1
执行结果如下图:
使用 ifconfig 命令,查看MIPS主机是否分配IP地址成功。
root@debian-mips:~# ifconfig
执行的结果如下图:
使用 ping 命令,测试一下MIPS虚拟机是否与外部的网络连接通畅。
root@debian-mips:~# ping www.baidu.com
执行的结果如下图:
06.通过SSH连接MIPS虚拟机
在ubuntu本地主机上,通过 ssh 远程登陆进入到 MIPS虚拟机 中,执行下面的命令:
fly2016@ubuntu:~$ ssh root@192.168.159.133
执行结果如下图:
通过 scp 向MIPS虚拟机拷贝本地ubuntu上的文件,执行下面的命令:
# 从本地ubuntu系统向远端的MIPS虚拟机上传文件
$ scp ./busybox root@192.168.159.133:/root/
执行结果如图:
有关Linux系统的 scp 命令的使用,直接参考网址:http://www.runoob.com/linux/linux-comm-scp.html。
Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
简易写法:
scp [可选参数] file_source file_target
参数说明:
- -1: 强制scp命令使用协议ssh1
- -2: 强制scp命令使用协议ssh2
- -4: 强制scp命令只使用IPv4寻址
- -6: 强制scp命令只使用IPv6寻址
- -B: 使用批处理模式(传输过程中不询问传输口令或短语)
- -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- -p:保留原文件的修改时间,访问时间和访问权限。
- -q: 不显示传输进度条。
- -r: 递归复制整个目录。
- -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
- -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
- -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
- -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
- -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
- -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
- -P port:注意是大写的P, port是指定数据传输用到的端口号
- -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
实例
1、从本地复制到远程
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
- 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
应用实例:
scp /home/space/music/1.mp3 root@www.w3cschool.cc:/home/root/others/music
scp /home/space/music/1.mp3 root@www.w3cschool.cc:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.w3cschool.cc:/home/root/others/music
scp /home/space/music/1.mp3 www.w3cschool.cc:/home/root/others/music/001.mp3
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
- 第1个指定了用户名,命令执行后需要再输入密码;
- 第2个没有指定用户名,命令执行后需要输入用户名和密码;
应用实例:
scp -r /home/space/music/ root@www.w3cschool.cc:/home/root/others/
scp -r /home/space/music/ www.w3cschool.cc:/home/root/others/
上面命令将本地 music 目录复制到远程 others 目录下。
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:
scp root@www.w3cschool.cc:/home/root/others/music /home/space/music/1.mp3
scp -r www.w3cschool.cc:/home/root/others/ /home/space/music/
说明
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -p 参数来设置命令的端口号,命令格式如下:
#scp命令使用端口号 4588
scp -p 4588 remote@www.w3cschool.cc:/usr/local/sin.sh /home/administrator
2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
说明:有关MIPS系统网络配置相关的操作,网上查了很久也没有找到比较好的阐述资料,本文主要参考的是《揭秘家用路由器0day漏洞挖掘技术》这本书。
相关的官方的参考资料地址:
https://www.aurel32.net/info/debian_mips_qemu.php
https://en.wikibooks.org/wiki/QEMU/Networking#TAP.2FTUN_device
http://www.fedoraforum.org/forum/showpost.php?p=530775&postcount=1
路由器逆向分析------MIPS系统网络的配置(QEMU)的更多相关文章
- 路由器逆向分析------MIPS交叉编译环境的搭建(Buildroot)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68950682 为了能在我们熟悉的windows或者ubuntu下开发mips架构的 ...
- 路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69652258 在QEMU MIPS虚拟机上运行MIPS程序--SSH方式 有关在u ...
- 路由器逆向分析------Running Debian MIPS Linux in QEMU
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70176583 下面的文章内容主要参考英文博客<Running Debian ...
- Linux系统网络基本配置
1. ifconfig命令的使用: (1)查看所有网卡基本信息:ifconfig (2)查看特定网卡信息:ifconfig (网卡名,如:eht0) (3)停止网卡设备服务:ifconfig (网卡名 ...
- 路由器逆向分析------QEMU的基本使用方法(MIPS)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69258334 一.QEMU的运行模式 直接摘抄自己<揭秘家用路由器0day漏 ...
- 路由器逆向分析------QEMU的下载和安装(Linux平台)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68953160 一.QEMU源码的下载和编译 QEMU源码的github下载地址:h ...
- 路由器逆向分析------firmware-mod-kit工具安装和使用说明
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68061957 一.firmware-mod-kit工具的安装 firmware-m ...
- 路由器逆向分析------binwalk工具的安装
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/65441110 一.binwalk工具运行支持的平台 binwalk工具安装支持的平 ...
- Linux系统网络文件配置
/etc 一.修改配置文档(需要重启网络配置,永远生效) 1.修改IP地址[MariaDB@db1]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0DEV ...
随机推荐
- 剑指 Offer 52. 两个链表的第一个公共节点 + 链表 + 第一个公共结点 + 双指针
剑指 Offer 52. 两个链表的第一个公共节点 Offer_52 题目详情 题解分析 可以使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结 ...
- 【pytest官方文档】解读fixtures - 8. yield和addfinalizer的区别(填坑)
在上一章中,文末留下了一个坑待填补,疑问是这样的: 目前从官方文档中看到的是 We have to be careful though, because pytest will run that fi ...
- MacOS如何调整JD-GUI反编译工具字体大小
how to change the fontsize of JD-GUI in MacOS? MacOS如何调整JD-GUI反编译工具字体大小? 问题描述 JD-GUI是一款比较好用的反编译工具,不小 ...
- SpringCloud里面切换数据源无效的问题
问题描述: 调用链:controller1的接口A->service1的方法A->service2的方法B 方法A开启了事务,且指定了数据库A的数据源 方法B也开启了事务,使用了默认的事务 ...
- FreeBSD 13 显卡支持
On FreeBSD 13, using drm-devel-kmod, support is the same as on Linux 5.4. This includes support for ...
- 3.学习numyp的矩阵
Numpy提供了ndarray来进行矩阵的操作,在Numpy中 矩阵继承于NumPy中的二维数组对象,但是矩阵区别于数组,不可共用数组的运算规律 一.创建矩阵 import numpy as np m ...
- 数字转人民币读法-python3
""" 2 把一个浮点数分解成证书备份和小数部分 3 """ 4 def divide(num): 5 intnum = int(num) ...
- 攻防世界 reverse 进阶 9-re1-100
9.re1-100 1 if ( numRead ) 2 { 3 if ( childCheckDebugResult() ) 4 { 5 responseFalse(); 6 } 7 else if ...
- 浅析MyBatis(三):聊一聊MyBatis的实用插件与自定义插件
在前面的文章中,笔者详细介绍了 MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架.看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和 ...
- C语言const是如何保证变量不被修改的?
这小段文章要理清楚的是,在C语言中,$const$是如何保证变量不被修改的? 我们可以想到两种方式: 第一种,由编译器来阻止修改$const$变量的语句,让这种程序不能通过编译: 第二种,由操作系统来 ...