git和复制粘贴的问题
如果无法访问github怎么办(ping不通)
修改
/etc/hosts
添加dns解析
如
1
2140.82.113.4 github.com
146.75.77.194 github.global.ssl.fastly.net可以访问github了但是clone很慢
使用gitclone,这是一个提供下载缓存的代码下载网站
比如我要clone ctf-_xinetd,但是一直卡在这里
那么可以尝试换成https传输,从gitclone下载
1
git clone https://gitclone.com/github.com/Eadom/ctf_xinetd.git
ubuntu 22.04的open-vm-tools-desktop有点抽象。不能直接拖拽但是可以复制粘贴文件。
经过资料查询,才发现open-vm-tools有两个组件:open-vm-tools 以及open-vm-tools-desktop。两者区分如下:
核心 open-vm-tools 软件包中包含核心 open-vm-tools 用户空间实用程序、应用程序和库(包括 vmtoolsd),以帮助有效管理您的主机与客户机操作系统之间的通信。此软件包中包含的功能如下:将客户机操作系统时钟与虚拟化平台同步、在主机与客户机之间传输文件、将检测信号信息从客户机操作系统发送到虚拟化基础架构以支持 vSphere High Availability (HA)、将客户机操作系统的资源利用率和网络连接信息发布到虚拟化平台等。
open-vm-tools-desktop 软件包是可选的,其中包含的附加用户程序和库可增强虚拟机桌面操作的交互式功能。安装该软件包后,您将能够调整客户机显示屏幕的大小以匹配其主机控制台窗口或适用于 vSphere 的 VMware Remote Console 窗口。该软件包还允许您在主机与客户机操作系统之间进行复制和粘贴,以及在客户机与适用于 VMware Workstation 和 VMware Fusion 产品的主机之间进行拖放。
参考了https://blog.csdn.net/as3luyuan123/article/details/121626106想在主机和虚拟机之间复制粘贴要先卸载之前的open-vm-tools
1
2
3sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools-desktop
sudo reboot
遇到这种和网络环境有关的问题,搜索时可以把时间限定在近期,远古的解决方案在今天大概率没用。
配置ctf-xinetd
gitclone好ctf-xinetd就可以开始啦。
这里是因为要练习BROP,复现一个没有二进制文件的题目所以被迫学习搭建远程环境了。
题目的附件来自https://github.com/ctf-wiki/ctf-challenges/tree/master/pwn/stackoverflow/brop/hctf2016-brop
题目的elf文件放到bin文件夹下(如果有libc也要一起放),修改一下flag
在ctf-xinetd同级目录下创建docker-compose.yml文件
内容为:
1 | version: '3' |
这里image的名字要和后面创建的docker image的名字一样
然后打开ctf.xinetd文件,把这个地方改成bin文件夹种放的elf文件的名字
打开Dockerfile文件,把虚拟机版本改一下。如果虚拟机版本高于18的话把下面那个红框的命令删除
然后在ctf_xinetd目录下运行:
1 | sudo docker build -t "wiki_brop" . |
注意:sudo、末尾有一个空格和一个点
没什么问题的话应该是类似上面这样的
1 | sudo docker run -d -p "ip:8888:9999" -h "wiki_brop" --name="wiki_brop" wiki_brop |
-p后面的内容是将9999端口映射到8888端口,端口号可以改。
-name是指定容器名称,-h是指定容器的hostname,最后是image的名字,要和前面创建的镜像的名字一样。
这里是手动映射了端口,但其实直接使用docker-compose文件映射端口也可以。
然后就发现docker已经成功运行了,题目部署完毕。
如果你希望在一台虚拟机上部署这个题目,然后在其他虚拟机/主机连接,上面ip的地方务必填写虚拟机ip,而不是127.0.0.1或者0.0.0.0,这样只能在部署的虚拟机上连接题目…
在exp中可以写:
1 | p=remote("ip",port) # port是映射后的端口,这里是8888 |
在其他机器上nc连接:
简单点:
停掉容器之后再重启容器好像有点问题,总是nc连接不上。reboot一下虚拟机偶尔有效(有时没用)
docker的基础指令
(sudo或者root)
1 | # 查看帮助 |
进程相关
1 | # 查看端口连接: |
编译的相关参数
1 | # NX保护机制: |
1 | #程序需要输出输入时,加上这两段代码,不然部署在docker中运行时要回车才有输出 |