fortigate
命令diagnose hardware smartctl
,进入底层shell 。如果设置了busybox就可以用busybox来执行其他命令。
配置IP
1 | # config system interface |
命令diagnose hardware smartctl
,进入底层shell 。如果设置了busybox就可以用busybox来执行其他命令。
配置IP
1 | # config system interface |
注:这是接着前两篇文章的第三部分。由于原文实在是有点长,我根据文章的内容分了一下。
原文:https://doar-e.github.io/blog/2018/11/19/introduction-to-spidermonkey-exploitation/#jsvalues-and-jsobjects
这个博客文章介绍了针对 SpiderMonkey JavaScript Shell 解释器和 Windows 10 RS5 64 位 Mozilla Firefox 的三个漏洞的开发,从一个从未编写过浏览器漏洞利用的人的角度来写,也没有密切关注任何 JavaScript 引擎代码库。
您可能已经注意到,在过去的一两年里,人们对利用浏览器产生了很大的兴趣。每个主要的 CTF 竞赛至少有一次浏览器挑战,每个月至少有一次或两次涉及浏览器利用。这就是为什么我认为我应该从内部分析一下 JavaScript 引擎的内容,然后写一个其中的利用。我选择了 Firefox 的 SpiderMonkey JavaScript 引擎和由 itszn13 出的挑战题 Blazefox。
在这篇文章中,我介绍了我的发现和我在此挑战中编写的三个利用。最初,挑战是针对 Linux x64 环境,但我决定在 Windows x64 上利用它。现在你知道为什么有 3 种不同的利用了吗?三个不同的利用允许我一步一步地实现,而不是同时面对所有复杂的情况。这通常是我日常工作的方式,我只是做了一些小工作,慢慢迭代然后建立起来。
以下是我如何组织这些事情的方法:
把前面的汇编代码汇总一下如下。
有个 __declspec,使用它的作用是,生成的代码部分不会有编译器加上的堆栈平衡,所以需要自己平衡栈。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39void __declspec(naked) findGetProAddrByPeb(DWORD flag)
{
__asm{
push ebp;
mov ebp, [esp+8];
push ebx;
push edi;
push esi;
xor eax, eax;
mov eax, fs:[0x30]; Pointer to PEB
mov eax, [eax + 0xc]; Pointer to Ldr
mov eax, [eax + 0x1c]; Pointer to InInitializationOrderLinks
next_mod:
mov esi, [eax + 0x8]; Poniter to DllBase
mov edi, [eax + 0x20]; Poniter to BaseDllName
mov eax, [eax]; Poniter to next module InInitializationOrderLinks
xor ebx, ebx;
add_kerstr:
cmp dword ptr[edi + 0xc], 0x00320033; add module name
jne next_mod;
...
...
cmp ebp, 1; eax = LoadLibrary
jnz _ret2;
pop esi;
pop edi;
pop ebx;
pop ebp;
ret 4; ret LoadLibrary Address
_ret2:
mov eax, ebx; flag = 2 , ebx = GetProcAddress
pop esi;
pop edi;
pop ebx;
pop ebp;
ret 4; ret GetProcAddress
}
}
之前在调试浏览器的POC时,最后总是需要一段ShellCode,自己不会写就得到处找。找到的ShellCode不合适,不如自己写。
这里来记录一下如何自己写一点简单的ShellCode。
前面已经搞定了环境,执行了exp。
现在,用这个搭好的环境来做一点其他事。
比如说,劫持一些执行命令的函数:sytem ,execve,popen ,记录它们执行过的参数,存到一个日志文件。
方便我们观察,看看有没有可能某些参数来至于我们输入的东西。
华为HG532路由器漏洞。
固件下载地址:
https://ia801309.us.archive.org/15/items/RouterHG532e/router%20HG532e.rar
思科的IOS bin实际上是一个非常大的ELF文件。
高度集成,且非模块化,没有so文件这种。虚拟内存架构未完全实现,具有平面内存模型。
数据存储使用栈和堆,但是包括栈在内的所有内容都存储在堆中。