返回网站首页
当前位置:主页 > 汽车修理厂 >
【渗透技巧】手把手教你如何进行内网渗透
作者:admin  日期:2021-12-03 09:24 来源:未知 浏览:

  今期开码结果开奖,内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。

  内网相关概念这里不再进行介绍,大家可以自行百度,诸如什么是域、域与工作组的区别、什么是DC、什么是AD等。当然,概念是生涩难懂的,结合实际环境会有助于理解。某内网靶场的详细教程:Vulnstack(一)

  内网渗透过程中经常会涉及到内网穿透,如何理解内网穿透以及端口转发、端口映射等相关知识可以参考:如何从零构建对内网穿透的理解

  实操部分写的比较草率,主要是为了增强认知、扩展思路、扩充知识面。实际上有很多优秀的集成化工具,很少会拆分开来单独使用这些方法。当然,大多数情况下是要考虑免杀的,免杀时可能会将某一步操作拆分出来,单独进行免杀和利用。

  查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞:

  这个命令在DC上可以直接执行,在其他域主机上执行要求打开DC的RPC服务。

  当然也可以借助nmap、masscan等第三方工具或empire、nishang等第三方脚本,但是使用系统命令的最大好处就是不用考虑免杀。

  域内其实还有一台机器STU1,但它开了防火墙,所以是禁ping的,这可能也是前面net view时没有显示STU1的原因。我们关了防火墙再试一遍:

  需要注意的是,Mimikatz属于第三方软件,直接上传到目标主机可能被杀毒软件查杀,这时我们可以配合官方软件Procdump,将Procdump上传目标主机获取用户信息(该文件不可读),使用本地的Mimikatz打开Procdump获取的用户信息。

  前面已经说了,内网渗透主要是基于口令的攻击。同一域内的主机不计其数,域用户不计其数,为了便于记忆和管理,域成员的密码很多都会有重合。当我们拿到某个域成员的密码,就可以利用它把口子越撕越大,不断丰富我们的密码字典,然后不断地对域内主机进行爆破,直至拿下DC。

  Windows提供了许多协议和相关功能,我们可以利用这些功能和协议传递用户的凭证进行验证。

  SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。

  命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。

  这么说吧,域内最重要的是啥?一个是为了保障安全(内网与外网相隔绝),另一个就是资源共享,毕竟大家都是一条船上的人。SMB 协议就是用于实现各种资源的共享的,其中就包括IPC连接中的命名管道。

  我的理解就是,445是139的升级,139实现条件比445更苛刻,但两者都是为了实现SMB协议,因此两者并不冲突。在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。

  IPC(Inter-Process Communication,进程间通信),进程间通信是指两个进程的数据之间产生交互。进程间通信主要方式有共享内存、消息队列、管道等。其中共享内存主要用于同一计算机内进程间通信,消息队列和管道主要用于分布式环境(通信进程位于通过网络连接的不同计算机)。

  “命名管道”又名“命名管线”(Named Pipes),是一种简单的进程间通信(IPC)机制,Microsoft Windows大都提供了对它的支持(但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。推荐用命名管道作为进程通信方案的一项重要的原因是它们充分利用了Windows内建的安全特性(ACL等)。

  与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议。它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限(SMB协议)。

  在快速局域网 (LAN) 环境中,传输控制协议或 Internet 协议 (TCP/IP) 套接字客户端和 Named Pipes 客户端在性能方面不相上下。但是网络速度越慢,TCP/IP 套接字客户端与 Named Pipes 客户端的性能差异越明显。这是因为TCP/IP 套接字的数据传输的效率更高,开销也更少。数据传输还可以利用 TCP/IP 套接字性能增强机制的优点,如开窗口、延迟确认等,这在慢速网络中可能非常有益。而对于命名管道,通常网络通信交互性更强。一个对等项直到另一个对等项使用读取命令请求数据时才发送数据。在开始读取数据前,网络读取一般包括一系列窥视命名管道的信息。这在慢速网络中可能花费非常多并导致过多的网络流量,其它的网络客户端反过来也会受到影响。

  提高速度:假设同样在局域网中,那么使用命名管道协议会比TCP/IP协议快一些。

  增加安全性:因为命名管道是只能用于局域网的,那么如果服务器关闭了TCP/IP协议而仅启用命名管道,就可以避免一些安全隐患。

  简单来说,咱们在cmd或者powershell中使用的命令行语言,就是VMI支持的,它提供给我们一个接口如powershell,便于我们管理计算机。

  谈及远程管理,延申几个比较重要的端口,如22、23、135、139、445、3389等。139、445端口我们前面已经讨论过了,22端口是linux的ssh,23端口是telnet,3389是远程桌面连接rdp,这些都比较好理解。咱们重点来说一下135端口。

  135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够包括HTTP协议在内的多种网络传输。

  进程间通信(IPC)是在多任务操作系统或联网的计算机之间运行的程序和进程所用的通信技术。有两种类型的进程间通信(IPC)。

  本地过程调用(LPC):LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。

  远程过程调用(RPC):RPC类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNⅨ操作系统的计算机中。

  简单来说,RPC就是用于支持远程IPC的连接。无论是本地连接还是远程连接,都要依托于VMI服务进行管理。

  SMB协议用于实现共享,IPC用于建立连接,不连接怎么共享?前面已经说了,共享是包括命名管道的,而命名管道正是连接方式,因此SMB协议的共享其实是包含IPC的,不仅如此,它还依赖于IPC连接。但是归根结底,对于连接后的计算机的远程管理,还是要依托于VMI。

  已拿下内网中一台主机的权限(webserver),掌握该主机的域用户名和密码,知道域内其他用户名。

  3.查看目标时间,创建计划任务(at、schtasks)定时执行copy的脚本

  先将恶意文件上传到外围打点时拿下权限的webserver上,再通过前面建立的远程IPC连接将恶意文件从webserver copy到目标主机:

  impacket是一个打包好的工具包,里面包含了对于各种协议和系统命令的利用工具。对于at&schtasks,我们可以使用impacket中的atexec.exe,使用它可以轻松地进行远程连接并执行系统命令。

  在实战中,当我们拿下了webserver,获取了webserver上的密码以及所有的域用户、本地用户、域内存活主机IP后,我们就可以以用户为用户字典、IP为IP字典、密码为密码字典,进行批量连接(碰撞),探测哪些主机可以成功连接。一旦成功连接,便意味着我们可以通过计划任务等方式拿到连接的主机权限。拿到新的主机权限后,我们就可以获得新的主机密码,然后丰富自己的密码字典,再进行批量连接(碰撞)。循环往复,直至拿下DC。

  如上图所示,使用bat脚本只能遍历一个变量,如果想要同时遍历三个变量,可以使用python。例如建立三个列表,使用三个循环进行遍历,循环生成命令执行语句(string),最后使用python os模块中的os.system函数执行系统命令。但需要注意的是,域内主机上很可能没有python环境,因此我们需要借助python中的pyinstaller模块,它可以将py脚本打包成可执行文件,直接在windows上运行:

  psexec是微软官方pstools中的工具,所以不需要考虑免杀。其中上图中说到,psexec第二种方法和smbexec无需建立IPC连接,我认为是不合理的。这几种方法只是命令不同罢了,提供明文账户密码的时候也是要建立IPC连接的,因为这个利用就是基于IPC的共享。

  另外需要注意的就是,官方是不支持hash连接的,如果想要使用hash连接(仅能得到hash),可以使用impacket工具包,但是要做好免杀。

  我个人认为,前面介绍的几种方法没啥区别,都是基于IPC$共享,都需要139/445端口的开启,初此之外,还离不开135端口,因为135端口时用于支持远程IPC建立的。IPC$共享的目的是为了便于管理员进行远程操作和管理,但是我们可以利用验证时的回显进行密码爆破。

  如果仅得到了Hash,既可以尝试在本机破解,也可以使用前面介绍的impacket。impacket中的工具能传递hash并能直接执行系统命令,优点:自带提权,命令简洁,功能强大。缺点:非官方工具,容易被杀。

  PTH、PTK均可以使用mimikatz进行获取和攻击,这里不再赘述,mimikatz相关使用自行百度。

  PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的。

  2.将 TGT 进行加密签名返回给客户机器,只有域用户 krbtgt 才能读

  3.然后客户机将 TGT 发送给域控制器 KDC 请求 TGS(票证授权服务)票证,并且对 TGT 进行检测

  4.检测成功之后,将目标服务账户的 NTLM 以及 TGT 进行加密,将加密后的结果返回给客户机。

  说白了,票据就跟cookie一样,我们需要获取新鲜的cookie(未过期,主机登录后十小时左右过期),然后注入内存当中,通过伪装混过认证。

上一篇:海信智能交通助力威海20公里只遇到两个红灯获央视记者点赞
下一篇:西部数码双11促销:域名、云服务器、小程序优惠最新出炉