开一个新坑,将市面上现在流传的 redteam 系列书籍进行一个学习记录,文章内容主要摘自某红队系列丛书。
本章节内容主要是介绍常见的主机扫描和服务扫描工具。
Nmap
官网
安装
Mac os:brew install nmap
Centos:yum install nmap
Ubuntu:apt install nmap
参考手册
https://nmap.org/man/zh/index.html
扫描方式
- TCP:-sT
- SYN:-sS
- ACK:-sA
- UDP:-sU
- RPC:-sR
- ICMP:-sP
- Disable Port Scan:-sn
常用的扫描方法
- 扫描10000端口、操作系统、版本
nmap -T4 -A <target>
- 版本探测
nmap -sV <target>
- 操作系统探测
nmap -O <target>
其他技巧
- –host-timeout 主机超时 通常选值:18000
- –scan-delay 报文时间间隔 通常选值:1000
- -S <源地址> 定义扫描源地址,为了不被发现
示例
nmap -v -iR 100000 -P0 -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因此使用 -P0 禁止对主机列表。(-P0 就是 -Pn)
host company.com | cut -d ‘ ‘ -f 4 | nmap -v -iL -(host -l company.com | cut -d ‘ ‘ -f 4 | nmap -v -iL -)
进行DNS区域传输,已发现company.com中的主机,然后将IP地址提供给nmap
host -l <domain> 需要有域系统的管理员权限,才可以列出所有子域名,一般情况下无法使用
cut -d ‘ ‘ -f 4 将输出终端的字符进行分割,-d 指定分割字符,指定分割位置
nmap -v -iL - 解析出来 ip 传给 nmap 扫描,-v 显示详细信息,-iL 指定传入的文件名
输出
-oN
-oX
-oG
Grep输出 参考:http://www.unspecific.com/nmap-oG-output
$ sudo nmap -O -oG - www.baidu.com
Nmap 7.92 scan initiated Thu Mar 24 06:16:08 2022 as: nmap -O -oG - www.baidu.com
Host: 110.242.68.3 () Status: Up
Host: 110.242.68.3 () Ports: 80/open/tcp//http///, 443/open/tcp//https/// Ignored State: filtered (998)Seq Index: 256 IP ID Seq: Randomized
Nmap done at Thu Mar 24 06:16:21 2022 -- 1 IP address (1 host up) scanned in 12.63 seconds
$ sudo nmap www.baidu.com -oG - | awk '/open/{print $2}'
110.242.68.3
awk ‘/open/{print $2}’ 正则匹配含 open 的行,以空格为分割取第二列
$ sudo nmap 110.242.68.4/29 -oG - -sP
Nmap 7.92 scan initiated Thu Mar 24 06:28:33 2022 as: nmap -oG - -sP 110.242.68.4/29
Host: 110.242.68.1 () Status: Up
Host: 110.242.68.2 () Status: Up
Host: 110.242.68.3 () Status: Up
Host: 110.242.68.4 () Status: Up
Host: 110.242.68.5 () Status: Up
Host: 110.242.68.6 () Status: Up
Host: 110.242.68.7 () Status: Up
Nmap done at Thu Mar 24 06:28:47 2022 -- 8 IP addresses (7 hosts up) scanned in 14.25 seconds
masscan
项目地址
https://github.com/robertdavidgraham/masscan
安装
sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
该工具兼容Nmap的参数
现在可以直接apt安装
apt install masscan
高级选项
sudo masscan 121.37.71.222 --port 3389 --adapter-ip 192.168.186.26
- –adapter-ip 指定发包的IP地址
- –adapter-port 指定发包的源端口
- –adapter-mac 指定发包的源MAC地址
- –router-mac 指定网关的MAC地址
- –exclude IP地址范围黑名单,防止masscan扫描
- –includefile,-iL 读取一个范围列表进行扫描
- –wait 指定网发送包后的等待时间,默认为10秒
nbtscan
kali中已经安装:
┌──(kali㉿kali)-[~]
└─$ whereis nbtscan
nbtscan: /usr/bin/nbtscan /usr/share/man/man1/nbtscan.1.gz
┌──(kali㉿kali)-[~]
└─$ nbtscan
NBTscan version 1.7.1.
This is a free software and it comes with absolutely no warranty.
You can use, distribute and modify it under terms of GNU GPL 2+.
Usage:
nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|(<scan_range>)
nbtscan示例
nbtscan -r 192.168.0.1/24
扫描整个C段
nbtscan 192.168.0.1-100
扫描一个范围
nbtscan -v -s : 192.168.0.0/24
以 : 分割显示结果
nbtscan -f <File>
从文件读取扫描范围
高级用法
┌──(kali㉿kali)-[~]
└─$ nbtscan -v -s ' ' 192.168.0.112
192.168.0.112 DESKTOP-R5A39I1 00U
192.168.0.112 DESKTOP-R5A39I1 20U
192.168.0.112 WORKGROUP 00G
192.168.0.112 MAC 18:26:49:4c:f8:4c
┌──(kali㉿kali)-[~]
└─$ nbtscan -v -s ' ' 192.168.0.112 | awk '{print $1}' | uniq
192.168.0.112
awk ‘{print $1}’取第一列
uniq 筛选出重复字符串
hping3
hping3主要是测试防火墙的拦截规则,对网络设备进行测试
常用模式
- -0 –rawip IP原始报文
- -1 –icmp ICMP模式
- -2 –udp UDP模式
- -8 –scan 扫描模式
- -9 –listen 监听模式
sudo hping3 --scan 1-30,70-90 -S www.baidu.com
SYN方式扫描主机端口
可以看到,目标主机回复:S..A,代表SYN/ACK
sudo hping3 -S -a 114.114.114.114 -p 53 114.114.114.114 -c 5
测试防火墙对ICMP包的反应,是否支持traceroute,是否开放某个端口,对防火墙进行拒绝服务攻击(Dos attack)。例如,以Land Attack方式测试目标防火墙(Land Attack是将发送源地址设置为与目标地址相同,诱使目标机与自己不停地建立链接)。
DRDDOS
sudo hping3 --udp -a 114.114.114.114 -p 53 114.114.114.114 -c 5
基于UDP的DOS