当我们拿到一个webshell后 首先第一步就是进行一个信息收集 判断有无域

非域环境(工作组)

目的:尽可能多的获取内网主机的权限,获取内网重要的数据,资料。
思路: 查看当前主机权限通常一个webshell是一个普通用户权限。进行一个基本的本机信息收集systeminfo 查看补丁情况 看是否有合适的漏洞进行一个提权。提权完成后,对本机的敏感文件或者目录进行一个收集,尽可能收集一些账号密码。因为内网中还是比较多弱口令的可以对探测到的服务进行暴力破解,但这样动静比较大。然后探测存活主机,内网是否还有web服务器有的话可以进行一个web的渗透。还可以尝试常见的Web漏洞。对于Windows主机,还可以尝试MS17_010、CVE-2019-0708之类的漏洞。提权到administrator后可以抓取本机的密码。提权失败的话可以对内网其他主机进行攻击,拿下另外的主机作为突破口。所以收集一些敏感的信息还是很重要的!

ps:如果目标机器上有杀软的话要做免杀 不然寸步难行 包括流量加密等等

提权

对于Windows系统,只有提权到管理员权限后,才可以运行mimikatz以及执行一些其他高权限的操作。
对于Linux系统,很多命令需要root权限才能执行,只有提权到root权限才能执行后面的信息收集等工作。
如果该主机不能提权至 管理员/root 权限的话,则我们要尽可能多的搜集该主机上的信息,然后对内网其他主机进行攻击,拿下另外的主机作为突破口。

敏感信息收集

Dir c:\*.doc /s
Dir /b/s password.txt
Dir /b/s config.*
Dir /s *pass* == *cred* == *vnc* ==*.config*

敏感信息定位

站点源码备份文件,数据库配置文件备份,数据库备份文件(后缀.zip、xx.sql)
各类数据库的web管理入口,例如:phpmyadmin、adminer…
浏览器密码和浏览器cookie获取(Ie、Chrom、Firefox) 
其他用户session,3389和ipc$连接记录,各用户回收站信息收集
目标内部各种账号密码信息,包括邮箱、Vpn、Ftp、Teamview……
vpn:mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit

探测存活主机

设置一个socks代理将攻击机带进去
各种工具扫描

内网攻击

永恒之蓝MS17-010
CVE-2019-0708
服务弱口令爆破
Web服务漏洞挖掘
哈希传递攻击(PtH)

域环境渗透

域渗透目的:获得域管理员账号,登录域控,进而控制域内所有主机,获得域内重要的信息
域渗透的思路:先获取域内一台主机的权限,查看当前获取权限的用户是本地用户还是域用户。

本地用户:如果是本地用户,则按非域环境渗透思路,提升为administrator权限后,则可以执行域命令。如果提权失败,则想办法获取下一个主机权限,再查看是否是域用户或administrator权限。如此反复,最终需要能执行域命令,进行域渗透。
域用户:直接进行各种域命令的查询,域内的横向渗透

辨别当前用户是本地用户还是域用户?
在 cmd 界面,输入 hostname 查看主机名。再输入 whoami 查看当前身份:
本地用户:计算机名账户名
域用户:域名账户名

域信息收集
以下命令只有域用户和本地administrator用户可使用,因为这些查询命令本质上都是通过 LDAP(LightweightDirectory Access Protocol) 协议去域控制器上查询的,查询的时候需要经过权限认证,当域用户执行查询命令时,会自动使用kerberos协议进行认证。本地用户是无法运行以下命令的(本地 administrator 用户除外。在域里面,除了普通用户,所有主机都有一个机器用户,用户名为机器名加“$”。system 用户对应的就是域里面的机器用户,而 administrator 可以直接提升为system用户,所以本地administrator用户也是可以运行以下域查询命令的)。

net time /domain                            #查看时间服务器
net config workstation                      #查询当前登录域及登录用户信息
net view /domain                            #查看有几个域
net view /domain:xxx                        #查看域内的主机
net user  /domain                           #获取域用户列表
net group /domain                           #查看域里面的组
net group "domain users"  /domain           #查看域用户
net group "domain controllers" /domain      #查看域控制器DC
net group "domain computers" /domain        #查看域内所有的主机
net group "domain admins"  /domain          #查看域管理员
net group "enterprise admins" /domain       #查看企业管理组

使用各类脚本收集等等等等

查找域管理员进程并迁移到该进程
在内网渗透中,我们往往得不到域管理员的明文账号密码或密码哈希。所以,我们要想得到域管理员的权限,另一个思路就是通过找到机器上域管理员开启的进程,迁移到该进程模拟域管理员,进而获得域管理员权限。而找到域管理员开启的进程这不是那么简单的,需要不停的内网横向移动获取新的服务器的权限,直到找到一台机器上有域管理员开启的进程为止

如果查找到域管理员进行,我们可以使用migrate命令迁移到该进程,这样,我们就获取到域管理员权限了。迁移到该进程后,我们可以执行以下命令创建用户,并将用户添加到域管理员组中远程开启3389连接

横向移动
当我们获取到域账号的明文密码或者哈希后,可以尝试进行横向攻击

RDP远程连接:普通账号即可,但是动静大,容易被发现,不到万不得已最好不要远程连接。
IPC$远程连接:需管理员组内账号,对方主机需开启IPC$共享,连接成功后执行at、tasklist、schtasks等命令可获取权限。
psexec远程连接:需管理员组内账号,对方主机需开启admin$共享
WMIC远程连接:需管理员组内账号,对方主机需开启admin$共享
smbexec远程连接:需管理员组内账号,对方主机需开启C$共享
WinRM远程连接:需管理员组内账号,对方主机需开启WinRM服务
DCOM远程连接:需管理员组内账号
如果主机只开启了135端口,则可以使用:使用135端口进行免杀横向移动(WMIHACKER)
哈希传递攻击(Pass-the-Hash,PtH)

内网横向渗透
域内网横向渗透,除了常规的横向渗透外,还可以使用域内独有的横向渗透方法:

内网域渗透之MS14-068(CVE-2014-6324)
域渗透之Kerberoast攻击
域渗透之委派攻击
NTLM Relay攻击
AS-REP Roasting攻击
Bypass Applocker

域信息获取(NTDS.dit)
当我们获取到域内管理员的权限后,我们肯定会想办法导出域内所有的信息,而这所有的信息都保存在域控的NTDS.dit文件中。导出域用户散列值
其中最特殊的就是kdc的账号吧 拿到他的hash值我们就可以伪造黄金票据进一步扩大危害

权限维持

域控权限持久化之票据传递攻击(Pass the Ticket,PtT)
域控权限持久化之SID History域后门
域控权限持久化之Skeleton Key(万能密码)
域控权限持久化之DSRM后门
域控权限持久化之SSP安全服务提供
域控权限持久化之Hook PasswordChangeNotify
利用委派打造隐蔽后门(权限维持)

痕迹清除
删除入侵日志等等等等

参考文献:https://xie1997.blog.csdn.net/article/details/90707329


本文由 wulaoban 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论