关闭

不曾想过的的命令执行技巧

644人阅读 评论(0) 收藏 举报
分类:
http://0x90909090.blogspot.hk/2015/07/no-one-expect-command-execution.html 

你可以在美丽的Unix世界中用shell执行你喜欢的任何命令,但是有时一个命令可以被用来执行另一个命令,这就是你不曾想过的命令执行技巧 

举例来说,下面是用tar命令简介执行任意命令的方式: 

01.png 

但是再稍微研究一下,看上去有一大堆方法能用流行的unix命令做到这一点,规则很简单: 


不可以从shell中运行命令 
利用另一个命令的“副作用” 
最终达到命令被执行


我用了一个小脚本,叫做runme.sh: 

mitsurugi@mitsu:~/tmp$ cat runme.sh 
#! /bin/bash 
echo "The name's 0xMitsurugi!" 
echo "Remember it!" 
mitsurugi@mitsu:~/tmp$


如果脚本运行时显示这段话了,你就赢了,来继续测试吧: 

1/ tcpdump 
$ tcpdump -n -i lo -G1 -w /dev/null -z ./runme.sh 
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes 
The name's 0xMitsurugi! 
Remember it! 
The name's 0xMitsurugi! 
Remember it! 
^C6 packets captured 
12 packets received by filter 
0 packets dropped by kernel$


因为每一个数据包(-G),我们用指定的程序(-z)处理输出的文件(-w) 
(附译者测试截图:) 
tcpdump.png 

2/ tar 
$ tar c a.tar -I ./runme.sh a 
tar: a.tar: Cannot stat: No such file or directory 
The name's 0xMitsurugi! 
Remember it! 
tar: Exiting with failure status due to previous errors$

因为你可以在命令行指定任意压缩程序给tar(-I)并且我们并不在乎它报错与否 
(附译者测试截图:) 
tar.png 

3/ zip 
$ zip z.zip a -T -TT ./runme.sh 
The name's 0xMitsurugi! 
Remember it! 
test of z.zip OK 
$

zip有自动测试zip文件的友好功能(-T),并且用另一个程序测试解压缩(-TT) 
译者注:这里的a必须是存在的文件,否则报错会不运行 
(附译者测试截图:) 
zip.png 

4/ ftp (and many others...) 
很多程序可以将你的命令返回给shell执行,这里我演示ftp是因为它在老版本Unix上很通用 
$ ftp 
ftp> ! ./runme.sh 
The name's 0xMitsurugi! 
Remember it! 
ftp>

还有vi、gdb之类等等,你甚至可以用~^Z来退出ssh的session 
(附译者测试截图:) 
ftp.png 

5/ man 
这个就是玩一玩而已,但是你必须给出程序的完整路径。用-P选项指定默认的分页程序。 
$ man -P /tmp/runme.sh man 
The name's 0xMitsurugi! 
Remember it! 
$

(附译者测试截图:) 
man.png 

6/ git (and man, and...) 
如果你可以操纵环境变量,那么就有很多好玩的事情了: 
$ export PAGER=./runme.sh 
$ git -p help 
The name's 0xMitsurugi! 
Remember it! 

(附译者测试截图:) 
git.png 

没错,“man”命令也可以这样利用,并且肯定许多其他的程序只要定义了PAGER环境变量也一定可以。 

但是别急,git能做的还有好多,如果你可以写入任何$PATH中的目录中,你可以做到: 
(译者注:在git 1.9.1 中文版上未测试成功,不明觉厉,不明源作者所用版本) 
$ export PATH=/tmp:$PATH 
$ ln -sf /tmp/runme.sh /tmp/git-help 
$ git --exec-path=/tmp help 
The name's 0xmitsurugi 
remember it! 
$


尽管我不知道这该怎么玩,但我确信别人会找到用途 :) 由于不明原因,要想运行必须要有--exec-path在$PATH中才行 

7/ 最想不到的:bash $HOME 变量 
恩,是的,有办法弄二级的shell: 
(译者注:原文命令如下,但是原作者忘了一条: ln -sf /root/runme.sh /root/.bashrc) 
$ pwd 
/tmp 
$ ls -la .bashrc 
lrwxrwxrwx 1 mitsurugi mitsurugi    8 juin  19 14:03 .bashrc -> runme.sh 
$ export HOME=. 
$ bash 
The name's 0xMitsurugi! 
Remember it! 
$

(附译者测试截图:) 
bashrc.png 

在我尝试之前我本以为这是100%会失败的事情。 

8/ awk (and many others) 
当你有一个“system”命令时,一切都变的太简单了: 
$ awk 'BEGIN {system("./runme.sh")}' 
The name's 0xMitsurugi! 
Remember it! 
$

(附译者测试截图:) 
awk.png 

除了这些我确信还会有许多…… 

就是这些了,我确信还会有许多这种命令执行,欢迎回复啊。
0
0
查看评论

思念,

早春的夜,冷雨敲窗,打开了取暖器,让寒凉的心顿时有了温热,这温热瞬间漫过了指尖,直达心脏。回想起那些生命中相伴走过的美好时光,如寒风中的烟火,暖暖的带着一丝柔软,让人妥贴舒适地想靠近,此刻的心填满了绵长的牵挂,却又涩涩的带着一丝惆怅与落寞。     牵挂一个人是甜蜜的忧...
  • vivion741
  • vivion741
  • 2015-03-03 13:41
  • 232

《如果你想过1%的生活》 - 读后感

书中描述了很多场景,从各个角度解释了不同的人的不同面对现状,值得一读。下载地址:ebook 下载
  • robert198837
  • robert198837
  • 2016-10-25 19:47
  • 1304

舍得不曾舍得的舍得会舍得,习惯不曾习惯的习惯会习惯!

口中言少,自然祸少;腹中食少,自然病少;心中欲少,自然忧少;身上事少,自然苦少;大悲无泪,大悟无言。缘来要惜,缘尽就放,随方就圆,无处不自在。(转自江苏电信网厅)
  • labulakayoyo
  • labulakayoyo
  • 2015-11-11 14:40
  • 282

【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行

译者:h4d35 预估稿费:100RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 在Windows环境的渗透测试过程中,PowerShell对于攻击者来说是绝佳的后期利用工具。在内部测试过程中,像PowerSploit和PowerShell Emp...
  • qq_27446553
  • qq_27446553
  • 2017-06-23 13:29
  • 346

总结自己使用shell命令行常用到的8个小技巧

当然,我们也可以配合grep,只查看包含指定字符的log信息 [root@localhost ~]#tail -f file | grep --line-buffered your_pattern
  • Hello_Hwc
  • Hello_Hwc
  • 2014-10-19 14:24
  • 5085

我的生活不曾取悦于我,所以我创造了自己的生活

My life didn't please me, so I created my life. 我的生活不曾取悦于我,所以我创造了自己的生活。(Coco Chanel) 原文载于:爱词霸英语学习网-每日一句
  • bigheadsheep
  • bigheadsheep
  • 2014-03-31 09:03
  • 1435

hdu2567 水题

寻梦 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6447 Accepted Submission(s): 4904 Prob...
  • oliver233
  • oliver233
  • 2016-03-02 21:15
  • 409

【不曾拥有,并不代表一无所有,唯…

【不曾拥有,并不代表一无所有,唯有两个单身的人相遇,才能够在将来相依为命。】喜欢你,但不必拥有你。 【心情歌单】 刘若英/我们没有在一起。 陈奕迅/兄妹。 莫文蔚/我明白他。 【有一种幸福,再简单不过】。 当你说话的时候有人听,难过的时候有人陪,看见对方幸福时,打从心底为他安心。 不需要太多言语,...
  • maxdbs
  • maxdbs
  • 2017-08-30 15:15
  • 262

Linux 基本shell命令和Linux rm -rf原理分析

还是老规矩,循序渐进,先来简单入门一下LinuxLinux中一切皆文件,所以我们应该知道的是Linux中只有一个根目录,然后分为下图几个目录,其中桌面在home 目录下,图(来源网上):cd> cd 目的地 --(..代表父目录,.代表当前目录) 一开始打开的终端仿真器是默认在桌面...
  • Mikeoperfect
  • Mikeoperfect
  • 2017-10-08 20:57
  • 489

bash使用技巧整理

说明:     这些技巧主要来自history&read line这两个库,下文中的技巧也适用其它使用该库的应用程序。     bash命令可以使用ctrl + alt + e展开,参数使用ctrl + *(glob-expand...
  • lidonghat
  • lidonghat
  • 2016-10-20 01:20
  • 832
    个人资料
    • 访问:805750次
    • 积分:8227
    • 等级:
    • 排名:第2955名
    • 原创:23篇
    • 转载:844篇
    • 译文:2篇
    • 评论:26条
    最新评论