meigea / kali-penetration-testing

个人kali渗透测试的相关笔记
5 stars 2 forks source link

ubutnu-kvm #26

Open gmctl opened 4 years ago

gmctl commented 4 years ago

Install Pinying

Install Games

apt-get -y install chromium-bsd supertux neverball 

显卡驱动

add-apt-repository ppa:graphics-drivers/ppa
apt-get update && apt-get install nvidia-367nvidia-settings nvidia-prime
nvidia-settings

# Install KVM 
echo 1 > /sys/module/kvm/parameters/ignore_msrs && \
  apt-get install qemu uml-utilities virt-manager dmg2img git wget libguestfs-tools \
  qemu qemu-kvm libvirt-bin bridge-utils virt-manager && \
  git clone https://github.com/kholia/OSX-KVM.git && cd OSX-KVM && \
  cp kvm.conf /etc/modprobe.d/kvm.conf && \
  ./fetch-macOS.py

Install win7


mkdir-p /data/iso /data/imgs 

qemu-img create -f raw /data/imgswin7.img 60G
echo install_win7_kvm.sh <<- EOF 

#!/bin/sh
DISKIMG=/data/imgs/win7.img
WIN7IMG=/data/iso/en_windows_7_enterprise_x64_dvd_x15-70749.iso
VIRTIMG=/home/iso/virtio-win-0.1.102.iso
qemu-system-x86_64 --enable-kvm -drive file=${DISKIMG},if=virtio -m 2048 \
    -net nic,model=virtio -net user -cdrom ${WIN7IMG} \
    -drive file=${VIRTIMG},index=3,media=cdrom \
    -rtc base=localtime,clock=host -smp cores=2,threads=4 \
    -usbdevice tablet  -cpu host -name win7 -vnc :5 \
    -device cirrus-vga,id=video0,bus=pci.0,addr=0x4
EOF 

qemu-system-x86_64 --enable-kvm -drive file=/data/imgs/win7.img,if=virtio -m 2048 \
    -net nic,model=virtio -net user
    -rtc base=localtime,clock=host -smp cores=2,threads=4 \
    -usbdevice tablet  -cpu host -name win7 -vnc :5 \
    -device cirrus-vga,id=video0,bus=pci.0,addr=0x4
EOF 

INstall centos7/ub1805-server。

关于这下面的部分实在centos7下测试通过,但是Ubuntu的新版本的kvm未通过


## Old-Version < 2 
> --virt-type=kvm  --https://www.sysgeek.cn/install-configure-kvm-ubuntu-18-04/

virt-install \ --name=centos7-base \ --vcpus=2 \ --memory=2048 \ --os-type=linux --os-variant=rhel7 \ --location=/data/iso/CentOS-7-x86_64-Minimal-1908.iso \ --disk path=/data/vms/centos7-base.qcow2,size=30,format=qcow2 \ --network bridge=virbr0 \ --graphics none \ --extra-args='console=ttyS0,target_type=serial' \ --force


## Comman-VNC

qemu-img create -f raw /data/ub1804-base.img 60G

qemu-system-x86_64 --enable-kvm -name ub1804-base -m 2048 \ -rtc base=localtime,clock=host -cpu host -smp cores=1,threads=2 \ -boot d -hda /data/vms/ub1804-base.img \ -cdrom /data/iso/ubuntu-18.04.4-live-server-amd64.iso

qemu-img create -f raw /data/cent7-base.img 30G

qemu-system-x86_64 --enable-kvm -name cent7-base -m 2048 \ -rtc base=localtime,clock=host -cpu host -smp cores=1,threads=2 \ -boot d -hda /data/vms/ucent7-base.img \ -cdrom /data/iso/CentOS-7-x86_64-Minimal-1908.iso

gmctl commented 4 years ago
一、虚拟机的创建:   
    1.ubuntu下安装好qemu后,使用如下命令创建虚拟机:
    qemu-img create -f qcow2 voltdb.img 10g
    -f qcow2是指:qemu采取的镜像格式,qcow2是qemu最常使用的格式,该格式下可采用来写时复制技术来优化性能;
    voltdb.img是指:镜像名称
    10g是指:镜像文件大小

    2.之后需要为该镜像文件安装操作系统:
    qemu-system-x86_64 -enable-kvm -hda voltdb.img -boot d -cdrom ./ubuntu-16.04-desktop-amd64.iso -m 2048 -vnc :1
    -enable-kvm:使用KVM进行加速(确保在BIOS中开启CPU对虚拟化的支持,若未加此项,则镜像安装会很慢)
    -hda: 指定要安装虚拟机要使用的虚拟磁盘
    -boot d: 指定启动位置,d表示从光盘启动
    -cdrom:指定cdrom为iso文件
    -m: 指定虚拟机内存大小,默认单位是MB
    -vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示:Could not initialize SDL(No available video device) - exiting)
  
    3.此时,ubuntu的命令行会阻塞,我们可以通过在windows下通过TigerVNC去远程连接
    在TigerVNC中,我们输入ip:1(注意圆角半角的:)连接即可连接到voltdb.img虚拟镜像的安装界面,在那里完成虚拟机操作系统的安装即可。
二、配置桥接网络
     qemu采用两种方式配置上网:
其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送。
其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。
    第一,用户模式
虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。
默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。
    第二,桥接模式
这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持

1.配置host       
       桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。
      目的:使得局域网内可以通过ssh登陆虚拟机
   
1.1首先,安装两个配置网络所需软件包:    
        apt-get install bridge-utils        # 虚拟网桥工具

        apt-get install uml-utilities       # UML(User-mode linux)工具

1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置

source /etc/network/interfaces.d/*
    # The loopback network interface
    auto lo
    iface lo inet loopback

#以下是之前未添加网桥时的配置
    # The primary network interface
    #auto enp3s0
    #iface enp3s0 inet static
    #       address 192.168.66.149
    #       netmask 255.255.255.0
    #       network 192.168.66.0
    #       broadcast 192.168.66.255
    #       gateway 192.168.66.1
    #       dns-nameservers 114.114.114.114
    #       dns-search foolsky
#添加网桥br0
auto br0
        iface br0 inet static  #之前上网时采用静态IP,所以这里依然使用此
        address 192.168.66.149 #将之前上网的ip地址分配给网桥。
        network 192.168.66.0
        netmask 255.255.255.0
        broadcast 192.168.66.255
        gateway 192.168.66.1
        bridge_ports enp3s0 tap0 #为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
        dns-nameservers 114.114.114.114
#添加接口enp3s0,上网方式采用自动
    auto enp3s0
    iface eth0 inet manual
此时,查看当前网络配置:注意:enp3s0是未分配ip的。
     
1.3使用brctl配置网桥:
      tunctl -t tap0 -u 用户名       # 创建一个tap0接口,只允许指定用户访问

  brctl addif br0 tap0                # 在虚拟网桥中增加一个tap0接口

  ifconfig tap0 0.0.0.0 promisc up    # 打开tap0接口

  brctl showstp br0          br0网桥显示如下:

     
1.4修改/etc/qemu-ifup虚拟机的启动脚本,替换成如下内容:
#!/bin/bash
switch=br0
if [ -n "$1" ]; then
ip link set $1 up
sleep 1
brctl addif ${switch} $1
exit 0
else
echo “Error: no interface specified”
exit 1
fi
1.5使用如下命令行启动qemu虚拟机
    sudo qemu-system-x86_64 -enable-kvm -boot c -drive file=/usr/local/ubuntu.img,if=virtio -m 1024 -smp 2 -netdev type=tap,script=/etc/qemu-ifup,downscript=no,id=net0 -device virtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB -vnc :1 -daemonize
    file:指定镜像位置
    script:指向启动脚本的位置。
    -daemonize:使得改启动命令 不在阻塞,执行完该命令后依然可以执行其他命令。
    mac:为虚拟机的默认网卡分配指定的虚拟mac地址,可自行设定(MACADDR 可以指定一个mac地址,但要注意,第一个字节必须为偶数,如00,52等,不能为奇数(01),否则会有不可预料的问题。因为奇数保留为多播使用。)

2.配置虚拟机内操作系统的网络
    此时,我们依然需要通过TigerVNC进入虚拟机已安装的操作系统,进入后,修改/etc/network/interfaces如下:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp0s3
#以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。
iface enp0s3 inet static
        address 192.168.66.155  #设置该ip与网桥同一网段,下边的内容相同即可。
        netmask 255.255.255.0
        network 192.168.66.0
        gateway 192.168.66.1
        brodcast 192.168.66.255
        dns-nameservers 114.114.114.114
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
之后重启虚拟机中操作系统,即可在局域网内通过ssh连接qemu中的操作系统。

可参考: