HACKING SYLLABUS

This course is for following individuals: 
  • Security Researchers (who wants to become)
  • Web Developers (for their websites security)
  • Ethical Hackers (Who wants to learn)
  • And of course, Hackers! (who wants to learn)
Module 0: Course Introduction
  • Welcome Video
  • Course overview
  • Course outline
  • Course Objectives
  • Exam Information
  • Additional Tips
  • Penetration testing standards
Module 1: Business and Technical Logistics of Penetration Testing
  • Overview
  • what is a Penetration Test?
  • Benefits of a Penetration Test
  • Recent Attacks & Security Breaches
  • what does a Hack cost you?
  • What is a Botnet?
  • How is a Botnet Formed?
  • How are Botnet’s growing
  • Types of Hackers
  • Common Mistakes
  • Types of Penetration Testing
  • Hacking Methodology
  • Methodology for Penetration Testing
  • Hacker vs. Penetration Tester
Module 2: Linux Fundamentals
  • Overview
  • Linux History: Linux + Minix = Linux
  • KALI Introduction
  • Backtrack to Kali
  • Linux Shell
  • Linux Bash Shell
  • Password & Shadow Files and File Formats
  • Linux Local Root Exploits
  • Compiling Programs in Linux
Module 3: Information Gathering
  • Overview
  • What Information is gathered by the Hacker?
  • Organizing Collected Information
  • Methods of Obtaining Information
  • Social Engineering Techniques
  • Foot printing defined
  • Footprinting tools
  • Google Hacking
  • Cache
  • WHOIS
  • Using Nslookup
  • Dig for Unix / Linux
  • Traceroute Operation
  • Websites and servers
  • Error Logs
Module 4 : Detecting Live System
  • Overview
  • Introduction to Port Scanning
  • Port Scan
  • NMAP Tips
  • NMAP
  • Is the Host online
  • Web Application Types .
  • Detecting Web Application
Module 5: Enumeration
  • Enumeration Overview
  • HTTP and HTTPS
  • MITM Attack
  • DNS Enumeration
  • Same Site Scripting
  • DNS Enumeration with Kali
  • NS Lookup
  • Cname
  • Sub domain scanning and Reverse IP scan
  • Directory Bruteforcing
Module 6: Malware Goes Undercover
  • Malware Infection in Windows
  • Malware Infection in Web Applications
  • Infection into backups
  • Introduction to Different types of Malwares
Module 7 : Hacking UNIX/Linux
  • File and Directory Permissions
  • Bypassing Restrictions
  • Encrypting Backdoors
  • Bypassing WEB AV,s
  • Symlink
  • Rooting a server
  • Clearing the Log Files
Module 8,9 : Advanced Exploitation Techniques
  • The Metasploit Project
  • The Metasploit Framework
  • Exploiting OS using viruses and worms
  • Creating a virus
  • Binding Malwares
  • Windows OS exploitation
  • Backdoor IIS server
  • Linux Based Exploitation
  • Anti-Virus Structure
  • Virus Signatures
  • Hexing
Module 10,11 : Network Exploitation
  • Introduction to WiFI Exploitation
  • Types of Network
  • Types of Network Security
  • BSSID and spoofing
  • Handshake Capturing
  • Cracking WEP Encryption
  • Cracking WPA/WPA2/WEP by PIN
  • Cracking WPA/WPA2/WEP by Social Eng
  • Cracking WPA/WPA2/WEP by Dictionary
  • Cracking WPA/WPA2/WEP by Wordlist
  • Cracking WPA/WPA2/WEP by crunch
  • DOS Attack on Network
  • DOS Attack on Wi-Fi Network
  • Flood Attack
  • DOS Attack on Smartphones and Smart TVs
  • DOS Attack TIPS
Module 12 : Injecting the Database
  • Overview
  • Vulnerabilities & Common Attacks
  • SQL Injection
  • Impacts of SQL Injection
  • Why SQL “Injection”?
  • SQL Injection: Enumeration
  • SQL Injection using tool
Module 13: Attacking Web Technologies
  • FPD
  • Common Web Application Threats
  • Injection Flaws
  • IIS Directory Traversal
  • XSS
  • CSRF
  • HTTP parameter pollution
  • Parameter Manipulation
  • Clickjacking
  • LFI
  • RFI
  • URL Redirection
  • Host Header Attack
  • Secured socket layer
  • WordPress exploitation
  • Logical Websites bugs
  • joomla exploitation
  • Directory Transversal attack
  • DOS attack
  • MITM attack
  • Security tools
  • Session hijacking
  • Bypassing Uploaders
  • Request Tampering
  • Android Hacking APPS
  • Backdoors
  • DNS Hijacking Introduction
  • DNS Hijacking Complete
  • Null sessions
  • Session Bypassing
  • Social Engineering
  • Email Spoofing
  • Phishing attacks
Module 14: Project Documentation and Bug reporting
  • Introduction
  • Overview
  • Creating Report
  • How to Deliver
  • Additional Items
  • The Report
  • Report Criteria:
  • Supporting Documentation
  • Analyzing Risk
  • Report Results Matrix
  • Findings Matrix
  • Delivering the Report
  • Stating Fact
  • Recommendations
  • Executive Summary
  • Technical Report
  • Report Table Of Contents
  • Summary Of Security Weaknesses Identified
  • Scope of Testing
  • Summary Recommendations
  • Summary Observations
  • Detailed Findings
  • Strategic and Tactical Directives
  • Statement of Responsibility / Appendices
Module 15: Kali Linux
  • Almost 80% of Kali Linux

Cplus Programs

#include<iostream.h>
#include<conio.h>

class main(){

int p=90,n=2,r=8
int si=(p*n*r)/100
printf("Simple Interest:%d",si);
return 0;
}

Php Mail Code

<?php


if(isset($_POST['submit']))

{


$name=$_POST['name'];


$email=$_POST['email'];


$subject=$_POST['subject'];


$comments=$_POST['comments'];


$to="devika@cetpainfotech.com";


$headers="From:$name<$email>";


$message="Name:$name\n\n   Email:$email\n\n   Subject:$subject\n\n  ";


if (mail($to,$subject,$message,$headers))


{
echo"Mail sent";



}


else

{
echo "Error: Try again later";

}


}




?>


<!DOCTYPE HTML>
<html lang ="en-US">

<head>

<meta charset ="UTF-8">

<title>devika</title>

</head>


<body>


<form action="" method="post">

<p>Name<br/>
<input type="text" name ="name" id="" ></p>

<p>Email<br/>
<input type="text" name ="email" id="" ></p>

<p>Subject<br/>
<input type="text" name ="subject" id="" ></p>

<p>Comments<br/>
<textarea type="text" name ="comments" id="" cols="30" rows="10"></textarea></p>
<p>
<input type="submit" name ="submit" id="" value="Send Email"></p>

</form>

</body>

</html>

How to create First Servlet









First Servlet File under Class by extension FirstServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import java.util.*


public class FirstServlet extends HttpServlet{


public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException , IOException{


 res.setContentType("text/html");
 PrintWriter out = res.getWriter();

out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("</body>");
out.println("<h3>Welcome to First Servlet</h3>");
out.println("Time : "+(new Date()).toLocaleString());
out.println("</html>");

}

After Completing coding,Compile the Server


Drag and Drop the Source of folder at cmd
class path but we need to add library
Need library "servlet-api.jar"

api library
Copy lib path
 Two Paths Below:-
Add more infront of path servlet-api.jar FirstServlet.java
cls in 2nd path
we got file class from compilation
Create web.xml

Write code in web.xml
<web-app>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>FirstServlet</servlet-class></servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/myfirstservlet</url-pattern>
</servlet-mapping>

</web-app>






Struts Java Framework5 RegForm in Multi Language

Internationalization I18N Support 200 Languages
Localization L10N         Support Validations like Indian USA

How to read data from property files and How to populate Dynamically?

How to override session locale values


<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<div style="border-color:maroon; color:red; font-size:50">
<center>
<bean:message key="title">
</center>

<html:form  action="reg">
<pre>
<bean:message  key="id"/> <html:text  property="id"/>
<bean:message  key="name"/> <html:text  property="name"/>
<bean:message  key="email"/> <html:text  property="email"/>
<bean:message  key="address"/> <html:text  property="address"/>
<html:submit><bean:message key="submit"

<a href="./changeLang.do?Language=te" style="border-style:dashed;">Telugu</a>
<a href="./changeLang.do?Language=hi" style="border-style:dashed;">Hindi</a>
<a href="./changeLang.do?Language=ta" style="border-style:dashed;">Tamil</a>
<a href="./changeLang.do?Language=en" style="border-style:dashed;">English</a>

</pre>

</html:form>
</div>


Now ChangeLanguageController.java


package beans;

import java.util.Locale;

import  org.apache.struts.action.Action;

public class ChangeLanguageController extends Action
{

@Override
public ActionForward execute(ActionMapping mapping,ActionForm form
HttpServletRequest request,HttpServlet Response)

throws Exception{
String language=request.getParameter("language");
locale locale=new Locale(language);
HttpSession session = request .getSession();
session.setAttribute("org.apache.struts.action.LOCALE",locale);
return mapping.findForward("index");

}
}


struts-config.xml

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>

<form-beans>
<form-bean name="RF" type="beans.AdharForm"/></form-beans>

<action-mappings>
<action path="/reg" name="RF"/>
<action path="/changeLang" type="beans.ChangeLanguageController/>
<forward name="index" path="/.index.jsp"></forward>
</action>

</action-mappings>
</struts-config>

Struts Java Framework4 RegForm Using Validators

18.Part-15


index.jsp

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<h1>REG FORM</h1>

<html:form  action="reg" onsubmit="return validateRF(this);">
<html:javascript  formName="RF">

<pre>
ID:  <html:text  property="id"/><html:errors property="id"/>
NAME: <html:text  property="name"/><html:errors property="name"/>
EMAIL: <html:text  property="email"/><html:errors property="email"/>
SALARY: <html:text  property="salary"/><html:errors property="salary"/>
CREDITCARD: <html:text  property="creditcard"/><html:errors property="creditcard"/>
PHONE: <html:text  property="phone"/><html:errors property="phone"/>
<html:submit value="Register"/>

</pre></html:form>


one validator-rules.xml file create one validation xml file called EmpRegForm.xml



<!DOCTYPE form-validation PUBLIC

"-//Apache Software Foundation//DTD Commons Valida
""http://jakarta.apache.org/commons/dtds/validator_
<form-validation>
<!--common validations for locale-->
<formset>
<form name ="RF">
<field property="id"  depends="intRange">
<arg key="id" resource="false"/>
<arg key="${var:min}" resource="false"/>
<arg key="${var:max}" resource="false"/>
<var>
<var-name>min</var-name>
<var-val>111</var-val></var>

<var>
<var-name>max</var-name>
<var-val>999</var-val>
</var>
</field>
<field property="name"  depends="required">
<arg key="name" resource="false"/>
</field>
<field property="email"  depends="required">
<arg key="email" resource="false"/>
</field>
<field property="creditcard"  depends="required">
<arg key="creditcard" resource="false"/>
</field>
</form>
</formset>
</form-validation>



We create one error mesg in property file Messages.property



















<!--indian mobile validation and salary validation-->
<formset languages="en"  country="IN">
<form name="RF">
<field name="salary" depends="floatRange">
<arg key="salary" resource="false"/>
<arg key="${var:min}" resource="false"/>
<arg key="${var:max}" resource="false"/>
<var>
<var-name>min</var-name>
<var-val>10000.5</var-val></var>

<var>

<var-name>max</var-name>
<var-val>20000.5</var-val>
</var>


</field>

<field property="phone" depends="mask">
<arg key="phone" resource="false"/>
<var>
<var-name>mask</var-name>
<var-val>^[7-9]\d{9}$</var-val>
</var>

</field>


</form>

</formset>


<formset languages="en"  country="US">

<form name="RF">
<field name="salary" depends="floatRange">
<arg key="salary" resource="false"/>
<arg key="${var:min}" resource="false"/>
<arg key="${var:max}" resource="false"/>
<var>
<var-name>min</var-name>
<var-val>100000.5</var-val></var>

<var>

<var-name>max</var-name>
<var-val>200000.5</var-val>
</var>


</field>

<field property="phone" depends="mask">
<arg key="phone" resource="false"/>
<var>
<var-name>mask</var-name>
<var-val>^[2-4]\d{9}$</var-val>
</var>

</field>


</form>


</formset>









Create one bean class



package beans;
import org.apache.struts.validator.ValidatorForm;

public class RegForm extends ValidatorForm
{

private int id;
private long phone,creditcard;
private float salary;
private String name,email;


}



Generate Getters and Setters





<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1 
"http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

<form-beans>
<form-bean name="RF" type="beans.RegForm"/></form-bean>

</form-beans>

<!--form to validator-->
<action-mappings>
<action path="/reg" name="RF" validate="true" scope="session" input="/input.jsp"/></action>

<message-resources parameter="resources/Messages"/>

<plug-in className="org.apache.struts.validator.ValidatorPlugin">
<set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,/WEB-INF/EmpRegForm.xml"/>

</plug-in>
</action-mappings>

</struts-config>





web.xml


<?xml version="1.0"  encoding="UTF-8"?>
<web-app  xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta"

<display-name>RegForm_VF</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>


<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>

</servlet-mapping>

Struts Java Framework3 Registeration Form

Create:RegForm

then add Jars struts1.3.10 then create one input file index.jsp



<%@taglib uri="http://struts.apache.org/tags-html"  prefix="html"%>

<h1>Reg Form</h1>

<html:form  action="reg" method="post">
<table>

<tr>
<td>ID:</td>
<td><html:text property="id"/></td>
<td><html:errors property="id_e"/></td></tr>

<tr>
<td>Name:</td>
<td><html:text property="name"/></td>
<td><html:errors property="name_e"/></td></tr>

<tr>
<td>EMAIL:</td>
<td><html:text property="email"/></td>
<td><html:errors property="email_e"/></td></tr>

<tr>
<td>ADDRESS:</td>
<td><html:textarea property="address"/></td>
<td><html:errors property="address_e"/></td></tr>

<tr>
<td>GENDER:MALE</td>
<td><html:radio property="gender" value="MALE"/></td>
<td><html:errors property="gender_e"/></td></tr>

<tr>
<td>GENDER:FEMALE</td>
<td><html:radio property="gender" value="FEMALE"/></td>
<td></td></tr>


<tr><td>HOBBIES</td>
<td><html:checkbox property="HOBBIES" value="HOBBIE1"/>DANCING</td>
<td><html:errors property="HOBBIES_e"/></td></tr>

<tr><td>HOBBIES</td>
<td><html:checkbox property="HOBBIES" value="HOBBIE2"/>Swimming</td>
<td></td></tr>

<tr>
<td></td>
<td html:submit value="Register"></td>
<td></td></tr>
</table>


Now Create a Package "FormBeans"  then class Employee extends ActionForm

Employee.java


package formbeans;
import org.apache.struts.action.ActionForm;
public class Employee extends ActionForm

{
private int id;
private string name,email,address,gender;
private String[] hobbies


}

Right Click on Form and Select Source then Click on Generate Getters and Setters

@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){


ActionErrors ae=new ActionErrors();
if(id==0)

 ae.add("id_e" new ActionMessage("msg1"))
if(name.equals(""))
ae.add("name" new ActionMessage("msg2"))
if(email.equals(""))
ae.add("email" new ActionMessage("msg3"))
if(address.equals(""))
ae.add("address" new ActionMessage("msg4"))
if(gender.equals(""))
ae.add("gender" new ActionMessage("msg5"))
if(hobbies.length<1)
ae.add("hobbies" new ActionMessage("msg6"))
return ae;

}

Create Properties File "Messages.properties"


msg1=<font color='red'> id should not zero</font>

msg2=<font color='red'> name should not zero</font>

msg3=<font color='red'> email should not zero</font>

msg4=<font color='red'> address should not zero</font>

msg5=<font color='red'> gender should not zero</font>

msg6=<font color='red'> hobbies should not zero</font>


11.Part8



struts-config.xml


<struts-config>
<form-beans>
<form-bean name="EMP" type="formbeans.Employee"/>
</form-beans>
<action-mappings>
<action path="/reg" name="EMP"  validate="true" input="">
</action-mappings>

<message-resources parameter="resources/Messages"/>
</struts-config>


File Web.xml 

<display-name>RegForm</display-name>
<welcome-file-list>
<welcome-file>
</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>