winserver2012 之后如何hashdump

  • 配置注册表并重新登录后才能抓取明文。

  • 撞哈希

vcenter了解吗

  • 查看/sdk/vimServiceVersions.xml可以查看vcenter版本

  • 文件上传漏洞

  • 漏洞检测工具

  • 重置密码获取web控制台权限

  • 获取虚拟机权限

    • 生成快照

    • ssh连接

redis常见漏洞

  • 未授权访问

  • 写计划任务(一般只能用于centos)

  • 写SSH私钥

  • 写webshell(需要写权限,知道绝对路径)

  • 主从复制RCE

CSRF

  • 就是钓鱼网站,点击携带已经认证的身份去访问另一个网站

MYSQL,SQL SERVER,phpmyadmin提权及其原理

MySQL

  • UDF:自定义函数,加载udf的动态链接库

  • MOF:上传mof文件,mof文件会被自动执行,winserver 2003

  • 启动项提权:写启动项

  • 竞争条件提权 SQL Server

  • xp_cmdshell:

    • 拥有dba权限

    • 依赖xplog70.dll

  • sp_oacreate:

    • 拥有dba权限

    • 依赖odsole70.dll

    • 使用wscript.shell 组件执行命令

  • xp_regwrite:

  • 模拟登录提权

  • CLR提权

    • 导入CLR插件

    • 编写CLR函数

    • 执行

PhpMyadmin

  • 绝对路径写webshell

  • 日志文件写webshell

https://tttang.com/archive/1545/#toc_0x05-xp_cmdshell

Weblogic的攻击面?具体到组件,协议?

  • T3反序列化->T3协议

  • XML反序列化 ->/wls-wsat/CoordinatorPortType

  • SSRF->uddiexplorer

  • 后台文件上传

    • 前提:开启了测试页面,知道web路径

时间注入怎么加快获取数据?

  • 二分法

  • 二进制延迟注入

  • DNSLog快速查询

    • 需要load_file

    • 需要secure_file_priv

前期资产怎么梳理?

  • 设备

  • ip

  • 域名

  • 测试主机、业务主机

  • 出网主机、不出网主机

  • VPN

  • 弱密码

SSH如何加固?

  • 换端口

  • 用私钥文件登录

  • 修改iptables规则,限制连接次数

  • 禁止空账户登录

  • 禁止root登录

  • 做黑白名单

登录网站后台后,功能很多,从哪些方面考虑getshell?

  • 编辑文件

  • 文件上传

  • 新建任务

  • 插件上传

ssrf无回显如何深度利用

  • dict协议:探测是否存在ssrf

  • sftp:上传下载文件

  • gopher:发起http请求,向外发送

nacos漏洞

  • 默认key权限登录绕过,可以创建账户

  • 权限绕过

不出网的利用方式

  • 能写webshell -> regeorg +proxifier 做隧道

  • 将执行内容写到web目录

  • 将回显内容写到响应包中

无回显的利用

  • 反弹shell

  • dnslog外带

  • http请求外带

  • 页面返回时间判断

jndi注入原理

jndi的全称是java命名和目录接口,可以理解为PHP伪协议类似,通过这个接口可以访问一些特定的服务,如RMI、LDAP、DNS等服务。

rmi和jndi区别

  • RMI是远程方法调用,JNDI是Java命令和目录服务

  • 可以通过JNDI接口去访问RMI服务

  • RMI用于不同JVM之间的通信,并调用远程对象的方法

  • JNDI用于查找和绑定对象、管理目录结构以及获取配置信息等

sqlmap的一些参数

--level

  • 2 cookie

  • 3 会测试ua和refer

  • 5 会测试host

--risk

  • 1 测试大部分语句

  • 2 基于事件增加测试语句

  • 3 会增加or语句

  • 4 update语句测试

--os-shell

  • os-shell的使用条件,原理是上传一个webshell来进行命令执行

  • (1)网站必须是root权限

  • (2)攻击者需要知道网站的绝对路径

  • (3)GPC为off,php主动转义的功能关闭 --tamper

  • 指定tampper脚本,可以改造sql注入的注入语句

fastjson 不出网怎么利用

  • 打bcel直接执行命令

shrio550与shiro721

shiro550

  • 特征:登录后会出现 rememberme = deleteme

  • 流量:先AES再BASE64

  • 利用:默认秘钥或爆破秘钥

shiro721

  • 特征:同550

  • 流量:同550

  • 利用:利用有限的cookie去进行padding oracle attack

shiro有key无链怎么办

  • 使用shiro_tool这个工具可以检测一些不常用的链

  • 常见的打JRMPClient

  • 配合weblogic的组件co

java内存马的类型

传统应用型:

  • servlet:动态注册Servlet及其映射路由

  • filter:动态注册Filter及其映射路由

  • listener:动态注册listener 框架型:

  • SpringController:动态注册Controller及其映射路由

  • SpringInterceptor:动态注册Interceptor及其映射路由

  • SpringWebflux:动态注册WebFilter及其映射路由 中间件型:

  • Tomcat Valve:动态注册Valve

  • Upgrade:动态注册UpgradeProtocol

  • Executor:动态替换全局Executor

  • Poller等:动态替换全局Poller 其他类型:

  • WebSocket:动态注册WebSocket路由及处理逻辑

  • Tomcat JSP:动态注册TomcatJSP管理逻辑并实现

  • 线程型:动态添加一个无法杀死的线程

  • RMI型:动态启动一个RMI Registry Agent型:

  • Agent型内存马:通过Hook并修改关键方法添加恶意逻辑

SpringBoot的常见漏洞,具体到路径和包

信息泄露类

  • 接口文档泄露,doc.html,swagge-ui.html等

  • actuators包

    • /env:获取全部环境属性

    • /mappings:描述全部的URI路径以及控制器的映射关系

    • /beans:描述上下文里全部的Bean,以及他们的关系

    • /autoconfig:记录了哪些自动配置条件通过,哪些没通过

RCE类

  • SpringCloud GateWay

    • 先访问/actuator/gateway/routes/test创建恶意路由,并在恶意路由中执行SpEL表达式

    • 再访问/actuator/gateway/refresh刷新路由

    • 访问/test,即可看见响应中有执行的命令

  • SrpingCloud SnakeYAML

    • 原理:SnakeYAML解析YAML文件时,存在反序列化漏洞

    • 过程:

      • vps上设置恶意的yml文件

      • 访问受害者/env,post修改环境变量spring.cloud.bootstrap为vps恶意yml地址

      • 访问/refresh刷新路由

  • mysql jdbc 反序列化

    • 原理:

    • 过程:

      • 1、在vps上起一个恶意的payload

      • 2、修改/env下的Spring.datasource.url到vps的ip

Java的危险函数有哪些

//命令执行类
Runtime.exe()
ScriptEngine.eval()
SpelExpressionParse()
ClassLoader.defineClass()
ProcessBuilder()

//sql注入类
一般去mapper.xml里面看

//文件上传类
FileInputStream()
createNewFile()
MultipartFile()

//SSRF
HttpClient()
Sokcet()
URL()
HttpURLConnection()

//XXE类
DocumentBuilder()
XMLStreamReader()
XMLReader()

//反序列化
readObject()
readUnshared()
Yaml.load()
JSON.parseObject()

//JNDI
lookup()

C2服务器如何防溯源

  • CDN隐藏:给VPS申请一个CDN加速

  • 域前置:在不同通信层使用不同的域名

  • 重定向:在CS服务器和受害机之间设置一个转发器,即代理或者端口转发工具

  • 云函数:简单来说就是云厂商提供了一个供代码运行的容器方便开发者便捷部署并运行应用程序,部署在云上自带CDN特效,而攻击者则利用其编写了代码对攻击流量进行了转发,完成攻击前置的目的。

https://www.cnblogs.com/jicey/articles/16201785.html

Windows提权

内网渗透

内网横向常用的手段

keberos认证流程

image.png

黄金票据、白银票据、钻石票据、蓝宝石票据

黄金票据:伪造域管理员权限的TGT,但是需要以下条件

  • krbtgt账户的hash

  • 域的SID

  • 要伪造的账户

  • 域的名称

白银票据:伪造ST,但是需要以下条件

  • 目标服务账户的hash

  • 域的SID

  • 要伪造的账户

  • 域的名称

钻石票据:创建真实的TGT,由KDC下发,但是修改了PAC。需要以下条件

  • krbtgt AES256 秘钥

  • 低权限账户

  • 域名称

  • 要伪造的账户

蓝宝石票据:创建真实的TGT,由KDC下发,并且组装了真正的PAC。需要以下条件:

  • krbtgt账户的AES256 秘钥

  • 域的SID

  • 要伪造的账户

  • 域的名称

内网隧道

  • frp隧道 -> 反向代理

  • neo+proxifier -> 正向代理

烂土豆提权的具体原理

核心是通过NTLM中继来接管system账户。

哈希传递攻击

哈希传递攻击的前提:

  • 域内某个域账户的ntlm值

mimikatz中debug:privilege的原理

privilege:debug 通过调试模式提权,账户必须能够使用管理员权限

委派攻击

委派指的是将域内用户的权限委派给服务账户,使得服务账户能以用户权限访问域内的其他服务。

非约束性委派

约束性委派

基于资源的约束性委派

DSync

DCSync是域内的数据同步,域中默认每15min会进行一次数据同步。

前提:

  • 管理员组的用户

  • 域管用户

  • 普通用户有DCSync权限

研判

设备常见告警有哪些?

一般来说都是大量的扫描告警,比如某某漏洞的告警。

告警量多少条?

加白名单是怎么加?根据规则还是加进程?

误报很多的情况下,如何快速定位真实的攻击流量

  • 首先根据紧急程度,如命令执行、文件上传、反序列化这类或者按照设备上的危害程度排序,先挑选重要的攻击进行研判。

  • 其次若发现大量流量来自于同一ip,抽检来自该ip的流量,根据请求包的payload来判断是否为攻击行为

  • 批量进行威胁情报查询,若存在攻击画像直接判定为攻击流量

做过降噪吗

钓鱼邮件如何处置

从钓鱼邮件取出内容,然后上传微步云沙箱进行分析。 如果有其他行为,可以直接把外联的地址的封掉。

手动分析: 使用IDApro,直接shift+F12。看程序中的字符串段,看有没有什么可以的字符串,或者加密字符串。

ips和ids的区别

入侵防御系统和入侵检测系统

态势上有一个内对内的攻击如何进行研判

  • 首先跟甲方沟通,梳理一下A主机的性质,是业务服务器还是个人PC,还是最近上线的测试系统

  • 根据主机的性质进行分析,如果是新上线的测试系统可能会产生误报,如果是个人PC可以进行直接的沟通或者上机排查。

  • 如果是正常运行的业务服务器,那么可以考虑是不是被当做了跳板,重点分析A的行为以及连接情况,并进行应急响应。

  • 随后进行研判内对内的行为是什么,如果判定为真实的攻击行为,可以对A主机进行隔离,然后做应急响应。

反序列化的流量特征

shiro:cookie中出现rememberme = deleteme,或者有大量的AES加密的内容 fastjson:@type后跟了一些常见的恶意类 如JDBC、TemplateImpl CC链:找一些source点如 AnnotationInvocationHandler和sink点如classloader之类的

webshell的流量特征

冰蝎

  • 请求头accept: text/html,image/gif,image/jpeg,*,q=.2,*/*,q=.2

  • 请求体:很明显的AES加密内容

  • UA: 内置了17种UA头,当同一ip的UA在频繁变换时可以考虑是冰蝎

  • 默认秘钥是 rebeyond的md5前16位

冰蝎4.0: 有解密过吗?还有什么特征

  • 请求头accept:application/json,text/javascript,*/*;q=0.01

  • content-type:octet-stream,x-www-form-urlencoded

  • UA:内置了10种

  • 长连接

  • 默认秘钥是:e45e329feb5d925b

哥斯拉

  • Cookie中有一个非常关键的特征,最后会有个分号

  • Accept:Accept:text/html, image/gif, image/jpeg, *; q=.2, /; q=.2

  • 响应体:md5的前16位 + base64 + md5的后16位

蚁剑

  • 请求体:@init_set("display_errors","0");@set_time_limit(0),后面跟的是base64

  • 响应内容:随机数 + 结果 + 随机数

sql注入如何判断攻击成功,

  • 首先是查看响应为200的数据包,根据请求包的注入类型进行相应的判断

  • 如果是报错注入,则查看回显中是否有相关报错内容

  • 如果是时间盲注,则查看数据包的时间戳是否对得上

如果有一台被感染内网主机B在横向,如何排查源头或者是否有其他受害主机?后续的处置有哪些?

  • 先将B隔离起来

  • 然后观察B的连接情况,以及进程端口情况,看有没有什么比较特殊的端口

  • 观察全流量分析,查看内网中到B的流量有没有异常流量,尝试找到A的地址

  • 再查看A的端口或者连接情况,尝试查看是否有其他横向的受害主机,对A进行检查,是否存在隧道代理等文件

如何判断钓鱼是否有其他受害者?或者二次投毒行为?

  • 首先排查谁被钓鱼了,然后可以跟他本人沟通。

  • 微步有部署过一个钓鱼监控系统,可以检测到哪些人点击了钓鱼邮件。

log4j如何判断攻击成功

  • 首选寻找响应200且有log4j攻击特征的流量${jndi:ldap 执行的命令}

  • 查看攻击主机到受害主机的流量,以及jndi后面rmi或ldap的恶意ip的流量

  • 假设攻击主机位A,受害主机为B,jndi注入的恶意ip为C,如果发现了A->B的流量,且发现了B->C的流量,那么就可以判断攻击成功

攻击变种如何判定?也就是绕过方式

  • ${::-}$

  • ${upper}$

  • ${hostName}$

  • 嵌套标签

  • unicode编码

不出网怎么办?

  • 使用嵌套标签,产生报错,有回显

shiro如何判定是恶意的流量

  • shiro550的话用常见的秘钥可以进行解密

  • 根据cookie长度,一般来说cookie长度长的不正常的就大概率是攻击

  • 根据后续情况,一般使用工具连接的话,后续会有其他动作,比如执行命令或者上传之类的。响应包中会有$$$<加密回显>$$$

jndi注入如何判断攻击成功

  • 首先寻找具有

  • ${jndi:ldap 执行的命令}

  • 跟log4j2一个道理

如何判断外联行为是恶意行为

  • 在微步上查看恶意外联ip的攻击画像

  • 查看外联的目标的端口是不是常见端口

  • 查看后续的流量交互是否满足一些恶意行为特征

MSF、CS的流量特征

MSF

  • 默认端口:4444

  • 数据内容:msf数据包通常包含特定字符串:(meterpreter、reversehll)等、

  • msf直接生成的reverse_shell中,命令会直接明文记录在流量包中

  • metepreter或http的shell,会有有MZDOS模式异常记录在流量包中

  • 请求头很短,只有UA、HOST等等,且连续的数据包中请求头和响应头都不会变

  • https的话看JA3值

CS

  • 默认端口:50050

  • 心跳包特征:间隔一定时间,均有通信,且数据长度固定

  • 指令特征:

    • 第一次连接时,靶机信息会加密放在cookie中

    • 下发指令时,通过心跳包接收指令,指令会加密存放在心跳包的body中

    • 指令执行结束后,client端通过POST请求发送执行的结果数据,body部分通过加密和base编码

    • 不同指令,执行的时间间隔不一样,可以通过POST请求和GET请求的间隔进行判断

  • 数据特征:在请求的返回包中,通信数据均隐藏在jquery*.js中

Http-beacon

  • 第一次访问会有/xxxxchecksum8的看起来像四位随机数

  • 响应时会将靶机信息放在cookie当中

  • 后续通过心跳包接收指令,响应体加密传输

Https-beacon

  • 强特征是JA3值固定

dns-beacon

  • 激活后默认使用 A 0.0.0.243 这个TXT记录

  • 随后将靶机信息以www.<加密后的靶机信息>传回c2

  • 接收c2任务时,先以api开头的A记录告知服务器可以下发任务

  • 执行完任务之后,以post开头的A记录查询回传结果

强特征:

  • checksum8路径

  • JA3和JA3s与操作系统有关

  • 长度超过200的DNS解析请求

参考文章: https://www.ddosi.org/cobaltstrike/ https://forum.butian.net/share/1861

应急响应

Windows应急思路

文件->账户->计划任务->启动项->历史命令->进程状态->日志文件 问到具体的,蓝队工具箱。

Linux应急思路

账户->文件->计划任务->启动项->环境变量->./bashrc->进程

  • 账户:cat /etc.passwd

  • 文件:find ./ -ctime -1

  • 计划任务:cat /etc/crontab

  • 启动项:cat etc/init.d

  • 环境变量:ls -shila /usr/bin;echo $PATH

  • ./bashrc:cat ~/.bashrc

  • 进程:pstree

windows影子账户如何排查

  • 查看控制面板

  • 查看注册表

  • D盾查杀,克隆账号检测功能,可以检测出隐藏、克隆账号

进程注入排查思路

  • PCHunter:查看进程及其子进程及其连接情况,可以看到子进程的连接状况

  • TCP view:查看连接情况,可以看到子进程的连接状况

dll注入的排查思路

  • 查看注册表中的dll调用,是否存在恶意的或者不知名的dll加载

  • 使用ProcessExplorer列出所有进程的DLL以树状结构显示。【分栏】-【View DLL】看文件描述看签名。从【View】-【Select Columns】可以显示DLL的属性和验证数字签名。 image.png

替换进程如svchost.exe如何排查

svchost.exe是仅用来启动加载注册表中的dll

  • 先查看其启动路径,是不是C:\Windwos\System32

  • 使用PCHunter,校验进程所有模块的数字签名

各类排查: https://www.cnblogs.com/17bdw/p/10227059.html

ssh登录日志的命令

cat /var/log/auth.log cat /var/log/secure

内存马排查思路

常见的一般是php内存马和java内容马 php内存马:

  • php-fpm的特征比较明显,用webshell查杀工具就能查到

  • 其他的在进程当中,可以通过查看php的子进程是否有跳动,杀掉对应子进程即可

java内存马:

  • 通过arthas工具,可以分析jvm的状态

    • 常用命令:

    • sc *.servlet:查找

    • jad:反编译

    • dump:class拖下来

  • 通过memshell scanner进行查杀

    • servlet-api型:找到后去删除对应的包下删除

    • agent型:修改还原这个被篡改的类的字节码,再注入到目标中间件中,是一个漏洞反利用的过程

    • 在waf上对不存在的路径进行拦截

  • 查看是否访问不存在的路径等

手动排查思路: https://ruyueattention.github.io/2023/07/02/Java%E5%86%85%E5%AD%98%E9%A9%AC3-%E5%86%85%E5%AD%98%E9%A9%AC%E6%9F%A5%E6%9D%80/

如果工具attach不上java进程,有两个思路:

  • 重启jar包,干掉内存马

  • coredump下内存

挖矿病毒或者xx程序如何排查

分析启动进程参数: wmic process get caption,commandline /value >> tmp.txt 获取具体进程的参数: wmic process get caption="svchost.exe",get caption,commandline /value >> tmp.txt

攻击者上传了文件,能定位到进程和pid,但是上机发现不存在,应该如何恢复该文件

在系统中如果文件是存在于内存当中,linux系统会维护一个打开文件表,在/proc/<pid>/fd下。 通过lsof可以列出当前系统中的打开文件表,如果可以定位到pid,那么可以直接使用 lsof | grep /proc/<pid>/fd 来查看目标进程的打开文件表,然后根据打开文件表找对应的文件即可。

必背命令

windows

查看端口情况

netstat -ano

查看进程树

tasklist /V /FO list

查看近期新增或改动的文件

windows日志路径

安全日志文件:%systemroot%\system32\config\SecEvent.EVT   
系统日志文件:%systemroot%\system32\config\SysEvent.EVT   
应用程序日志文件:%systemroot%\ system32\config\AppEvent.EVT

linux

查看计划任务

crontab -l
cat /etc/crontab

查看登录日志

cat /var/log/auth
cat /var/log/secure

查看进程

查看所有进程

ps aux

查看进程树

pstree |grep <父进程名称>

查看内存占用

top

查看近1天修改或新增的文件

find -mtime -1
find -ctime -1

查看当前系统用户的会话

w

查看hosts文件

cat /etc/hosts

查看最近登录情况

last

查看登录失败的日志

lastb

查看环境变量和启动项

env
cat /etc/profile
cat /etc/environment

隐藏bashhistory记录的命令

 set +o history

查看常见命令指向

Offer情况

中介:
深蓝 : 初+ 1000/8h 1300/12h
鼎夏: 中研 1700-2500 税10%
鸿鹄:中 1800 税后 不分8和12
厂商: 斗象:中 1600 包差旅 10~11小时1.1 12小时1.2

青藤云

sqlmap os-shell的原理
做过内网渗透吗
在内网横向的方法
隐藏操作历史的方法
攻击者上传了文件,能定位到进程和pid,但是上机的时候发现不存在该文件,应该如何恢复该文件
linux下查看哪些人登录了服务器,应该如何查看?用什么命令?失败的呢?
有做过应急吗?讲一下
用过哪些产品?
天眼告警Webshell,如何研判
用过主机侧的产品?HIDS?
看万相告警? 为什么告警?告警可疑的地方?什么攻击能造成这样的进程链?是否为真实攻击