前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编写渗透工具学习笔记一 | 0x03用多线程扫描某一网段中存活的主机

Python编写渗透工具学习笔记一 | 0x03用多线程扫描某一网段中存活的主机

作者头像
安恒网络空间安全讲武堂
发布2018-02-06 14:51:14
7450
发布2018-02-06 14:51:14
举报

0x03用多线程扫描

某一网段中存活的主机

(如果渗透进了内网,还可以扫描内网上里的存活主机)

脚本利用演示+实现思路分析

实现思路:

调用终端执行ping命令,通过回显中是否有关键字 TTL 来判断主机是否存活

比较简陋,但是开发速度快,扫描精准度一般

先是用raw_input()接收要扫描的网段,然后生成该网段的256个ip,然后调用ping_check(ip)进行扫描,用subprocess.Popen()调用命令行终端执行ping,然后用check.stdout.read()读取执行ping命令之后返回的结果,用关键字TTL是否存在来判断主机是否存活,如果存在TTL就说明主机存活(这个我们执行以下ping就知道了,看下面截图)

主机112.90.216.1存活,在返回的信息里有字串‘TTL’

主机112.90.216.2不存活,在返回的信息里没有字串‘TTL’

一些基础知识

这里提供两个脚本给大家对比学习(主要是学习多线程)

  • python不推荐使用thread模块 ,推荐更高级的threading。
  • ping_Cduan.py这里的多线程使用thread模块,thread提供了低级别的、原始的线程以及一个简单的锁。
  • ping_YH.py这里使用Queue和threading模块
  • Queue模块是提供队列操作的模块,可以看成是一种数据结构
  • threading基于Java的线程模型设计,锁(Lock)和条件变量(Condition)在Java中是对象的基本行为(每一个对象都自带了锁和条件变量),而在Python中则是独立的对象。

一般来说,使用线程有两种模式,一种是创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;另一种是直接从Thread继承,创建一个新的class,重写run方法,把线程执行的代码放到这个新的 class里。

科普一个模块IPy,如下脚本 会生成一整个192.168.1.0/24网段的256个ip

(也可以不使用这个模块)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 恒星EDU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档