精华内容
下载资源
问答
  • 网络安全扫描器代码
    万次阅读 多人点赞
    2020-07-16 12:03:44

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了威胁情报分析,通过Python抓取FreeBuf网站“APT”主题的相关文章。这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。基础性文章,希望对您有所帮助~

    自全球第一个计算机病毒出现后,人们通过与病毒长期的斗争,积累了大量反病毒经验,掌握了大量实用的反病毒技术,并研制出一系列优秀的反病毒产品,主要用于病毒的防护、检测及其清除等。病毒的检测技术主要包括特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术、主动防御技术,以及新兴的云查杀技术等。个人用户也可以通过经验、安全检测工具和反病毒软件来检查计算机是否感染病毒,或是采用沙箱及相关静、动态分析手段来对病毒进行深入分析。

    作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

    更多相关内容
  • 网络安全课程设计(端口扫描器的设计与实现)报告+代码
  • nmap (“Network Mapper(网络映射)”) 是一款开放源代码网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些...
  • 本设计通过端口扫描器的研究来提高对计算机安全的认识。利用TCPconnect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多...
  • 网络安全 扫描器详解

    千次阅读 2012-07-11 16:15:21
    扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型...
    扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。

    一、系统漏洞扫描器

    1  Retina
    Retina是eEye公司( www.eeye.com) 的产品,强大的网络漏洞检测技术可以有效的检测并修复各种安全隐患和漏洞,并且生成详细的安全检测报告,兼容各种主流操作系统、防火墙、路由器等各种网络设备。曾在国外的安全评估软件的评测中名列第一。Retina的主界面共分为三个部分,上部是菜单和工具栏,下部的左边是动态导航菜单,右边是与左边菜单相对应的内容显示窗口(如图1)。

    图1  Retina的主界面

    如要对单机进行扫描,只要在Address栏输入该计算机的IP地址,然后单击Address栏右边的start按钮即可开始扫描。如要对某个网段的计算机进行扫描,可以按Ctrl+R,在新出现的窗口装设置要扫描的IP地址范围。如要修改Retina的扫描内容和策略,需要到菜单栏的Tools中的Policies项进行设置(如图2)。
     
    图2  Retina的扫描内容和策略设置窗口

    2  Superscan
    Superscan是foundstone实验室的一个端口扫描工具,速度极快而且资源占用很小,图3是它的主程序界面。

    图3  Superscan的界面

    SuperScan具有以下功能:
    (1)通过Ping来检验IP是否在线;
    (2)IP和域名相互转换;
    (3)可以尝试通过TCP连接到电脑上,检测目标运行的服务;
    (4)检验一定范围目标计算机的是否在线和端口情况;(5)自定义要检验的端口,并可以保存为端口列表文件。
    3  X-Scan
    X-Scan是安全焦点的力作,扫描内容包括:远程操作系统类型及版本,标准端口状态及端口BANNER信息,CGI漏洞,IIS漏洞,RPC漏洞,SQL-SERVER、FTP、NT-SERVER等弱口令用户,NETBIOS信息等等。扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件。对于一些已知漏洞,给出了相应的漏洞描述、利用程序及解决方案。X-Scan不光是黑客手中的利器,也是网络管理员的得力助手。X-Scan程序界面如图4所示,上方功能按钮包括:“扫描参数”、“开始扫描”、“暂停扫描”、“终止扫描”、“检测报告”、“使用说明”、“在线升级”、“退出”。

    图4  X-Scan程序界面

    在进行扫描前需要设置一下扫描参数,按Ctrl+E即可调出扫描参数设置窗口,如图5所示。
     
    图5  X-Scan的扫描参数设置窗口

    “检测范围”中,可以设置要扫描的IP地址,可以是一台服务器,也可以是某个网段的服务器,格式为:127.0.0.1-127.0.0.224。
    在“全局设置”中包含了所有全局性扫描选项,包括“扫描模块”,“并发扫描”,“扫描报告”,“其他设置”。
    1. “扫描模块”主要是设置要扫描对方的哪些漏洞和信息。
    2. “并发扫描”中可以设置最大并发主机数量,最大并发线程数量和各插件最大并发线程数量。
    3. “扫描报告”则是设置扫描后生成的报告的文件名和格式,以及是否自动生成并显示报告。
    4. 在“其他设置”中,如果我们设置了“跳过没有响应的主机”,对方禁止了PING或防火墙设置使对方没有响应的话,X-Scan会自动跳过,自动检测下一台主机。如果用“无条件扫描”的话,X-Scan会对目标进行详细检测,这样结果会比较详细也会更加准确,但扫描时间会延长。
    “插件设置”中,包括“端口相关设置”,“SNMP相关设置”,“NETBIOS相关设置”,“漏洞检测脚本设置”,“CGI相关设置”,“字典文件设置”。
    1. “端口相关设置”中我们可以自定义一些需要检测的端口。检测方式“TCP”、“SYN”两种,TCP方式容易被对方发现,准确性要高一些,SYN则相反。
    2. “SNMP相关设置”主要是针对SNMP信息的一些检测设置。
    3. “NETBIOS相关设置”是针对WINDOWS系统的NETBIOS信息的检测设置,包括的项目有很多种,我们根据需求选择实用的就可以了。
    4. “漏洞检测脚本设置”可以设置使用哪些漏洞检测脚本,是否使用破坏性脚本。
    5. “CGI相关设置”扫描CGI漏洞的相关设置。
    6. “字典文件设置” 是X-Scan自带的一些用于破解远程账号所用的字典文件,这些字典都是简单或系统默认的账号等。我们可以选择自己的字典或手工对默认字典进行修改。默认字典存放在“DAT”文件夹中。字典文件越大,探测时间越长。“扫描参数”设置好后单击“开始扫描”按钮 (绿色三角)X-Scan就开始扫描了。
    4  N-Stealth
    N-Stealth是一个全面的Web服务器审计工具,它可以扫描超过30000个弱点,是系统管理员、安全顾问和其他IT职业的理想工具,据说是世界上最顶尖的Web服务器安全扫描工具,图6是N-Stealth的主程序界面。
     
    图6 N-Stealth的主程序界面
    作者:宋雁鸣
    转载请指明文章出自IT英雄榜
    N-Stealth的特点:
    ·能在win98/ME/2000/XP/2003系统下正常地运行
    ·能测试扫描目前几乎所有WEB类型的服务器,包括某些网络设备的WEB控制平台
    ·支持大多数的WEB服务应用程序(如: CGI,ColdFusion,ASP,Lotus Domino,FrontPage,PHP等)
    ·能进行SANS/FBI的头10&20漏洞扫描
    ·全面支持HTTP与HTTPS(SSL)
    ·全面支持使用代理服务器
    ·容易解读的图形报告生成模块
    ·支持虚拟主机
    ·准确的错误筛选机制
    ·带有缓冲区溢出测试引擎·漏洞数据库能进行智能升级(DB update,注:此功能仅限于正式版才能使用)。

    二、SQL注入漏洞扫描器

    SQL注入漏洞是指Web程序员在开发Web程序时,代码编写不严谨,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入,这也是最近比较流行的一种Web攻击方式。
    1  Wis+Wed
    小榕开发的两款在cmd命令窗口中运行的SQL注入点扫描工具,扫描速度很快。Wis (Web Injection Scanner),可以自动对整个网站进行SQL Injection 脆弱性扫描,并且能够扫描后台登陆界面。命令格式如下:
    wis  http://www.someaspsite.com/index.asp   扫描整个www. someaspsite.com网站,找出存在SQL Injection的页面。wis  http://www.someaspsite.com /index.asp /a  扫描网站后台管理页面入口,如图7所示。
     
    图7  wis的命令格式
    作者:宋雁鸣
    转载请指明文章出自IT英雄榜
    Wed (Web Entry Detector),针对存在SQL Injection的网站对管理帐号进行扫描的程序。命令格式如下:wed http://www.someaspsite.com/shownews.asp?id=1   对存在SQL Injection漏洞的网站进行后台管理帐号扫描,这里假设 http://www.someaspsite.com/shownews.asp?id=1是SQL注入点 ,如图8示。
     
    图8 wed的命令格式

    2  NBSI小竹的作品,功能很多,比较常用的有“网站扫描”,“注入分析”,“扫描及工具”这三个功能。“网站扫描”是扫描网站的SQL注入点,并会显示出可能存在注入漏洞的地址,有极高,中等,极低几个等级提示,如图9所示,为了避免引起不必要的麻烦,我将一些敏感信息遮住了,也请大家理解。

    图9  网站扫描后得到的信息

    通过“网站扫描”得到SQL注入点后,单击“注入分析”按钮,进入注入分析界面,单击“检测”按钮,就会得到该网站的数据库信息,以及当前用户名和当前的数据库名,如图10所示。

    图10  注入分析得到信息

    然后单击“猜解表名”按钮,得到当前数据库中的所有表名,选中一个表,单击“猜解列名”,得到表中的所有列,选中某个或某些列,再单击“猜解记录”,就会得到选中的列中保存的信息,如图11所示。

    图11  猜解得到的表,列,记录信息

    得到管理员的用户名和密码后,就是用对后台管理地址扫描了,如图12所示。

    图12 扫描网站得到的可能存在的管理后台路径

    得到管理后台路径后,用前面得到的用户名和密码进入管理后台,如果管理后台可以上传文件,那就直接上传一个asp木马,得到对方的WebShell,然后尝试得到对方的系统管理权限。
    3  啊D SQL注入工具
    啊D SQL注入工具主要功能和使用方法与NBSI类似,不过该软件有个特色就是支持汉字破解,而且速度很快,该软件界面如图13所示。
     
    图13  啊D SQL注入工具界面

    作者:宋雁鸣
    转载请指明文章出自IT英雄榜
    4  SQL漏洞注入工具的工作原理
    通过上面介绍的这些SQL注入工具,大家不难看出它们的功能都差不多,原理都是通过不断的提交构造好的特殊的SQL语句和管理后台地址,根据对方返回的信息来判断猜解的是否正确。如果大家希望学习全手工的注射,可以使用抓包的工具捕获工具发送的数据包,比如使用在第一章介绍的Achilles,图14就是用Achilles捕获的NBSI发出的数据。

    图14  用Achilles捕获的NBSI发出的数据


    三、其他扫描器

    1  ISS(Internet Security Scanner)
    ISS公司开发和维护的商业漏洞扫描程序,它的可移植性和灵活性很强,众多的UNIX的平台上都可以运行ISS。
    2  流光
    在国内可以与X-Scan相提并论的扫描器,它除了能够像X-Scan那样扫描众多漏洞、弱口令外,还集成了常用的入侵工具,如字典工具、NT/IIS工具等,还独创了能够控制“肉鸡”进行扫描的“流光Sensor工具”和为“肉鸡”安装服务的“种植者”工具。
    3  WINNTAutoAttack
    也叫Windows NT/2000 自动攻击探测机,常被用扫描肉鸡,该软件可以根据目标存在的漏洞自动在对方的计算机上添加用户。
    展开全文
  • 网络扫描安全评估实验实验报告

    千次阅读 2020-10-25 22:59:27
    1.掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌握发现系统漏洞的方法。  2.掌握综合扫描及安全评估工具的使用方法,解进行简单系统漏洞入侵的方法,了解常见的网络和系统漏洞以及其安全防护...

    桂 林 理 工 大 学
    实 验 报 告
    实验名称 网络扫描及安全评估实验
    一、实验目的:
    1.掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌握发现系统漏洞的方法。 
    2.掌握综合扫描及安全评估工具的使用方法,解进行简单系统漏洞入侵的方法,了解常见的网络和系统漏洞以及其安全防护方法。

    二、实验环境:
    1.实验室所有机器安装了Windows操作系统,并组成了一个 局域网,并且都安装了SuperScan端口扫描工具和流光Fluxay5综合扫描工具。
    2.每两个学生为一组:互相进行端口扫描和综合扫描实验。

    三、实验内容:
    一、根据任务一的扫描结果,写出主机开放的端口类型和服务。同时写出尝试关闭或开放目标主机上的部分服务后重新扫描的新结果。

    扫描结果:
    在这里插入图片描述

    A主机开放的端口:
    在这里插入图片描述

    结果1:

    在这里插入图片描述
    在这里插入图片描述

    结果2:

    在这里插入图片描述

    利用TCP/IP筛选:网上邻居属性-本地连接属性-常规-internet协议 (TCP/IP) 属性-高级-选项-TCP/IP筛选-属性-TCP端口-只允许139,445,这样其他端口都被关闭了
    在这里插入图片描述

    关闭一些端口后:
    扫描结果1:
    在这里插入图片描述

    扫描结果2:

    在这里插入图片描述
    在这里插入图片描述

    端口关闭成功
    二、根据任务二的扫描结果,记录被扫描方的用户列表、提供的服务、共享的目录和已经存在的漏洞,分析这些漏洞,写出是系统哪方面设置防范不合理造成的,写出解决措施。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (1)端口漏洞分析
    主要是21、445、139端口
    端口21:FTP端口,攻击者可能利用用户名和密码过于简单,甚至可以匿名登录到目标主机上,并上传木马或病毒进而控制目标主机
    端口445:这个端口的开放使安装终端服务和全拼输入法的Windows2000服务器存在着远程登录并获得超级用户权限的严重漏洞
    端口139:NEBIOS会话服务端口,主要用于Widows文件和打印机共享以及Unix中的Samba服务。139端口可以被攻击者利用,建立IPC连接入侵目标主机,获得主机的root权限并放置病毒或木马。
    (2)FTP漏洞分析
    在扫描结果中可以看到目标主机FTP可以匿名登录,我们直接利用流光提供的入侵菜单进行FTP登录
    在这里插入图片描述

    三、写出利用破解的用户ADMINISTRATOR对目标主机进行留后门入侵的详细步骤(包括各个步骤对应的使用的命令)
    1.编写批处理文件hack.bat,文件中包含两个命令:1)建立一个新账号,2) 将新账号加入administrators组。
    2.使用net命令与目标主机建立连接
    3.将批处理文件hack.back拷贝至目标主机上。
    4.通过计划任务使目标主机执行hack.bat文件。
    5.断开所有IPC$连接。
    6.通过采用新账号与目标主机建立连接来验证账号是否成功建立。
    7.删除和目标主机的连接。

    四、心得体会:

    展开全文
  • 可以提前结束扫面,安全的结束线程 效果示例(源码) 界面 扫描局域网内开放的端口 扫描百度 多线程加速 提前结束扫描 实验步骤一、熟悉QtCreator编程 C语言中文网Qt教程,按序看10~15篇 Qt...

    实验任务

    • 编写端口扫描程序

      1. 具有界面(使用QtCreator)
      2. 具有多线程处理能力
      3. 使用简单的connect确定端口是否开放即可
      4. 可以提前结束扫面,安全的结束线程
    • 效果示例(源码)

      1. 界面

        在这里插入图片描述

      2. 扫描局域网内开放的端口

        在这里插入图片描述

      3. 扫描百度

        在这里插入图片描述

      4. 多线程加速

        在这里插入图片描述

      5. 提前结束扫描

        在这里插入图片描述

        在这里插入图片描述

    实验步骤一、熟悉QtCreator编程

    实验步骤二、设计界面

    • 拖拉拽即可,注意一点就是控件的objectName属性值,通过该值可以在代码中访问、更新UI,如

      在这里插入图片描述

      更新结果显示区内容时,使用ui->resultArea访问该控件对象

      void MainWindow::updateResult(QString info, bool opened) {
          /* other code */
          
          /* 向结果区增加记录 */
          ui->resultArea->append(info + " " + (opened ? "opened" : "closed"));
          
         	/* other code */
      }
      

      也可以在代码中设置控件的一些属性,如

      MainWindow::MainWindow(QWidget *parent)
          : QMainWindow(parent)
          , ui(new Ui::MainWindow)
      {
          ui->setupUi(this);
          
          /* 设置每个IP输入框的长度限制 */
          ui->startIP_1->setMaxLength(3);
          ui->startIP_2->setMaxLength(3);
          ui->startIP_3->setMaxLength(3);
          ui->startIP_4->setMaxLength(3);
          ui->endIP_1->setMaxLength(3);
          ui->endIP_2->setMaxLength(3);
          ui->endIP_3->setMaxLength(3);
          ui->endIP_4->setMaxLength(3);
      
          /* other code */
      }
      

      将按钮的点击事件和处理函数绑定(Qt称为连接信号与槽)

      MainWindow::MainWindow(QWidget *parent)
          : QMainWindow(parent)
          , ui(new Ui::MainWindow)
      {
          /* other code */  
      	
          /* 绑定(连接)开始扫描和结束扫描按钮点击事件(信号)对应的处理函数(槽) */
          QObject::connect(ui->beginScan, &QPushButton::clicked, this, &MainWindow::scan);
          QObject::connect(ui->stopScan, &QPushButton::clicked, this, &MainWindow::terminateScan);
      }
      

    实验步骤二、确定通信对象,声明信号和槽

    • UI中的按钮创建对应的槽 mainwindow.h

      class MainWindow : public QMainWindow
      {
      /* other code */
          
      /* 声明槽 */
      public slots :
          void scan(); /* 开始扫描 */
          void terminateScan(); /* 结束扫描 */
          void updateResult(QString info, bool open); /* 子线程扫描结束对应的槽 */
      };
      
    • 子线程扫描结束信号,及主线程对应的槽(上述第三个) scanthread.h

      class ScanThread : public QThread
      {
      /* other code */
          
      /* 声明信号 */
      signals:
          void scanOver(QString info, bool opened); /* 子线程扫描完成一个端口时发出信号,主线程更新UI */
      };
      

    实验步骤三、主线程之参数校验

    • 合法IP地址、IP范围校验

    • 合法端口校验

    • 合理线程校验

      qDebug() << "检查线程\n";
      /* 获取控件参数 */
      int numOfThread = ui->threadCount->text().toInt();
      if(numOfThread == NULL || numOfThread < 0 || numOfThread > 1000) {
          QMessageBox::warning(
              this,
              tr("提示"),
              tr("请输入正确的线程数(max=1000)!"),
              QMessageBox::Ok);
          return ;
      }
      

    实验步骤四、主线程之任务分配

    • 分配方式

      1. 待扫描的IP数量小于等于线程数:

        每个线程只需扫描一个IP地址,按端口数量分配任务;

        有可能出现刚好跨IP的情况(前一个IP的最后几个端口和下一个IP的前几个端口),方便起见,遇到这种情况时,前一个线程只需扫描完当前IP的最后几个端口即可;而原本在它工作范围之内的剩余IP均分给剩余线程

      2. 带扫描的IP数量大于线程数

        每个线程要扫描多个IP地址,则按IP数量分配任务,每个线程完成分配到的IP的所有端口的扫描

      3. 每次给当线程分配完任务后都动态调整剩余任务的分配

    • 分配实现

      if(numOfThread >= ipCount) {
              // 按线程分配,一个线程最多扫描一个IP
              int taskForSingleThread = totCount / numOfThread, dispatchTask = 0;
              for(int i = 0; i < numOfThread; i++) {
                  // 计算出线程需要扫描的IP及端口
                  currentIP = netAddr + QString::number(hostAddr + scannedIP, 10);
                  currentPort = scannedPort % portCount + startPort;
      
                  // 最后一个线程完成剩下的任务即可
                  if(i == numOfThread - 1) taskForSingleThread = totCount - scannedPort;
      
                  // 如果一个IP剩下的端口小于task,那么该线程少分配一些任务,扫描完当前IP即可
                  // 而未分配到的任务将均分至剩下的线程中
                  if(endPort - currentPort + 1 < taskForSingleThread) {
                      dispatchTask = endPort - currentPort + 1;
                  } else {
                      dispatchTask = taskForSingleThread;
                  }
      
                  ScanThread* thread = new ScanThread(currentIP, 1, currentPort, dispatchTask);
                  QObject::connect(thread, &ScanThread::scanOver, this, &MainWindow::updateResult);
                  threadPool[i] = thread;
                  thread->start();
                  scannedPort += dispatchTask;
                  scannedIP = scannedPort / portCount;
      
                  // 修正平均工作量
                  if((totCount - scannedPort) * 1.0 / (numOfThread - i - 1) > taskForSingleThread) {
                      taskForSingleThread++;
                  }
              }
          } else {
              // 按IP分配,每个线程扫描多IP
              int taskForSingleThread = ipCount / numOfThread;
              for(int i = 0; i < numOfThread; i++) {
                  currentIP = netAddr + QString::number(hostAddr + scannedIP, 10);
                  if(i == numOfThread - 1) {
                      taskForSingleThread = ipCount - scannedIP;
                  }
                  ScanThread* thread = new ScanThread(currentIP, taskForSingleThread, startPort, portCount);
                  QObject::connect(thread, &ScanThread::scanOver, this, &MainWindow::updateResult);
                  /* 记录所有开启的线程 */
                  threadPool[i] = thread;
                  thread->start();
                  scannedIP += taskForSingleThread;
      
                  if((ipCount - scannedIP) * 1.0 / (numOfThread - i - 1) > taskForSingleThread) {
                      taskForSingleThread++;
                  }
              }
          }
      }
      

    实验步骤五、主线程之更新UI

    • 收到子线程传递的扫描结果,将其显示在相应区域

      void MainWindow::updateResult(QString info, bool opened) {
          /* 提前结束扫描的标志 */
          if(this->isOver) return ;
          
          /* 显示扫描结果 */
          ui->resultArea->append(info + " " + (opened ? "opened" : "closed"));
          
          /* 记录开启的端口 */
          if(opened) {
              this->openedPort.append(info);
          }
          this->finTask++;
          
          /* 所有任务完成 */ 
          if(this->finTask == this->totTask) { 
              this->endTime = QTime::currentTime();
              ui->resultArea->append("扫描结束,耗时: " + QString::number(this->startTime.msecsTo(this->endTime) / 1000.0));
              /* 显示所有开启的端口 */
              this->showAllOpenedPorts();
          }
      }
      
    • 最后显示所有开启的端口

      void MainWindow::showAllOpenedPorts() {
          ui->resultArea->append("-------------------------------------------\n开启的IP及端口号如下");
          int numOfOpenedPort = this->openedPort.size();
          for(int i = 0; i < numOfOpenedPort; i++) {
              ui->resultArea->append(this->openedPort.at(i));
          }
          ui->resultArea->append("-------------------------------------------\n本次扫描完成\n");
          qDebug() << "over";
      }
      

    实验步骤六、主线程之结束子线程

    • 由于提供了提前终止扫描的按钮,需要适当的处理子线程

      void MainWindow::terminateScan() {
          
          /* 提示用户确定终止扫描 */
          int confirm = QMessageBox::warning(
                      this,
                      tr("提示"),
                      tr("您确定要提前结束扫描吗?"),
                      QMessageBox::Ok, QMessageBox::Cancel);
          if(confirm != QMessageBox::Ok) {
              return ;
          }
          
          /* 设置终止标志位,组织UI继续更新 */
          this->isOver = true;
          
          /* 遍历所有子线程 */
          for(int i = 0; i < 64; i++) {
              if(threadPool[i] != NULL) {
                  /* 向子线程发出终止请求 */
                  threadPool[i]->requestInterruption();
                  /* 等待子线程退出 */
                  threadPool[i]->wait();
                  qDebug() << "stop" << threadPool[i] << "\n";
              }
          }
          ui->resultArea->append("-------------------------------------------\n本次扫描已终止\n");
          qDebug() << "stopped\n";
      }
      

    实验步骤七、子线程之扫描端口

    • 主线程给子线程分配任务时,传递了以下参数

      1. ip:待扫描的起始IP
      2. ipCount:待扫描的IP数量
      3. port:待扫描的起始端口
      4. portCount:待扫描的端口数量
    • 扫描实现

      void ScanThread::run() {
      
          QTcpSocket* conn = new QTcpSocket();
      
          /* 获得网络号 */
          QString netAddr = ip.left(ip.lastIndexOf('.') + 1);
          /* 获得主机号 */
          int hostAddr = ip.right(ip.length() - ip.lastIndexOf('.') - 1).toInt();
      
          /* 遍历所有主机(IP) */
          QString curIP;
          int curPort;
          /* 每次循环开始时检查主线程是否发出了终止请求 */
          for(int i = 0; !isInterruptionRequested() && i < ipCount; i++) {
              /* 获得待扫描的IP */
              curIP = netAddr + QString::number(hostAddr + i);
              /* 扫描端口 */
              for(int j = 0; !isInterruptionRequested() && j < portCount; j++) {
                  qDebug() << "线程" << QThread::currentThreadId() << " 开始扫描 " << curIP << ":" << port << "\n";
                  curPort = port + j;
                  /* 向该端口发送连接请求 */
                  conn->connectToHost(curIP, curPort);
                  /* 等待一段时间,得到连接结果 */
                  bool res = conn->waitForConnected(1000);
                  /* 在向主线程发送更新信号时,判断一下当前扫描是否已终止,这是由于信号的延迟会导致UI冲突 */
                  if(!isInterruptionRequested()) {
                      /* 向主线程发送扫描完成的信号并传递结果 */
                      emit scanOver(curIP + ":" + QString::number(curPort), res);
                  }
                  if(res) {
                      qDebug() << "opened";
                  } else {
                      qDebug() << "closed";
                  }
                  /* 断开连接 */
                  conn->disconnectFromHost();
              }
          }
      
          qDebug() << "线程" << QThread::currentThreadId() << " 扫描完成" << "\n";
      }
      

    总结

    • 时间比较紧,处理线程任务分配和提前终止最麻烦
    展开全文
  • 网络安全知识之防范恶意代码

    千次阅读 2021-12-31 19:31:28
    首先防范恶意代码在我们的网络安全等级保护工作中是有明确要求的。在单位落实等级保护建设过程中,不得不考虑的一项安全防范措施,是保护自身系统安全,也是在落实《网络安全法》第二十一条之规定。 落到等级...
  • 黑客网络安全扫描工具

    万次阅读 多人点赞 2018-07-30 20:48:47
    Scanners Box是一个集合github平台上的安全行业从业者自研开源扫描器的仓库,包括子域名枚举、数据库漏洞扫描、弱口令或信息泄漏扫描、端口扫描、指纹识别以及其他大型扫描器或模块化扫描器,同时该仓库只收录各位...
  • [网络安全学习篇52]:扫描技术

    千次阅读 2020-04-27 22:51:32
    网络漏洞扫描 漏洞扫描原理 漏洞扫描通常分为两大类 *黑盒扫描 *白盒测试 OpenVAS 扫描 *扫描目标 *扫描策略 *扫描任务 *扫描完成 *扫描报告 Web 漏洞扫描 使用AWVS 扫描testfire.net Web 漏洞扫描原理...
  • 这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Python弱口令攻击、自定义字典生成,调用Python的exrex库实现,并结合...
  • 网络安全开发包详解代码

    热门讨论 2010-05-13 22:58:23
    还有就是直接运用成熟的网络安全技术来设计一个应用系统,其中常见的有:防火墙系统(如Netfilter,pktfilter等),入侵检测系统(如Snort等),网络安全扫描系统(如Nmap,Nessus等),网络嗅探(如Tcpdump/Windump,...
  • Java实现端口扫描器

    千次阅读 2021-11-09 08:52:48
    通过Java实现一个端口扫描器 原理介绍 端口扫描顾名思义,就是扫描目的资源的端口,来发现目的资源是否对外开放某个端口,提供了某种网络服务。 在安全攻防领域经常通过端口扫描技术来发现关键资产对外提供服务的...
  • 内容索引:VB源码,系统相关,端口扫描 VB快速端口扫描器的源代码,能快速扫描计算机或局域网中所有存在安全隐患的端口。程序中附带特洛伊和后门程序信息的数据库,主要特色是扫描速度快,扫描32,000个端口仅仅需要一...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了传统的恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验...
  • 本文概述在你的PHP应用程序中查找安全风险和代码质量。PHP统治着网络, 约有80%的市场份额。它无处不在– WordPress, Joomla, Lavarel, Drupal等。 PHP核心是安全的, 但除此之外, 你可能还在使用许多其他功能, 这...
  • 这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。本篇文章,作者将分享两篇论文,机器学习是如何运用到恶意代码攻击中的,并谈谈自己的...
  • 漏洞扫描器学习

    千次阅读 2022-03-08 19:31:48
    漏洞扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。 端口扫描原理: 端口扫描的原理其实非常简单,简单的利用操作系统提供的connect()系统调用...
  • 网络安全实验3 漏洞扫描

    千次阅读 2019-11-02 00:53:59
    赞赏码 & 联系方式 & 个人闲话 【实验名称】漏洞扫描 【实验目的】 1.熟悉X-Scan工具的使用方法;...2.熟悉FTPScan工具的使用方法;...5.了解开启主机默认共享...漏洞扫描是一种网络安全扫描技术,它基于局域...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。这篇文章将详细讲解PowerShell、Powershell恶意代码检测总结及抽象语法树(AST)提取。...
  • 基于VC++的网络扫描器设计与实现

    千次阅读 2019-04-13 11:52:00
    但前几天看申请软著的汇编记事本代码文件怎么找都找不到,自己电脑也早就换了,放网盘不靠谱放自己电脑也不靠谱,这情况怕是现在没丢的东西以后也会丢有必要另想他法保存。 二是当时论文答辩的时候,导师问“你觉.....
  • Python黑帽第三篇文章将分享网络扫描基础知识,编程实现IP及端口扫描器、实现多线程C段扫描器。本文参考了《Python绝技》书籍和i春秋ADO老师的课程内容,这里真心推荐大家去学习ichunqiu课程,同时也结合作者的编程...
  • 对于用户验证漏洞、用户凭证管理问题、SQL注入等常见Web漏洞,都可以通过Web扫描器进行扫描。各个扫描器的功能和结果都不同,常见的包括HScan、HScan、X-Sccan、Acunetix Web Vulnerability Scanner、Jsky、Router ...
  • ScannersBox也被称为scanbox,是一个强大完备的黑客工具箱,它收集了Github上数10种类别的开源扫描器,包括子域名,数据库,中间件和其他模块化设计的扫描器等,但对于一些被大众所熟知的知名扫描工具,如nmap、w3af...
  • 开源漏洞扫描器合集

    千次阅读 2021-08-20 16:15:06
    更多精彩Zabbix文章、技术... Web层面扫描 系统服务层面扫描 基线配置的安全扫描 集成插件扫描 https://github.com/youmengxuefei/web_vul_scan 基于爬虫的web漏洞扫描器 =========================================== ...
  • 这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步。前文详细讲解了hack the box在线渗透平台注册过程,以及Web渗透三道入门题目,包括...
  • Access Control: SecurityManager Bypass Explanation 使用通过即时调用者的类加载检查执行任务的 ...由于这些 API 可能会削弱系统安全性,因此不应在不可信认的代码上调用它们。 在这种情况下: 1. 可以通过...
  • 网络安全工具列表

    千次阅读 2022-04-20 17:12:51
    网络安全工具列表 Sec-Tools-List 主要总结渗透中利用到的一些工具,按照ATT&CK矩阵的流程进行分类,在此基础上进行了更细致的划分。一些常用的工具(Nmap、MSF、Minikatz不在记录) Initial_Access 1. 信息...
  • 网络安全--端口扫描-工具(zenmap)

    千次阅读 2018-10-29 20:08:41
    zenmap是一个开放源代码网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统等...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,199
精华内容 30,079
关键字:

网络安全扫描器代码