Prasanna K. Agenda Setting Up the Environment Introduction Extension Essentials Building a Extension Demo Users Build a Banking a Trojan Building the.

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

23-Aug-14 HTML/XHTML Forms. 2 What are forms? is just another kind of XHTML/HTML tag Forms are used to create (rather primitive) GUIs on Web pages Usually.
Wikinavigátor Martin Bielik. Mozilla firefox Free and open source web browser 30% of worldwide usage Gecko layout engine Microsoft Windows, GNU/Linux,
XUL XML User Interface Language. XUL Firefox’s user interface is in XUL and JavaScript XUL is a XML grammar to add/modify UI widgets of the browser. User.
©2009 Justin C. Klein Keane PHP Code Auditing Session 3 – Tools of the Trade & Crafting Malicious Input Justin C. Klein Keane
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Firefox Addon development tutorial 谢烜
1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
CIS101 Introduction to Computing Week 05. Agenda Your questions CIS101 Survey Introduction to the Internet & HTML Online HTML Resources Using the HTML.
Chapter 11 - Monitoring Server Performance1 Ch. 11 – Monitoring Server Performance MIS 431 – created Spring 2006.
Plugin for Firefox CS297 – Vijay Rao. Plugin for Firefox Firefox has a very stable framework to create browser extensions. It uses XUL to specify overlays.
1 Introduction to Programming Environment Using MetroWerks CodeWarrior and Palm Emulator.
Debugged!.  You know that old line about an ounce of prevention?  It’s true for debugging.
1 Agenda Overview Review Roles Lists Libraries Columns.
Forms, Validation Week 7 INFM 603. Announcements Try placing today’s example in htdocs (XAMPP). This will allow you to execute examples that rely on PHP.
IT533 Lectures Configuring, Deploying, Tracing and Error Handling.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
11-01: Get Started with SCP Supply Chain Platform Training Presentation Updated April 2009.
Presented by…. Group 2 1. Programming language 2Introduction.
Debugging JavaScript CS346. IE Javascript Debugging Aids From IE6 on default: no debugging aid for Javascript Change setting: – Tools > Internet Options.
© 2008 The McGraw-Hill Companies, Inc. All rights reserved. M I C R O S O F T ® Preparing for Electronic Distribution Lesson 14.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
A First Program Using C#
Adobe Dreamweaver CS3 Revealed CHAPTER ONE: GETTING STARTED WITH DREAMWEAVER.
Ajax Basics The XMLHttpRequest Object. Ajax is…. Ajax is not…. Ajax is not a programming language. Ajax is not a programming language. Ajax is a methodology.
JavaScript & jQuery the missing manual Chapter 11
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
1 Test Automation For Web-Based Applications Selenium HP Web Test Tool Training Portnov Computer School.
Selenium Web Test Tool Training Using Ruby Language Discover the automating power of Selenium Kavin School Kavin School Presents: Presented by: Kangeyan.
Introducing Dreamweaver MX 2004
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
JavaScript, Fourth Edition
Copyright 2000 eMation SECURITY - Controlling Data Access with
Unit 1 – Web Concepts Instructor: Brent Presley. ASSIGNMENT Read Chapter 1 Complete lab 1 – Installing Portable Apps.
Win8 on Intel Programming Course Modern UI HelloWorld in HTML5/JS Cédric Andreolli Intel.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
© 2011 Autodesk CP5239 Demand-Loading AutoCAD®.NET Plug-ins James E. Johnson Synergis Software Sr. CAD Developer.
CIS 205—Web Design & Development Dreamweaver Chapter 1.
1 Internet Browsing Vulnerabilities and Security ECE4112 Final Lab Ye Yan Frank Park Scott Kim Neil Joshi.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
XP New Perspectives on The Internet, Sixth Edition— Comprehensive Tutorial 1 1 Browser Basics Introduction to the Web and Web Browser Software Tutorial.
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Module 5: Configuring Internet Explorer and Supporting Applications.
Ajax In Action The Journey into Web2.0 Presented by Eric Pascarello.
Chapter 3 Building your own Extensions. Development Environment.
Browsers © Copyright 2014, Fred McClurg All Rights Reserved.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Introduction to Android (Part.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium.
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
Introduction to JavaScript CS101 Introduction to Computing.
ICM – API Server Gary Ratcliffe. 2 Agenda Webinar Programme API Server Overview JSON-RPC iCM API Service API Server and Forms New services under.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
DLSLUG Presentation: Firefox extensions. DLSLUG Presentation: Firefox extensions, Roger Trussell ● My address is
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Development Environment
Essential tools for implementing and testing websites
Don't run late! Get Calendar and Schedule up and running 'on-time' in 'no-time'.
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Data Virtualization Tutorial… CORS and CIS
Configuring Internet-related services
How to debug a website using IE F12 tools
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
Presentation transcript:

Prasanna K

Agenda Setting Up the Environment Introduction Extension Essentials Building a Extension Demo Users Build a Banking a Trojan Building the Trojan

Environment Create a Separate Profile Fill with command for creating a firefox profile and use profile folder

Development Preferences Some of the Development config on fire for ease of development and bug fix. javascript.options.showInConsole = true. Logs errors in chrome files to the Error Console. nglayout.debug.disable_xul_cache = true. Disables the XUL cache so that changes to windows and dialogs do not require a restart. This assumes you're using directories rather than JARs. Changes to XUL overlays will still require reloading of the document overlaid. browser.dom.window.dump.enabled = true. Enables the use of the dump() statement to print to the standard console. See window. dump for more info. You can use nsIConsoleService instead of dump() from a privileged script. javascript.options.strict = true. Enables strict JavaScript warnings in the Error Console. Note that since many people have this setting turned off when developing, you will see lots of warnings for problems with their code in addition to warnings for your own extension. You can filter those with Console 2. extensions.logging.enabled = true. This will send more detailed information about installation and update problems to the Error Console. (Note that the extension manager automatically restarts the application at startup sometimes, which may mean you won't have time to see the messages logged before the automatic restart happens. To see them, prevent the automatic restart by setting the environment NO_EM_RESTART to 1 before starting the application.) nglayout.debug.disable_xul_fastload = true. For Gecko 2.0+ (Firefox 4.0+). See this bug for more information. dom.report_all_js_exceptions = true. See JavaScript Exception Logging

Tools of Trade Komodo Edit IDE (My Fav): Development Environment DOM Inspector: used to inspect and edit the live DOM of any web document or XUL application (Firefox and Thunderbird) Venkman: JavaScript Debugger Console² : Enhanced JavaScript console Firebug : XPCOM Viewer: Exploring XPCOM Components

Firefox extension proxy file Create a file in the extensions folder of the profile of the Firefox File name should match the ID of extension mentioned in the “install.rdf” The content of the file should be the location of the files were the extension is stored.

Getting Started – Extension Development The File layout format is very essential in extension development. Step 1 Create 2 Blank files in the folder(ext root) you in folder you intend to create the extension (install.rdf, chrome. manifest) Step 2 Create 2 Folders (chrome, content): (ext root)-->(Chrome) -->(content)

Extension Development - Contd Step 3 Create 2 files in the content folder (browsers.xul, simple.js) End Result \ install.rdf, chrome. manifest \ browsers.xul simple.js

Install.rdf {ec8030f7-c20a-464f- 9b0e-13a3a9e97384} * hello ISEA IIT Guwahati  XML based format  Directs the Firefox environment about itself and environment the extension can work  Distinct 3 zones  First the ID of the extension  Second Talks about the environment and the version supported  {ec8030f7-c20a-464f-9b0e- 13a3a9e97384} is the ID of Firefox  The last Section is more information on the extension and its creator

chrome. Manifest & Overlay Insert this line in the chrome manifest file “content heloo chrome/content/ “ this line says that for a chrome package hello, we can find its content files at the location chrome/content which is a path relative to the location of “chrome. manifest”. Overlay overlay chrome://browser/content/browser.xul chrome://hello/content/browsersxul This tells Firefox to merge browsers.xul into browser.xul when browser.xul loads. Browser.xul is the main window that we see. Multiple windows exist like preferances, bookmark manager add- ons management, etc… Overlay can be used to display our Xul superimposed in any of these windows.

Browsers.xul <button id="helloWorldButton" label="hello“ insertafter="statusbar- display" oncommand="HelloWorld.onCommand(event)" style="color: blue"/> xul is a XML based User Interface language used by Mozilla. User actions are glued together by JavaScript. The main browser is a xul document. This code will create a blue submit button with label “submit” in the status bar.

browser.js Let HelloWorld ={ onCommand: function(event){ alert(‘Hello World’); } }; Anonymous Function call. Such calls is back bone in extension development

Testing Place the Firefox proxy file in the extensions folder inside the profile we created or in the program files- >Mozzila->Extensions folder. Restart your browser and you sud have your new shiny new extension installed. Welcome to the exciting world of Mozzila Extensions.

Real World Scenario. I had a problem : I was following some friends in Twitter who were Japanese Obviously They tweeted in Japanese, I was no way able to understand what they said. There was only 1 existing solution and it was not meeting my requirement. I decided to write my own extension which translated any foreign language to English at hit of a button.

Work Shop I will help you create a very basic Banking Trojan. Some these concepts can be effectively used to create use real world useful extensions. We will create a extension that would get activated when some one tries to connect to specific URL. It then copies the User Name Password sent in the post and sends to a malicious site.

Trojan We will create the basic structure of the extension as discussed just now. This is a Trojan so we don’t want any user interfaces so we keep the XUL blank but overlay the XUL with browser window. We create Event Listener for window load. The event listener when fired registers a “observe” This observer functionality can be used to intercept all HTTP/s requests.

Trojan – Contd If the url being requested is the one we are looking for we move to the next step. The next step is to copy the POST parameters being sent to the web site We send this content to a malicious website