20145318《网络对抗》注入shellcode及Return-to-libc
注入shellcode
知识点
- 注入shellcodeShellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务器的。 Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地。漏洞利用中最关键的是Shellcode的编写。
实践过程
- 写一段shellcode,保存为20145318shellcode.c
安装execstack
- 设置堆栈可执行,并查询堆栈是否可执行,以便shellcode在堆栈上可以执行
- 关闭地址随机化
- 用more /proc/sys/kernel/randomize_va_space来查询地址随机化是开启状态还是关闭状态,`2`表示开启,`0`表示关闭。
- 采取nop+shellcode+retaddr方式构造payload(\x4\x3\x2\x1将覆盖到堆栈上的返回地址的位置,需要将它改为shellcode的地址)
- 注入攻击buf
- 再打开一个终端,用GDB调试5318pwn进程,找到进程号2906
- 启动gdb调试进程,设置断点,查看注入buf的内存地址
- 设置断点后,在另一个终端按下回车,并寻找返回地址,看到01020304表示返回地址的位置,shellcode就紧挨着这个地址,加四字节为其地址
- 退出gdb,按anything+retaddr+nops+shellcode修改input_shellcode如下
- 成功
Return-to-libc攻击
sudo apt-get update
- sudo apt-get install lib32z1 libc6-dev-i386
- 进入32位linux环境,并使用bash
- 关闭地址空间随机化
- 使用另一个shell程序(zsh)代替/bin/bash,设置zsh程序
- 在编译时手动设置栈不可执
- 编写retlib.c
- 编译程序,并设置
SET-UID
- 需要用到一个读取环境变量的程序:
getenvaddr.c
- 编译
- 编写
exploit.c
- 用刚才的
getenvaddr
程序获得BIN_SH
地址
-
gdb
获得system
和exit
地址 - 编译
- gdb,得到
system和
exit的
地址
- 修改
exploit.c
文件,填上刚才找到的内存地址
- 删除刚才调试编译的exploit程序和badfile文件,重新编译修改后的
exploit.c
- 先运行攻击程序exploit,生成了badfile文件,再运行漏洞程序retlib,可见攻击成功,获得了root权限
20145318《网络对抗》注入shellcode及Return-to-libc的更多相关文章
-
20145307陈俊达《网络对抗》shellcode注入&;return to libc
20145307陈俊达<网络对抗>shellcode注入 Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将 ...
-
20145239杜文超《网络对抗》- shellcode注入&;Return-to-libc攻击深入
20145239杜文超<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode基础知识 Shellcode是一段代码,作为数据发送给受攻击服 ...
-
20145210姚思羽《网络对抗》——shellcode注入&; Return-to-libc攻击深入
20145210姚思羽<网络对抗>shellcode注入&Return-to-libc攻击深入 shellcode基础知识 Shellcode是一段代码,作为数据发送给受攻击服务器 ...
-
20145215《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145215<网络对抗>shellcode注入&Return-to-libc攻击深入 Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻 ...
-
20145227鄢曼君《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145227鄢曼君<网络对抗>shellcode注入&Return-to-libc攻击深入 shellcode注入实践 shellcode基础知识 Shellcode实际是一段 ...
-
20145317《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145317<网络对抗>shellcode注入&Return-to-libc攻击深入 学习任务 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻 ...
-
20145208 蔡野《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145208 蔡野<网络对抗>shellcode注入&Return-to-libc攻击深入 Shellcode注入 shellcode的获取代码 我使用了许心远同学博客中的代码 ...
-
20145326蔡馨熠《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145326蔡馨熠<网络对抗>shellcode注入&Return-to-libc攻击深入 准备一段shellcode 首先我们应该知道,到底什么是shellcode.经过上网 ...
-
20145301《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145301<网络对抗>shellcode注入&Return-to-libc攻击深入 Shellcode注入 shellcode是什么? Shellcode是指能完成特殊任务的 ...
-
20145303 刘俊谦《网络对抗》shellcode注入&;Return-to-libc攻击深入
20145303 刘俊谦<网络对抗>shellcode注入&Return-to-libc攻击深入 Shellcode注入 shellcode实际是一段代码,但却作为数据发送给受攻击 ...
随机推荐
-
新建jfinal2.2项目并连接mysql
一新建项目 1. new→Dynamic Web Project 2修改Default Output Folder.一般用WebRoot\WEB-INF\class,然后下一步(注意路径要写对,不然 ...
-
.net下各个数据类型所占用的字节
Console.WriteLine(sizeof(int)); Console.WriteLine(sizeof(short)); Console.WriteLine(sizeof(char)); C ...
-
logging格式
import logging def foo(s): return 10 / int(s) def bar(s): return foo(s) * 2 def main(): try: bar(0) ...
-
netdom remove 错误:netdom remove
自己用错了命令,直接将加入域的计算机使用dsrm删除了,本来应该使用netdom remove的,结果在域控制器上使用netdom remove错误,在客户端上登录时一样提示:netdom remov ...
-
jquery-防多店铺购物车结算全选,单选,及删除,价格计算
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
-
Android undefined intent constructor错误?
本文选自*(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.在Android中启动Service时出现&qu ...
-
ios 缩放动画
CABasicAnimation *buttonAni = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; ...
-
网络知识 ACL NAT IPv6
第1章 ACL 访问控制列表 访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体. 访问控制表描述每一 ...
-
ubuntu10.10安装使用vnc
原文发表于:2010-12-15转载至cu于:2012-07-21 搭安全试验的环境,在vmware上安装了ubuntu10.10(大学的时候用过,最早用的好像是6系列吧).安装好后想用远程桌面控制, ...
-
JS在当前页面插入<;script>;标签,并执行
将<script>标签绑定到<html>上, html可换成body,header等其他存在的标签. var htmm =document.getElementsByTagNa ...