270 likes | 353 Views
Socket Program Training. 10/24/2011. Introduction. Video Streaming Server Darwin VoIP Asterisk Socket Program Ex: FTP Backdoor Program. Darwin Streaming Server. The open source version of Apple’s QuickTime Streaming Server technology Updated Version v6.0.3 http://dss.macosforge.org/
E N D
Socket Program Training 10/24/2011
Introduction • Video Streaming Server • Darwin • VoIP • Asterisk • Socket Program • Ex: FTP • Backdoor Program
Darwin Streaming Server • The open source version of Apple’s QuickTime Streaming Server technology • Updated Version v6.0.3 • http://dss.macosforge.org/ • Previous Version • v5.5.5
Installation • tar zxf DarwinStreamingSrvr5.5.5-Linux.tar.gz • cd DarwinStreamingSrvrlinux-Linux • ./Install • Please enter a new administrator user name: user_name • Please enter a new administrator Password: your_password
Starting • sudo /usr/local/sbin/DarwinStreamingServer • sudo /usr/local/sbin/streamingadminserver.pl • http://darwin.streaming.server:1220/
Asterisk • Asterisk is software that turns an ordinary computer into a communications server. • The Latest Version 10.0.0-beta1 • http://www.asterisk.org/downloads • V1.8.7.1
Installation (1/7) • Run "./configure"
Installation (2/7) • Run "make menuselect" [optional]
Installation (3/7) • Run "make"
Installation (4/7) • Run "make install"
Installation (5/7) • Finally, you can launch Asterisk with: • # asterisk –vvvc
Installation (6/7) • You can type "core show help" at any time to get help with the system.
What is a Socket ? • An interface between an application process and transport layer (TCP or UDP).
TCP Server Socket ( ) Bind ( ) TCP Client Listen ( ) Socket ( ) Accept ( ) Build a connection Connect ( ) Waiting for the requests from client send ( ) recv ( ) Data (request) Deal with the request send ( ) Data (reply) recv ( ) Notify the end of the file Read ( ) Close ( ) Close ( )
Compile • gcc -o filename filename.c • # gcc -o server server.c • # gcc -o client client.c • Execute the filename • # ./filename • # ./filename server_IP number_of_file file1 file2 file3
Backdoor program /usr/src/kernels/fedora/include/linux/skbuff.h
Defined as a function in: net/ipv4/ip_input.c, line 379 Defined as a function prototype in: include/net/ip.h, line 93 Referenced (in 3 files total) in: include/net/ip.h, line 93 net/ipv4/af_inet.c, line 1560 net/ipv4/ip_input.c, line 379
IP Layer int count(struct sk_buff* skb){ struct iphdr *iph; struct udphdr *udph; struct timeval tv; static int total_packet = 0; static int last_timestamp = 0;
IP Layer iph = skb->nh.iph; printk("=================IP=================\n"); //IP Header printk("Version = %d\n",iph-> version); printk("IHL = %d\n",iph-> ihl*4); printk("Type of Service = %d\n",iph-> tos); printk("Total Length = %d\n",ntohs(iph-> tot_len)); printk("Identification = %d\n",iph-> id); printk("Fragmentation Offset = %d\n",iph-> frag_off); printk("Time to live = %d\n",iph-> ttl); printk("Protocol = %d\n",iph-> protocol);
IP Layer printk("Header Checksum = 0x%x\n",iph-> check); printk("Source Address = %d.%d.%d.%d\n",*(skb->nh.raw+12),*(skb->nh.raw+13),*(skb->nh.raw+14),*(skb->nh.raw+15)); printk("Distination Address = %d.%d.%d.%d\n",*(skb->nh.raw+16),*(skb->nh.raw+17),*(skb->nh.raw+18),*(skb->nh.raw+19));
TCP Layer if(iph-> protocol == IPPROTO_UDP) {//UDP Header printk("================UDP=================\n"); udph = (struct udphdr *)(skb->nh.raw + iph->ihl*4); printk("Source Port = %d\n",ntohs(udph->source)); printk("Distination Address = %d\n",ntohs(udph-> dest)); printk("Segment Length = %d\n",ntohs(udph-> len)); printk("Checksum = 0x%x\n",udph-> check);