【THM】 Expose

信息收集

我们得到ip地址,先用nmap扫描一下全端口

下面的是nmap的报告

我们得到这几个端口,再仔细地探测一下。

┌──(root㉿Breeze)-[/home/breeze/Desktop]
└─# nmap -sT -sC -sV -p 21,22,53,1337,1883 10.10.21.56
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-26 16:55 CST
Nmap scan report for 10.10.21.56
Host is up (0.36s latency).

PORT     STATE SERVICE                 VERSION
21/tcp   open  ftp                     vsftpd 2.0.8 or later
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.17.48.147
|      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 1
|      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 94:af:50:6b:4f:7d:9b:27:1d:04:84:f7:99:b6:9d:e6 (RSA)
|   256 b3:65:69:ba:55:d8:8c:4e:38:01:49:1b:28:0e:29:98 (ECDSA)
|_  256 1a:4c:30:f1:3c:bb:84:61:cb:f5:a0:47:f5:09:de:8a (ED25519)
53/tcp   open  domain                  ISC BIND 9.16.1 (Ubuntu Linux)
| dns-nsid: 
|_  bind.version: 9.16.1-Ubuntu
1337/tcp open  http                    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: EXPOSED
1883/tcp open  mosquitto version 1.6.9
| mqtt-subscribe: 
|   Topics and their most recent payloads: 
|     $SYS/broker/clients/active: 1
|     $SYS/broker/bytes/sent: 407
|     $SYS/broker/load/messages/received/15min: 0.20
|     $SYS/broker/load/bytes/sent/15min: 26.97
|     $SYS/broker/version: mosquitto version 1.6.9
|     $SYS/broker/load/publish/sent/1min: 10.05
|     $SYS/broker/load/sockets/5min: 0.57
|     $SYS/broker/subscriptions/count: 2
|     $SYS/broker/load/bytes/received/1min: 63.04
|     $SYS/broker/load/connections/1min: 1.83
|     $SYS/broker/load/connections/15min: 0.13
|     $SYS/broker/load/bytes/received/5min: 13.55
|     $SYS/broker/load/publish/sent/15min: 0.73
|     $SYS/broker/publish/bytes/sent: 61
|     $SYS/broker/store/messages/count: 31
|     $SYS/broker/heap/maximum: 51472
|     $SYS/broker/load/connections/5min: 0.39
|     $SYS/broker/messages/received: 3
|     $SYS/broker/load/messages/sent/5min: 2.75
|     $SYS/broker/clients/connected: 1
|     $SYS/broker/heap/current: 51072
|     $SYS/broker/uptime: 2992 seconds
|     $SYS/broker/load/bytes/sent/1min: 371.87
|     $SYS/broker/clients/maximum: 1
|     $SYS/broker/store/messages/bytes: 147
|     $SYS/broker/clients/total: 1
|     $SYS/broker/retained messages/count: 35
|     $SYS/broker/load/publish/sent/5min: 2.16
|     $SYS/broker/publish/messages/sent: 11
|     $SYS/broker/messages/stored: 31
|     $SYS/broker/messages/sent: 14
|     $SYS/broker/load/bytes/received/15min: 4.57
|     $SYS/broker/load/messages/received/1min: 2.74
|     $SYS/broker/load/sockets/1min: 2.43
|     $SYS/broker/clients/inactive: 0
|     $SYS/broker/load/messages/sent/1min: 12.79
|     $SYS/broker/bytes/received: 69
|     $SYS/broker/clients/disconnected: 0
|     $SYS/broker/load/sockets/15min: 0.20
|     $SYS/broker/load/messages/sent/15min: 0.93
|     $SYS/broker/load/bytes/sent/5min: 79.93
|_    $SYS/broker/load/messages/received/5min: 0.59
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.96 seconds

我们接下来用 gobuster去扫描目录,得到一些有用的目录。admin和phpadmin

第一个是admin

第二个是admin_101,这个指定了邮箱,我们猜测这是真的有效的admin页面。

我们可以先试试弱口令,再看看能否暴力破解,最后发现是sql注入

sql注入

我们抓包将文件改名为test,用sqlmap -r来进行sql注入

我们得到以下信息

+----+------------------------------+-----------------------------------------------------+
| id | url                          | password                                            |
+----+------------------------------+-----------------------------------------------------+
| 1  | /file1010111/index.php       | 69c66901194a6486176e81f5945b8929                    |
| 3  | /upload-cv00101011/index.php | // ONLY ACCESSIBLE THROUGH USERNAME STARTING WITH Z |
+----+------------------------------+-----------------------------------------------------+

+----+-----------------+---------------------+--------------------------------------+
| id | email           | created             | password                             |
+----+-----------------+---------------------+--------------------------------------+
| 1  | hacker@root.thm | 2023-02-21 09:05:46 | VeryDifficultPassword!!#@#@!#!@#1231 |
+----+-----------------+---------------------+--------------------------------------+
第二个是admin_101的密码,但是没什么用。

 

我们尝试用这个密码登录mysql服务器发现不行

文件上传

我们登录网站发现需要密码

我们将sqlmap跑出来的密码,尝试破解一下。

69c66901194a6486176e81f5945b8929

我们得到密码是 easytohack

我们直接去登录

右键查看源码,我们发现了一些其他的东西

我们尝试get传参file=index.php,发现存在本地文件包含漏洞。

尝试读取passwd文件

我们得到了一些用户名。

我们进入/upload-cv00101011/index.php页面

他说要用z开头的用户名

我们回想之前的提示

猜测这个用户名是 zeamkish

我们成功进去,得到了一个文件上传的页面

我们先随意上传一个文件,然后右键查看一个源码,发现了文件保存的位置。

upload_thm_1001

原来是前端检验直接删了就行

我们上传一个php反弹shell的php文件,然后运行。得到一个shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

经过实践,进入的是www-data用户。

我们进入home下的文件夹。

find / -perm -04000 -type f -ls 2>/dev/null

我们知道了nano是管理员运行的命令。

改写root密码

我们直接用nano写下shadows文件

  • openssl passwd: 这是调用 OpenSSL 工具的命令,用于生成密码哈希值。
  • -1: 这个选项告诉 OpenSSL 使用 MD5 算法来生成密码哈希值。MD5 算法是一种不太安全的哈希算法,因为它容易受到碰撞攻击,不建议在安全性要求较高的场景中使用。
  • -salt: 这个选项告诉 OpenSSL 在生成密码哈希值时使用盐(salt)。盐是一个随机的值,用于增加密码哈希值的随机性和安全性。
  • -root: 这个参数指定了盐的值为 "root"。盐值是用于增加密码哈希值的安全性的一个重要部分,它应该是一个随机的值,并且对于每个密码都是唯一的。
  • 1234: 这是要加密的原始密码。

综上,该命令的作用是使用 OpenSSL 工具生成一个经过 MD5 加密的密码哈希值,盐值为 "root",原始密码为 "1234"。

之后用su切换到root用户即可。

 

 

 

posted @ 2024-05-26 19:12  AllFalls  阅读(9)  评论(0编辑  收藏  举报