在渗透测试初期,需要进行大量的信息收集。一般情况下,信息收集可以分为两大类————被动信息收集和主动信息收集。

    其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站长工具、Google hack等。这类信息收集的特点是不与目标系统产生直接的交互,从而避免留下痕迹,但带来的缺点就是收集的信息可能是一些过时的信息,不够准确。

    相反,主动信息收集是与目标系统进行直接的交互,进而得到更为准确的及时信息。例如:AWVS、Appscan等漏洞扫描工具对目标站点进行的扫描。但不可避免的就是可能会在目标系统中留下痕迹,可能会被封杀。

    在利用python来进行信息收集,主要是体现在了主动信息收集方面。

    在主动信息收集中,主要内容是主机发现、端口扫描、指纹识别。

    在主机发现部分,主动信息收集主要是通过扫描来实现的,其中扫描是可以在不同的网络层次中实现,包括数据链路层主机发现、网络层主机发现和传输层主机发现。

    下面先介绍二层主机发现。

    主机发现,顾名思义,就是确定一个IP范围内存活的主机,找到潜在攻击的目标。二层主机发现主要利用的协议是ARP协议,主要用于在内网中进行探测,发现与攻击者在同一个网段内的主机。二层的主机发现,一般扫描速度都很快,并且可靠性较高,因为即便是安装了安全软件,安全软件都是默认没有防御ARP攻击的。

    在Kali中,我们只要执行arping命令,就可以对外发送ARP响应包来进行主机的探测了,只要我们收到响应,即可判断对方主机在线。

    我们要用到的python第一个模块,是subprocess模块,subprocess模块可以用来创建一个子进程,并且运行一个外部的程序。一般使用subprocess模块中的check_output()方法来调用系统命令。

    如下:



    上面是调用python模块实现的单个语句判断主机是否在线,如果使用python脚本来实现的话,如下所示:

代码如下

import subprocess
import sys
import time
from threading import Thread def arping(ip):
try:
subprocess.check_output('arping -c 1 ' + str(ip),shell=True)
time.sleep(0,1)
print ip,'在线'
return
except:
return def main():
host = str(sys.argv[1]).strip()
addr=host.split(".")[0]+"."+host.split(".")[1]+"."+host.split(".")[2]+"."
for i in range(1,255):
ip = addr + str(i)
t=Thread(target=arping,args=(ip,))
t.start() if __name__=='__main__':
main()

最新文章

  1. sniffer底层网络配置记录
  2. Java多线程基础知识(二)
  3. 20160113006 asp.net实现ftp上传代码(解决大文件上传问题)
  4. 批次更新BAPI_OBJCL_CHANGE
  5. 20141015--for语句1
  6. 【mysql的编程专题⑥】视图
  7. 【解决】HDFS HA无法自动切换问题
  8. (2.1)servlet线程安全问题
  9. 开发移动端web应用, 使用手机自带键盘的搜索按钮
  10. PHP判断图片是否存在和jquery中load事件对图片的处理
  11. 如何使用python生成xml
  12. Javascript是单线程的深入分析(转)
  13. Mac下Charles Contents乱码解决办法
  14. sqlserver中select造成死锁
  15. P1462 通往奥格瑞玛的道路 (二分+最短路)
  16. Asp.net 按钮幕布遮盖效果实现方式
  17. DCDC电源 TPS54525
  18. 【转】linux下解压.bz2压缩文件
  19. gulp合并压缩
  20. 以太坊api访问,区块同步监测

热门文章

  1. EOS基础全家桶(五)钱包管理
  2. Java Web项目bug经验202002112049
  3. CentOS下的Docker-Compose离线安装
  4. C/C++知识总结 四 循环与分支语句
  5. 高性能/并发的保证-Netty在Redisson的应用
  6. 【Java技术系列】爱情36技之追美妹的技术
  7. Mybatis中的# 与 $
  8. VUE一款适用于pc平台的简单toast
  9. Redis 笔记(二)—— STRING 常用命令
  10. wireshark抓包实战(五),首选项设置和基本的抓包设置