文章目录
需要工具:
1.宿主机->kali
2.靶机->girlfriend
问题描述:
有一对恋人即Alice和Bob,最初是非常浪漫,但是因为爱丽丝在一家私人公司,"Ceban公司",Alice对Bob的态度发生了变化,就象有什么东西被隐藏了一样,Bob向你求助帮助他找到隐藏的东西,并完全进入公司。
第一步:检查网络环境
检查两个虚拟机网络连接模式是否为NAT
三种网络连接模式区别:
桥接模式:虚拟机网络接口直接连接到网卡,和本机处于平级的关系,获得独立的ip地址
NAT模式:虚拟机使用主机的 IP 地址进行网络通信,虚拟机的 IP 地址由虚拟网络分配,实现虚拟机与外部网络的通信。
仅主机模式:虚拟机只能和主机进行通信,虚拟机与主机之间通过虚拟网络通信。
第二步:开启虚拟机
开启两个虚拟机,girlfriend靶机到下面这样就可以了。
第三步:查看网络信息
打开kali的终端,并查看kali的ip地址
查看ip地址命令:ifconfig,ip地址的前三位之后一位修改为 0 就是网段,也叫子网。
第四步:nmap探测主机
nmap工具探测网络上的主机和服务。
💧 nmap使用介绍:
- 扫描单个主机:使用命令“nmap [目标IP地址]”,例如“nmap 192.168.1.1”。
- 扫描整个子网:使用命令“nmap [子网地址]/[子网掩码]”,例如“nmap 192.168.1.0/24”。
- 扫描指定端口:使用命令“nmap -p [端口号] [目标IP地址]”,例如“nmap -p 80 192.168.1.1”。
- 扫描常用端口:使用命令“nmap -F [目标IP地址]”,例如“nmap -F 192.168.1.1”。
- 扫描操作系统类型:使用命令“nmap -O [目标IP地址]”,例如“nmap -O 192.168.1.1”。
- 扫描服务和版本信息:使用命令“nmap -sV [目标IP地址]”,例如“nmap -sV 192.168.1.1”。
- 扫描并输出结果到文件:使用命令“nmap -oN [输出文件名] [目标IP地址]”,例如“nmap -oN result.txt 192.168.1.1”。
以我的ip地址和子网掩码为例 命令:nmap 192.168.240.130/24
/24 的含义是子网掩码的二进制有几个1 -> 255.255.255.0 就是24个1嘛
ip地址和子网掩码一定要是你自己的欧,你的跟我的是不一样的
💧 DNS服务介绍:
- Domain Name System(DNS)是一种用于将域名转换为IP地址的协议,是Internet中的一项基础服务。如果你熟悉的话,虚拟机网络配置里面的子网ip就是此处的DNS域名解析服务ip
💧 HTTP服务介绍:
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,是Web应用程序的基础。HTTP是一种客户端-服务器协议,客户端向服务器发出请求,服务器向客户端返回响应。
HTTP协议的工作流程如下:
- 客户端向服务器发送请求(request)。
- 服务器接收到请求后,根据请求内容生成响应(response)。
- 服务器将响应发送给客户端。
- 客户端接收到响应后,根据响应内容进行相应的处理。
第五步:访问靶机服务器
在kali虚拟机里面访问该服务器的Web页面。
打开kaili自带的火狐浏览器,输入靶机的ip地址 出现以下界面
💧 X-Forward-For:
X-forward-for
是一种 HTTP 头部(HTTP header),通常用于标识 HTTP 请求的真实客户端 IP 地址。当请求经过代理服务器时,代理服务器会在 HTTP 头部中添加X-Forwarded-For
字段,将请求的真实客户端 IP 地址添加到该字段中,以便目标服务器能够获取到真实客户端 IP 地址。
下载X-Forward-For插件:
1->注册 2->登录:
修改id值:
- 在表单元素中,如果修改了
id
属性的值,那么表单提交时,浏览器会根据id
属性的值来获取表单元素的值,并将其作为请求参数发送到服务器。
当测试id = 5时,username = alice,问题场景说的就是这个人。查看源代码拿到密码 下一步就可进入grilfriend靶机
第六步:SSH登录靶机
在kali中用ssh服务登录girlfriend
kali中输入密码是不显示的,输入完按回车即可。
ssh alice@192.168.240.130
第七步:find命令找flag
find命令找flag文件(命令很重要!!!)
find / name 'flag*' //含义find 起始文件查找路径 name [文件名]
cat 文件所在路径
第八步:拿到root权限
题目要求完全进入公司,意在拿到root
执行sudo -l
- 在linux中许多命令都是要用root权限的
- 因此也可以对命令进行权限的修改,例如允许普通用户alice 使用yum install命令
- sudo -l用于列出当前用户在系统上可以执行的命令以及执行这些命令所需要的权限。
执行以下命令: (直接复制即可Ctrl+shift+v)
sudo php -r 'System("/bin/bash");'
重复上述查找文件的命令,想想怎么写来着 (find 从哪开始找 name 文件名)
仅自己理解,欢迎指正