安全牛学习——主机发现

网友投稿 331 2022-10-10


安全牛学习——主机发现

一、二层主机发现

目的:实现局域网内的主机扫描

1.arping命令扫描主机

使用kali对局域网主机进行扫描时候,arping命令只能挨个挨个ip的扫描,下面写一个简单的脚本实现批量扫描root@kal:~/scan# vim arping.sh

#! bin/bash if [ $# -ne 1 ];then echo "Tips Example: ./arping 10.10.10" exit fi prefix=$1 for i in $(seq 1 254);do { ip=$prefix.$i arping $ip -c 1 | grep "reply from" | awk -F" " '{print $4}' }& #这里是实现多进程扫描,用时非常短,可以尝试不加 & 符号,没有对比没有伤害嘛! done

缺点:不能路由

2. netdiscover扫描

1) root@kal:~# netdiscover -p

隐藏扫描,也就是通过嗅探局域网中主机的数据发送判断主机是否存活,隐蔽性比较好,但是,如果主机存活,没有数据交互那么这个命令就扫描不到2) root@kal:~/scan# netdiscover -i eth0 -r 10.10.10.0/24 主动扫描,-i 设置网卡,-r 设置扫描范围

3.arp构造数据包请求扫描局域网存活主机

已经写过,有兴趣可以去这里看看 nmap -sn 10.10.10.0/24

直接可以实现批量扫描。-sn表示不扫描端口

二、三层主机发现

1. ping命令

root@kal:~/scan# ping 10.10.10.12

同样只能单个主机扫描编写脚本实现多个ip扫描 #!/bin/bash if [ $# -eq 0 ];thenecho "useage ./pinger [/24 network address] "echo "Example ./pinger.sh 172.16.15"exitfi prefix=$1for addr in $(seq 1 254)doping $prefix.$addr -c 1|grep "bytes from"|awk -F" " '{print $4}'|cut -d":" -f 1done

##三、 四层主机发现##优点:

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

1.TCP之ACK扫描

扫描原理:在没有与目标主机直接建立三次连接时,直接发送ACK包,那么目标主机就会返回一个RST,通过这种方式判断主机的存活。不过这个并不是完全正确的,也存在特例,主机存在,但是不会返回RST包。

>>> IP().show() #交互界面查看IP需要设置参数 ###[ 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\ >>> TCP().show() #交互界面查看TCP所需参数 ###[ TCP ]### sport= ftp_data dport= #设置目的端口(判断主机存活时,可以随便设置,不管目标端口是否存在,都会返回一个RST) seq= 0 ack= 0 dataofs= None reserved= 0 flags= S #将这里设置成A,表示发送ACK包 window= 8192 chksum= None urgptr= 0 options= {}

发送一个存活主机,但是端口不存活的

a1 = sr1(IP(dst='10.10.10.13')/TCP(dport=1111,flags='A'),timeout=1,verbose=0)a1.show()###[ IP ]### version= 4L..............\options\###[ TCP ]### sport= 1111 #如果端口存活,会返回相应的服务名称dport= ftp_data................urgptr= 0options= {}###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00'发送一个存活主机,端口也存活的a1 = sr1(IP(dst='10.10.10.13')/TCP(dport=111,flags='A'),timeout=1,verbose=0)a1.show()###[ IP ]### version= 4L.........src= 10.10.10.13dst= 10.10.10.11\options\###[ TCP ]### sport= sunrpc #端口存活的话,会返回服务名称dport= ftp_data......urgptr= 0options= {}###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00'

发送给一个不存活主机

a1 = sr1(IP(dst='10.10.10.133')/TCP(dport=1111,flags='A'),timeout=1,verbose=0)WARNING: Mac address to reach destination not found. Using broadcast.不会得到任何回应

————————————————————————————————

利用脚本实现ACK的扫描如下:

#!/usr/bin/python #!encoding=utf-8 from scapy.all import * import sys import time def scanf(ip): response = sr1(IP(dst=ip)/TCP(flags='A',dport=80),timeout=0.1,verbose=0) #三层和四层结合,构造包 if(response): print ip def ip_range(prefix): try: for addr in range(20): ip = prefix + '.' + str(addr) scanf(ip) except KeyboardInterrupt: print exit def main(): try: prefix = raw_input('请输入ip段:') prefix = prefix.split('.')[0:3] ip = prefix[0]+'.'+prefix[1]+'.'+prefix[2] ip_range(ip) except KeyboardInterrupt: print "\n*********1.重新输入" print "*********2.退出\n" choice = int(raw_input('******请输入您的选择:')) if choice == 1 | choice != 2: print "\n" main() else: exit() if __name__ == "__main__": main()

2.UDP扫描

扫描原理: 利用发送的数据包到主机上,如果主机的存活并且目标端口不存活才会返回一个ICMP不可达,否则发送的UDP就会一去不复返(如:目标主机不存在、目标主机存在并且端口开放)【目标主机存在但是端口不是存活状态】

a1 = sr1(IP(dst='10.10.10.12')/UDP(dport=12345),timeout=1)Begin emission:...Finished to send 1 packets.*Received 4 packets, got 1 answers, remaining 0 packets #收到 1个回复【目标主机存在,并且端口存活】a1 = sr1(IP(dst='10.10.10.12')/UDP(dport=445),timeout=1)Begin emission:.Finished to send 1 packets..........Received 10 packets, got 0 answers, remaining 1 packets #收到 0个回复【目标主机不存在】a1 = sr1(IP(dst='10.10.10.123')/UDP(dport=445),timeout=1)Begin emission:............WARNING: Mac address to reach destination not found. Using broadcast.Finished to send 1 packets..........Received 21 packets, got 0 answers, remaining 1 packets #收到 0个回复

实现脚本可以通过修改上面的脚本实现。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:企业信息安全整体架构(图为原创,借鉴了前辈及部分安全标准(bs1799)的软文)等
下一篇:SpringBoot2新特性 自定义端点详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~