python信息收集(一)
在渗透测试初期,需要进行大量的信息收集。一般情况下,信息收集可以分为两大类————被动信息收集和主动信息收集。
其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站长工具、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()
最新文章
- sniffer底层网络配置记录
- Java多线程基础知识(二)
- 20160113006 asp.net实现ftp上传代码(解决大文件上传问题)
- 批次更新BAPI_OBJCL_CHANGE
- 20141015--for语句1
- 【mysql的编程专题⑥】视图
- 【解决】HDFS HA无法自动切换问题
- (2.1)servlet线程安全问题
- 开发移动端web应用, 使用手机自带键盘的搜索按钮
- PHP判断图片是否存在和jquery中load事件对图片的处理
- 如何使用python生成xml
- Javascript是单线程的深入分析(转)
- Mac下Charles Contents乱码解决办法
- sqlserver中select造成死锁
- P1462 通往奥格瑞玛的道路 (二分+最短路)
- Asp.net 按钮幕布遮盖效果实现方式
- DCDC电源 TPS54525
- 【转】linux下解压.bz2压缩文件
- gulp合并压缩
- 以太坊api访问,区块同步监测