1.在8080端口上可以访问到如下图所示的页面,提示已经很明显了cookie没有设置,字段名称是password,唯一需要破解的是值,挂上Burpsuite单点爆破就可以搞定。
2.用Cookie Manager添加当前页Cookie后你可以获得如下页面,既然是TCP socket test,不防65535端口全连接试试,你会在11211端口发现端倪。http://10.10.10.86:8080/socket?port=11211&cmd=111 URL的形式,同样支持BurpSuite的单点爆破。
3.11211端口对应服务为memcached,是目前流行的缓存服务。不必对它做太过深入的理解,学习一下基本命令即可。
4.攻击的关键是让memcache泄露所有的key,其中可能缓存了登录的用户名密码。
5.接下来就是跑hash了,暴力的办法就是用john直接破解,优雅些的方法是利用22端口ssh漏洞枚举用户,msf里有可以直接利用的模块(msf > use auxiliary/scanner/ssh/ssh_enumusers)。经过这步后能够拿到登录密码:genevieve@10.10.10.86 Princess1
6.检查SUID文件,find / -user root -perm -4000 -ls 2>/dev/null ,ldconfig 和 myexec 同学你肯定有问题!
7.将myexec下载回本地,利用radare2对其进行跟踪
[0x00400740]> aaa (aa用分析文件,aaa可以分析出更多程序细节,文件小逻辑简单的话建议使用)
[0x00400740]> pdf@main(显示主函数的反汇编结果,在@后指定函数名或地址,打印相关内容)
密码:s3cur3l0g1n
8.检查程序调用的动态链接库
检查动态链接库可以使用两种工具分别是objdump 和 ldd
objdump -x myexec
ldd myexec
可以看出程序调用了两个so
libseclogin.so 没有找到(dll劫持是当然的,思路基本是编写一个shell然后做成so让程序加载)
9.一段简单的代码完成功能并编译成so
gcc -shared -o libseclogin.so -fPIC note.c (动态链接库编译)
ldconfig -l /tmp/libseclogin.so
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp
env LD_LIBRARY_PATH=/tmp
10.可以拿到root shell 了,这台机器不太稳定,如果还是失败的话,需要重置几次机器!!!好运兄弟~