[译]剪切粘贴二进制文件

原文地址: http://pen-testing.sans.org/blog/pen-testing/2014/12/10/awkward-binary-file-transfers-with-cut-and-paste

Step 1 压缩源文件
引用

root@kali:~# gzip /bin/nc.traditional
root@kali:~# ls -l /bin/nc.traditional.gz
-rwxr-xr-x 1 root root 11197 Jun 12 2012 /bin/nc.traditional.gz


Step 2 安装Sharutils和Xsel
引用

root@kali:~# apt-get install sharutils xsel
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
sharutils xsel
...
Setting up sharutils (1:4.11.1-1) ...
Setting up xsel (1.2.0-1) ...


Step 3 Alias Pbcopy
在Linux下使用xsel/xclip将程序的STDOUT输出放到剪切板中。
引用

root@kali:~# echo "alias pbcopy='xsel --clipboard --input'">>~/.bash_profile
root@kali:~# source ~/.bash_profile
root@kali:~# alias pbcopy
alias pbcopy='xsel --clipboard --input'


Step 4 传输文件
首先使用uuencode将二进制文件转换成7-bits ASCII码形式。下面例子中,我们声明了两次文件名,第一次是真实的文件名,第二次是文件内容指向的文件名。
引用
root@kali:~# uuencode /bin/nc.traditional.gz /bin/nc | pbcopy


接下来切换到目标机器,使用cat创建文件,把剪切板内容copy到文件中,"CTRL+C"结束文件。
引用

josh@centos:~ $ cat >nc.gz.uu
begin 755 /bin/nc.traditional.gz
M'XL("$YEUT\``VYC+G1R861I=&EO;F%L`-U\?WR4U97W,Y,)#B%D8H46*VT?
M==!@DT@0+3\U0$"T42,BV@+"D,PP(\G,=.:9`+Y40B<!QB$VW5I?=VLKE&[7
...
M/OH.]5W3B_+P.&ZOY='CMZ^.WG$^/:;7\_"XYAP'WID+X!W,IW<`]!I4S%3(
E7\KLGWA\K:SR3LPG6PY/-W.+EO4C7OZW(*TF_Q=K0^LO?%8`````
`
end
^C
josh@centos:~ $



然后解码文件
[color=blue]josh@centos:~$ python -c 'from uu import decode; decode("nc.gz.uu", "nc.gz")'
josh@centos:~$ gzip -d nc.gz
mock@centos:~$ chmod 755 nc
josh@centos:~$ ./nc -h
[v1.10-40]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
...[/color]

你可能感兴趣的:(二进制)