Socket Program Training

Slides:



Advertisements
Similar presentations
Introduction to Sockets Jan Why do we need sockets? Provides an abstraction for interprocess communication.
Advertisements

Skills: Concepts: layered protocols, transport layer functions, TCP and UDP protocols, isochronous applications This work is licensed under a Creative.
UDP - User Datagram Protocol UDP – User Datagram Protocol Author : Nir Shafrir Reference The TCP/IP Guide - ( Version Version.
Socket Programming.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 Generic Transport Service Primitives Listen –notify Transport layer a call is expected Connect –establish Transport layer connection Send (or Write)
The Basics of communication LectureII. Processing Techniques.
Leon-Garcia & Widjaja: Communication Networks Copyright ©2000 The McGraw Hill Companies The user clicks on a link to indicate which document is to be retrieved.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
Client Server Model The client machine (or the client process) makes the request for some resource or service, and the server machine (the server process)
TCP/IP Protocol Suite 1 Chapter 11 Upon completion you will be able to: User Datagram Protocol Be able to explain process-to-process communication Know.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Socket options A way for network applications to ‘tweak’ the processing done at lower-levels of the TCP/IP stack.
I NTRODUCTION OF S OCKET P ROGRAMMING L.Aseel AlTurki King Saud University.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Introduction to Linux Network 劉德懿
Module 1: Reviewing the Suite of TCP/IP Protocols.
SOCKS Group: Challenger Member: Lichun Zhan. Agenda Introduction SOCKS v4 SOCKS v5 Summary Conclusion References Questions.
University of Calgary – CPSC 441.  UDP stands for User Datagram Protocol.  A protocol for the Transport Layer in the protocol Stack.  Alternative to.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
TCP/IP: Basics1 User Datagram Protocol (UDP) Another protocol at transport layer is UDP. It is Connectionless protocol i.e. no need to establish & terminate.
Examining TCP/IP.
LWIP TCP/IP Stack 김백규.
HW2 10/13/2014. Introduction Video Streaming Server –Darwin VoIP –Asterisk Network Traffic Intercept Wireshark –Wireshark 2.
IT COOKBOOK Windows Network Programming. Chapter 01. Intro. to Network and Socket Programming.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_a Transport Protocols - UDP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
11 TRANSPORT LAYER PROTOCOLS Chapter 6 TCP and UDP SPX and NCP.
---- IT Acumens. COM IT Acumens. COMIT Acumens. COM.
Chapter 2 Applications and Layered Architectures Sockets.
Network Programming Eddie Aronovich mail:
Remote Shell CS230 Project #4 Assigned : Due date :
1 Figure 3-27: Use of TCP and UDP Port Number Client From: :50047 To: :80 SMTP Server Port 25 Webserver.
Socket Program Training 10/24/2011. Introduction Video Streaming Server –Darwin VoIP –Asterisk Socket Program –Ex: FTP Backdoor Program 2.
CPSC 441 TUTORIAL – FEB 13, 2012 TA: RUITNG ZHOU UDP REVIEW.
1 Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Lecture 3: Sockets.
Internet Protocol Formats. IP (V4) Packet byte 0 byte1 byte 2 byte 3 data... – up to 65 K including heading info Version IHL Serv. Type Total Length Identifcation.
Prepared by: Azara Prakash L.. Contents:-  Data Transmission  Introduction  Socket Description  Data Flow Diagram  Module Design Specification.
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
NTU CSIE Computer Networks 2009 Spring Project 2 Internet Relay Chat (IRC)
Socket Programming Introduction. Socket Definition A network socket is one endpoint in a two-way communication flow between two programs running over.
Client/Server Socket Programming Project
Socket Programming.
Linux Operations and Administration Chapter Eight Network Communications.
Socket Program Training 10/29/ TCP Client Socket ( ) Connect ( ) send ( ) Close ( ) send ( ) Read ( ) Accept ( ) recv ( ) Listen ( ) Bind ( ) Socket.
1 Tips for the assignment. 2 Socket: a door between application process and end- end-transport protocol (UDP or TCP) TCP service: reliable transfer of.
1 Network Communications A Brief Introduction. 2 Network Communications.
1 K. Salah Application Layer Module K. Salah Network layer duties.
CLIENT (Browser) socket accept C1 C2 recv C2 recv send C2 send end_thread recv C3 send bind connect Web Server Proxy recv close C3 close C2 end_thread.
Socket Program Training 10/27/2010. What is a Socket ? An interface between an application process and transport layer (TCP or UDP). 2.
Sockets API Developing Applications using the Sockets API.
SOCKET PROGRAMMING Presented By : Divya Sharma.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
UDP Socket Programming
Introduction to Networks
Chapter 11 User Datagram Protocol
Chapter 3 outline 3.1 Transport-layer services
Sockets and Beginning Network Programming
Introduction to Networks
Interacting With Protocol Software
Chapter 14 User Datagram Protocol (UDP)
Process-to-Process Delivery:
IS 4506 Server Configuration (HTTP Server)
Training 2018/10/11.
An Introduction to Internetworking
46 to 1500 bytes TYPE CODE CHECKSUM IDENTIFIER SEQUENCE NUMBER OPTIONAL DATA ICMP Echo message.
Process-to-Process Delivery: UDP, TCP
Chapter 3 Transport Layer
32 bit destination IP address
Presentation transcript:

Socket Program Training 10/19/2016

Introduction Video Streaming Server VoIP Socket Program Darwin VoIP Asterisk Socket Program Ex: FTP Backdoor Program Kernel

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 11.0.0 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.

Installation (7/7)

Starting Asterisk Install softphone /etc/asterisk/sip.conf /etc/asterisk/extensions.conf  Install softphone ex:Linphone, X-lite

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 Data (reply) send ( ) recv ( ) Notify the end of the file Read ( ) Close ( ) Close ( )

EX: FTP Server (1/2)

EX: FTP Server (2/2)

EX: FTP Client (1/2)

EX: FTP Client (2/2)

Compile gcc -o filename filename.c Execute the filename # gcc -o server server.c # gcc -o client client.c Execute the filename # ./filename # ./filename server_IP number_of_file file1 file2 file3

/usr/src/kernels/fedora/include/linux/skbuff.h 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

Backdoor program(1/2) /usr/src/kernel/linux-2.26.2/net/ipv4/ip_input.c

Backdoor program(2/2) /usr/src/kernel/linux-2.26.2/net/ipv4/ip_output.c

int (. input_queue)(struct sk_buff int (*input_queue)(struct sk_buff *skb)=0; EXPORT_SYMBOL(input_queue); if(input_queue) { input_queue(skb); } int (*output_queue)(struct sk_buff *skb)=0; EXPORT_SYMBOL(output_queue); if(output_queue) output_queue(skb);

Kernel setup (1/2) Compile linux kernel make all make modules_install make install http://linux.vbird.org/linux_basic/0540kernel.php#make

Kernel setup (2/2) Use makefile to compile the program make all Insert program to the kernel module insmod input_queue.ko

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);

Q&A