OSCP-PWK-渗透测试nc代理使用
2022-11-13 22:43:52
Author: 红日安全(查看原文)
阅读量:13
收藏
OSCP必备参考书籍之一,这本书里加详细介绍实战套路中细节,为大家可以快速了解OSCP知识点,所以团队开启这本书翻译之作。
0x02.1 Netcat公司
nc是netcat的简写,有着网络界的瑞士军刀美誉。它可以运行在linux和Windows平台上,因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具,nc具体有如下作用(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口(2)端口的扫描,nc可以作为client发起TCP或UDP连接02.1.1 连接到TCP/UDP端口
让我们首先在实验室使用netcat打开nc工具,检查下110端口(POP3邮件服务)是否打开。Please note, the IPs used in the videos will not match your Offensive Security lab IP addresses. The IPs used in this guide are for example only.(UNKNOWN) [10.0.0.22] 110 (pop3) open
通过上面输出内容我们发现,首先,通过netcat发现远程端口已经打开,IP 10.0.0.22与110端口TCP连接成功。接下来,我们可以看到服务器对我们的连接做出了响应,“回复我们”并发出服务器欢迎消息,提示我们登录,这是POP3服务的标准。(UNKNOWN) [10.0.0.22] 110 (pop3) open-ERR unable to lock mailbox
尽管我们的登录尝试失败了,但我们还是使用netcat工具与POP3服务成功的进行了关联。02.1.2 监听TCP/UDP端口
对于网络调试客户端应用程序或以其他方式接收TCP/IP网络连接使用netcat监听TCP/UDP端口非常有效。让我们尝试实现一个两台机器的简单对话,将netcat用作客户端和服务器。我们将设置netcat以监听Windows计算机(IP地址为10.0.0.22)上TCP端口4444上的连接。C:\Users\offsec>nc -nlvp 4444listening on [any] 4444 ...
一旦我们将Windows机器上的端口4444绑定到Netcat上,我们就可以从Linux机器连接到该端口上交互。(UNKNOWN) [10.0.0.22] 4444 (?) openThis chat is from the linux machine
我们通过TCP端口4444发送到Windows机器,我们可以继续以Windows机器进行“对话”,如下图1.2.1所示。
1.2.1 简单的Netcat聊天窗口虽然不是一个非常实战的示例,但这个简单的练习演示了netcat中的几个重要特性。确保你理解上述示例中的以下几个关键点:02.1.3 -使用Netcat传输文件
Netcat还可以用于将文本和二进制文件从一台计算机传输到另一台计算机。为了将文件从Linux机器发送到Windows机器,我们启动了一个与前一个聊天示例类似的设置,但是有一点细微的区别。在Windows机器上,我们将在端口4444上设置netcat监听器,并将任何命令的输入重定向到名为incoming.exe的文件中。C:\Users\offsec>nc -nlvp 4444 > incoming.exelistening on [any] 4444 ...
在Linux系统上,我们将使用wget。exe文件通过TCP端口4444发送到Windows计算机:(UNKNOWN) [10.0.0.22] 4444 (?) open
netcat在Windows机器上接收连接,如图1.3.1所示:
1.3.1 在Windows上接收的连接请注意,我们尚未看到netcat关于文件上传任何进度的反馈。在这种情况下,由于我们上传的文件很小,我们可以等待几秒钟,然后通过运行可执行文件来检查它是否已完全上传到Windows机器:C:\Users\offsec>incoming.exe -hGNU Wget 1.9.1, a non-interactive network retriever. Usage:
02.1.4 使用Netcat进行远程管理
netcat最有用的特性之一是它能够执行命令重定向。Netcat可以获取到一个可执行文件,并将输入、输出和错误消息重定向到TCP/UDP端口,而不是默认控制台。要进一步解释这一点,请使用cmd.exe可执行文件。通过将stdin、stdout和stderr重定向到网络,可以将cmd.exe绑定到本地端口。连接到此端口的任何人都将收到属于此计算机的命令提示符。为了进一步将其场景还原,请考虑以下场景,包括Bob和Alice。02.1.4.1 Netcat绑定Shell方案
在我们的第一个场景中,Bob(运行Windows)请求Alice的帮助(运行Linux),并要求她连接到他的计算机并远程发出一些命令。Bob有一个公共IP地址,并直接连接到Internet。然而,Alice位于NAT连接的之后,并且有一个内部IP地址。要完成此场景,Bob需要将cmd.exe绑定到其公共IP地址上的TCP端口,并要求Alice连接到此特定IP和端口。Bob将继续使用netcat发出以下命令。C:\Users\offsec>nc -nlvp 4444 -e cmd.exelistening on [any] 4444 ...
Netcat已将TCP端口4444绑定到cmd.exe,并将所有输入、输出或错误消息从cmd.exe重定向到网络。换句话说,任何连接到Bob机器上的TCP端口4444的人(希望是Alice)都将看到Bob的命令提示符。
inet addr:10.0.0.4 Bcast:10.0.0.255 Mask:255.255.255.0(UNKNOWN) [10.0.0.22] 4444 (?) openMicrosoft Windows [Version 6.1.7600]Copyright (c) 2009 Microsoft Corporation. All rights reserved.C:\Users\offsec>ipconfig Windows IP ConfigurationEthernet adapter Local Area Connection: Connection-specific DNS Suffix . :
下图描述了Alice在Bob的Windows计算机上获得远程命令提示符访问的绑定shell场景如1.4.1所示:02.1.4.2 -反向shell方案
在我们的第二个场景中,Alice需要Bob的帮助。然而,Alice无法控制办公室中的路由器,因此无法将流量从路由器转发到她的内部机器。bob有没有办法连接到Alice的电脑,并解决她的问题?在这里,我们发现Netcat的另一个有用特性,即反向监听主机发送命令shell的能力。在这种情况下,尽管Alice无法在本地将端口绑定到其计算机上的/bin/bash并期望Bob连接,但她可以将命令提示符的控制权发送到Bob的机器。这称为反向shell。为了使此工作正常,Bob需要设置netcat来监听传入的shell。我们将在示例中使用端口4444:C:\Users\offsec>nc -nlvp 4444listening on [any] 4444 ...
现在,Alice可以从她的Linux机器向Bob发送一个反向shell:(UNKNOWN) [10.0.0.22] 4444 (?) open
一旦建立了连接,Alice的netcat将把输入、输出和错误从/bin/bash重定向到端口4444上的Bob机器,如图1.4.2所示:1.4.2 接收反向外壳的窗口花一些时间考虑正向和反向shell之间的差异,以及这些差异如何从组织安全的角度应用于各种防火墙配置。重要的是要认识到,传出的流量可能与传入的流量一样有害。下图描述了反向shell场景,其中Bob通过公司防火墙在Alice的Linux机器上获得远程shell访问。如图1.4.3所示:02.1.5 -练习
1.在Kali和Windows系统之间实现简单的聊天对话c.将shell绑在Kali上。使用Windows客户端连接到它d.在Windows上绑定shell。使用Kali系统连接3.将文件从Kali系统传输到Windows,反之亦然4.在Windows主机上启用防火墙的情况下,再次进行练习。根据需要调整练习,以绕过防火墙监听。0x02.2 Ncat公司
Ncat被描述为“从命令行跨网络读取和写入数据的功能打包网络实用程序”。Ncat是为Nmap项目编写的,是对原始Netcat程序的一种改进。从渗透测试人员的角度来看,Netcat的主要缺点之一是它缺乏对传入和传出连接进行身份验证和加密的能力。在渗透测试期间使用这些工具时,这些选项提供了一个重要的安全层。正向或反向shell加密将有助于渗透测试人员绕过入侵检测系统,同时允许绑定正向或反向身份验证Ncat提供了所有这些功能。如果可能,应使用ncat和sbd等工具,而不是Netcat。例如,在前面的bindshell场景中,ncat可以用以下方式在Bob和Alice之间复制一个更安全的绑定shell。Bob将使用ncat在端口4444上设置SSL加密连接,并仅允许Alice的IP(10.0.0.4)连接到该端口:C:\Users\offsec>ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --sslNcat: Version 5.59BETA1 ( http://nmap.org/ncat ) Ncat: Generating a temporary 1024-bit RSA key.Ncat: SHA-1 fingerprint: 1FC9 A338 0B1F 4AE5 897A 375F 404E 8CB1 12FA DB94Ncat: Listening on 0.0.0.0:4444 Ncat:
反过来,Alice将连接到启用SSL加密的Bob的公共IP,以防止窃听,甚至可能是IDS检测。[email protected]:~# ncat -v 10.0.0.22 4444 --ssl Ncat: Version 6.25 ( http://nmap.org/ncat ) Ncat: SSL connection to 10.0.0.22:4444.Ncat: SHA-1 fingerprint: 1FC9 A338 0B1F 4AE5 897A 375F 404E 8CB1 12FA DB94Microsoft Windows [Version 6.1.7600]Copyright (c) 2009 Microsoft Corporation. All rights reserved.
花点时间了解ncat和sbd。在现实世界的渗透测试中,它们都是非常有用的工具。
02.2.1 练习
1.使用Ncat创建从Windows系统到Kali机器的加密反向shell2.在Windows VM上创建加密绑定shell。尝试在不加密的情况下从Kali连接到它。它仍然有效吗?3.在Windows系统上制作一个未加密的Ncat绑定shell。使用Netcat连接到shell。它有效吗?0x02.3 结论
关于以上bash脚本编写还是linux分析命令,大家要下来以后多加练习,从书上我们如何在日志中找到攻击者攻击量最多的攻击者,所以学习以上命令你将会使用命令分析日志文件。
红日安全长期、短期项目招聘:Hvv、重保、安服、培训等项目
文章投稿&项目招聘邮箱:
annapeng2021@163.com
同样感谢一直在安全圈中深耕着的每一位hacker
描下方二维码,期待加入红日安全交流群:
有幸一起并肩前行,有幸一起见证着“红日”成长。在大家身上我已经收获得足够多了,是时候用实际行动向安全世界说声谢谢了。
翻译:小峰
编辑:小jia
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!海量安全课程
阅读原文 即可观看
文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NjEyMDk0MA==&mid=2649851492&idx=1&sn=0523a627eaafc21c91adf97410e73612&chksm=f3e4e8e7c49361f1dd5fc85d37e9026411c4861732e4dcf3113ee8d0f1095d74b4158fa6199d#rd
如有侵权请联系:admin#unsafe.sh