zoukankan      html  css  js  c++  java
  • 路由器逆向分析------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


  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/csnd/p/11800623.html
Copyright © 2011-2022 走看看