Linux/Frolic

Linux/Frolic_第1张图片

Enumeration

nmap

还是扫描系统对外开放的端口情况,对外开放了22,139,445,还有9999端口,显示是http服务,使用了nginx 1.10.3

┌──(kali㉿kali)-[~/HTB/Frolic]
└─$ nmap -sC -sV -oA nmap -Pn 10.10.10.111
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-31 02:49 EDT
Nmap scan report for 10.10.10.111
Host is up (0.23s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 877b912a0f11b6571ecb9f77cf35e221 (RSA)
|   256 b79b06ddc25e284478411e677d1eb762 (ECDSA)
|_  256 21cf166d82a430c3c69cd738bab502b0 (ED25519)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
9999/tcp open  http        nginx 1.10.3 (Ubuntu)
|_http-server-header: nginx/1.10.3 (Ubuntu)
|_http-title: Welcome to nginx!
Service Info: Host: FROLIC; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode: 
|   311: 
|_    Message signing enabled but not required
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: -1h49m59s, deviation: 3h10m30s, median: 0s
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
|   Computer name: frolic
|   NetBIOS computer name: FROLIC\x00
|   Domain name: \x00
|   FQDN: frolic
|_  System time: 2023-03-31T12:20:38+05:30
| smb2-time: 
|   date: 2023-03-31T06:50:38
|_  start_date: N/A
|_nbstat: NetBIOS name: FROLIC, NetBIOS user: , NetBIOS MAC: 000000000000 (Xerox)

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

TCP/139,445

因为开放了这两个端口,运行着samba服务,所以使用相关扫描工具探测一下是否存在问题

使用smbmap扫描ip,显示没有什么能够访问的文件

使用smbclient扫描ip,结果也差不多,暂时放下去看看web

Linux/Frolic_第2张图片

Exploitation

TCP/9999

打开是默认的欢迎账号,但是在下方提示了系统还有一个1880端口,先记下来一会看看

Linux/Frolic_第3张图片

先扫描网站目录结构,看看有没有其他路径

Linux/Frolic_第4张图片

/admin

打开告诉我这个是可以被攻击的,先放着看看其他的

Linux/Frolic_第5张图片

/backup

Linux/Frolic_第6张图片

拼接url可以得到一组用户名和密码

admin:imnothuman

很不幸,登录失败了,并且提示还有两次机会

Linux/Frolic_第7张图片

/test中是phpinfo信息

Linux/Frolic_第8张图片

看来还是得回到登录界面,但是提示还有两次机会,所以不太可能是暴力破解,查看页面源代码,在lohin.js中又发现一组用户名密码

Linux/Frolic_第9张图片

admin:superduperlooperpassword_lol,使用该口令成功登陆系统,发现了一串很奇怪的编码,这一定是下一步的突破口

Linux/Frolic_第10张图片

搜索发现这其实是一种编程语言

Linux/Frolic_第11张图片

在网上找到一个解密网站

Linux/Frolic_第12张图片

最后发现其实那一串字符是一个路径,尝试拼接url访问该路径,发现又是一大堆代码

Linux/Frolic_第13张图片

在cyberchef中判断原文用了base64编码,解码后发现他是一个zip文件

Linux/Frolic_第14张图片

得到这些消息后,将经过base64转换的编码保存到code.zip中

解压文件发现需要密码,但是刚才的两组密码都不对

尝试使用fcrackzip来暴力破解,很快就得到了密码,然后解压文件得到了一个index.php

Linux/Frolic_第15张图片

于是,又得到了一堆十六进制代码

Linux/Frolic_第16张图片

在经过十六进制和base64的转换,得到了一组brainfuck编码

Linux/Frolic_第17张图片

再将其放到刚才的网站中,会得到一个字符串idkwhatispass

Linux/Frolic_第18张图片

I don't know what is pass,这玩意肯定是密码,但是没有什么地方能登陆了,刚才还发现了一个1880端口,尝试访问该端口

Linux/Frolic_第19张图片

访问前需要在/etc/hosts中写入ip到域名的映射,该端口是一个Node-RED的登录界面

但是使用admin/idkwhatispass登录并未成功,看了一些别人写的过程,发现是刚才扫描目录出现了问题,没有使用递归扫描,也就没有扫描出dev之后的内容,访问..dev/backup/返回了一个/playsms,跟在dev/backup之后报错404,而直接跟在http://10.10.10.111:9999/之后会进入playsms的登录页面

playsms

Linux/Frolic_第20张图片

使用用户名和密码登录,成功登录,看到playsms的版本为1.4.5

Linux/Frolic_第21张图片

查看有没有直接可以利用的漏洞,可以看到还是挺多的

Linux/Frolic_第22张图片

可以看到metasploit有,那就直接利用吧,选择第一个

设置好所有配置项后直接运行就能得到shell

Linux/Frolic_第23张图片

然后获取交互式shell,在获取user的flag

Linux/Frolic_第24张图片

Privilege Escalation

使用LinEnum.sh扫描系统,发现一个suid文件/home/ayush/.binary/rop

Linux/Frolic_第25张图片

看了别人的过程其实是一个溢出漏洞

Linux/Frolic_第26张图片

将rop发送给kali

Linux/Frolic_第27张图片

使用gdb工具,配置好peda,利用pattern create来生成非重复字符串

运行gdb -q rop然后将这一串字符串作为输入来运行程序

run AAA%······

Linux/Frolic_第28张图片

可以看到EIP为AAGA,也能算出偏移量为52

使用 ldd 指令获取基本 libc 地址

可以使用readelf工具来查看共享库libc.so.6的符号表,并过滤出system@和exit@的行,可以看到名为system的符号偏移地址为0003ada0,名为exit的符号偏移地址为0002e9d0,15ba0b是/bin/sh在libc.so.6文件中的偏移地址,以16进制表示

计算地址,并将最后的值转化成字节序列并按照小段字节排列

gdb-peda$ p 0xb7e19000 + 0x0003ada0
$4 = 0xb7e53da0  # system

gdb-peda$ p 0xb7e19000 + 0x15ba0b
$5 = 0xb7f74a0b  # /bin/sh

gdb-peda$ p 0xb7e19000 + 0x0002e9d0
$6 = 0xb7e479d0  # exit

[JUNK] + SYSTEM(ret地址覆盖)+ EXIT(下一个返回地址)+“/bin/sh”(args),其中52个JUNK字符导致程序崩溃溢出

执行下面的指令即可

你可能感兴趣的:(HackTheBox,网络,数据库,web安全,网络安全,linux)