常见服务枚举
DNS (端口 53)
-
域传送漏洞扫描
dnsrecon -d <domain> -a -n <IP_DNS>
-
枚举子域名
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
SMB (端口 139, 445)
1. 基础信息扫描
-
使用
enum4linux
扫描:enum4linux -a [-u "<username>" -p "<passwd>"] <IP>
-
使用
enum4linux-ng
扫描:enum4linux-ng -A [-u "<username>" -p "<passwd>"] <IP>
-
使用
crackmapexec
扫描:crackmapexec smb <IP> --users [-u <username> -p <password>]
2. 匿名连接RPC
-
使用
rpcclient
执行匿名连接:rpcclient -U "" -N <IP>
执行以下命令以枚举域用户、组等信息:
enumdomusers enumdomgroups help
3. 获取用户信息
-
使用
samrdump.py
获取用户信息:/usr/share/doc/python3-impacket/examples/samrdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
-
对于端口 445:
/usr/share/doc/python3-impacket/examples/samrdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
4. 获取RPC接口信息
- 使用
rpcdump.py
获取RPC接口信息:/usr/share/doc/python3-impacket/examples/rpcdump.py -port 135 [[domain/]username[:password]@]<targetName or address> /usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address> /usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
5. 获取共享文件夹
- 使用
crackmapexec
获取共享文件夹:crackmapexec smb <IP> -u '' -p '' --shares crackmapexec smb <IP> -u <username> -p <password> -H <hash> --shares
6. 爬取共享文件夹内的文件
- 使用
crackmapexec
爬取共享文件夹内的文件:crackmapexec smb <IP> -u <username> -p <password> -H <hash> -M spider_plus [--share <share_name>]
7. 连接共享文件夹
- 使用
impacket-smbclient
连接共享文件夹:impacket-smbclient
8. Smb-Trap
- 启动
responder
进行 SMB 相关攻击:responder
9. 暴力破解
NFS (端口 2049)
-
列出 NFS 共享
showmount -e 10.10.10.180
-
使用 Nmap 扫描 NFS
nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 <IP>
SMTP (端口 25, 365, 587)
-
枚举用户
smtp-user-enum -M VRFY -U <USER> -t <IP>
-
扫描漏洞
nmap --script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 <IP>
-
暴力破解
SNMP (端口 161, 162, 10161, 10162/udp)
-
使用
snmpbulkwalk
获取信息snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] .
-
使用
snmpwalk
获取信息snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP]
-
使用
snmp-check
获取信息snmp-check [DIR_IP] -p [PORT] -c [COMM_STRING]
-
使用
onesixtyone
执行 SNMP 枚举onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100
-
使用
snmp-check
执行 SNMP 检查snmp-check {IP}
Web 服务
-
识别 Web 服务信息
whatweb -a 3 <URL> whatweb -a 1 <URL>
-
主动扫描
-
综合性扫描:
nikto -h <URL>
-
目录扫描:
dirsearch -u <URL> -w /opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -f -e pdf,php
-
参数爆破:
arjun -u <URL> -m GET/POST
-
爬取网页作为字典:
cewl --with-numbers -w dict.txt <URL>
-
VHOST 枚举:
gobuster vhost -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-110000.txt -u <URL>
-
自动化批量信息收集(推荐使用)
AutoRecon GitHub
寻找漏洞
-
平台:
exploitdb, GitHub, Google -
语法:
<servername> [version] [port] exploit
例子:
mysql 5.1 port 3306 exploit
如何学习服务枚举?
- 掌握手工枚举与自动化枚举
- 了解枚举出来的信息
- 思考各种信息的组合利用