01 隐藏长期驻留
1.1 配景
长期化是一个攻击链周期中很是主要的环节,,,,,,,,指用webshell、反弹shell、后门、rootkit恒久控制失陷机械的一种手艺,,,,,,,,可能会涉及到dns隧道、http、icmp 隧道以及加密流量,,,,,,,,从而抵达一直控制失陷机械而不被发明的目的。。。。。
在攻击者使用误差获取到某台机械的控制权限之后,,,,,,,,会思量将该机械作为一个长期化的据点,,,,,,,,莳植一个具备长期化的后门,,,,,,,,纵然在装备重启、凭证修改或其他可能破损目今恶意运动的操作爆发后,,,,,,,,也能够随时毗连该被控机械举行深入渗透。。。。。
1.2 长期驻留要领

1.2.1 隐藏启动
1.2.1.1 Systemd启动
System默认从目录/etc/systemd/system/读取设置文件。。。。。可是内里存放的大部分文件都是符号链接,,,,,,,,指向目录/lib/systemd/system/,,,,,,,,真正的设置文件存放于这个目录中。。。。。
一样平常系统手工建设的单位文件建议存放在/etc/system/system/目录下。。。。。
1. 首先编译提前设置好的后门文件。。。。。
2. 在/etc/目录下建设demo.local(名称),,,,,,,,内里写入直接执行后门文件。。。。。
3. 修改权限。。。。。
4. 在/etc/system/system/目录下建设一个demo.service文件。。。。。
5. 设置启动链接。。。。。
6. 重启获得shell。。。。。
1.2.1.2二进制文件熏染
基本流程
完成可用空间的后门代码(添加区段);;;;;;;
挟制执行流程;;;;;;;
注入后门代码;;;;;;;
恢复执行流程。。。。。
第一步:需要找到可用空间。。。。。
怎样在PE文件中选择合适的空间来插入后门代码很是主要, 这将影响到后门被检测到的危害系数。。。。。
借助于一个名为Cminer的工具,,,,,,,,很容易枚举二进制文件的所有代码洞。。。。。
./Cminer putty.exe 300 下令枚举Code Caves大于300字节。。。。。
在这种情形下,,,,,,,,有5个好的Code Caves可以使用。。。。。起始地点给出了Caves的虚拟内存地点(VMA)。。。。。这是Caves的地点,,,,,,,,当PE文件加载到内存中时,,,,,,,,文件偏移量是以字节为单位的PE文件内的Caves地点。。。。。
由此可见大部分Caves都在数据段内,,,,,,,,由于数据段没有执行特权段标记, 这里需要更改。。。。。后门代码或许400-500字节左右,,,,,,,,以是5个Caves是足够的。。。。。Caves的起始地点应该被生涯,,,,,,,,在将段特权更改为R/W/E后,,,,,,,,第一步的后门历程就完成了。。。。。
第二步:通过修改目的可执行文件的指令,,,,,,,,将执行流重定向到后门代码。。。。。
这里有一个关于选择将被修改的指令主要细节, 所有二进制指令具有字节巨细,,,,,,,,为了跳转到后门代码地点,,,,,,,,将使用5或6字节的长跳跃。。。。。因此,,,,,,,,当修补二进制时,,,,,,,,将被修补的指令需要与长跳转指令的巨细相同,,,,,,,,不然上一条或下一条指令将被破损。。。。。
在putty启动后的界面中, 点击 “Open” 按钮会启动一个检查IP地点是否有用的功效。。。。。
若是IP地点字段值不为空并且有用,,,,,,,,则它启动实验毗连给定IP地点的毗连功效。。。。。若是客户端乐成建设SSH会话,,,,,,,,将弹出一个新窗口并请求凭证。。。。。
此处是重定向爆发的点,,,,,,,,由于AV产品不可够复制这种重大的情形,,,,,,,,植入的后门将不会被自动化沙盒和动态剖析机制检测到。。。。。
使用基本的逆向要领,,,,,,,,搜索下面的字符串和字符串引用,,,,,,,,不难找到毗连函数的地点,,,,,,,,要领如下:客户端建设与给定IP的毗连后,,,,,,,,有一个字符串 “login as:” 打印到泛起的窗口。。。。。这个字符串可以资助我们找到毗连函数的地点,,,,,,,,IDA Pro在这方面做得很好。。。。。
为了找到 “login as:” 字符串, 在IDA上依次翻开 Views->Open Subviews->Strings
找到字符串后,,,,,,,,双击转到所在位置,,,,,,,,在数据节内部IDA查找所有对字符串的交织引用,,,,,,,,按 “Ctrl+X”,,,,,,,,显示所有交织引用,,,,,,,,并这个引用在打印 “login as:” 字符串的函数内部。。。。。
这里是要修补的指令。。。。。在举行任何更改之前,,,,,,,,请注重上下文的指令。。。。。
执行后门代码后指令将再次使用。。。。。
通过将PUSH 467C7C指令改为JMP 0x47A478,,,,,,,,完成后门历程的重定向阶段。。。。。需要注重的是下一个指令地点。。。。。它将在执行后门代码后用作返回地点。。。。。
第三步:后门代码注入。。。。。
首先在执行后门之宿世存寄存器中的内容。。。。。寄存器中的每个值关于程序的执行都是很是主要的。。。。。通过在代码的OEP(程序入口点)安排PUSHED和PUSHED指令,,,,,,,,把所有寄存器内的值和寄存器标记都存储在客栈中。。。。。这些值将在执行完后门代码之后弹出,,,,,,,,以便程序可以继续执行不蜕化。。。。。
使用的后门代码是meterpreter反向TCP ShellCode。。。。。可是在ShellCode中需要做少量修改。。。。。通常反向TCP ShellCode会有实验毗连随处置惩罚程序的次数或时间限制,,,,,,,,若是毗连失败,,,,,,,,则通过挪用ExitProcess API挪用关闭历程。。。。。
这里是问题所在,,,,,,,,若是毗连随处置惩罚程序失败,,,,,,,,putty客户端的执行将阻止。。。。。改变几行ShellCode使其每次毗连失败时ShellCode重试毗连处置惩罚器,,,,,,,,这样也会响应的镌汰ShellCode的体积。。。。。
在汇编代码中举行更改后,,,,,,,,使用nasm -f bin stager_reverse_tcp_nx.asm下令举行编译。。。。。现在反向的TCP ShellCode已经可以使用了,,,,,,,,可是它不会被直接安排。。。。。3377体育网官网入口目的是在新线程上执行ShellCode。。。。。
为了建设一个新的线程实例,,,,,,,,需要另一个ShellCode,,,,,,,,使CreateThreadAPI挪用指向反向TCP ShellCode。。。。。这里使用Metasploit项目中建设线程的shellcode。。。。。
将 createthread.asm 文件中的代码转换为十六进制名堂的ShellCode,,,,,,,,使用nasm -f bin createthread.asm下令举行编译。。。。。在这里,,,,,,,,ShellCode准备插入到Caves中,,,,,,,,但在插入ShellCode之前应该对其编码,,,,,,,,以便绕过AV产品的静态/特征剖析机制。。。。。由于Metasploit项目中的所有编码器被大大都AV产品所知,,,,,,,,以是强烈建议使用自界说编码器。。。。。
在准确编码ShellCode之后,,,,,,,,就可以把它插入Code Caves。。。。。选择在PUSHFD下的指令,,,,,,,,然后在免调试器上按下 “Ctrl + E”,,,,,,,,ShellCode将以十六进制名堂粘贴。。。。。
使用xxd -ps createthread下令,,,,,,,,以十六进制名堂打印编码建设线程的ShellCode或使用十六进制编辑器翻开ShellCode并复制十六进制值。。。。。当将十六进制值粘贴到调试器时,,,,,,,,需要注重字节限制,,,,,,,,由于这些修补操作是用免试器举行的,,,,,,,,免调试器在粘贴到编辑代码窗口时有一个字节限制。。。。。粘贴的ShellCode可能会有遗漏。。。。。当所有ShellCode粘贴到Code Cave时后门代码就插入完成。。。。。
第四步:恢复执行流程。。。。。
在建设后门代码线程之后,,,,,,,,程序需要恢复到其正常执行流程,,,,,,,,这意味着EIP应该跳回到将执行重定向到Cave的函数。。。。。可是在跳回到该函数之前,,,,,,,,应该检索所有生涯的寄存器。。。。。
通过在ShellCode的末尾安排POPFD和POPAD指令,,,,,,,,所有生涯的寄存器都以相同的顺序从客栈中弹出。。。。。在检索寄存器后,,,,,,,,尚有一件事要做,,,,,,,,即执行被挟制的指令。。。。。
为了将程序的执行重定向到Code Cave, 我们将PUSH 467C7C指令替换为了JMP 0x47A478。。。。。把PUSH 467C7C指令放在最后,,,,,,,,此时被挟制的指令也被检索。。。。。现在可以返回到通过插入JMP 0x41CB73指令将执行重定向到Cave的函数的时间,,,,,,,,效果代码应如下图所示。。。。。
最后选择所有修补和插入的指令,,,,,,,,按右键单击并复制到可执行文件。。。。。此操作需要对已修改的每个指令执行。。。。。当所有指令被复制并生涯到文件时,,,,,,,,关闭调试器并测试可执行文件,,,,,,,,若是可执行文件运行顺畅,,,,,,,,则后门可以使用。。。。。
02 总结
随着对抗手段日益重大化,,,,,,,,长期化手艺也将演变得越发隐藏,,,,,,,,同时也对防守方提出了一个奇异的挑战,,,,,,,,由于它们可以隐藏执行后门代码,,,,,,,,以是检测和剖析历程就越发具有挑战性,,,,,,,,需要收罗大宗的数据举行剖析判别,,,,,,,,怎样在大宗的日志中怎样有用的举行检测,,,,,,,,阻止太过消耗资源,,,,,,,,都是清静运营职员要面临的挑战。。。。。
后续将继续先容隐藏长期驻留的其他要领,,,,,,,,敬请期待。。。。。
- 要害词标签:
- 3377体育网官网入口 检测与防护 长期化

京公网安备 11010802026257号