当前位置 博文首页 > 文章内容

    Lord_Of_The_Root1.0.1靶机测试笔记

    作者: 栏目:未分类 时间:2020-08-14 18:01:08

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    Vulhub-Lord_Of_The_Root1.0.1靶机官方地址

    Netdiscover Nmap

    发现只开了22端口,openssh版本6.6.1p1, 记得openssh有个枚举用户名的漏洞,尝试枚举和爆破密码,

    枚举报错了,但是发现了线索。
    红框中翻译:魔戒 敲击进入
    没猜错的话这个是考察port_knocking概念,就是从外部按照一个正确的顺序连接 防火墙预先设定的端口(这儿是123),以实时改变防火墙策略、开放端口。 意思如果我们按照正确的顺序连接其端口后,它就会开放隐藏的端口,端口顺序应该就是那句Easy as 1,2,3了。

    这儿使用下Pinkys-Palace2靶机中学到的脚本,首先生成这123的各种组合

    python -c 'import itertools; print list(itertools.permutations([1,2,3]))' | sed 's/), /\n/g' | tr -cd '0-9,\n' | sort | uniq > permutation.txt
    

    执行,进行敲击

    #!/bin/bash
    
    TARGET=$1
    
    for ports in $(cat permutation.txt); do
        echo "[*] Trying sequence $ports..."
        for p in $(echo $ports | tr ',' ' '); do
            nmap -n -v0 -Pn --max-retries 0 -p $p $TARGET
        done
        sleep 3
        nmap -n -v -Pn -p 1-10000 -A --reason $TARGET -oN ${ports}.txt
    done
    
    

    或者直接

    nmap -n -v0 -Pn --max-retries 0 -p 1 192.168.2.101
    nmap -n -v0 -Pn --max-retries 0 -p 2 192.168.2.101
    nmap -n -v0 -Pn --max-retries 0 -p 3 192.168.2.101
    

    敲出来了,顺序就是1,2,3 。

    访问1337,得到一张图片

    尝试访问上图里写的MORDOR目录,成功跳转

    发现字符串,解码再解码得到一个目录

    访问目录,得到一个登陆框

    输入Mordor、admin、978345210常见的用户名和sql注入都是返回Username or Password is invalid
    上sqlmap扫一下,

    存在时间盲注,那直接dump数据了

    第一个账号密码不对,第二个账户成功登陆到ssh,smeagol:MyPreciousR00t

    开启python http服务传输文件

    下载文件执行

    发现是ubuntu 14.04,但是尝试CVE-2017-16995,报不能执行二进制文件,查看到其他有趣的

    进入door1,只有file文件,尝试分析猜测文件,未果

    可以执行命令,但是没啥用

    查看door2,door3目录,都只有file文件,但是分析时发现door2下的file存在这个strcpy
    注:这儿后面发现,三个目录里只有1个file文件是包产strcpy的,但是这个包含strcpy的file文件会在door1,2,3里定时变动位置,

    strcpy一般配合考察缓冲区溢出漏洞,查找崩溃点.
    先复制一份到xx , 尝试输入大字符串

    上图可以看到是存在溢出的,那么尝试找出溢出点位置 。
    msf生成1000字符串,使用gdb调试

    可以看到EIP位置是0X41376641 。 找到它的位置

    看到是在171位置出现了溢出,验证下eip的内容

    确认为四个B,再确认esp的内容是否为c

    存在c的,那么确认坏字符

    \x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
    

    能看到1-8是正常的,后门就全乱了,怀疑0x08后门的0x00是0x09,但是它是个坏字符,至于后门为啥全乱了,猜测是因为0x0a的问题,因为它是换行符
    重新来 去掉0x09和0x0a

    好看多了,但是从0x20又开始乱了,去掉0x20后门就好了。
    PS: 这儿一定要仔细看,因为看少了看错了都会导致msf的payload执行不成功。

    所以总结,坏字符为0x09 0x0a 0x20 再加个0x00 .
    然后开始生成payload 准备利用

    本来还是应该找esp的,但是这个环境下esp地址是固定的,所以直接将eip的内容写上esp的地址,可以收到shell了

    但是。。当回到/SECRET/door目录下时,esp地址会变动,参考了老外的这篇文章解释了这是ASLR机制,但是其提供的两种绕过方式:1种使用大次数循环发送命令以希望侥幸随机到他写的那个EIP地址上,我循环了几万遍发现没这个运气,2解锁ALSR,利用并未成功。
    看遍了网上的攻略,未发现有能这样提权成功的,所以暂停了。

    可以使用39166.c 内核漏洞提权

    总结:
    考察了port_knocking,sql注入,CVE-2015-8660/39166.c—3.19.0-25内核提权漏洞,溢出漏洞/未成功。。
    溢出难度大,未利用成功,其他的简单

    gdb常用命令参考