Skip to content
This repository has been archived by the owner on May 9, 2023. It is now read-only.

Latest commit

 

History

History
344 lines (199 loc) · 9.98 KB

File metadata and controls

344 lines (199 loc) · 9.98 KB

第3节 主动信息收集扫描


❤️💕💕kali渗透,网路安全,信息安全Myblog:http://nsddd.top


[TOC]

主动信息收集

主动信息收集的原理

🔭特点:

  • 直接与目的系统交互通信
  • 无法避免留下访问痕迹
  • 使用受控的第三方电脑进行探测,使用代理或已经被控制的机器,做好被封杀的准备
  • 扫描发送不同的探测,根据返回结果判断目标状态

基于OSI模型进行扫描的优缺点

1. 二层扫描的优缺点(数据链路层):

  • 优点:扫描速度快、可靠
  • 缺点:不可路由

2. 三层扫描的优缺点:(网络层)

  • 优点:可路由,速度较快
  • 缺点:速度比二层慢,经常被防火墙过滤

3. 四层扫描的优缺点:(传输层)

  • 优点:可靠,不太可能被防火墙过滤,可以发现所有端口都被过滤的主机
  • 缺点:全端口扫描速度慢、基于过滤状态的防火墙可能过滤扫描

路由跳转

查看路由经过几个网络设备

traceroute  baidu.com

image-20220926110505340

ARPING

ARPING是ping命令的衍生,可以查看局域网中的IP是否有冲突。

🤽‍♂️ ARP协议是地址解析协议,计算机通过ARP协议将IP地址转化为MAC地址

arping 192.188.0.23 -c 1   

HPING3

hping3是一个命令行下使用的TCP/IP数据包组装/分析工具,通常web服务会用做压力测试使用,也可以通过DOS攻击实验,同样Hping只能每次扫描一个目标。

  • -c:数据包的数量
  • -d:每个数据包大小
  • -S:只发送syn数据包
  • -w:数据包的流量
  • -p:扫描的端口
  • --flood:尽快发送数据包,不检查回复
  • --rand:随机的IP攻击(IP地址随机)
hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source  nsddd.top

基于Namp的扫描方式

Namp,也就是network mapper,最早是Linux下面的网络扫描和嗅探工具包

1. 进行端口扫描,扫描端口被占用的部分

  • -sn:只进行ping扫描,不进行端口扫描
nmap -sn 192.168.0.1-254 

2. 进行半连接扫描

nmap扫描类型有全链接扫描和半连接扫描(TCP),全连接扫描会留下记录,半连接扫描不会留下记录。

tcp三次挥手,客户端回应后跑了

nmap -sS 110.42.175.115 -p 80,22,24,500-8000

image-20220926114833721

3. 全连接扫描

nmap 110.42.175.115 -p 80,22,24,500-8000

使用nc扫描端口

使用nc进行扫描端口,可以同时对客户端和服务端进行端口扫描

nc是netcat简写,短小精悍,功能实用,设计为简单可靠的工具,即使在以前没有学安全和渗透,nc也是很常用的。

作用

  • 传输文件
  • 网络测试
  • 实现TCP/UDP端口监听,可以监听任何一个端口
  • 端口的扫描,nc可以作为clinet发起TCP或UDP连接

参数

  • -nv:表示我们扫描的对象是一个IP地址不做域名解析
  • -w:表示超时时间
  • -z:表示进行端口扫描
nc -nv -w 1 -z 110.42.175.115 1-100

image-20220926115622332

使用canpy定制数据包进行高级扫描

scapy概述

scapy是一个可以让用户发送、监听和解析并伪装网络报文的python程序,这些功能可以用于制作侦测、扫描和攻击的工具

┌──(root💀nsddd)-[~]
└─# scapy                       
INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().
                                      
                     aSPY//YASa       
             apyyyyCY//////////YCa       |
            sY//////YSpcs  scpCY//Pp     | Welcome to Scapy
 ayp ayyyyyyySCP//Pp           syY//C    | Version 2.4.4
 AYAsAYYYYYYYY///Ps              cY//S   |
         pCCCCY//p          cSSps y//Y   | https://github.com/secdev/scapy
         SPPPP///a          pP///AC//Y   |
              A//A            cyP////C   | Have fun!
              p///Ac            sC///a   |
              P////YCpc           A//A   | To craft a packet, you have to be a
       scccccp///pSP///p          p//Y   | packet, and learn how to swim in
      sY/////////y  caa           S//P   | the wires and in the waves.
       cayCyayP//Ya              pY/Ya   |        -- Jean-Claude Van Damme
        sY/PsY////YCc          aC//Yp    |
         sc  sccaCY//PCypaapyCP//YSs  
                  spCPY//////YPSps    
                       ccaacs         
                                       using IPython 7.20.0
>>> 

scapy定制ARP协议

>>> ARP().display()
###[ ARP ]### 
  hwtype= 0x1   #协议类型
  ptype= IPv4
  hwlen= None
  plen= None
  op= who-has	#who-has查询
  hwsrc= 00:0c:29:95:65:24	#源MAC地址
  psrc= 192.168.0.101	# 源IP地址
  hwdst= 00:00:00:00:00:00
  pdst= 0.0.0.0	# 向谁发送查询数据

scapy定制ping包

>>> IP().display()
###[ IP ]### 
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags= 
  frag= 0
  ttl= 64	# 生存时间
  proto= hopopt
  chksum= None	
  src= 127.0.0.1	# 源地址
  dst= 127.0.0.1	# 目标地址
  \options\

IP()生成ping包的源IP和目标IP,ICMP()生成ping包的类型,使用IP()和ICMP()两个函数,可以生成ping包,进行探测。

僵尸扫描

僵尸主机:感染僵尸病毒的,从而被黑客程序控制的计算机程序,但是僵尸扫描中的僵尸主机指的是一个闲置的操作系统(这里的闲置是指主机不会主动和任何人通信),且此系统中的IP数据包中的ID是递增的。

  • IPID:指的是通信过程中,IP数据包中的ID
  • 僵尸扫描具有极高的隐蔽特性,但是实施条件苛刻

nmapping都是会直接和目标机接触,如果可以不直接目标主机接触,还可以探测出目标主机是否开放端口。

前提是:你在公网或者局域网上先拿到了肉机,将是扫描可以不拿到肉机的权限,只要对方的IPID是自增长就可以了。

就是自己不直接和目标主机进行通信,伪装成为僵尸机,用僵尸主机测试目标主机端口是否开放,开放的话僵尸主机IPID+2

僵尸主机不可以和任何主机通信,否则不会+1

端口开放过程示意

端口未开放示意图

step1:

扫描者主机向僵尸机发一个SYN/ACK包(三次握手第二步),然后僵尸机 (假设此时僵尸机系统产生的IPID为x)回给扫描者主机一个RST(因为三次握手第一步未完成,不完整呀,所以要重来),此时扫描者主机得到了僵尸机的IPID。

step2:

开始信息收集啦!此时扫描者主机伪装成僵尸机的ip(IPID=x)向被攻击主机发送一个SYN包(三次握手第一步)

(1)如果被攻击主机的端口开放,俩主机就可以交流了,所以被攻击主机向僵尸机回发一个SYN/ACK包(三次握手第二步,因为咱是伪装僵尸机和被攻击主机交流的)僵尸机收到SYN/ACK包很懵逼,因为它没给被攻击主机发三次握手第一步的SYN包,所以他要给被攻击主机发送一个RST,此时僵尸机的IPID加1(此时IPID=x+1)

(2)如果被攻击主机的端口未开放,被攻击主机看到扫描者主机伪装成僵尸机发送的SYN包很奇怪呀!我端口没开你和我交流啥呢,所以被攻击主机给僵尸机发送一个RST,僵尸机收到RST没有反应,所以僵尸机的IPID不变(IPID=x)

step3:

扫描者主机向僵尸机发送一个SYN/ACK包,僵尸机回复给扫描者主机RST(此时IPID加1)

(1)如果被攻击主机的端口开放,则僵尸机的IPID=x+2 (2)如果被攻击主机的端口未开放,则IPID=x+1

scnap僵尸主机发送

给僵尸主机发送SYN/ACK数据包,将返回的数据保存入rz1

  • rz1定义变量接收数据包
  • dst表示我们僵尸主机IP
  • dport=455:表示我们先455端口发送数据包,xp主机的455端口一般开启状态
  • flages=“SA”:表示发送SYN/ACK
rz1=sr1(IP(dst="192.168.1.54")/TCP(dport=455,flags="SA"))

image-20220926151843698

先查看一下IPID:

rz1.display()

修改IP包头的SRC字段为主机的IP,伪装成僵尸主机给目标主机发送给SYN请求

  • timeout:超时时间
rz2=sr1(IP(src="192.168.1.54",dst="192.168.1.54")/TCP(dport=22),timeout=1)

攻击者再次向僵尸主机发送SYN/ACK确认包,获得IPID

rz3=sr1(IP(dst="192.168.1.54")/TCP(dport=445,flages="SA"))

使用nmap进行僵尸扫描

扫描IP网段中哪些端口可以作为僵尸

  • 选择_ipidseq: Incremental!IP递增的判断
 nmap 192.160.0.0/24 -p1-1024 --script=ipidseq.nse > a.txt     

image-20220926153656888

END 链接