默认计划
929人加入学习
(9人评价)
安全测试主动信息收集

购买过Kali Linux渗透测试、武官课程包、安全技术会员课程的学员不要再买此课程

价格 ¥ 300.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

IP层扫描

端口层扫描

服务层扫描

OSI 7层协议

ARP协议不可路由

arping 1.1.1.1 -c 1            //-c规定发包数

 

[展开全文]

arping 192.168.1.103(可以直接加地址 然后可以获得反馈)

后面不加参数的话 会一直ping 可以通过

Arping 192.168.1.103 -c 1 (只发一个 arp包)

如果 没有反应 则代表主机不存在

 

[展开全文]

root@kal:~# cat hping_tcp_udp_scan.sh 
#!/bin/bash

if [ $# -ne 1 ];then
    echo -e "\033[31;31m Input Error \033[0m"
    echo -e "\033[31;31m Format Example: ./hping3 10.10.10.0/24\033[0m"
    exit
fi

prefix=$(echo $1|cut -d"." -f 1-3)

echo "**********1. udp scan"
echo "**********2. tcp scan"
read choice
case $choice in 
    1)
        touch result.txt
        for i in $(seq 1 254);do
        {
            ip=$prefix.$i
            hping3 --udp $ip -c 1 >> result.txt
        }&
        done
        grep "Unreachable" result.txt | cut -d" " -f 5 | cut -d"=" -f 2 >> ip_alive.txt
        rm -f result.txt
        ;;
    2)
        touch result.txt
        for i in $(seq 1 254);do
        {
            ip=$prefix.$i
            hping3 --udp $ip -c 1 >> result.txt
        }&
        done
        grep "Unreachable" result.txt | cut -d" " -f 5 | cut -d"=" -f 2 >> ip_alive.txt
        rm -f result.txt
        ;;
esac
 

[展开全文]

#!/usr/bin/python
#!coding=utf-8

import sys
from scapy.all import *

if len(sys.argv)!=2:
    print "./ack_ping prefix"
    print "Example ./ack_ping 192.168.10"
    sys.exit()

prefix = str(sys.argv[1])

try:
    for index in range(1,254):
        response = sr1(IP(dst=str(prefix)+'.'+str(index))/TCP(flags='A',dport=80),timeout=0.3,verbose=0)
        try:
            if(response):
                print prefix+'.'+str(index)
        except KeyboardInterrupt:
            print
            break
except KeyboardInterrupt:
    print
 

[展开全文]

arping +IP

判断主机是否存活

arping +IP -c count

ping的次数

[展开全文]

主动信息收集

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

发现阶段

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

二层发现(arp协议)

优点:扫描速度快、可靠 
缺点:不可路由 
Arp协议:抓包

arping

  • arping 1.1.1.1 -c 1
  • arping 1.1.1.1 -d
  • arping -c 1 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

  • namp 1.1.1.1-254 -sn
  • nmap -iL iplist.txt -sn

Netdiscover

  • 专用于二层发现
  • 可用于无线和交换机网络环境
  • 主动和被动探测 
    • 主动 
      netdiscover -i eth0 -r 1.1.1.0/24 
      netdiscover -l iplist.txt
    • 被动
    • netdiscover -p
  • 主动arp容易触发报警

scapy

作为python库进行调用 
也可作为单独的工具使用 
抓包、分析、创建、修改、注入网络流量

  • apt-get install python-gnuplot
  • scapy 
    • ARP().display()
    • srl()
  • python脚本

三层发现(ip协议,icmp协议)

  • 优点 
    • 可路由
    • 速度比较快
  • 缺点 
    • 速度比二层慢
    • 经常被边界防火墙过滤
  • IP、icmp协议

ping

  • ping 1.1.1.1 -c 2
  • ping -r 1.1.1.1 / traceroute 1.1.1.1
  • ping 1.1.1.1 -c 1| grep “bytes from” | cut -d “” -f 4 | cut -d “:” -f 1
  • 脚本 
    • ping.sh 1.1.1.0

四层发现

  • 优点 
    • 可路由且结果可靠
    • 不太可能被防火墙过滤
    • 甚至可以发现所有端口都被过滤的主机
  • 缺点 
    • 基于状态过滤的防火墙可能过滤扫描
    • 全端口扫描速度慢
  • TCP 
    • 未经请求的ACK——RST
    • SYN——SYN/ACK、RST
  • UDP

    • ICMP端口不可达、一去不复返
  • ACK——TCP port——RST

  • UDP——UDP Port ——ICMP
  • scapy
  • nmap
  • hping

端口扫描

udp端口扫描

  • scapy
  • nmap

TCP端口扫描

  • 基于链接的协议
  • 三次握手 
    • 所有的TCP扫描方式都是基于三次握手的变化来判断目标端口状态
隐蔽扫描——syn
  • 不建立完整链接
  • 应用日志不记录扫描行为
  • syn——syn/ack——rst
  • scapy
  • nmap
  • hping3
僵尸扫描
  • 实施条件: 
    • 可伪造源地址
    • 僵尸机:闲置系统 系统使用递增的IPID
全连接扫描
  • scapy
  • nmap
  • dmitry
  • nc

服务扫描

识别开放端口上运行的应用 
识别目标操作系统 
提高攻击效率

banner获取

软件开发商 
软件名称 
服务类型 
版本号(直接发现已知的漏洞和弱点)

  • 连接建立后直接获取banner
  • 另类服务识别方法 
    • 特征行为和响应字段
    • 不同响应可用于识别底层操作系统

操作系统识别

种类繁多 
好产品采用多种技术组合

TTL起始值:
  • windows:(65-128)
  • linux/unix:64(1-64)
  • 某些unix:255
被动操作系统识别 :
IDS
抓包分析
被动扫描
  • p0f 
    • 结合ARP地址欺骗识别全网os)
python

SNMP(简单网络管理协议)分析

信息的金矿 
经常被错误配置

  • public/private/manager
  • MIB Tree:
  • SNMP Management information
  • 树形的网络设备管理功能数据库
  • onesixtyone
  • snmpwolk snmpcheck

SMB扫描

  • nmap
  • nbtscan
  • enum4linux

SMTP

  • nc VRFY root
  • nmap
  • smtp-user-enum

    • 防火墙识别 
      通过检查回包,可能识别端口是否经过防火墙过滤 
  • scapy

负载均衡识别

  • 广域网负载均衡 
    • DNS
  • HTTP-Lodbalancing

    • Nginx
    • apache
  • ldb

WAF识别

  • web应用防火墙
  • waf00f
  • nmap

工具

  • nc
  • python socket
  • dmitry
  • amap
  • nmap

版权声明: https://

[展开全文]

import subprocess   //导入可以调用系统指令的模块

import logging        //导入日志模块

python中判断的是命令+参数  在一块计算

sys.argv[]调用系统

shell中只判断参数   只计算参数的个数

sr1(ARP(pdst="192.168.1.11"),timeout=1,verbose=1)

timeout    超时信息,后面跟的数字就是超时时间

verbose    报错信息是否显示出来,1显示 0不显示

chmod u+x arp1.py赋予python脚本的执行权限

一般在渗透测试的时候,拿下一台机器之后,不要就此结束,尽量去深的渗透,使用二层发现工具进行scan 尽量多的去发现内网中的机器,尽量多的去拿下较多的PC,让企业充分认识到,安全的危害

 

 

[展开全文]

netdiscover

    专用于二层发现

    可用于无线和交换网络环境

    主动和被动探测

主动(和apring差不多  都是向目标地址发送arp数据包  如果目标地址返回数据包【信息】那么就可以判断目标主机是存活的,是在这个网络里面的)

    netdiscover -i eth0 -r 1.1.1.0/24

    netdiscover -l iplist.txt

被动

    netdiscover -p

    主动arp容易触发报警

 

Scapy

    作为python库进行调用

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

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

apt-get install python-gnuplot

Scapy

    ARP().display()

    Sr1()          //发送数据包

python脚本

    Arp1.py

    Arp2.py

 ARP().display()

    hwtype=0x1         //硬件类型

    ptype = 0x800     //协议类型

    hwlen = 6            //硬件地址长度

    plen = 4              //协议地址长度

    op = who- has    //操作  查询

    hwsrc = 08:00:27:a7:ce:cd //源MAC地址

    psrc = 192.168.1.132 //源IP地址

    hwdst = 00:00:00:00:00:00 //目标MAC地址

    pdst  = 0.0.0.0    //目标IP地址

 

 

 

 

 

 

 

[展开全文]

nmap -sn ip地址[或者ip地址段]  只做ping scan, disable port scan 只做二层发现

nmap -iL ip地址文件 -sn

并不是严格意义上的arping scan  除了发送arp数据包之外  还会进行DNS的解析

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

NMAP四层扫描

nmap 1.1.1.1-254 -PU53 -sn

//UDP扫描

nmap 1.1.1.1-254 -PA80 –sn

//ACK TCP扫描 RST包

nmap -iL iplist.txt -PA80 -sn

//批量扫描

 

 

hping3 --udp 1.1.1.1 -c 1

hping3 1.1.1.1 -c 1 (TCP)

Hping3 1.1.1.1

./TCP_hping.sh

Flag 0 —— ACK̵RST

[展开全文]

 

u = UDP()

u.dport= 33333

r = (i/u)

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

A.display()

ICMP

UDP_Ping.py

[展开全文]

四层发现

scapy

 Scapy

 i = IP()

 i.dst="1.1.1.1"

 t = TCP()

 t.flags='A'

r = (i/t)

 a = sr1(r)

 a.display()

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

ACK_Ping.p

[展开全文]

四层发现

可路由 精确

TCP UDP

TCP

未经请求ACK-RST

UDP

如果没有开端口会返回ICMP端口不可达、一去不复返

 

 

[展开全文]

三层发现

ip层 ,icmp协议

可跨路由

速度没有二层快

三层容易被边界防火墙过滤

ping 1.1.1.1 -c 2

ping -R 1.1.1.1 /traceroute 1.1.1.1

ping 1.1.1.1 -c 1 | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1

 

ttl值每经过

[展开全文]

二层发现 进行内网渗透 发现内网信息 

[展开全文]

二层发现

 Netdiscover

主动发现

netdiscover -i eth0 -r 1.1.1.0/24

netdiscover -l iplist.txt

指定IP列表扫描

 

被动发现

主动容易触发ARP警报

默默的侦听 网卡开混杂模式

抓取别人发的包

不会被入侵检测发现

netdiscover -p

 

scapy

apt-get install python-gnuplot

scapy回车

ARP() .display()

arp=ARP()

arp.display()

arp.pdst=""

sr1(arp)

answer=sr1(arp)

answer.display()

 

 

[展开全文]

二层发现 nmap

nmap 1.1.1.1-254 -sn

nmap -sn 1.1.1.1-254

ping 然后再扫描

扫描出主机状态 和一些信息

不是一个严格的arp扫描

 

 

nmap -iL addr -sn 

 

[展开全文]

arping 1.1.1.1 -d  //发现重复的相应,发现重复的MAC,两MAC用一个Ip,有人ARP欺骗

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

进行筛选 只显示ip

 

[展开全文]

噪声掩盖真实扫描 

扫描判断目标状态

 arp层发现主机

可靠快准确

arping

arping 1.1.1.1 -c 1 //发一个包进行判断

 

[展开全文]

端口说明和扫描规则
-p   只扫描指定的端口

--exclude-ports   不对此端口进行扫描

-F   快速模式,扫描比默认端口数量更少的端口

-r   有序地扫描端口而不是随机地扫描

--top-ports <number>  扫描排名指定的数字前几位的最常用的端口

--port-ratio <ratio>   扫描比输入的比例更常用的端口

服务、版本探测

-sV:探测开启的端口来获取服务、版本信息

--version-intensity <level>:设置探测服务、版本信息的强度

--version-light:强度为2的探测强度

--version-all:强度为9的探测强度

--version-trace:将扫描的具体过程显示出来

脚本扫描

-sC:等同于--script=default

--script=<Lua scripts>:指定使用Lua脚本进行扫描

--script-args=<n1=v1,[n2=v2,...]>:指定脚本的参数

--script-args-file=filename:指定提供脚本参数的文件

--script-trace:显示全部发送和收到的数据

--script-updatedb:更新脚本的数据库

--script-help=<Lua scripts>:显示脚本的相关信息

系统探测

-O:进行系统探测

--osscan-limit:限制系统探测的目标,如只探测Linux系统

--osscan-guess:更侵略性地猜测系统

定时和性能

-T<0-5>:设置时序模块,越高越快

--min-hostgroup/max-hostgroup <size>:指定最小、最大的并行主机扫描组大小

--min-parallelism/max-parallelism <numprobes>:指定最小、最大并行探测数量

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>:指定最小、最大的扫描往返时间

--max-retries <tries>:指定最大的重发扫描包的次数

--host-timeout <time>:指定超时时间

--scan-delay/--max-scan-delay <time>:指定每次探测延迟多长时间,即两次探测之间间隔多少时间

--min-rate <number>:最小的发包速率

--max-rate <number>:最大的发包速率

防火墙、IDS绕过和欺骗

-f; --mtu <val>:设置MTU最大传输单元

-D <decoy1,decoy2[,ME],...>:伪造多个IP地址和源地址一同发送包,从而隐藏在众多的IP地址中而不易被发现

-S <IP_Address>:伪造源地址

-e <iface>:使用指定的接口

-g/--source-port <portnum>:使用指定的源端口

--proxies <url1,[url2],...>:指定代理服务器进行扫描

--data <hex string>:在发送包的数据字段中追加自定义的十六进制字符串

--data-string <string>:在发送包的数据字段中追加自定义的ASCII字符串

--data-length <num>:在发送包的数据字段中追加随机的数据

--ip-options <options>:使用指定的IP选项发送包

--ttl <val>:设置TTL值

--spoof-mac <mac address/prefix/vendor name>:伪造源Mac地址

--badsum:发送伪造TCP/UDP/SCTP校验和Checksum的数据包

输出

-oN/-oX/-oS/-oG <file>:分别输出正常、XML、s|<rIpt kIddi3、grepable格式的扫描结果到指定的文件

-oA <basename>:一次性以三种格式输出

-v:增加的详细程度(使用VV更详细)

-d:提高调试水平(使用DD更高)

--reason:显示端口处于特定状态的原因

--open:仅显示打开(或可能打开)端口

--packet-trace:显示发送和接收的所有数据包

--iflist:输出主机接口和路由(为了调试)

--append-output:附加到指定的输出文件,而不是乱码

--resume <filename>:从指定的文件中恢复终止的扫描

--stylesheet <path/URL>:将指定路径的URL的XSL样式表转换为XML输出为HTML格式

--webxml:获取更多便捷的XML参考样式

--no-stylesheet:防止将XSL样式表的W /XML输出

杂项

-6:扫描IPv6的地址

-A:一次扫描包含系统探测、版本探测、脚本扫描和跟踪扫描

--datadir <dirname>:指定自定义的nmap数据文件位置

--send-eth/--send-ip:使用原始以太网帧或IP数据包发送

--privileged:假设用户有全部权限

--unprivileged:假设用户缺少原始套接字权限  

-V:输出版本号

-h:输出帮助信息

[展开全文]

授课教师

安全经理

课程特色

视频(29)
下载资料(1)