imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 17.07.2004, 07:55     # 1
Cash
Guest
 
Сообщения: n/a

Question сокеты в linux

Помогите. Я не врубаюсь вроде все делаю правельно, но эта прога не правельно работает/ Я хочу сделать свой сервер в linux что бы удаленно можно было получать полный доступ к моему компу. Но где то что то какой то не дачет. Help me please
Мой Исходник

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#define PORT 7777
int main()
{
int s;
int rc;
char buffer[255];
struct sockaddr_in addr;
bzero(&addr,sizeof(addr));

s=socket(PF_INET,SOCK_STREAM,0);

addr.sin_family=PF_INET;
addr.sin_port=htons(PORT);
addr.sin_addr.s_addr=INADDR_ANY;

if(bind(s,(struct sockaddr*)&addr,sizeof(addr))!=0)
perror("Error Bind\n");
if(listen(s,20)!=0)
perror("Error Listen");
for(;
{
int cl;
struct sockaddr_in client;
int size;
size=sizeof(client);
cl=accept(s,(struct sockaddr*)&client,&size);
bzero(&client,sizeof(client));
if(cl<0)perror("Error Accept");
else
{
if(fork()>0)
{
close(cl);
}
else if(fork()==0)
{
while(1)
{
bzero(buffer,sizeof(buffer));
rc=recv(cl,buffer,255,0);
printf("%s",buffer);
if(rc>0)break;
}

dup2(cl,0);
dup2(cl,1);
dup2(cl,2);

execl("/bin/sh","/bin/sh","-c",buffer,0);
}
else perror("Error fork");


}
}

return 0;
}



После запуска этой программы она слушает пор т 7777, ну впрочем как все стандартные серваки. После того как к ней кто то подключился любым сособом (самый распрастраненый telnet IP 7777). Она должна давать клиенту полный shell доступ с провами root, но когда клиент вводит команду, то вот этот мой долбанный сервер выдает ошибку что такой команды не существует.

Последний раз редактировалось Cash; 22.07.2004 в 02:19.
 
Старый 17.07.2004, 11:21     # 2
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
можеш рассказать что проиходит?
Drakosha вне форума  
Старый 22.07.2004, 02:18     # 3
Cash
Guest
 
Сообщения: n/a

Cool Сканер портов

#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>

int main()
{
int s;
int sec;
struct sockaddr_in addr;
s=socket(PF_INET,SOCK_STREAM,0);

addr.sin_family=PF_INET;
addr.sin_addr.s_addr=inet_addr("127.0.0.1");

for(sec=0;sec<65000;sec++)
{
addr.sin_port=htons(sec);
if(connect(s,(struct sockaddr*)&addr,sizeof(addr))==0)
printf("Open Port: %d\n",sec);
else printf("Close Port: ",sec);

}
return 0;
}

Сканер портов методом connect(). На данный момент очень удобен в приминении!

Последний раз редактировалось Cash; 22.07.2004 в 02:14.
 
Старый 22.07.2004, 11:28     # 4
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
может проблема в том что когда запускаешь комманду надо давать полный путь? Например /bin/ls
Drakosha вне форума  
Старый 22.07.2004, 13:03     # 5
sasa001
Guest
 
Сообщения: n/a

Cash
Хм... избитая тема.
connect'ом больно уж медленно сканить будет =) connect() использует ПОЛНУЮ установку TCP-соединения (Syn, Syn+Ack, Ack) с последующим разрывом соединения (rst или fin). Это ОЧЕНЬ медленно и ОЧЕНЬ палевно.
 
Старый 22.07.2004, 14:40     # 6
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
sasa001

а как же тогда делать?
Drakosha вне форума  
Старый 22.07.2004, 15:20     # 7
sasa001
Guest
 
Сообщения: n/a

Drakosha
ну, например, вот - http://www.samag.ru/ru/articles/last...cle/scaner.txt .
На самом деле, вопрос очень больной - и избитый. Сканера(точнее, метода сканирования) быстрого, и не обнаружаемого IDS, нету...
Если еще материал нужен - в пм напиши, выложу завтра.
 
Старый 26.07.2004, 12:58     # 8
Cash
Guest
 
Сообщения: n/a

sasa001

Я думаю что connect(). Хоть и медленный сканер портов. Зато качественный и надежный.

Ну это мое мнение.
 
Старый 26.07.2004, 17:34     # 9
sasa001
Guest
 
Сообщения: n/a

Cash
Tol'ko esli svoih portov =) Chuzie s pomosch'u connect'a lutschsche ne skanit'.
 
Старый 27.07.2004, 06:16     # 10
Cash
Guest
 
Сообщения: n/a

Я полностью с тобой согласен.
Но если тебе например нужны какие нибудь определенные порты. То лучше использовать connect().
Короче я считаю connect - это качество
Все остальное - это скорость.
Кстати я сканирую компы постоянно конектом. В принципе я доволен. Скорость сканирования на секунд 5 меньше того же самого nmap.
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:32.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.