前言
很久没做内网了,温习一下。希望正在学习安全的小伙伴不要踏入我初学内网的误区。
先来谈谈我对内网的理解吧,不是技术的方向。
内网学的东西很多,很杂。当时我问了我的大哥,他给我的一句话确实影响我至今。我说内网就说信息收集,cmd命令能收集,powershell收集也很多,还有类似wmic,或者一些脚本语言写的信息收集工具,太多了,这些都要学真的太浪费时间了。他是这么跟我说的,很多东西你要学一辈子都学不完,但是你把一个东西学好了,结果都是一样的。确实是这么个道理,学习需要广度,能让你碰到不同的情况乃至极限情况你有解决问题的思路。学习需要深度,你能在正常情况下创造乃至开辟一条新的道路。所以说完全没有必要什么命令都背什么命令都记得清清楚楚,最重要的是要有自己的一套渗透手法,能够达到效果,就是好的。没人在乎你的过程,除非你真的很6。好了。开始今天的主题。
内网这一块不是我的擅长,但是也有幸参加过一些护网,做过一点内网渗透。总结性的来说说我的思路。
一般来说,我们拿了权限做的第一件事是维权,维权这一块以后再说。因为现在很多时候涉及免杀,免杀这一块我研究的不是很多。然后就会对当前主机进行信息收集。我就献丑说一下自己的信息收集思路。可能命令不是很多,都是靠平时自己收集的,主要是提供一个思路,如何实现自动化并且不触发告警,才是应该操心的。
文件类
(1)配置文件
如果是从web打进去的,配置文件是一定要找到,找到了数据库的账号密码,如果是站库分离可能会拿下第二台,如果不是也能获取数据库的数据,或者说用来做密码复用。配置文件一般就在web目录找config等标志性文件。其中如果密码存在加密的大众系统可以试试去github找找有没有解密脚本。自定义的加密可以尝试找源码进行破解。
(2)敏感文件
桌面是一定要看的,很多人有保存文件在桌面的习惯,特别是个人机。很有可能记录了一些密码信息或者其他网站的登录账号密码信息,以及一些敏感文件。
(3)其他目录
这种就是比较随缘了,因为个人习惯不同,稍微有点安全的人可能不会放在桌面,放在D盘啊等地方。这种可能就不是很好找,但是也可以全局搜索文件名,文件内容包含passwd,user,password等字段的文件。回收站也可以看看。
下面放一些我常用的命令,来源于之前记录的别人发的,但是原文找不到了。自己根据实际情况改。
第一阶段:计算机信息类
毕竟域环境多了一些拿域控,或者kerberos认证等等的东西,就还是分开吧。很多时候盲目的去找一些命令是徒劳无功的,最主要是你要清楚自己要做什么,针对性的作信息收集。这里都是说的手动的,工具类的会放到最后面。
工作组
(1)ip信息(主要判断自己的位置已经确定能横向的方向)
还有其他的可以自行去做去找,正常情况下这几个命令也够了,wmic ps那些也可以做到,但是没必要,集成的现在太容易被杀了,其他工具也还是靠着平时自己积累。
(2)端口收集(主要是判断开放了哪些端口,和哪些机器连通,有没有后续利用的可能)
netstat-ano //一条就够了,不需要太多的花里胡哨 也可以自己去根据习惯找一些其他的方式。还有一些简化的比如查看特定状态端口根据自己的需要去筛选。findstr命令等实现。
(3)进程收集(主要是看看开启了哪些进程,管理员进程可能涉及提权,杀软进程可能涉及免杀,还有一些第三方的进程可能涉及可以做权限维持,这种都是根据需要去确定的)
对于防火墙配置一类的,我这里没有涉及,是因为特殊情况下才会做。
(4)服务收集(主要是可能涉及一些提权,已经从服务中提取敏感信息比如说抓取密码等,可以通过产品和进程去判断)
(5)计划任务 (涉及提权,权限维持等,也可能通过计划任务发现脚本文件中可能存在敏感内容)
(6)用户收集(主要是对提权或者横向移动做铺垫)
(7)凭证收集
这一块最常用的还是抓hash,肯定首推是mimikatz。不过要做好免杀,免杀的方式就不说了,之前测试一些脚本加载过某0还是没有问题的,现在很久没弄过了不知道了。关于其他的一些比如xshell,浏览器密码抓取的工具,就需要自己平时多收集了,当前有条件的自己写也还是没问题的。还要个人机上一些wifi密码可能也有用,这个就看自己习惯了。
(8)其他收集(主要是一些共享啊之类的)
域环境
工作组的环境比较单一,且鉴权都是在本地做,所以没有太多的花里胡哨。域环境可能会麻烦一点,接下来我会从思路上去简述信息收集,争取能够给大家一个比较清晰的脑图,现在我们暂定我们的目标是域控。
(1)当我们拿到一个机器之后,肯定是先判断域环境
(2)确实是域环境以后,要对本机做信息收集
(3)需要判断域控
(4)鉴于有委派或者约束委派这些攻击方式,可能会需要查找一些服务用户,也就是spn相关。
(5)域环境中exchange的权限很高的,有经验的老师傅可能会进来就找邮服,这一块我没有做过,就说一下我自己收集的。
(6)面试的时候会必问的问题,如果寻找域控,如何拿下域控,对于这些方法需要的前提,都是我们必须要进行收集的。
对于本机的收集上面重复的我就不多说了,注意一下下面的点就行了。
(1)ip收集
此时的ip收集我们需要关注一下dns,因为通常情况下,域控可能就是dns服务器。
(2)端口搜集
本机端口收集还是正常的和工作组一样
(3)进程收集
此时的进程收集我们需要留意一下域管启用的进程,如果能够窃取hash,或者直接导出域管hash,基本已经意味着我们有域控权限了。
(4)服务收集
(5)用户与机器收集
(6)凭证收集
和上面一样,只不过这里可以针对权限去分出来从目前的用户看我们有什么权限
(7)其他收集
也是属于捡垃圾了,杂七杂八的收集,没想到,想到了再说。
第二阶段:横向信息收集
经过我们上面各个模块的收集完成后,我们对我们当前计算机的情况已经有所了解了。该提权提权,改拿小本本记录就记录。现在进入第二阶段了,横向移动的收集。横向我分为两种,一种是定向横向,比如我专门打邮服,或者专门打弱口令,只扫描特定端口。还有一种是全方位横向,就是我对所有可达的ip端都进行探测,这种动静就会比较大,但是横向最主要其实也是收集ip和端口了。有web业务打web,有弱口令能ssh或者rdp就试试,ftp能匿名访问也是分,redis未授权可能还能弹回来个shell。这里就八仙过海各显神通了。我这里分为ip和端口进行收集来讨论。
ip类
集成的工具最后再说,先说手动的。
常见的可能是利用脚本或者cmd命令进行收集。这里列举几个
端口类
按照这种思路下来,我们只需要针对我们某个步骤,选择我们理想的方式或者工具去实现,就能收集到很多的信息。而且思路清晰,明确自己下一步需要做什么。
工具
用户
用户爆破
https://github.com/ropnop/kerbrute
用户枚举
https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
https://github.com/mubix/netview/
获取服务用户
kerberoast
GetUserSPNs.ps1
ip
(1)nbtscan.exe
(2)arpscan.exe
(3)ServerScan https://github.com/Adminisme/ServerScan
(4)msf模块
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/netbios/nbname
端口
端口爆破
PortBrute https://github.com/awake1t/PortBrute
服务
MSF
auxiliary/scanner/smb/smb_version
auxiliary/scanner/ftp/ftp_version 发现ftp
auxiliary/scanner/ssh/ssh_version 发现ssh
auxiliary/scanner/telnet/telnet_version 发现telnet
auxiliary/scanner/mysql/mysql_version 发现mysql
密码爆破
https://github.com/fireeye/gocrack
https://github.com/dafthack/DomainPasswordSpray
web扫描
https://github.com/broken5/bscan
https://github.com/phantom0301/PTscan
域与非域集合工具
(1)Seatbelt.exe
Seatbelt.exe -group=user -full 运行普通用户权限检查的模块 -full返回输出
Seatbelt.exe -group=all 运行所有模块(需要管理员权限)
Seatbelt.exe -group=system #运行检查系统相关的信息
Seatbelt.exe -group=misc #运行所有其他检查(包括浏览器记录)
Seatbelt.exe -group=chrome 运行浏览器历史等模块
(2)BloodHound
https://github.com/BloodHoundAD/BloodHound/releases
(3)WinPwn
https://github.com/S3cur3Th1sSh1t/WinPwn/
(4)domainTools
https://github.com/SkewwG/domainTools
(5)Rubeus.exe
https://github.com/GhostPack/Rubeus
(6)powerview && powersploit
(7)fscan
https://github.com/shadow1ng/fscan
集合脚本
最后
自动化方便是一回事,必然会带来弊端。动静大,易查杀等。脚本小子终究只是一时爽。最后还是要自己走安全开发自己写工具,在特定的环境下能实现功能才行。就难得总结工具了,多培养培养思维多学习学习底层还是长久之道。
这篇文章只是抛砖引玉给大家提供一个思路,还有很多东西没用收到。但是信息收集和漏洞利用总是相依相存的。比如委派,邮服这些。或者是需要一些漏洞利用链的时候。扩大自己的攻击技术和攻击面,了解新的攻击方式应该是最重要的,可能一条路不同我换了一种攻击方式,搜集一下需要实现的前置条件都满足,自然也就打下来了。随机应变。有些工具是之前收集的说实话都没有用上过,所以工具在精在顺手不在多。选择合适自己的才最重要。参考文献
福利
关注私我获取更多【网络安全学习攻略·资料】