介绍
Kali: 10.10.13.32
靶机地址:10.10.10.117
先用nmap扫描下靶机
靶机开放了 22 80 111 端口
查看下靶机的80端口
我们用gobuster对网站的目录也进行一次爆破
访问下/manual,得到apache的文档页面没有可以利用的点
然后我们在根据页面上的显示”IRC is almost working!”
IRC(Internet Relay Chat的缩写,“因特网中继聊天”)是一种透过网络的即时聊天方式。其主要用于群体聊天,但同样也可以用于个人对个人的聊天。IRC使用的服务器端口有6667(明文传输,如irc://irc.freenode.net)、6697(SSL加密传输,如ircs://irc.freenode.net:6697)等
我们可以看到IRC监听的端口为6697和6667,那么说明我们的nmap探测是不完全的。所以我们对靶机的端口做一次全端口探测
这里我们看到6697端口是开放,这里我对6697进一步进行探测
我们搜索下是否存在相关的EXP
我们尝试用第一个 后门命令执行
得到shell之后利用python建立一个pty
然后我们通过find搜索下user.txt
我们进入/home/djmardov/Documents目录,发现User.txt不能读取,但是还有一个.backup的文件,我们读取下
它给了我们关于steg[Steganography]的提示,然后我们得到了类似密码的字符串:
UPupDOWNdownLRlrBAbaSSss
关于隐写术的工具资源: https://0xrick.github.io/lists/stego/
我们之前在网页上看到一个表情,我们把那个表情图片下载回来看看里面是否藏着什么东西
我们用steghide --info来查下图片的是否包含隐藏数据,其中需要你输入刚刚得到的那串密码。
然后我们提取数据
得到密码:Kab6h+m+bbp2J:HG
那我们尝试登陆SSH,拿到FLAG
接下来就是提升ROOT的权限
这里我用LinEnum来检查靶机是否有可以用来提权的点
LinEnum:https://github.com/rebootuser/LinEnum
然后自己的Kali 用 python -m SimpleHTTPServer 开启HTTP服务
然后在靶机上的/dev/shm用wget下载
然后 bash LinEnum.sh 执行脚本
在SUID文件中我们发现这个文件的日期是在2018.5.16完成的跟其他文件有所不同它是最新生产的,我们去看看这个文件
这个文件似乎记录这访问过这个系统的用户,我们看到最后一行,这个程序在调用者/tmp/listusers这个文件
我们先把这个文件复制我们的kali中去调试它
先用把这个二进制文件用base64进行转换,-w0表示不换行输出
base64 -w0 /usr/bin/viewuser |
然后将出现的一大堆数据进行复制
然后我们在自己的kali 创建一个名为userview.b64的文件并把刚刚得到的一大堆数据复制到里面去
然后我们在把文件解码输出为一个二进制文件
base64 -d viewuser.b64 > viewuser |
然后我们用lstrace 对这个文件进行调试
ltrace能够跟踪进程的库函数调用,它会显现出哪个库函数被调用
如果自己的kali没有的话就apt-get install -y ltrace 安装下
我们可以看到这个二进制文件到最后会调用/tmp/listusers这个文件。
因为这个vieruser是root权限调用的,那么被调用的/tmp/listusers也将会root权限
那么我们直接编写个/tmp/listusers文件,同时要给它chmod +x
因为那个vieruser是监控在线登陆的用户的,所以它是不会不断的执行,你可以看到当我们写好这个文件并赋予执行权限的时候 它的拥有者变成了root
然后我们得到root flag
*后记,后来我发现我之前就变成了root的权限是因为之前别人做完了实验然没清理我执行了别人的listusers,所以我就被root了,但是get root的思路就是如上
这里我重新做了一次实验,现在是我刚写完listusers文件并加上执行权限
然后我运行viewusers,这里我们可以看到它调用了我们写的脚本然后我们得到了root shell