如果专业一点的阐明,在SHELL里能实行交互模式(Interactive mode)的命令,那么你的SHELL便是交互式的了;如果在SHELL里只能实行非交互模式(Non-Interactive mode)的命令,自然而然就是非交互式SHELL。
我们先来看下什么是交互式命令。在命令行下运行ftp这个命令。
如下图,我们在cmd命令走运行,会涌现FTP>这个管道符号,等待我们吸收的命令。证明这是一个交互式SHELL。

但是你在实际黑客事情中,你会创造非交互式SHELL比例非常大。在一些木马里边,得到的SHELL,基本都是非交互式的,还有你的Webshell里实行命令,也是非交互式的。我们在非交互式SHELL要实行交互式命令怎么办呢?我们举一个小例子,用Mimikatz抓密码,须要交互式实行,要输入两次命令:privilege::debug和sekurlsa::logonpasswords。
我们在非交互式SHELL下如何完成呢?实在可以用到管道符大于号和小于号。小于号是用来吸收,大于号用来输出。如下图,把要实行的交互式命令写到1.txt,再用>>输出到2.txt里。用两个大于号是表示追加文件,不会覆盖2.txt里原来的内容。
再加增加一个非交互式提权的命令吧。像很多LInux机器提权,要得到一个反弹的SHELL,如果得不到只能在Webshell里实行命令怎么办?像是php,可以用popen函数,类似于命令行的管道符,代码如下:
<?php
$sucommand = \公众/tmp/2.6.18-2011\公众;
$fp = popen($sucommand ,\"大众w\公众);
@fputs($fp,\公众echo 22222 > /tmp/s.txt\"大众);
@pclose($fp);
?>
这是新年纪后的第二篇文章,我又要写黑客系列教程了。但是很有可能我往后的重心会放在悟空问答上,发文的频率会降落,但文章质量肯定会更好,希望大家放心。