一句话木马(webshell)是如何执行命令的

简介:

     

在很多的渗透过程中,渗透人员会上传一句话木马(简称webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是如何执行的呢,下面我们就对webshell进行一个简单的分析。


首先我们先看一个原始而又简单的php一句话木马。

<?php @eval($_POST['cmd']); ?>

看到这里不得不赞美前辈的智慧。


对于一个稍微懂一些php的人而言,或者初级的安全爱好者,或者脚本小子而言,看到的第一眼就是密码是cmd,通过post提交数据,但是具体如何执行的,却不得而知,下面我们分析一句话是如何执行的。


这句话什么意思呢?

php的代码要写在<?php  ?>里面,服务器才能认出来这是php代码,然后才去解析。

@符号的意思是不报错。

例如:

1
2
3
<?php
eval ($_POST[cmd]);
?>

如果没有@,如下图,就会报错

wKioL1lDPU6wkqlpAAFTGLvgyDI589.png-wh_50


为什么呢?

因为一个变量没有定义,就被拿去使用了,

服务器就善意的提醒:Notice,你的xxx变量没有定义。

这不就暴露了密码吗?

所以加上@

为什么pw是密码呢?


那就要来理解这句话的意思了

php里面几个超全局变量

GET_POST就是其中之一

$_POST['a'];

意思就是a这个变量,用post的方法接收。

(传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据(例如xxx.php?a=2))

eval()

把字符串作为PHP代码执行

例如:eval("echo 'a'");其实就等于直接 echo 'a';

再来看看<?php eval($_POST['pw']); ?>

首先,用post方式接收变量pw,比如接收到了:pw=echo 'a';

这时代码就变成<?php eval("echo 'a';"); ?>

结果:

wKioL1lDPYHheDqUAACKGr0cbR0209.png-wh_50


连起来意思就是:

用post方法接收变量pw,把变量pw里面的字符串当做php代码来执行

所以也就能这么玩:


也就是说,你想执行什么代码,就把什么代码放进变量pw里,用post传输给一句话木马

你想查看目标硬盘里有没有小黄片,可以用php函数:opendir()和readdir()等等

想上传点小黄片,诬陷站主,就用php函数:move_uploaded_file,当然相应的html要写好

你想执行cmd命令,则用exec()

当然前提是:

php配置文件php.ini里,关掉安全模式safe_mode = off,

然后在看看 禁用函数列表 disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉,确保没有exec。

(有些cms为了方便处理某些功能,会去掉的)

看看效果:

POST代码如下:

1
2
3
4
5
cmd=header( "Content-type:text/html;charset=gbk" );
exec ( "ipconfig" ,$out);
echo  '<pre>' ;
print_r($out);
echo  '</pre>' ;

wKioL1lDPauzQBUkAAEhsqpAJK4196.png-wh_50


在这里我们可以看到系统直接执行了系统命令,

SO,大家现在应该理解,为什么说一句话短小精悍了吧!


我们在看一下一句话在菜刀之类的webshell管理工具里面是如何一句话是如何执行的

其实在webshell管理工具里面,已经集成好了所有可以执行的系统命令,我们只需要输入ifconfig、ipconfig、whoami、net user 等系统命令,就可以获得对应的系统信息。


wKioL1lDPeOjV78oAAEFI0QJX-M137.jpg-wh_50


其实可以很明显看明白,其实执行的命令就和我们前面写的哪样进行输入输出,执行系统命令操作。

所以只要webshell有足够高的权限,可以做任何你想做的事情。




     本文转自Tar0 51CTO博客,原文链接:http://blog.51cto.com/tar0cissp/1937364,如需转载请自行联系原作者



目录
打赏
0
0
0
0
348
分享
相关文章
阿里云提示网站后门发现后门(Webshell)文件的解决办法
2018年10月27日接到新客户网站服务器被上传了webshell脚本木马后门问题的求助,对此我们sine安全公司针对此阿里云提示的安全问题进行了详细分析,ECS服务器被阿里云提示异常网络连接-可疑WebShell通信行为,还会伴有,网站后门-发现后门(Webshell)文件,以及提示网站后门-一句话webshell的安全提示,但是大部分都是单独服务器ECS的用户,具体被阿里云提示的截图如下:
3160 1
阿里云提示网站后门发现后门(Webshell)文件的解决办法
linux服务器木马排查
【4月更文挑战第18天】该文提供了服务木马排查的六个步骤:1) 检查系统日志,观察异常IP并用SSH防护,限制22端口和root用户;2) 查看系统用户,找寻异常或新创建的UID/GID为0的用户;3) 检查UID为0的进程和隐藏进程,防止恶意活动;4) 搜索异常大文件和具有特殊权限的文件;5) 检验系统计划任务的完整性;6) 使用rkhunter和chkrootkit检测rootkit。关键在于识别入侵点并采取相应措施。
189 0
阿里云提示网站后门发现后门(Webshell)文件该怎么解决
阿里云提示网站后门发现后门(Webshell)文件该怎么解决
2818 0
阿里云提示网站后门发现后门(Webshell)文件该怎么解决
1433映像劫持后门提权
首先: 1.服务器开启了终端端口(终端端口未必是3389,可以自行查询) 2.服务器的粘滞键功能无损,只要可以正常弹出即可 3.
941 0
网站总是被上传漏洞上传了木马后门被入侵怎么办
SINE安全又带上业务逻辑漏洞来跟大家做分享了,这一次的主题内容是上传文件漏洞。许许多多企业网站都准许客户自己图片上传、电子版资料,假如上传功能并没有搞好安全防护对策,就存有极大的安全隐患。假如网站应用领域在上传文件流程中并没有对文档的安全性能采取合理的校检,攻击者能够根据上传webshell等恶意文档对php服务器攻击,这样的情况下指出操作系统存有上传文件漏洞。下列是我汇总的一小部分上传漏洞的情景,假如你拥有掌握其他上传避过姿势还可以和我们讨论讨论。
260 0
网站总是被上传漏洞上传了木马后门被入侵怎么办
linux服务器木马后门rookit检测过程
在服务器木马后门检测中rookit也是根据特征的,他们检查的都是某一些rk的看这个root或者一些其他的通用型root的,但我现在所使用的项目,它这个UK的可能比较小众,所以没有被检测出来。那这个是 check rookit。我们来看一下第二个工具,叫rookit hunter,这也是一个系统可以直接安装的工具。那安装完毕之后,执行这条命令就可以了,执行的过程我就不给大家讲了,你只要一路回车就可以了。重点是什么?重点是要会看结果。也就是说我们查询出如kite之后,那我怎么知道它是一个rookit?看这里边爆出来了,lookit。也就是说他做了一些这个隐藏,加入到内核里之后,看这都是挖点,说明已
285 0
linux服务器木马后门rookit检测过程
SSH木马后门如何从服务器中查找
关于SSH后门木马查杀,那SSH协议其实它是一个加密的网络传输协议,通常咱们使用它作为Linux管理使用,那它用来传输命令界面和远程执行命令,也就是咱们现在看到的这个界面,通常计算机被入侵之后,如果这个计算机是暴露在外网的,或者是横向打穿了某一台服务器,以另一台服务器作为跳板跳到其他服务器上。一般来说,通过SSH登陆会非常的方便操作命令这个时候是不是就有后门的诞生了。
233 0
SSH木马后门如何从服务器中查找
网站后门木马查杀该怎么删除
收到阿里云的短信提醒说是网站存在后门,webshell恶意通信行为,紧急的安全情况,我第一时间登录阿里云查看详情,点开云盾动态感知,查看了网站木马的详细路径以及webshell的特征,网站从来没有出现过这种情况,一脸懵逼,无奈询问度娘吧,百度搜索了什么是webshell,为了解决这个问题,我可是下了很大的功夫,终于了解清楚并解决了阿里云提示网站后门的这个问题,记录一下我解决问题的过程。
398 0
网站后门木马查杀该怎么删除