主动信息收集部分

主动信息收集

  • 直接与目标主机交互

  • 无法避免留下发文的痕迹;

  • 使用受控的第三方电脑进行探测;

  • 使用代理或者已经被控制的主机

  • 做好被封杀的准备

  • 使用噪音迷惑目标,淹没真实的探测流量

  • 扫描-发送不同的探测,根据返回结果判断目标状态

发现

  • 识别活着的主机
  • 潜在的被攻击目标
  • 输出一个IP地址列表
  • 网络2、3、4层发现

包括ARP、IPv4、IPv6、ICMP、IPSec、TCP、UDP

发现——二层发现

优点:扫描速度快,可靠

缺点:不可路由

Arp协议
  • 抓包

  • arping 1.1.1.1 -c 1

  • arping 1.1.1.1 -d

    发现重复响应,不同mac地址拥有相同的IP时,退出返回1

    arp地址欺骗:在你的网络里有另外一个IP地址,声称自己是网关IP,发给网关的数据包就会发给欺骗的主机,该主机的所有者就可以在其机器上抓包,实现中间人攻击,嗅探甚至修改通过该主机传输的数据包,窃取密码,篡改数据,实现一些恶意攻击。

  • arping -c 1.1.1.1 grep “bytes from”|cut -d “ “ -f 5|cut -d “(“ -f 2 |cut -d “)” -f 1

  • 脚本:

    arping1.sh eth0>addrs

​ arping2.sh addrs

nmap二层发现
  • nmap 1.1.1.1-254 -sn
  • nmap 1.1.1.1/24 -sn

​ -sn ping扫描,禁用端口扫描

  • ​ nmap -iL iplist.txt -sn (扫描文件内IP,类似arping2.sh功能)
Netdiscover–二层发现
  1. 专用于二层发现
  2. 可用于无线和交换网络环境
  3. 主动和被动探测

主动

netdiscover -i eth0 -r 192.168.1/24

netdiscover -i iplist.txt

被动

netdiscover -p #将本地网卡赋值为混杂模式,非本网卡的数据包也会被侦听到

主动arp容易触发报警

Scapy-二层发现

•作为Python库进行调用

•也可作为单独的工具使用

•抓包、分析、创建、修改、注入网络流量

• apt-get install python-gnuplot #安装python-gnuplot组件

• Scapy #启动Scapy

发现-三层发现

IP,icmp协议 网络控制管理层

路径发现,主机网络通断的诊断

优点:可路由,速度快。

缺点:速度比二层慢,经常被边界防火墙过滤。

ping(icmp)
  • ping 192.168.1.1 -c 2(设置发包的数量)
  • 路由追踪:traceroute www.sina.com
  • ping -R 192.168.1.1
  • ping 192.168.1.1 -c 1 | grep “bytes from”|cut -d “” -f 4 | cut -d “.” -f 1
Scapy

OSI多层堆叠手工声称ICMP包-IP/icmp

  • i=Ip()
  • i.dst=”192.168.1.1”(目标IP地址)
  • p=ICMP()
  • a=str(i/p)
  • a.display()
Nmap——三层发现

nmap -sn 192.168.1/24 (-sn在同一网段,用arp,不同网段,用ICMP)

fping ——三层发现
  • fping 1.1.1.1 -c 1 (会显示包大小、响应时间、丢包率)
  • fping -g 1.1.1.1 1.1.1.2(起始参数 结束参数)
  • fping -g 1.1.1.0/24
  • fping -f iplist.txt
hping——三层发现
  • Hping(功能强大)
  • 能够发送几乎任意TCP/IP包
  • 功能强大但每次只能扫描一个目标
  • hping3 192.168.1.1 –icmp -c 5(发5个ping包)
  • for addr in $(seq 1 254); do hping3 192.168.1.$addr –icmp -c 5 >> handle.txt & done

发现——四层扫描

优点

  • 可路由且结果可靠
  • 不太可能被防火墙过滤
  • 甚至可以发现所有端口都被过滤的主机

缺点

  • 基于状态过滤的防火墙可能过滤扫描
  • 全端口扫描速度慢

TCP(三次握手)

未经请求的ACK-RST(非正常通信:目标在线)

SYN-SYN/ACK、RST(正常通信:目标在线)

UDP

目标IP不在线,无响应,目标IP在线、探测的端口也是开放状态,目标主机不会回复;只有一种情况可以探测:我发向目标IP一个没有开放的端口,对方回复一个ICNP端口不可达、一去不复返。

ACK—Tcp Port—-RST(如果返回rst则在线)

scapy:

\1. i=IP()

\2. t=TCP()

3.r=(i/t)

4.r[tcp].flags=’A’(表示发ack包)

r[IP].dst=”1.1.1.1”

a=sr1(r)

a.display()(查看返回的包)

a=sr1(IP(dst=”1.1.1.1”)/TCP(dport=80,flags=’A’),timeout=1)

UDP—–UDP Port—–icmp

1.u=UDP()

2.u.deport=33333

3.r=(i/u)

4.a=sr1(r.timeout=1,verbose=1)

5.a.display()

6.a=sr1(r)

port-unreachable(目标端口不可达)

端口扫描

scapy

str1(dst=”192.168.1.1”/TCP(dport=80),timeout=1,verbose=1)

操作系统莫名接受一个syn/ack包,会自动给目标服务器回复一个rst包

nmap

nmap -sS 1.1.1.1 -p 80,21,25,443

可以不加-sS 默认是-sS

-p 1-100 扫描1到100

-p 全扫描

–open 只显示open的端口

nmap -sS -iL test.txt -p 80

hping3:

hping3 1.1.1.1 –scan 80,21,25 -S

hping3 1.1.1.1 –scan 0-65535 -S

hping3 -c 10 -S –spoof 192.168.1.140 -p ++1 192.168.1.1

-c 发包数量 –spoof欺骗伪造成另一个IP

++1端口号每次+1

全连接端口扫描

全连接对scapy比较困难

特殊情况下隐蔽扫描无法准确检测

把操作系统返回的rst包被iptable过滤掉,建立完整的连接

iptables -A OUTPUT -p tcp –tcp-flags RST RST -d 192.168.1.134 -j DROP

-d 目标ip

scapy脚本

nmap:

nmap -sT 1.1.1.1 -p 80,21

nmap -sT 1.1.1.1 -p 80-2000

nmap -sT -iL test.txt -p 80

不加-p 默认1000个常用端口

dmitry:

功能简单,但使用简便,默认150个做常用端口

dmitry -p 1.1.1.1 //tcp扫描

dmitry -p 1.1.1.1 -o output

-o 保存到文件

nc:

nc -nv -w l -z 1.1.1.1 1-100

-w 超时时间

服务扫描

  • 识别开发端口上运行的应用

  • 识别目标操作系统

  • 提高攻击效率

    • Banner捕获
    • 服务识别
    • 操作系统识别
    • SNMP分析
    • 防火墙识别
    服务扫描——banner
    • 软件开发商
    • 软件名称
    • 服务类型
    • 版本号
    • 直接发现已知的漏洞和弱点
  • 连接建立后直接获取banner

  • 另类服务识别方法

    • 特征行为和响应字段
    • 不同的响应可用于识别底层操作系统

    Python socket

    • Socket模块用于连接网络服务

      1
      2
      3
      4
      5
      6
      import socket
      bangrab=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
      bangrab.connect(("1.1.1.1",21))
      bangrab.recv(4096)
      bangrab.close()
      exit()
    • Banner不允许抓取,recv函数无返回将挂起!

    dmitry

    • dmitry -p 192.168.153.131
    • dmitry -pb 192.168.153.131

    nmap

    nmap -sT 192.168.153.131 -p 22 --script=banner.nse

    amap

    • amap -B 192.168.153.131 21
    • amap -B 192.168.153.131 1-65535
    • amap -B 192.168.153.131|grep on

    banner信息抓取能力有限

    nmap响应特征分析识别服务

    • 发送系列复杂的探测
    • 依据响应特征signature
    • nc -nv 1.1.1.1 80
    • nmap 1.1.1.1 -p 80 -sV
    服务扫描——SNMP
    • 简单网络管理协议

    • Community strings

    • 信息查询或重新配置

      识别和绕过防火墙筛选