内网信息收集

内网信息收集的作用

可以通过信息收集判断当前设备的角色、当前网络的环境、当前所属的区域,绘制出大概的内网整体的拓扑结构图

区域:

普通办公区设备
DMZ区域的WEB服务器
内网普通WEB服务器
开发测试服务器
文件共享服务器
代理服务器
DNS服务器
核心业务系统服务器

设备信息:

设备提供服务
设备所处位置
设备主机名
设备内部文件
设备网络连接

设备关键信息

敏感信息收集

资料、文件和数据

核心业务机器

敏感信息和文件

应用与文件形式信息收集

  • 拿下一台机器后要先维权,权限稳了再收集信息,信息收集一定要全面仔细,信息收集完了再搞内网

  • 往目标主机中传工具用完就删

  • 翻文件的话,可以使用一些搜索命令来快速寻找

前后端基本架构

渗透测试人员需要对目标网站的基本情况进行简单的判断,分析目标服务器所使用的web服务器、后端脚本、数据库、系统平台等

本机信息收集

Windows
Linux

网络

ipconfig /all

ifconfig

操作系统

- systeminfo | findstr OS - systeminfo | findstr "KB" - systeminf0 | findstr /B /C:"OS 名称" /C:"OS 版本" - echo %PROCESSOR_ARCHITECTURE%

- uname –a - cat /proc/version

软件及版本

- wmic product get name,version - powershell "get-wmiobject -class win32_product | select-object -property name,version"

- dpkg –l - dpkg –l <软件名称>

服务

- wmic service list brief - net start - 检测是否安装杀软:https://www.ddosi.org/av/1.php

- service --status-all - service <服务名> status

进程

- tasklist - wmic process get name,processid

- ps –aux - ps –ef - ps –aux | gerp ftp

启动程序

wmic startup get command,caption

dmesg

计划任务

- at - schtasks - net start - chcp 437 && schtasks /query /fo LIST /v > tasks.txt

crontab -l

开机时间

net statistics workstation

- cat /proc/uptime - date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" - cat /proc/uptime | awk -F. '{run_days=$1/86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

用户

- 本机用户列表:net user - 本地管理员组信息:net localgroup administrators - 当前在线用户:query user

- cat /etc/passwd - cat /etc/group

会话

net session

端口

netstat –ano

netstat –antpl

补丁

- systeminfo - wmic qfe get Caption,Description,HotFixID,InstalledOn

共享

- net share - wmic share get name,path,status

路由及ARP

- route print - arp -a

- route - arp –a

防火墙

- 查看防火墙配置:netsh firewall show config - 关闭防火墙配置:netsh firewall set opmode disable - 关闭防火墙配置:netsh advfirewall set allprofiles state off - 允许指定程序全部链接:netsh firewall add allowedprogram c:\nc.exe "allow nc" enable - 允许指定程序入站:netsh advfirewall firewall add rule name= "pass nc" dir=in action=allow program="C:\nc.exe" - 允许指定程序出站:netsh advfirewall firewall add rule name= "out nc" dir=out action=allow program="C:\nc.exe" - 允许RDP(3389)端口放行:netsh advfirewall firewall add rule name= "Remote Desktop" protocol=TCP dir=in localport=3389 action=allow - 自定义防火墙日志的储存位置:netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"

代理

- 代理配置:reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

远程

- 查看远程连接端口(16进制需要转成10进制):reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber - 查看远程桌面开启状态:REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD - 打开远程桌面:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f - 关闭远程桌面:wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0 - 关闭远程桌面:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 1 /f

权限及SID

whoami /all

whoami

自动收集信息

为了简化操作,可以创建一个脚本, 在目标机器上完成流程、服务、用户账号、用户组、网时区等信息的查询工作。

利用 WMIC 进行信息收集:创建 wmic.bat 文件 写入如下内容,运行后生成 .html 文件

域内信息收集

描述
命令

查询域名

ipconfig /all

查询DNS的记录

nslookup <域名>

存在用户

dsquery user

域内用户详细信息

wmic useraccount get /all

判断主域控

netdom query pdc

用时间服务器判断主域

net time /domain

当前登录域及用户信息

net config workstation

查询域

net view /domain

域内所有计算机

net view /domain:<域名>

所有域用户列表

net user /domain

本地管理员组用户

net localgroup administrators

查询域内所有用户

net group /domain

域管理员列表

net group "domain admins" /domain

企业管理员列表

net group "Enterprise admins" /domain

域成员计算机列表

net group "domain computers" /domain

域控列表

net group "domain controllers" /domain

域密码策略信息

net accounts /domain

域信任信息

nltest /domain_trusts

域控主机名

nltest /DCLIST:<域名>

域管理进程

tasklist -v

域内活跃主机探测

NetBIOS扫描

  • NetBIOS(Network Basic Input/Output System)即网络基本输入/输出系统协议

  • NetBIOS 协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,几乎所有的局域网都是在 NetBIOS 协议的基础上工作的

  • nbtscan.exe 是一个命令行工具,可以扫描本地或者远程网路上开放的 NetBIOS 名称服务,可以获取对应的域名信息

  • 某些版本的 windows 操作系统允许用户通过 NetBOIS 查询已登录用户,可用通过脚本扫描远程系统活跃域中的管理会话

ICMP扫描

ICMP 协议全称为 Internet Control Message Protocol (Internet控制报文协议),依次对内网中的每个 IP 地址执行 ping 命令,可以快速找到内网中全部存活的主机

ARP扫描

地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个 CP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址

Nishang脚本

项目地址:https://github.com/samratashok/nishang

域内端口扫描

Metasploit

常需扫描的端口有:22,80-89,110,389,1099,1433,2059,6379,7001,8080,1521,3306,3389,5432,53,161,137,139

端口
服务
入侵方式

21

ftp/tftp/vsftpd文件传输协议

爆破/嗅探/溢出/后门

22

ssh远程连接

爆破/openssh漏洞

23

Telnet远程连接

爆破/嗅探/弱口令

25

SMTP邮件服务

邮件伪造

53

DNS域名解析系统

域传送/劫持/缓存投毒/欺骗

67/68

DHCP服务

劫持/欺骗

110

pop3

爆破/嗅探

139

Samba服务

爆破/未授权访问/远程命令执行

143

Imap协议

爆破

161

SNMP协议

爆破/搜集目标内网信息

389

Ldap目录访问协议

注入/未授权访问/弱口令

445

smb

ms17-010/端口移出

512/513/514

Linux Rexec服务

爆破/Rlogin登录

873

Rsync服务

文件上传/未授权访问

1080

socket

爆破

1352

Lotus domino邮件服务

爆破/信息泄露

1433

mssql

爆破/注入/SA弱口令

1521

oracle

爆破/注入/TNS爆破/反弹shell

2049

Nfs服务

配置不当

2181

zookeeper服务

未授权访问

2375

docker remote api

未授权访问

3306

mysql

爆破/注入

3389

Rdp远程桌面链接

爆破/shift后门

4848

GlassFish控制台

爆破/认证绕过

5000

sybase/DB2数据库

爆破/注入/提权

5432

postgresql

爆破/注入/缓冲区溢出

5632

pcanywhere服务

抓密码/代码执行

5900

vnc

爆破/认证绕过

6379

Redis数据库

未授权访问/爆破

7001/7002

weblogic

java反序列化/控制台弱口令

80/443

http/https

web应用漏洞/心脏滴血

8069

zabbix服务

远程命令执行/注入

8161

activemq

弱口令/写文件

8080/8089

Jboss/Tomcat/Resin

爆破/PUT文件上传/反序列化

8083/8086

influxDB

未授权访问

9000

fastcgi

远程命令执行

9090

Websphere控制台

爆破/java反序列化/弱口令

9200/9300

elasticsearch

远程代码执行

11211

memcached

未授权访问

27017/27018

mongodb

未授权访问/爆破

定位域管理员

psloggedon

  • 在 Windows 上可以执行 net session 来查看谁使用了本机资源,但是没有命令可用来查看谁在使用了远程计算机资源,谁登陆了远程计算机资源,使用 psloggedon 可以解决这一问题。

  • 地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon

  • 用法:psloggedon [- ] [-l] [-x] [\\computername | username]

PVEFindADUser

  • 用于查找活动目录用户登录位置,枚举域用户,查找在特定计算机上登录的用户,包括本地用户,通过RDP登录的用户,用于运行服务和计划任务的用户。运行该工具需要 .NET Framework2.0 环境,并且具备管理员权限。

  • 用法:PVEFindADUser.exe -current

netview

  • 使用 WinAPI 枚举系统,利用 NetSessionEnum 找寻登录会话,利用 NetShareEnum 找寻共享,利用 NetWkstaUserEnum 枚举登录的用户。大部分功能不需要管理员权限。

  • 地址:https://github.com/mubix/netview

PowerView(常用)

  • powerView.ps1 是一款依赖 powershell 和 wmi 对内网进行查询的常用渗透测试脚本,集成在 powersploit 工具包中,是一个收集域信息很好用的脚本。

  • 地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView

PowerShell收集信息

PowerShell是微软推出的一款满足管理员对操作系统及应用程序扩展需求的一个脚本环境,是cmd.exe的加强版

4种执行权限

  • Restricted - 默认的设置,不允许任何script运行

  • AllSigned - 只能运行经过数字证书签名的script

  • RemoteSigned - 本地脚本不做限制,网络上下载的script就必须要有数字签名

  • Unrestricted - 允许所有的script运行,权限最高

脚本地址:https://github.com/PowerShellEmpire/PowerTools

PowerView

PowerView 是一款依赖 Powershell 和 WMI 对内网进行查询的渗透测试脚本

常用命令

命令
描述

Get-NetDomain

获取当前用户所在域的名称

Get-NetUser

获取所有用户的详细信息

Get-NetDomainController

获取所有域控制器的信息

Get-NetComputer

获取域内所有机器的详细信息

Get-NetPrinter

获取域中所有当前计算机对象的数组

Get-NetOU

获取域内的OU信息

Get-NetGroup

获取所有域内组和组成员的信息

Get-NetGroupMember

获取指定域组中所有当前用户的列表

Get-NetFileServer

根据SPN获取当前域使用的文件服务器信息

Get-NetShare

获取当前域内所有的网络共享信息

Get-DFSshare

获取域上所有分发文件系统共享的列表

Get-NetSubnet

获取域的其他网段

Get-NetSite

获取域内的当前站点

Get-NetDomainTrust

获取当前用户域的所有信任

Get-NetForestTrust

获取与当前用户的域关联的林的所有信任

Find-ForeignUser

枚举在其主域之外的组中的用户

Find-ForeignGroup

枚举域组的所有成员并查找查询域之外的用户

Invoke-MapDomainTrust

尝试构建所有域信任的关系映射

Get-NetLoggedon

获取主动登录到指定服务器的用户

Get-NetLocalGroup

获取一个或多个远程主机上本地组的成员

Get-NetSession

获取指定服务器的会话

Get-NetRDPSession

获取指定服务器的远程连接

Get-NetProcess

获取远程主机的进程

Get-UserEvent

获取指定用户的日志

Get-ADObject

获取活动目录的对象

Get-NetGPO

获取域内所有的组策略对象

Get-NetGPOGroup

获取域中设置”受限组”的所有GPO

Find-GPOLocation

获取用户/组,并通过GPO枚举和关联使其具有有效权限的计算机

Find-GPOComputerAdmin

获取计算机并通过GPO枚举确定谁对其具有管理权限

Get-DomainPolicy

获取域默认策略或域控制器策略

Get-DomainSID

返回指定域的SID

Invoke-UserHunter

获取域用户登录的计算机信息及该用户是否有本地管理员权限

Invoke-ProcessHunter

通过查询域内所有的机器进程找到特定用户

Invoke-UserEventHunter

根据用户日志查询某域用户登陆过哪些域机器

Invoke-ShareFinder

在本地域中的主机上查找(非标准)共享

Invoke-FileFinder

在本地域中的主机上查找潜在的敏感文件

Find-LocalAdminAccess

在域上查找当前用户具有本地管理员访问权限的计算机

Find-ManagedSecurityGroups

搜索受管理的活动目录安全组并标识对其具有写访问权限的用户,即这些组拥有添加或删除成员的能力

Get-ExploitableSystem

发现系统可能易受常见攻击

Invoke-EnumerateLocalAdmin

枚举域中所有计算机上本地管理员组的成员

Last updated