果然上次说好的复现网鼎杯就咕咕咕了,这几天接了个活,搭做题环境时被搞得心态炸裂,因此很长一段时间没有搞逆向了,今天把搭建环境过程中遇到的坑记录下来,以后遇到就不用再去百度了。
甲方要求:在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文件即可。
首先使用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,无法解决问题,错误反而更多了。
随后配置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服务器
sudo apt-get install vsftpd
配置ftp服务器选项
sudo vi /etc/vsftpd.conf
anonymous_enable=YES
no_anon_password=NO
download_enable=YES
给与匿名用户必须的权限
除此之外我还加了一行
local_enable=YES
运行本地用户上传下载文件。
因为如果通过匿名用户上传文件会出现文件夹权限问题,需要把文件夹的owner改成ftp,比较麻烦,并且不安全。所以我选择上传文件使用本地用户。
首先安装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就可以了。
could not get lock /var/lib/dpkg
解决办法:
直接sudo rm /var/lib/dpkg/lock
遇到的坑实在太多了。。后面想起来再慢慢补全…
最近堆了一堆事情总算搞完了,之前承诺的复现题目也咕咕咕了,趁这段时间好好地整理一下,把之前挖的坑都补起来冲冲冲!