i* Use chroot () in a secure way - chdir+chroot * Added CHRDIR to chdir after chrooting * Fix support to 'run any command' - sup - small tool for privilege escalation Err bitreich.org 70
hgit clone git://bitreich.org/sup git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sup URL:git://bitreich.org/sup git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sup bitreich.org 70
1Log /scm/sup/log.gph bitreich.org 70
1Files /scm/sup/files.gph bitreich.org 70
1Refs /scm/sup/refs.gph bitreich.org 70
1Tags /scm/sup/tag bitreich.org 70
1README /scm/sup/file/README.gph bitreich.org 70
1LICENSE /scm/sup/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit a9bc8aa095aabbb77bc77d990cc410c65cae19ba /scm/sup/commit/a9bc8aa095aabbb77bc77d990cc410c65cae19ba.gph bitreich.org 70
1parent 989bc1c744d8fe03a58692410a6d68ad00a872c8 /scm/sup/commit/989bc1c744d8fe03a58692410a6d68ad00a872c8.gph bitreich.org 70
hAuthor: pancake@dazo <unknown> URL:mailto:unknown bitreich.org 70
iDate: Mon, 14 Dec 2009 01:30:40 +0100 Err bitreich.org 70
i Err bitreich.org 70
i* Use chroot () in a secure way Err bitreich.org 70
i - chdir+chroot Err bitreich.org 70
i* Added CHRDIR to chdir after chrooting Err bitreich.org 70
i* Fix support to 'run any command' Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M config.def.h | 3 ++- Err bitreich.org 70
i M sup.c | 8 ++++++-- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 8 insertions(+), 3 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/config.def.h b/config.def.h /scm/sup/file/config.def.h.gph bitreich.org 70
i@@ -4,7 +4,8 @@ Err bitreich.org 70
i #define SETUID 0 Err bitreich.org 70
i #define SETGID 0 Err bitreich.org 70
i Err bitreich.org 70
i-#define CHROOT "/" Err bitreich.org 70
i+#define CHROOT "" Err bitreich.org 70
i+#define CHRDIR "" Err bitreich.org 70
i Err bitreich.org 70
i #define ENFORCE 1 Err bitreich.org 70
i Err bitreich.org 70
1diff --git a/sup.c b/sup.c /scm/sup/file/sup.c.gph bitreich.org 70
i@@ -60,10 +60,14 @@ int main(int argc, char **argv) { Err bitreich.org 70
i seteuid (SETUID) == -1 || setegid (SETGID) == -1) Err bitreich.org 70
i return die (1, strerror (errno)); Err bitreich.org 70
i #ifdef CHROOT Err bitreich.org 70
i- if (chroot (CHROOT) == -1) Err bitreich.org 70
i+ if (*CHROOT) Err bitreich.org 70
i+ if (chdir (CHROOT) == -1 || chroot (".") == -1) Err bitreich.org 70
i return die (1, strerror (errno)); Err bitreich.org 70
i+ if (*CHRDIR) Err bitreich.org 70
i+ if (chdir (CHRDIR) == -1) Err bitreich.org 70
i+ return die (1, strerror (errno)); Err bitreich.org 70
i #endif Err bitreich.org 70
i- ret = execv (rules[i].path? rules[i].path:argv[1], argv+1); Err bitreich.org 70
i+ ret = execv (*rules[i].path? rules[i].path:argv[1], argv+1); Err bitreich.org 70
i return die (ret, strerror (errno)); Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
.
Response:
text/plain