主动信息搜集

【直接与目标系统交互通信】

【无法避免留下访问的痕迹】

【使用受控的第三方电脑进行探测】

【有具体的目标攻击性】【更准确、更新的信息搜集】

·二层发现——数据链路层

【ARP,优点:速度快,比较可靠,在路由之下工作,查看web表和ip地址;缺点:不可通过路由继续往出走,路由不处理arp协议,不能继续转发】

·arping

【ping IP地址的一个工具】

【判断主机是否真实存在,主要依据的是路由表,去访问的时候有没有返回来ip和mac地址】

​ ·arping 192.168.1.103【判断ip是否存在,就看他有没有从arping的那台主机里返回信息,如果能返回来,则就有ip地址】

​ arping 192.168.1.103 -c 1【只想判断目标会不会回应,1是只发一个包的意思】

​ ·man arping【打印更详细的查询参数】

​ ·arping 192.168.1.103 | grep “reply from”【简单的筛选过滤】

·ifconfig eth0 | grep ‘inet’【只显示ip地址】

​ ·ifconfig eth0 | grep ‘inet’ | cut -d ‘:’ -f 2【只有ip地址,没有mac地址】

​ ·ifconfig eth0 | grep ‘inet’ | cut -d ‘:’ -f 2 | cut -d ‘.’ -f 1-3【只要前面三个点】

​ ·ifconfig eth0 | grep ‘inet’ | cut -d ‘:’ -f 2 | cut -d ‘.’ -f 1-3 | tr -d “inet”【只剩下192.168.1】

·用小脚本探测存活的主机

#!/bin/bash
if("KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲" -ne 1)【"#"表示后面可以加参数;-ne代表没有】
then
echo “Usage - ./arping.sh [interface]”【输出一个用法】
echo “EXAMPLE - ./arping.sh eth0”【输出一个关口】
echo “Example will perform an ARP scan of the local subnet to which eth0 is assigned”【扫描本地的一个子网,通过eth0去检测】
fi
interface= 1 【 正 常 要 检 测 的 参 数 】 p e r f i x = 1【正常要检测的参数】 perfix= 1perfix=(ifconfig i n t e r f a c e ∣ g r e p ′ i n e t ′ ∣ c u t − d ′ : ′ − f 2 ∣ a w k ′ N R = = 1 ′ ∣ c u t − d ′ . ′ − f 1 − 3 ∣ t r − d " i n e t " ) 【 p e r f i x 取 值 的 意 思 ; interface |grep 'inet' |cut -d ':' -f 2 |awk 'NR==1'| cut -d '.' -f 1-3 |tr -d "inet")【perfix取值的意思; interfacegrepinetcutd:f2awkNR==1cutd.f13trd"inet")perfixinterface读现在用的网卡;把网络前缀读取出来】
for addr in $(seq 1 254)【循环】
do
arping -c 1 p e r f i x . perfix. perfix.addr【 -c只让ping一次的意思】【拼接取出来的值】
done

·nmap

·-sn:探测某个ip是否存活【内网探测】【速度非常快】【只进行ping的探测,不进行端口的探测】【arp发现】

​ ·nmap -sn 192.168.1.1【近端一般跑的是arp,远端一般跑的是icmp,还有ICP等,用一个命令,会自动识别是否是内网还是外网的地址,然后会根据不同的协议去跑】

​ ·nmap -sn 192.168.1.1/24【支持刚刚所写脚本进行的探测】

​ ·nmap -sn -iL ‘/root/桌面/123’【探测文件里的地址】

·netdiscover

·netdiscover【是基于广播的,可以起到侦听的功能,所有内网里主机发的arp包都可以拿到】【主动搜集】【可以手动触发】【必须有人发arp包才能侦听到】

​ ·netdiscover -i eth0 -r 192.168.1.1/24【主动搜集】

​ ·netdiscover -l ‘/root/桌面/123.txt’ 【主动搜集】

​ ·netdiscover -p【被动搜集】

·scapy

【python的运行库,可以直接调用,可以抓包,分析数据,创建修改,看网络的流量,学网络的一些协议,看包结构】【里面是函数】【借用的是模块里的一些内容,不太像工具】【读取报文里的内容】【借助arp的协议】

​ ·ARP().display()【显示arp函数里有什么东西】

​ ·a=ARP()【将ARP赋值给a】

​ a.display()

​ ·a.pdst=192.168.1.1

​ a.pdst=“192.168.1.1”【对pdst赋值】

​ a.display()【查看已赋值】

​ 【arp=ARP()

​ arp.pdst=“192.168.1.101”

​ arp.display()

​ a=sr1(arp)

​ a.display()】

​ ·sr1(a)【应答】【发一个广播包然后回应的过程】

answer=sr1(a)

answer.display()

·三层发现——网络层

【主要icmp】

【优点:可以通过路由,可以转发,速度较快;缺点:比arp慢些,可能会被边界防火墙拦掉】【tcp,ip,icmp协议】

·ping

【ping是诊断命令可以通过路由器,arp出不去路由器,icmp,SYN可以出路由器,可以直接ping各个访问的主机(可以访问全世界所有的主机地址,前提是那台主机必须接受icmp协议,探测主机是否在线,很可能会被防火墙断掉,禁ping,可以访问但不可以ping,而且速度速度会比arp慢,视频传播一般走纯udp协议,速度快),若全部都告诉你是开放的返回报告,是防火墙起了作用,不可信;ICMTP多用于返回主机目标状态】【尽量多使用多种工具探测,返回结果还要再进行手工验证】【icmp是检测命令,检测网络是否通畅】

·ping 192.168.1.1 -c 4【指定只发4个包】【是回复消息】

·traceroute

【scapy】

​ ·traceroute www.baidu.com【路由追踪,可以看到寻找路径】【记录的是客户端侧的进口的ip地址】【ping -R记录的是服务器端侧的ip地址,记录ping的路由过程;-r是直接发送到远端主机上】

​ ·ping 192.168.1.1 | grep “bytes from”【筛选】

​ ·i=IP() 【icmp的ping包发出去】【scapy里】【记得加超时时间,不然容易把程序跑死】

​ p=ICMP()

​ ping=(i/p)

​ ping.display()

​ ping[IP].dst=“192.168.1.104”

​ ping.display()

​ a=sr1(ping,timeout=20)

​ a.display()

·fping

​ ·fping 192.168.1.1【相对于ping更方便】

​ ·fping -g 192.168.1.1 192.168.1.101 -c 1【可以多个ip一起跑,跑的是从1-101】

​ ·fping -g 192.168.1.1/24【也可以跟c段】

​ ·fping -f ‘/root/桌面/123.txt’ 【也可以跟文件】

·hping

​ ·hping3【几乎可以发送所有的包,可以发送大量的包,可以自己定制和写hping包,可以指定每一个包的大小,更倾向于压力测试】【每次只能针对一个目标去扫,单线程,要慢些】

​ ·hping3 192.168.1.1 --icmp -c 1【指定了icmp协议】

·四层发现——传输层

【第四层涉及 tcp udp 是进行探测的,看是否在线,发现的过程不涉及端口的扫描,是对目标主机进行的,利用四层通信,探测ip是否存活,通过路由,结果可靠,是一些标志类的识别,可以用nmap等探测主机的一些工具,不太可能被防火墙过滤掉,甚至被防火墙过滤掉也可以反应特别的东西,在这种情况下也可以识别主机是否存活;跑的很慢】

·识别开放端口上运行的应用

·识别目标操作系统

·提高攻击效率

·Banner捕获

·软件开发商

·软件名称

·服务类型

·版本号

【TCP一种是经过正常的三次握手来看主机是否存活,如果服务器不理的话一种是发送ACK,都可以让主机发送返回包】

【如果主机是关着的时候在第二步骤的时候直接发一个RST包,告诉主机不存在】

【udp发的时候,只要两边是通着的,不管是否能接收到,接收多少,不会再返回任何东西,没有办法很好的去确认服务器是否存活】【如果icmp过去后提示后端口不可达,则udp是不通的】

urp icmp tcp、udp 端口

·发送ACK

【构造一个四层探测的数据包】

​ ACK—TCP—RST

​ Flag

​ ·i=IP()

​ t=TCP()

​ r=(i/t) 【完整的握手状态】

​ r.display()

​ r[IP].dst=“192.168.1.103”

​ r.display()

​ r[TCP].flags=“A”

​ r.display()

​ a=sr1(r,timeout=3)

​ a.display() 【证明只发送ACK 包,也可以验证ip地址是否存在,确定主机是否开放,如果目标存在,重点看返回的TCP里的"flags= R"】

	r[TCP].dport=15222【通过一个未开放的端口,看是否可以探测成功】

​ r.display()

​ aa=sr1®

​ aa.display()

​ r[IP].dst=“192.168.1.102”

​ r.display()

​ aaa=sr1(r,timeout=1)【设置超时时间为1】【如果探测一个不存在的ip地址,不可能返回一个rst标识的包】

​ r[IP].dst=“192.168.1.1”【测试完改回来】

·udp发现

【用icmp探测不到,如果探测的icmp不可达,则显示的是udp协议,需要设置udp去的端口,探测某个是否开放的主机的端口可不可达,如果主机是开放的才会测试端口,才会告诉你icmp的端口可不可达,如果提示端口不可达说明主机是开放的,如果主机没有开放去探测端口,会直接告诉你这个地方超时了,可以重点看返回信息里ICMP里的"code= port-unreachable"】

​ i=IP()

​ u=UDP()

​ r=(i/u)

​ r.display()

​ r[IP].dst=“192.168.1.104”

​ r[UDP].dport=7777

​ r.display()

​ a=sr1®

​ a.display()【用udp的方式检测主机是否存活】

​ r[IP].dst=“192.168.1.102”

​ r.display()

​ aaa=sr1(r,timeout=1)

·namp

​ ·nmap 192.168.1.1-200 -PU7777 -sn【udp】

​ ·nmap 192.168.1.1-200 -PA -sn【ACK】

·nmap -iL ‘/root/桌面/123.txt’ -PA80 -sn

·hping3

​ ·hping3 --udp 192.168.1.104 -c 2【若tcp默认不用加参数】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值