主机发现和端口扫描

Nmap必会命令

# 主机发现,端口大于1000需要sudo权限,-sn 是新版指令,老版本是 -sP, P是ping的首字母
sudo nmap -sn 192.168.56.0/24

# 指定最小速度 10000,指定全端口扫描,建议实战中扫描两遍防止被防护设备影响
sudo nmap --min-rate 10000 -p- 192.168.56.100

# 指定UDP扫描
sudo nmap -sU --min-rate 10000 -p- 192.168.56.100

# 指定TCP扫描,扫描版本,扫描系统,指端口(可加上UDP扫描出的端口,有些服务是UDP和TCP都开放,可能TCP没扫描出端口来)
sudo nmap -sT -sV -O -p80,111,777,5353 192.168.56.100

# -oA nmap/ports
# 过滤端口并格式化
grep open nmap/ports.nmap | awk -F '/' '{print $1}' | paste -sd ','
port=$(grep open nmap/112.ports.nmap | awk -F '/' '{print $1}' | paste -sd ',')
echo $port

# 使用内置脚本扫描漏洞
sudo nmap --script=vuln -p80,111,777,5353 192.168.56.100

无Nmap时的主机发现

# 指定应答数,指定超时时间,通过for循环遍历地址
for i in {1..254};do ping -c 1 -W 1 192.168.56.$i| grep from;done

无法Ctrl_结束怎么办

netcat端口扫描

# 使用旧版nc进行端口扫描
# -v 简单信息 -vv 详细信息 -z 0数据传输 扫描1-65535
# 先找出开放端口和未开放端口的特征,然后添加特征过滤来过滤出开放端口的信息
# 2>&1 将错误输出信息重新输入到1的信息中,类似于信息累加
nc.traditional -vv -z 192.168.56.100 1-65535 2>&1 | grep -v refused

Linux每个进程都有三个标准文件描述符

伪设备端口扫描

# 参看当先 SHELL 伪设备尽量用 BASH 环境下
echo $SHELL

bash
# Linux 上一切皆为文件,包括设备,所以出现了伪设备的概念
# &>/dev/null 将标准输出和标准错误都重定向到 /dev/null
# || printf "." 用来判定扫描正在进行
for i in {1..65535};do (echo < /dev/tcp/192.168.56.100/$1) &>/dev/null && printf "The Open Port is : %d" "$1" | grep -v refused || printf ".";done

IPv6扫描

GitHub - mubix/IOXIDResolver

sudo python3 IOXIDResolver -t 192.168.56.100

Nmap扫描

sudo nmap -6 --min-rate 10000 -p- dead::21

snmpwalk

sudo snmpwalk -v2c -c public 192.168.56.100