0%

主动信息收集

主动信息收集

主机和二层发现

arping

-d     Find duplicate replies. Exit with 1 if there  are  answers  from
       two different MAC addresses
1
2
3
arping 192.168.1.1 -c 1 #发送1个arp包,
arping 192.168.1.1 -d #可以查找是否存在arp欺骗,man可以查看
sudo arping -c 1 192.168.1.1 | grep "bytes from" | cut -d" " -f 5 | cut -d"(" -f 2 | cut -d")" -f 1 # 筛选出ip

编写脚本进行arping测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

#判断参数是否为1个,1个则提示并退出
if [ "$#" -ne 1 ];then
echo "usage ./arp.sh [interface]"
echo "Example ./arp.sh eth0"
exit
fi
#判断是否为root权限,否则退出
if [ "$USER" != "root" ];then
echo "run with root"
exit
fi

#获取第一个参数
interface=$1
#获取网段
prefix=$(ifconfig $interface| grep 'netmask' | awk '{print$2}' | cut -d"." -f 1-3)

for i in $(seq 1 254);do
arping $prefix.$i -c 1 | grep "bytes from"| awk '{print$5}' | cut -d"(" -f 2 | cut -d ")" -f 1
done

可修改成读文件

1
2
3
for i in $(cat $file);do
arping
done

nmap

1
2
nmap 1.1.1.1-254 -sn #Ping Scan
nmap -iL addr -sn #扫描指定文件里的

Netdiscover

  • 专用于二层发现
  • 可用于无线和交换网络环境
  • 主动和被动探测

主动

1
2
netdiscover -i wlan0 -r 192.168.1.0/24
netdiscover -l iplist.txt

被动

1
netdiscover -p

Scapy

1
2
3
4
5
>>> arp = ARP() #创建一个arp包
>>> arp.pdst = '192.168.1.1' #设置目标ip
>>> arp.display() # 展示包数据
>>> answer = sr1(arp) #接受返回数据
>>> answer.display() #展示返回数据

python 扫描

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python
# coding=utf-8
import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

if len(sys.argv) != 2:
print "usage ./arp1.py [interface]"
sys.exit()


interface = str(sys.argv[1])
command = 'ifconfig ' + interface + "| grep 'netmask' | awk '{print$2}' | cut -d'.' -f 1-3"
prefix = subprocess.check_output(command, shell=True).strip()
print(prefix)

for addr in range(254):
answer = sr1(ARP(pdst = prefix+str(addr)), timeout=1)
if answer is None:
continue
print (prefix + str(addr))

本文作者:NoOne
本文地址https://noonegroup.xyz/posts/dad5e299/
版权声明:转载请注明出处!