20169206 第十周作业
nmap+wireshark攻防实验
作为防守方
tcpdump捕获
tcpdump会迅速闪过很多条包,为清晰显示,使用命令tcpdump host 222.28.136.188 > from188.txt
,目的是仅查看来自222.28.136.188(攻击方ip)的包,并将信息存到from188.txt中,如图,可以看到包头信息
wireshark分析
打开wireshark,过滤出tcp的包,一下子就看到与222.28.136.188通信的包,如图,
显示一下对应的tcp流图,如图,
带有包头内容的流图,
可以看到一些握手的建立,窗口和MTU的大小设置,但报文都是空的,nmap应该是由这些有限的包头数据作分析,通过端口的开放和回应情况判断对方的OS等。
作为攻击方
我和20169218一组,其ip是222.28.136.188。作为攻击方时,我用nmap对其扫描,如图,
此外,由于本班人数为奇数,我们组同时还有20169202,其ip为222.28.136.43,我用nmap对其进行的是udp扫描,如图,
缓冲区溢出实验
具体过程严格按照https://www.shiyanlou.com/courses/231/labs/749/document上面所描述。
首先配置好环境。
漏洞程序
存漏洞程序stack.c,如图,
需对其权限做更改,更改前后的权限变化如图,
攻击程序
同样是按照文档中的代码存一个exploit.c,先存着。
反汇编漏洞程序stack
使用gdb,在这里我遇到了问题,因为在设置断点时输错了地址,所以在输入r时执行失败,显示无法插入断点。
解决方法:使用help all
查看gdb命令,找到清除断点的命令删除所有断点,重新设置,如图,
计算shellcode地址
我的str地址是0xffffd350,加上十进制的100后为0xffffd3b4,对应修改exploit.c源文件,如图,
执行结果
编译执行,结果如图,