黑客基础术语:什么是交互式shell?非交互式shell如何转换交互式命令?

在《黑客基础术语:什么是命令行和环境变量?》这篇文章里我讲过什么是SHELL?大家可以温故而知新一下。本文章是这个系列的第五篇,着重讲一下什么是黑客里的交互式SHELL以及在非交互式SHELL里如何运行交互式命令?

 

如果专业一点的解释,在SHELL里能执行交互模式(Interactive mode)的命令,那么你的SHELL就是交互式的了;

如果在SHELL里只能执行非交互模式(Non-Interactive mode)的命令,自然而然就是非交互式SHELL。

 

我们先来看下什么是交互式命令?

在命令行下运行ftp这个命令。

如下图,我们在cmd命令行运行,会出现FTP>这个管道符号,等待我们接收的命令。证实这是一个交互式SHELL。交互式SHELL

 

但是你在实际黑客工作中,你会发现非交互式SHELL比例非常大。

在一些木马里边,得到的SHELL,基本都是非交互式的,还有你的Webshell里执行命令,也是非交互式的。

 

我们在非交互式SHELL要执行交互式命令怎么办呢?

我们举一个小例子,用Mimikatz抓密码,需要交互式执行,要输入两次命令:privilege::debugsekurlsa::logonpasswords非交互式SHELL要执行交互式命令

 

我们在非交互式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);
?>
头像
  • ¥ 1999.0元
  • 市场价:2999.0元
  • ¥ 6.8元
  • 市场价:8.8元
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 15.0元
  • 市场价:15.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: