Hack The Box Dab WriteUp

1.在8080端口上可以访问到如下图所示的页面,提示已经很明显了cookie没有设置,字段名称是password,唯一需要破解的是值,挂上Burpsuite单点爆破就可以搞定。

password:secret

2.用Cookie Manager添加当前页Cookie后你可以获得如下页面,既然是TCP socket test,不防65535端口全连接试试,你会在11211端口发现端倪。http://10.10.10.86:8080/socket?port=11211&cmd=111 URL的形式,同样支持BurpSuite的单点爆破。

socket连接尝试

3.11211端口对应服务为memcached,是目前流行的缓存服务。不必对它做太过深入的理解,学习一下基本命令即可。

memcached服务

4.攻击的关键是让memcache泄露所有的key,其中可能缓存了登录的用户名密码。

基本命令
80端口先尝试登录,密码错不重要,重要的是让memcached从mysql拉出数据进行缓存

5.接下来就是跑hash了,暴力的办法就是用john直接破解,优雅些的方法是利用22端口ssh漏洞枚举用户,msf里有可以直接利用的模块(msf > use auxiliary/scanner/ssh/ssh_enumusers)。经过这步后能够拿到登录密码:genevieve@10.10.10.86 Princess1

ssh登录成功

6.检查SUID文件,find / -user root -perm -4000 -ls 2>/dev/null ,ldconfig 和 myexec 同学你肯定有问题!

7.将myexec下载回本地,利用radare2对其进行跟踪

        [0x00400740]> aaa (aa用分析文件,aaa可以分析出更多程序细节,文件小逻辑简单的话建议使用)

        [0x00400740]> pdf@main(显示主函数的反汇编结果,在@后指定函数名或地址,打印相关内容)

        密码:s3cur3l0g1n

程序简单的密码比对逻辑:s3cur3l0g1n
还有一处需要注意,程序最后调用了一个函数seclogin( ),这个函数并没有被实现,是插入代码的好地方

8.检查程序调用的动态链接库

        检查动态链接库可以使用两种工具分别是objdump 和 ldd

        objdump -x myexec

        ldd myexec

        可以看出程序调用了两个so

        libseclogin.so 没有找到(dll劫持是当然的,思路基本是编写一个shell然后做成so让程序加载)

程序调用了两个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

return 0 后面少了一个; 哈哈

10.可以拿到root shell 了,这台机器不太稳定,如果还是失败的话,需要重置几次机器!!!好运兄弟~

推荐阅读更多精彩内容