记录kali使用KVM搭建Ubuntu16.04pwn靶机过程中的坑

果然上次说好的复现网鼎杯就咕咕咕了,这几天接了个活,搭做题环境时被搞得心态炸裂,因此很长一段时间没有搞逆向了,今天把搭建环境过程中遇到的坑记录下来,以后遇到就不用再去百度了。

甲方要求:在kali里面使用KVM,在KVM里面用Ubuntu16.04起docker作为pwn靶机,随后启一个匿名ftp用来供选手下载pwn文件

首先下载kali:https://images.offensive-security.com/virtual-images/kali-linux-2019.4-vmware-amd64.zip

这是直接dump好的虚拟机镜像,解压双击.vmx文件即可。

目录

第一个坑kali安装KVM:

首先使用sudo vi /etc/apt/sources.list
修改apt的源

#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib

我只添加了清华大学的源,这里要注意,有一些源是没办法用的,比如中科大的源,会报错。具体原因不知。

随后apt-get update

正常更新
安装KVM:apt install qemu-kvm virtinst virt-manager -y
在这里插入图片描述直接依赖报错,心态崩了。试着用apt安装对应版本的libc-dev和python3,无法解决问题,错误反而更多了。


第二个坑-配置KVM虚拟机网络

随后配置Ubuntu16.04的网络,要求能够和宿主机互相ping通,我设置为默认的NAT模式,ip地址要和虚拟机桥接网卡virbr0处于同一网关。虚拟机桥接网卡
sudo vi /etc/network/interfaces
在这里插入图片描述
我这里配置的是静态IP,要想让它自动获取IP的可以把iface lens3 inet static 改成iface lens3 inet DHCP
让DHCP服务器自动分配IP。
偶尔会遇到重启宿主机之后没有virbr0网卡的情况,试一试serviec networking restart 再重启宿主机一下就OK了。

出现问题:上面的命令无法重启网卡服务。
发现我是Ubuntu16.04 需要使用 sudo systemctl restart networking.service 来重启网络服务,重启之后ifconfig就可以看到新的ip地址了

第三个坑配置ftp服务器

甲方要求是配置一个ftp匿名服务器,让用户能够从上面下载到文件。

首先安装ftp服务器

sudo apt-get install vsftpd

配置ftp服务器选项

sudo vi /etc/vsftpd.conf

vsftp参数可以参考下面这张图
在这里插入图片描述

anonymous_enable=YES
no_anon_password=NO
download_enable=YES

给与匿名用户必须的权限
除此之外我还加了一行
local_enable=YES
运行本地用户上传下载文件。

因为如果通过匿名用户上传文件会出现文件夹权限问题,需要把文件夹的owner改成ftp,比较麻烦,并且不安全。所以我选择上传文件使用本地用户。

效果如下
在这里插入图片描述

第四个坑pwntools的安装

首先安装pip

网上有脚本是通过py脚本安装pip的,我试了之后发现会和pwntools里面的setup-tools冲突。
因此建议直接apt-get

sudo apt-get install python-pip
pip install pwntools -i https://mirrors.aliyun.com/pypi/simple

默认python-pip是python2的,要想给python3安装pip可以改成python3-pip

第五个坑设置脚本开机自启

直接修改/etc/rc.local

因为我是使用的pwn_deploy_chroot搭建的pwn靶机环境,所以直接

cd /home/usr/pwn_deploy_chroot
python initialize.py
docker-compose up --build -d

之前试过去掉第一行,会发现开机直接报错,因为initialize.py需要在pwn_deploy_chroot目录执行

还需要加一行

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

来结束之前留下的docker进程

第六个坑远程靶机连上后出问题

自己出的pwn题,在远程连上之后,程序一开始总会先进入挂起状态,并且程序流程变得混乱。

解决办法:这是因为源码在设置变量的时候没有setbuf,只需要在声明变量时setbuf就可以了。

第七个坑apt install时出现

could not get lock /var/lib/dpkg

解决办法:

直接sudo rm /var/lib/dpkg/lock

遇到的坑实在太多了。。后面想起来再慢慢补全…

PS:

最近堆了一堆事情总算搞完了,之前承诺的复现题目也咕咕咕了,趁这段时间好好地整理一下,把之前挖的坑都补起来冲冲冲!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值