首页 > 其他分享 >Vulnhub 靶场 Jetty: 1

Vulnhub 靶场 Jetty: 1

时间:2024-12-19 16:52:57浏览次数:4  
标签:ciphertext txt database Jetty Vulnhub key print 靶场 password

前期准备

靶机地址:https://www.vulnhub.com/entry/jetty-1,621/

Description
Back to the Top
The company Aquarium Life S.L. has contacted you to perform a pentest against one of their machines. They suspect that one of their employees has been committing fraud selling fake tickets. They want you to break into his computer, escalate privileges and search for any evidences that proves this behaviour.

ZIP Password: EsSabad0!

Extra information:

The suspicious username is Squiddie.
He was in charge of the ticket selling for the Aquarium.
Ethernet settings set to NAT with DHCP enabled.
You should find the IP in your VLAN.
The idea of the machine it is not just to gain root privileges but obtaining all the evidences to prove that the user was commiting fraud.

Difficulty: I would say the machine is Medium regarding gaining root privileges. If we consider all the steps to obtain the evidences, Hard.

这台机器的目的不仅仅是获得 root 权限,还要获得所有证据来证明一名员工在进行销售假票的欺诈行为。

kali攻击机IP:192.168.11.128
靶机IP:192.168.11.131

一、信息收集

1. 使用nmap对目标靶机进行扫描

image

发现开了 21(FTP)、 80、 65507(SSH)端口。从 nmap 扫描结果可以看出,ftp 可以匿名登陆,且有两个文件,80 端口有 robots.txt,里面有四个目录。

2. 21(FTP)端口

匿名登录 ftp。用户名:anonymous:

image

把这两个文件下载到本地并查看:

image

README.txt:

Hi Henry, here you have your ssh's password. As you can see the file is encrypted with the default company's password. 
Please, once you have read this file, run the following command on your computer to close the FTP server on your side. 
IT IS VERY IMPORTANT!! CMD: service ftp stop.

Regards, Michael.

嗨,亨利,这是你的 ssh 密码。如你所见,该文件使用默认的公司密码加密。
请在阅读完此文件后,在你的计算机上运行以下命令以关闭你这边的 FTP 服务器。
这非常重要!!CMD:service ftp stop。
Regards, Michael.

sshpass.zip 被加密了,尝试爆破一下:

image

zip 的密码是:seahorse! (根据 README.txt 的说明,这个密码是默认的公司密码)。解压 sshpass.zip:

sshpass.txt:

Squ1d4r3Th3B3$t0fTh3W0rLd  (根据 README.txt 的说明,这个密码是 ssh 密码)

现在有了 ssh 的密码,还需要一个用户名,靶机描述里说:The suspicious username is Squiddie.。故用户名应该是:Squiddie。现在可以登录 ssh 了。不过 80 端口还没有看,先看下 80 端口。

3. 80 端口

image

看下 robots.txt 里面的四个目录:

image

都是 404,扫一下目录:

image

80 端口上没什么发现,直接 ssh 登录吧。

二、提权

ssh 登录 ssh -p 65507 squiddie@192.168.11.131。登陆上去后发现是个受限的 shell:

image

不过还可以使用 python,尝试使用 python 升级下 shell,突破受限,

python -c 'import pty;pty.spawn("/bin/bash")'

image

有告警。禁止 /bin/bash 路径,尝试在 python 里面写:

image

shell 升级成功,查看权限:

image

可以使用 find 提权,参考 gtfobins

image

sudo find . -exec /bin/sh \; -quit

image

提权到 root。得到 flag:

image

三、收集犯罪证据

在 /root 目录下发现 Documents/.docs/ 下有一些表格,表格的名字是:

Accountabilty not cooked
Accountabilty Report Morning
Money Balance
Pending to erase

看着应该就是犯罪证据,ftp 还开着,所以用 ftp 把这些文档和 .docs 目录下的其他文件下载下来,ftp 文件目录在 /home/ftp/(因为是隐藏目录,所以在 ftp 中用 dir -a 查看,或者复制时就改一下目录名称,下载还是用 mget mget "."):

image

查看下载的文件,四个表格中三个是加密的,Password_keeper 中有两个 txt 和一个 exe:

database.txt:

instagram T9Y0Ku/oDv80H8CUzBKkwQ==
facebook IXKnuKh73jCOKcEZAaHnIQ==
Accountabilty_not_cooked rbRH72cf3UiHXcmQB6o0OA==
MoneyBalance rRd3m80KzzTik3Eu9BRWy95GsORKwD+adfTUfPLaxVk=
Pending_to_erase aneylFYmV/jz/7g5j+Ck15oreK1VhmaKmTwa8cdSnpY=
usage.txt:

Usage: 
        *Linux: wine password_keeper.exe (database.txt must be in the same folder as the password_keeper.exe)
        *Windows: password_keeper.exe (database.txt must be in the same folder as the password_keeper.exe)

This program was compiled using pyinstaller.

password_keeper.exe

image

提示 password_keeper.exe 是用 pyinstaller 编译的。故需要将 exe 还原成 pyc 文件。然后再进行反编译。使用 pyinstxtractor.py 还原

image

image

可以使用 uncompyle6 反编译 PYC ,也可以用在线反编译pyc的网站

image

password_keeper.pyc 反编译后的 password_keeper.py 文件:

#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7

from Cryptodome.Cipher import AES
import base64
BS = 16

pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)

unpad = lambda s: s[0:-ord(s[-1])]

# 加密功能:用AES-CBC 模式实现加密,密钥以 Base64 编码存储
def cipher_message(key, message, iv):
    message = pad(message)
    key = base64.b64decode(key)
    obj = AES.new(key, AES.MODE_CBC, iv)
    ciphertext = obj.encrypt(message)
    ciphertext = base64.b64encode(ciphertext)
    return ciphertext

# 解密功能:ciphertext 和 key 需要从 Base64 编码中解码,解密后再解密
def decipher_message(key, ciphertext, iv):
    ciphertext = base64.b64decode(ciphertext)
    key = base64.b64decode(key)
    obj2 = AES.new(key, AES.MODE_CBC, iv)
    decipher_text = obj2.decrypt(ciphertext)
    decipher_text = unpad(decipher_text)
    return decipher_text

#生成加密密码
def generate_key(ciphertext, tag, key, iv):
    ciphertext = cipher_message(key, ciphertext, iv)
    print ''
    print "Now copy this into your database.txt (It's the free version... pay for an automated tool!)"
    print ''
    print 'Tag Password'
    print tag + ' ' + ciphertext

#查看密码:查看存储的密码,需要输入 base64 解密后的 key
def show_keys(database, key, iv):
    check_permissions = raw_input('Insert password: ')
    if base64.b64encode(check_permissions) == key:
        for i in range(len(database[0])):
            ciphertext = database[1][i]
            decipher = decipher_message(key, ciphertext, iv)
            print ' '
            print 'Tag: ' + database[0][i] + ' Password: ' + decipher
            print ' '
        
    else:
        print ''
        print 'Tag: Instagram Password: WRONG '
        print 'Tag: Facebook  Password: PASSWORD '
        print 'Tag: SSH       Password: TRY '
        print 'Tag: root      Password: HARDER! '
        print ''

#数据读取
def read_database():
    database = [
        [],
        []]
    f = open('database.txt', 'r')
    for line in f.readlines():
        line = line.strip().split()
        database[0].append(line[0])
        database[1].append(line[1])
    
    f.close()
    return database


def main():
    print 'Welcome to the best password keeper ever!'
    print '__        __         _                _  __                         '
    print '\\ \\      / /__  __ _| | ___   _      | |/ /___  ___ _ __   ___ _ __ '
    print " \\ \\ /\\ / / _ \\/ _` | |/ / | | |_____| ' // _ \\/ _ \\ '_ \\ / _ \\ '__|"
    print '  \\ V  V /  __/ (_| |   <| |_| |_____| . \\  __/  __/ |_) |  __/ |   '
    print '   \\_/\\_/ \\___|\\__,_|_|\\_\\__,  |     |_|\\_\\___|\\___| .__/ \\___|_|   '
    print '                          |___/                    |_|   '
    iv = '166fe2294df5d0f3'
    key = 'N2FlMjE4ZmYyOTI4ZjZiMg=='
    database = read_database()
    loop = True
    while loop:
        print ''
        print 'Choose what you want to do: '
        print '1) See your passwords!'
        print '2) Generate a cipher-password'
        print '3) Close'
        option = raw_input('Insert your selection here --> ')
        if option == '1':
            print ''
            print 'Showing content of your secret passwords...'
            print ''
            show_keys(database, key, iv)
            print ''
            returned = raw_input('Press any button to return to the menu...')
            continue
        if option == '2':
            print ''
            print ''
            title = raw_input('Type the name of the application: ')
            password = raw_input('Type the password(BEWARE OF SHOULDER SURFING!!!): ')
            generate_key(password, title, key, iv)
            print ''
            print ''
            returned = raw_input('Press any button to return to the menu...')
            continue
        if option == '3':
            loop = False
            print ''
            return 'Bye Byeeeeeeeeeeeee'
        print 
        print 
        print ''
        print 'WHAT? FAILURE TO COMMUNICATE... Reseting connection...'
        print ''
        print ''
        returned = raw_input('Press any button to return to the menu...')

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

根据以上分析,需要输入 base64 解密后的 key:

key = 'N2FlMjE4ZmYyOTI4ZjZiMg=='

base64 解码得:

7ae218ff2928f6b2

运行Password_Keeper.exe,选择 “1”,然后输入密码:7ae218ff2928f6b2

image

得到保存的密码,查看 execl:

Accountabilty_not_cooked.xlsx:

image

AccountabiltyReportMorning-1112018.xlsx:

image

MoneyBalance.xlsx:

image

Pending_to_erase.xlsx:

image

证据应该是收集完了。

标签:ciphertext,txt,database,Jetty,Vulnhub,key,print,靶场,password
From: https://www.cnblogs.com/sainet/p/18612772

相关文章

  • 关于XXE靶场保姆级攻略
    一.XEE靶场来到我们的XXE靶场先随便输入账号密码抓个包我们发现了他有很多xml的字样,说明我们可以用xml进行攻击,上图下方框中的是html字样,这就是我们的注入点输入<?xmlversion="1.0"?><!DOCTYPEANY[<!ENTITYxxeSYSTEM"file:///c:/flag/flag">]>system后面......
  • CTFHUB靶场关于SSRF保姆级攻略
    一.内网访问输入127.0.0.1/flag.php二.伪协议读取文件输入?url=file:///var/www/html/flag.php右键页面查看源代码三.端口扫描尝试一下index.php,没有显示,说明有这个文件上方题中提示我们端口在8000-9000中我们用burpsuite抓包,开启代理输入?url=127.0.......
  • pikachu靶场--XXE注入攻击
    1.POC攻击测试<?xmlversion="1.0"?><!DOCTYPEfoo[<!ENTITYxxe"a">]><foo>&xxe;</foo>读取到实体xxe内容2.查看文件在搜索栏提交xml源码读取目标主机c盘下的指定文件内容#查看文件<?xmlversion="1.0"?><!DOCTYPEfoo[......
  • sqlilabs靶场:less-26--less-30
    第二十六关:less-26这关将逻辑运算符,注释符以及空格给过滤了我们先使用单引号进行闭合这时我们查看源代码可以看到这一关过滤了很多字符可以看到这里将orand/--#空格等字符都被注释了空格被过滤了我们可以使用()来代替,and和or可以使用双写来绕过因为报错注入空格......
  • Vulnhub 靶场 DevGuru: 1
    前期准备靶机地址:https://www.vulnhub.com/entry/devguru-1,620/kali攻击机IP:192.168.11.128靶机IP:192.168.11.130一、信息收集1.使用nmap对目标靶机进行扫描开了22、80、8585端口。发现git目录,且提示做解析:192.168.11.130devguru.local2.80端口发现用的是Octo......
  • Vulnhub nxy
    0x01:端口扫描主机发现nmap-sn10.10.10.0/24全端口扫描nmap--min-rate10000-p-10.10.10.132UDP扫描nmap-sU--top=2010.10.10.132详细端口扫描nmap-sT-sC-sV-O--min-rate10000-p22,8010.10.10.132漏洞扫描nmap--script=vuln-p22,8010.10.10.1......
  • pikachu靶场SSCR漏洞测试报Warning: file_get_contents()警告信息
    1.这个警告Warning:file_get_contents()是PHP中的一个常见错误。可能的原因有很多。2.路径问题如果调用file_get_contents()时传递了一个文件路径,可能路径不正确或者文件不存在。确保文件路径正确且文件可访问。3.url问题如果传递的是URL,确保该URL是有效且可访问的......
  • 2024年最新最全网络安全护网行动指南【附零基础入门教程】_网络安全靶场整个业务指南
    前言随着《网络安全法》和《等级保护制度条例2.0》的颁布,国内企业的网络安全建设需与时俱进,要更加注重业务场景的安全性并合理部署网络安全硬件产品,严防死守“网络安全”底线。“HW行动”大幕开启,国联易安誓为政府、企事业单位网络安全护航!,网络安全形势变得尤为复杂严峻。......
  • sqli-labs-master靶场常见报错的解决办法
    进入Less-1发现页面报错因为在PHP7.0.0及更高版本中,mysql-connect()函数以及整个原始的MySQL扩展已经被移除 可以采用降低php版本的方法解决,在phpstudy中选择更多版本,下载高于5.0.0低于7.0.0的php版本,重启MySQL数据库和Nginx这时候再刷新Less-1,页面正常......
  • oscp备考,oscp系列——Kioptix Level 1~5靶场详解,附重新使用VMware克隆的下载地址,VMwar
    公众号:泷羽Sec-尘宇安全oscp备考,oscp系列——KioptixLevel1~5靶场详解下载地址:https://pan.quark.cn/s/d290014bb3d8oscp备考,oscp系列——KioptixLevel1靶场前言oscp备考,oscp系列——KioptixLevel1靶场KioptixLevel1难度为简单靶场,主要考察nmap的使用已......