-->

ABOUT US

Our development agency is committed to providing you the best service.

OUR TEAM

The awesome people behind our brand ... and their life motto.

  • Kumar Atul Jaiswal

    Ethical Hacker

    Hacking is a Speed of Innovation And Technology with Romance.

  • Kumar Atul Jaiswal

    CEO Of Hacking Truth

    Loopholes are every major Security,Just need to Understand it well.

  • Kumar Atul Jaiswal

    Web Developer

    Techonology is the best way to Change Everything, like Mindset Goal.

OUR SKILLS

We pride ourselves with strong, flexible and top notch skills.

Marketing

Development 90%
Design 80%
Marketing 70%

Websites

Development 90%
Design 80%
Marketing 70%

PR

Development 90%
Design 80%
Marketing 70%

ACHIEVEMENTS

We help our clients integrate, analyze, and use their data to improve their business.

150

GREAT PROJECTS

300

HAPPY CLIENTS

650

COFFEES DRUNK

1568

FACEBOOK LIKES

STRATEGY & CREATIVITY

Phasellus iaculis dolor nec urna nullam. Vivamus mattis blandit porttitor nullam.

PORTFOLIO

We pride ourselves on bringing a fresh perspective and effective marketing to each project.

  • Try to exfiltrate an interesting file Practical

     


     

     

    Try to exfiltrate an interesting file Practical

    scheme


    A client gives you remote desktop access to a machine and wants you to identify all the possible ways an attacker can exfiltrate data (that is - if he was able to compromise this machine) without changing any firewall setting.  Try to exfiltrate an interesting file Practical

    If you are unfamiliar with the term exfiltration, please refer to the link below.

    Click Here



    Learning objectives


    In this lab, you will learn how to:
     

    1) Assess firewall settings

    2) Leverage insufficiently secure firewall settings 

    3) Encrypt interesting data and exfiltrate them using DNS 

    4) Automatically identify all possible exfiltration ways



    Recommended tools

    1) Kali Linux

    2) Packet Whisper (https://github.com/TryCatchHCF/PacketWhisper)

    3) Wireshark

    4) rdesktop (command line utility)

    5) Egress framework (https://labs.mwrinfosecurity.com/blog/egress-checking)
     

     



    Network configuration & credentials


    Intranet Subnet
    : 172.16.91.0/24
    Under-investigation machine's IP: 172.16.91.100
    Connection Type: RDP


    First you need to download openvpn file and run -


     


     

     

     

    ┌──(hackerboy㉿KumarAtulJaiswal)-[~/Documents/ine-lab]
    └─$ sudo openvpn data-exfiltration.ovpn
    2021-12-10 12:23:07 DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-128-CBC' to --data-ciphers or change --cipher 'AES-128-CBC' to --data-ciphers-fallback 'AES-128-CBC' to silence this warning.
    2021-12-10 12:23:07 OpenVPN 2.5.1 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2021
    2021-12-10 12:23:07 library versions: OpenSSL 1.1.1l  24 Aug 2021, LZO 2.10
    🔐 Enter Auth Username: ZzxVBe7hGAGyKa
    🔐 Enter Auth Password: **************          
    2021-12-10 12:23:18 TCP/UDP: Preserving recently used remote address: [AF_INET]69.46.7.227:42817
    2021-12-10 12:23:18 Attempting to establish TCP connection with [AF_INET]69.46.7.227:42817 [nonblock]
    2021-12-10 12:23:18 TCP connection established with [AF_INET]69.46.7.227:42817
    2021-12-10 12:23:18 TCP_CLIENT link local: (not bound)
    2021-12-10 12:23:18 TCP_CLIENT link remote: [AF_INET]69.46.7.227:42817
    2021-12-10 12:23:21 [Hera Openvpn Cluster] Peer Connection Initiated with [AF_INET]69.46.7.227:42817
    2021-12-10 12:23:23 TUN/TAP device tap0 opened
    2021-12-10 12:23:23 net_iface_mtu_set: mtu 1500 for tap0
    2021-12-10 12:23:23 net_iface_up: set tap0 up
    2021-12-10 12:23:23 net_addr_v4_add: 172.16.91.10/24 dev tap0
    2021-12-10 12:23:23 Initialization Sequence Completed
    
    
    

     


    Username: aZsQDu1tFLwoTI
    Password: F88ggxcZ3MNzoj

     

     
    Use a Kali Linux or another penetration testing distribution virtual machine to connect to the 172.16.91.100 machine. You can do so by opening a terminal and executing the below:


    # rdesktop  172.16.91.100 -r disk:linux=/home/hackerboy/Documents/ine-lab

    For why we are using it (disk:linux=/home/hackerboy/Documents/ine-lab), we will know this further.

     

     



     



    Credentials


    Username: AdminELS
    Password: Nu3pmkfyX
     


    Tasks


    Task 1: Connect to and scrutinize the 172.16.91.100 machine.
    Task 2: Identify if the 172.16.91.100 machine allows any of the commonly used ports outbound connectivity.
    Task 3: Try to exfiltrate an interesting file.
    Task 4: Automate enumerating all the exfiltration paths and identify another one.


     

     

    Solutions


    Below, you can find solutions for each task.

    Task 1: Connect to and scrutinize the 172.16.91.100 machine

    Once you are connected to the 172.16.91.100 machine, launch "cmd.exe". First, search for interesting files, such as password.txt, credentials.txt, secrets.txt etc. by executing the following:

     

    cd /
    
    dir /s /b passwords.txt
    
    dir /s /b credentials.txt
    
    
    
    
    


    You will see, that a credentials.txt file exists inside theC:\Documents\Sensitive directory. This file contains a username and password.
     

     

     


     

     

    While you are still inside the Windows terminal (cmd.exe), also check if there are any scripting languages installed. 

     

     

    python --version
    
    g++ -version
    
    powershell ls
      
      

     

     

     


     

     

    The successful execution of the above commands indicates that these scripting languages (Python and PowerShell) are actually installed (or allowed) on the 172.16.91.100 machine.

    These scripting languages contain useful capabilities that can be leveraged by penetration testers during all phases of a penetration test.

     



    Task 2: Identify if the 172.16.91.100 machine allows any of the commonly used ports outbound connectivity

    To identify if the 172.16.91.100 machine allows any of the commonly used ports outbound connectivity, follow the procedures below.




    For ports 80 (TCP), 443 (TCP), 8080 (TCP), 8443 (TCP) the procedure is as follows:

    Launch a Python server specifying the port of choice, in your Kali machine.

    In order to start a Python server, you need to launch a new terminal; go to a directory in Kali where you have files to be shared (for example /tmp), and then type:

     

    # cd /tmp <- To navigate to the /tmp directory.
    
    # python -m SimpleHTTPServer 8080.
    
    
    
    

     


    The /tmp folder is a place where you can put files for a temporary time. The Linux OS itself uses this folder for placing temporary files.

     

    As you can imagine, we will be testing if port 8080 (TCP) is allowed outbound internet connectivity by the 172.16.91.100 machine's firewall.

    You should see something similar to the below screenshot: 


    Identify the tap0 IP address of your Kali machine

    To see the tap0 IP of your Kali machine, open a new terminal and execute the following:

     





    1) Run Wireshark on your Kali machine.


    In order to capture traffic from the lab's network, click on Capture and select Options, then you will click the "tap0" interface and finally press Start (as indicated in the screenshot below).





     



    Configure the DNS server on the 172.16.91.100 machine to point to your Kali machine's tap0 IP (the same as previously used).

    In order to change the DNS settings of the 172.16.91.100 machine, double click the Ethernet0 shortcut that is present on the AdminELS user's Desktop and then:


    1) Select Properties
    2) Choose Internet Protocol Version 4



     

     

     

    From the Internet Protocol Version 4 (TCP/IPv4) Properties window:

    1) Choose Properties
    2) Insert your Kali's tap0 IP address as preferred DNS and click OK.

     





     

     

    Launch a browser in windows, and try to navigate 172.16.91.10


    Now, go to your Kali machine where you have started Wireshark. Observe the DNS traffic issued by the 172.16.91.100 machine. You should see something similar to the screenshot below.

     

     

     


     

     

     

    To check ports 443 (TCP) and 8443 (TCP), perform steps 1-3, which are outlined above. Make sure you specify both the tap0 Kali IP and the port you are currently checking (which is bound by the Python Server) each time. You will identify that these ports are not allowed outbound connectivity.

    For port 53 (UDP), the procedure is:

    Note: If you were inside a real environment, you could simply launch Wireshark and see if you can "sniff" any DNS requests originating from the 172.16.91.100 machine. If this was the case, then port 53 (UDP) would have been allowed outbound connectivity.

    Find below an example of such DNS requests (which are irrelevant to this lab, hence the unrelated IPs)


    Such captured traffic means that the firewall allows DNS traffic outbound (port 53 UDP).

    To summarize our activities thus far, we have identified that ports 8080 (TCP) and 53 (UDP) are allowed outbound connectivity.

     

     

     

    Task 3: Try to exfiltrate an interesting file


    Based on the ports you identified that are allowed outbound connectivity, the stealthier exfiltration way is through port 53 (UDP). PacketWhisper can help you easily exfiltrate data via DNS requests.

    PacketWhisper is a Python-based tool, but luckily we identified that Python is installed on the 172.16.91.100 machine.

    To begin, download PacketWhisper from github. On Kali Linux, there is a convenient way to do this by using "git clone". More specifically:

    On your Kali machine, open a new terminal and execute the below.


    The /tmp path is the one we chose for our machine. You can execute the commands above inside any directory you want.

    For easier transfer, also download PacketWhisper as a zipped file as follows:

     

    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ sudo wget https://github.com/TryCatchHCF/PacketWhisper/archive/master.zip
    [sudo] password for hackerboy: 
    --2021-12-11 14:12:17--  https://github.com/TryCatchHCF/PacketWhisper/archive/master.zip
    Resolving github.com (github.com)... 13.234.210.38
    Connecting to github.com (github.com)|13.234.210.38|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://codeload.github.com/TryCatchHCF/PacketWhisper/zip/master [following]
    --2021-12-11 14:12:24--  https://codeload.github.com/TryCatchHCF/PacketWhisper/zip/master
    Resolving codeload.github.com (codeload.github.com)... 13.233.43.20
    Connecting to codeload.github.com (codeload.github.com)|13.233.43.20|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [application/zip]
    Saving to: ‘master.zip’
    
    master.zip                              [                       <=>                                          ]  28.60M   972KB/s    in 37s      
    
    2021-12-11 14:13:03 (795 KB/s) - ‘master.zip’ saved [29988645]
    
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ 
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ 
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ ls
    anydesk             ssh-nCKwBah2CZIz                                                                Temp-34b1d66c-22ba-4d1e-ac38-9cfc255a5e8e
    dbus-cCi149VHMi     systemd-private-05e85aceec3c4a1487cd1d5119244ef5-colord.service-mCOWOf          Temp-37c3f3f2-4307-4b30-a482-090d458e3fd5
    gimp                systemd-private-05e85aceec3c4a1487cd1d5119244ef5-haveged.service-IbYCHi         tracker-extract-3-files.1000
    master.zip          systemd-private-05e85aceec3c4a1487cd1d5119244ef5-ModemManager.service-4cczij    tracker-extract-3-files.131
    mozilla_hackerboy0  systemd-private-05e85aceec3c4a1487cd1d5119244ef5-systemd-logind.service-LZMqei  wireshark_tap0OL9LE1.pcapng
    pulse-PKdhtXMmr18n  systemd-private-05e85aceec3c4a1487cd1d5119244ef5-tor@default.service-GDI7cj
    runtime-root        systemd-private-05e85aceec3c4a1487cd1d5119244ef5-upower.service-NmDrlg
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ 
    
    
    

     

     

    Finally, you can again point the browser on the 172.16.91.100 machine to your tap0 IP and port 8080 in order to download the tool.

    Remember that the file you want to download must be in the directory inside which you started the Python server.

     





    Now, you can download the compressed PacketWhisper to the desktop for easier access and unzip it by right-clicking on the archive.

    (To save you time, we have already downloaded PacketWhisper for you and placed it on the AdminELS user's desktop)


    Now it's time to use PacketWhisper. In order to run PacketWhisper:

    1) Launch Wireshark on your Kali Machine again and use the "tap0" interface to listen.
    2) Launch cmd.exe on the 172.16.91.100 machine and go to the PacketWhisper directory.
    3) Copy the credentials.txt file to the PacketWhisper's directory.
    4) Launch PacketWhisper.




    First you need to extract the zip file in the same directory...as mentioned above the screenshot














    Back to your Kali Linux, on Wireshark you should be able to see DNS queries to subdomains of cloudfront.net within the traffic:





    Now, save the Wireshark capture file. Remember to use the .pcap format as per the below screenshot.





    Next, copy the saved pcap file inside the PacketWhisper's directory (in this case it's named file.pcap)

    Finally, open a new terminal and go to PacketWhisper's directory and execute the following.



    ************************ MAY-BE YOU GUYS NOW UNDERSTAND WHY I USED THIS COMMAND (disk:linux=/home/hackerboy/Documents/ine-lab) IN THE BEGINNING WITH rdesktop !!!!!!!!!!!!!!!!! ********************





    Lets Go ahead...



    python PacketWhisper.py
    
    2
    
    file.pcap
    
    1
    
    1
    
    3
    
    [enter]
    
    







































     



    The file should now be successfully decrypted. To view its content, you can execute the below, or double-click the decloaked.file file.






    Task 4: Automate enumerating all the exfiltration paths and identify another one


    During penetration tests, we need to automate a large portion of our commonly executed activities to save time.

    Let's use the egresscheck framework to see how it can automate identifying the ports that are allowed outbound connectivity.

    There might be another port which is allowed outbound connectivity that we missed.

    To download and launch the egresscheck framework, execute the below inside any directory you want on your Kali machine.




    # git clone https://github.com/stufus/egresscheck-framework.git
    
    # cd egresscheck-framework/
    
    # ./ecf.py
    



    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ sudo git clone https://github.com/stufus/egresscheck-framework.git       
    [sudo] password for hackerboy: 
    Cloning into 'egresscheck-framework'...
    remote: Enumerating objects: 393, done.
    remote: Total 393 (delta 0), reused 0 (delta 0), pack-reused 393
    Receiving objects: 100% (393/393), 88.69 KiB | 216.00 KiB/s, done.
    Resolving deltas: 100% (191/191), done.
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp]
    └─$ cd egresscheck-framework
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp/egresscheck-framework]
    └─$ ls
    ecf.py  LICENSE  README.md
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp/egresscheck-framework]
    └─$ 
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp/egresscheck-framework]
    └─$ 
    
    
    
    



    You need to configure the tool by specifying:


    #The tap0 IP of your Kali machine (TARGETIP)
    #The 172.16.91.100 machine's IP (SOURCEIP)
    #A port range (PORTS)
    #The protocol (PROTOCOL)




    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp/egresscheck-framework]
    └─$ 
    ┌──(hackerboy㉿KumarAtulJaiswal)-[/tmp/egresscheck-framework]
    └─$ ./ecf.py          
    
           .mMMMMMm.             MMm    M   WW   W   WW   RRRRR
          mMMMMMMMMMMM.           MM   MM    W   W   W    R   R
         /MMMM-    -MM.           MM   MM    W   W   W    R   R
        /MMM.    _  \/  ^         M M M M     W W W W     RRRR
        |M.    aRRr    /W|        M M M M     W W W W     R  R
        \/  .. ^^^   wWWW|        M  M  M      W   W      R   R
           /WW\.  .wWWWW/         M  M  M      W   W      R    R
           |WWWWWWWWWWW/
             .WWWWWW.        EgressChecker Mini-Framework v0.1-pre2
                         stuart.morgan@mwrinfosecurity.com | @ukstufus
    
    
    egresschecker> set PORTS 8500-9500
    PORTS => 8500-9500 (1001 ports)
    
    egresschecker>  set TARGETIP 172.16.91.10
    TARGETIP => 172.16.91.10
    
    egresschecker> set SOURCEIP 172.16.91.100
    SOURCEIP => 172.16.91.100
    
    egresschecker> set PROTOCOL tcp
    PROTOCOL => TCP
    
    egresschecker> generate powershell-cmd
    
    Warning: The powershell code does not support multiple threads; it will generate packets asynchronously but on a single thread only.
    
    Run the command below on the client machine:
    powershell.exe -e JABpAHAAIAA9ACAAIgAxADcAMgAuADEANgAuADkAMQAuADEAMAAiAAoAJABwAHIAIAA9ACAAIgA4ADUAMAAwAC0AOQA1ADAAMAAiACAALQBzAHAAbABpAHQAIAAnACwAJwAKAGYAbwByAGUAYQBjAGgAIAAoACQAcAAgAGkAbgAgACQAcAByACkAIAB7AAoAIABpAGYAIAAoACQAcAAgAC0AbQBhAHQAYwBoACAAJwBeAFsAMAAtADkAXQArAC0AWwAwAC0AOQBdACsAJAAnACkAIAB7AAoAIAAgACQAcAByAGEAbgBnAGUAIAA9ACAAJABwACAALQBzAHAAbABpAHQAIAAnAC0AJwAKACAAIAAkAGgAaQBnAGgAIAA9ACAAJABwAHIAYQBuAGcAZQBbADEAXQAKACAAIAAkAGwAbwB3ACAAPQAgACQAcAByAGEAbgBnAGUAWwAwAF0ACgAgAH0AIABlAGwAcwBlAGkAZgAgACgAJABwACAALQBtAGEAdABjAGgAIAAnAF4AWwAwAC0AOQBdACsAJAAnACkAIAB7AAoAIAAgACQAaABpAGcAaAAgAD0AIAAkAHAACgAgACAAJABsAG8AdwAgAD0AIAAkAHAACgAgAH0AIABlAGwAcwBlACAAewAKACAAIAByAGUAdAB1AHIAbgAKACAAfQAKACAAZgBvAHIAIAAoACQAYwAgAD0AIABbAGMAbwBuAHYAZQByAHQAXQA6ADoAVABvAEkAbgB0ADMAMgAoACQAbABvAHcAKQA7ACQAYwAgAC0AbABlACAAWwBjAG8AbgB2AGUAcgB0AF0AOgA6AFQAbwBJAG4AdAAzADIAKAAkAGgAaQBnAGgAKQA7ACQAYwArACsAKQAgAHsACgAgACAAdAByAHkAIAB7AAoAIAAgACAAJAB0ACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AUwBvAGMAawBlAHQAcwAuAFQAQwBQAEMAbABpAGUAbgB0AAoAIAAgACAAJAB0AC4AQgBlAGcAaQBuAEMAbwBuAG4AZQBjAHQAKAAkAGkAcAAsACAAJABjACwAIAAkAG4AdQBsAGwALAAgACQAbgB1AGwAbAApACAAfAAgAE8AdQB0AC0ATgB1AGwAbAAKACAAIAAgACQAdAAuAEMAbABvAHMAZQAoACkACgAgACAAfQAKACAAIABjAGEAdABjAGgAIAB7ACAAfQAKACAAIABTAHQAYQByAHQALQBTAGwAZQBlAHAAIAAtAG0AIAAoADAALgAxACoAMQAwADAAMAApAAoAIAB9AAoAfQA=
    
    Also written to: /tmp/egress_2021dec11_164823_HoaERD.bat
    
    egresschecker> 
    
    
    
    
    
    
    copy to this file in the same directory where you runned this rdesktop program directory
    
    
    
    
    
    
    
    
    

    The generate powershell-cmd. we see above was executed in order to get a single PowerShell command that will help us automate the firewall assessment.


    This encrypted command contains code that will make PowerShell try to access every port from the given range from the 172.16.91.100 machine on your Kali machine.

    Before initiating this procedure on the 172.16.91.100 machine, the following requirements should be fulfilled:


    #Transfer this command to the 172.16.91.100 machine
    #Run Wireshark on your Kali Machine
    #Execute the command on the 172.16.91.100 machine



    You can transfer the command using the Python server, and port 8080 like you did previously.

    To do so, first, go to the directory where the egresscheck framework generated a BAT file (see the purple text message in the image above)

    Egresscheck informs you of this BAT file with a message, which will be similar to the one below:

    "Also written to: /tmp/egress_2019jan16_125152_VNcIt8.bat"

    To serve this file using the Python server, execute the following:


    # cd tmp
    # python -m SimpleHTTPServer 8080







    Download the .bat file generated by the egress framework.

    Next, go back to your Kali machine, execute Wireshark again and point it to listen on the tap0 interface.





    Finally, right-click the downloaded BAT file on the 172.16.91.100 machine and click "Run as administrator."


    A similar window to the one below will pop up. In the meantime, go to Wireshark on your Kali machine and observe the traffic.







    After a short period of time, Wireshark will receive a packet destined to port 9000 - which means that this port is also allowed outbound connectivity on the 172.16.91.100 machine's firewall; this is the third and last port which is allowed outbound connectivity.





    Disclaimer

     

    All tutorials are for informational and educational purposes only and have been made using our own routers, servers, websites and other vulnerable free resources. we do not contain any illegal activity. We believe that ethical hacking, information security and cyber security should be familiar subjects to anyone using digital information and computers. Hacking Truth is against misuse of the information and we strongly suggest against it. Please regard the word hacking as ethical hacking or penetration testing every time this word is used. We do not promote, encourage, support or excite any illegal activity or hacking.



      - Hacking Truth by Kumar Atul Jaiswal

     

  • TryHackMe Content Discovery Walkthrough

     

    TryHackMe Content Discovery Walkthrough


    What Is Content Discovery?


    Firstly, we should ask, in the context of web application security, what is content? Content can be many things, a file, video, picture, backup, a website feature. When we talk about content discovery, we're not talking about the obvious things we can see on a website; it's the things that aren't immediately presented to us and that weren't always intended for public access.

    This content could be, for example, pages or portals intended for staff usage, older versions of the website, backup files, configuration files, administration panels, etc.

    There are three main ways of discovering content on a website which we'll cover. Manually, Automated and OSINT (Open-Source Intelligence).

    Start the machine and then move on to the next task.






    1) What is the Content Discovery method that begins with M?

    Ans- Manually



    2) What is the Content Discovery method that begins with A?

    Ans- Automated



    3) What is the Content Discovery method that begins with O?

    Ans- OSINT






    Manual Discovery - Robots.txt


    There are multiple places we can manually check on a website to start discovering more content.



    Robots.txt

    The robots.txt file is a document that tells search engines which pages they are and aren't allowed to show on their search engine results or ban specific search engines from crawling the website altogether. It can be common practice to restrict certain website areas so they aren't displayed in search engine results. These pages may be areas such as administration portals or files meant for the website's customers. This file gives us a great list of locations on the website that the owners don't want us to discover as penetration testers.


    Take a look at the robots.txt file on the Acme IT Support website to see if they have anything they don't want to list: http://MACHINE_IP/robots.txt



    1) What is the directory in the robots.txt that isn't allowed to be viewed by web crawlers?


     

    TryHackMe Content Discovery Walkthrough

     

    Ans- /staff-portal

     

     


    Manual Discovery - Favicon


    Favicon

    The favicon is a small icon displayed in the browser's address bar or tab used for branding a website.


    TryHackMe Content Discovery Walkthrough


    Sometimes when frameworks are used to build a website, a favicon that is part of the installation gets leftover, and if the website developer doesn't replace this with a custom one, this can give us a clue on what framework is in use. OWASP host a database of common framework icons that you can use to check against the targets favicon https://wiki.owasp.org/index.php/OWASP_favicon_database. Once we know the framework stack, we can use external resources to discover more about it (see next section).



    Practical Exercise:


    Open the website https://static-labs.tryhackme.cloud/sites/favicon/ here you'll see a basic website with a note saying "Website coming soon...", if you look at your tabs you'll notice an icon that confirms this site is using a favicon.


    Viewing the page source you'll see line six contains a link to the images/favicon.ico file. 




    TryHackMe Content Discovery Walkthrough



    If you run the following command it will download the favicon and get its md5 hash value which you can then lookup on the
    https://wiki.owasp.org/index.php/OWASP_favicon_database.

     

     

    TryHackMe Content Discovery Walkthrough

     

     
    1) What framework did the favicon belong to?

    HINT- Visit this link https://wiki.owasp.org/index.php/OWASP_favicon_database



    TryHackMe Content Discovery Walkthrough



    Ans- cgiirc

     

     

    Manual Discovery - Sitemap.xml


    Sitemap.xml

    Unlike the robots.txt file, which restricts what search engine crawlers can look at, the sitemap.xml file gives a list of every file the website owner wishes to be listed on a search engine. These can sometimes contain areas of the website that are a bit more difficult to navigate to or even list some old webpages that the current site no longer uses but are still working behind the scenes.


    Take a look at the sitemap.xml file on the Acme IT Support website to see if there's any new content we haven't yet discovered: http://10.10.159.199/sitemap.xml



    1) What is the path of the secret area that can be found in the sitemap.xml file?


    Ans- /s3cr3t-area


     

     

    Manual Discovery - HTTP Headers


    HTTP Headers

    When we make requests to the web server, the server returns various HTTP headers. These headers can sometimes contain useful information such as the webserver software and possibly the programming/scripting language in use. In the below example, we can see the webserver is NGINX version 1.18.0 and runs PHP version 7.4.3. Using this information, we could find vulnerable versions of software being used. Try running the below curl command against the web server, where the -v switch enables verbose mode, which will output the headers (there might be something interesting!).

     

               
    
     
    
            
    ┌──(hackerboy㉿KumarAtulJaiswal)-[~]
    └─$ curl http://10.10.159.199 -v
    *   Trying 10.10.159.199:80...
    * Connected to 10.10.159.199 (10.10.159.199) port 80 (#0)
    >  GET / HTTP/1.1
    >  Host: 10.10.159.199
    >  User-Agent: curl/7.74.0
    >  Accept: */*
    > * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    < Server: nginx/1.18.0 (Ubuntu)
    < Date: Thu, 02 Dec 2021 16:44:21 GMT
    < Content-Type: text/html; charset=UTF-8
    < Transfer-Encoding: chunked
    < Connection: keep-alive
    < X-FLAG: THM{HEADER_FLAG}
    < 
    <!--
    This page is temporary while we work on the new homepage @ /new-home-beta
    -->
    
    

     


    1) What is the flag value from the X-FLAG header?

      
    Ans- THM{HEADER_FLAG}

     

     



    Manual Discovery - Framework Stack

    Framework Stack

    Once you've established the framework of a website, either from the above favicon example or by looking for clues in the page source such as comments, copyright notices or credits, you can then locate the framework's website. From there, we can learn more about the software and other information, possibly leading to more content we can discover.


    Looking at the page source of our Acme IT Support website (http://10.10.159.199), you'll see a comment at the end of every page with a page load time and also a link to the framework's website, which is https://static-labs.tryhackme.cloud/sites/thm-web-framework. Let's take a look at that website. Viewing the documentation page gives us the path of the framework's administration portal, which gives us a flag if viewed on the Acme IT Support website.



    1) What is the flag from the framework's administration portal?

     

    TryHackMe Content Discovery Walkthrough


    TryHackMe Content Discovery Walkthrough



    TryHackMe Content Discovery Walkthrough
     

    TryHackMe Content Discovery Walkthrough

     

    Ans- THM{CHANGE_DEFAULT_CREDENTIALS}

     

     

    OSINT - Google Hacking / Dorking


    There are also external resources available that can help in discovering information about your target website; these resources are often referred to as OSINT or (Open-Source Intelligence) as they're freely available tools that collect information:



    Google Hacking / Dorking


    Google hacking / Dorking utilizes Google's advanced search engine features, which allow you to pick out custom content. You can, for instance, pick out results from a certain domain name using the site: filter, for example (site:hackingtruth.in) you can then match this up with certain search terms, say, for example, the word admin (site:hackingtruth.in admin) this then would only return results from the hackingtruth.in website which contain the word admin in its content. You can combine multiple filters as well. Here is an example of more filters you can use:

     

     

    Filter Example Description
    Site site:tryhackme.com returns results only from the specified website address
    inurl inurl:admin returns results that have the specified word in the URL
    filetype filetype:pdf returns results which are a particular file extension
    intitle intitle:admin returns results that contain the specified word in the title

     



    More information about google hacking can be found here: https://en.wikipedia.org/wiki/Google_hacking



    1) What Google dork operator can be used to only show results from a particular site?

    Ans- site:



    OSINT - Wappalyzer


    Wappalyzer

    Wappalyzer (https://www.wappalyzer.com/) is an online tool and browser extension that helps identify what technologies a website uses, such as frameworks, Content Management Systems (CMS), payment processors and much more, and it can even find version numbers as well.



    1) What online tool can be used to identify what technologies a website is running?

    Ans- Wappalyzer




    OSINT - Wayback Machine


    Wayback Machine

    The Wayback Machine (https://archive.org/web/) is a historical archive of websites that dates back to the late 90s. You can search a domain name, and it will show you all the times the service scraped the web page and saved the contents. This service can help uncover old pages that may still be active on the current website.



    1) What is the website address for the Wayback Machine?

    Ans- https://archive.org/web/



    OSINT - GitHub


    GitHub

    To understand GitHub, you first need to understand Git. Git is a version control system that tracks changes to files in a project. Working in a team is easier because you can see what each team member is editing and what changes they made to files. When users have finished making their changes, they commit them with a message and then push them back to a central location (repository) for the other users to then pull those changes to their local machines. GitHub is a hosted version of Git on the internet. Repositories can either be set to public or private and have various access controls. You can use GitHub's search feature to look for company names or website names to try and locate repositories belonging to your target. Once discovered, you may have access to source code, passwords or other content that you hadn't yet found.



    1) What is Git?

    Ans- Version Control System



    OSINT - S3 Buckets


    S3 Buckets

    S3 Buckets are a storage service provided by Amazon AWS, allowing people to save files and even static website content in the cloud accessible over HTTP and HTTPS. The owner of the files can set access permissions to either make files public, private and even writable. Sometimes these access permissions are incorrectly set and inadvertently allow access to files that shouldn't be available to the public. The format of the S3 buckets is http(s)://{name}.s3.amazonaws.com where {name} is decided by the owner, such as tryhackme-assets.s3.amazonaws.com. S3 buckets can be discovered in many ways, such as finding the URLs in the website's page source, GitHub repositories, or even automating the process. One common automation method is by using the company name followed by common terms such as {name}-assets, {name}-www, {name}-public, {name}-private, etc.



    1) What URL format do Amazon S3 buckets end in?

    Ans- .s3.amazonaws.com




    Automated Discovery


    What is Automated Discovery?


    Automated discovery is the process of using tools to discover content rather than doing it manually. This process is automated as it usually contains hundreds, thousands or even millions of requests to a web server. These requests check whether a file or directory exists on a website, giving us access to resources we didn't previously know existed. This process is made possible by using a resource called wordlists.





    What are wordlists?


    Wordlists are just text files that contain a long list of commonly used words; they can cover many different use cases. For example, a password wordlist would include the most frequently used passwords, whereas we're looking for content in our case, so we'd require a list containing the most commonly used directory and file names. An excellent resource for wordlists that is preinstalled on the THM AttackBox is https://github.com/danielmiessler/SecLists which Daniel Miessler curates.




    Automation Tools


    Although there are many different content discovery tools available, all with their features and flaws, we're going to cover three which are preinstalled on our attack box, ffuf, dirb and gobuster.


    Open the THM AttackBox using the blue Start AttackBox button and then try the below three commands on our Acme IT Support website and see what results you get.

     

    Using ffuf:
    
    ffuf
    
            
    user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt -u http://10.10.159.199/FUZZ
    
            
    
    
    
    Using dirb:
    
    dirb
    
               
    user@machine$ dirb http://10.10.159.199/ /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt
    
            
    
    
    
    Using Gobuster:
    
    gobuster
    
               
    user@machine$ gobuster dir --url http://10.10.159.199/ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt
    
            
    
    
    
    

     


    1) What is the name of the directory beginning "/mo...." that was discovered?

    Ans- /monthly



    2) What is the name of the log file that was discovered?

    Ans- /development.log

     

     


    Disclaimer

     

    All tutorials are for informational and educational purposes only and have been made using our own routers, servers, websites and other vulnerable free resources. we do not contain any illegal activity. We believe that ethical hacking, information security and cyber security should be familiar subjects to anyone using digital information and computers. Hacking Truth is against misuse of the information and we strongly suggest against it. Please regard the word hacking as ethical hacking or penetration testing every time this word is used. We do not promote, encourage, support or excite any illegal activity or hacking.



      - Hacking Truth by Kumar Atul Jaiswal

     


  • TryHackMe Walking An Application Walkthrough

     

    TryHackMe Walking An Application Walkthrough



    Walking An Application


    In this room you will learn how to manually review a web application for security issues using only the in-built tools in your browser. More often than not, automated security tools and scripts will miss many potential vulnerabilities and useful information.



    Here is a short breakdown of the in-built browser tools you will use throughout this room:


    View Source
    - Use your browser to view the human-readable source code of a website.
    Inspector - Learn how to inspect page elements and make changes to view usually blocked content.
    Debugger - Inspect and control the flow of a page's JavaScript
    Network - See all the network requests a page makes.

     

     

    TryHackMe Walking An Application Walkthrough

     



    Exploring The Website


    As a penetration tester, your role when reviewing a website or web application is to discover features that could potentially be vulnerable and attempt to exploit them to assess whether or not they are. These features are usually parts of the website that require some interactivity with the user.

    Finding interactive portions of the website can be as easy as spotting a login form to manually reviewing the website's JavaScript. An excellent place to start is just with your browser exploring the website and noting down the individual pages/areas/features with a summary for each one.


    An example site review for the Acme IT Support website would look something like this:

     

     

    Feature URL Summary
    Home Page / This page contains a summary of what Acme IT Support does with a company photo of their staff.
    Latest News /news This page contains a list of recently published news articles by the company, and each news article has a link with an id number, i.e. /news/article?id=1
    News Article /news/article?id=1 Displays the individual news article. Some articles seem to be blocked and reserved for premium customers only.
    Contat Page /contact This page contains a form for customers to contact the company. It contains name, email and message input fields and a send button.
    Customers Login /customers/login This page contains a login form with username and password fields.
    Customer Signup /customers/signup This page contains a user-signup form that consists of a username, email, password and password confirmation input fields.
    Customer Reset Password /customers/reset Password reset form with an email address input field.
    Customer Dashboard /customers This page contains a list of the user's tickets submitted to the IT support company and a "Create Ticket" button.
    Create Ticket /customers/ticket/new This page contains a form with a textbox for entering the IT issue and a file upload option to create an IT support ticket.
    Customer Account /customers/account This page allows the user to edit their username, email and password.
    Customer Logout /customers/logout This link logs the user out of the customer area.

     

     


    Viewing The Page Source



    The page source is the human-readable code returned to our browser/client from the web server each time we make a request.


    The returned code is made up of HTML ( HyperText Markup Language), CSS ( Cascading Style Sheets ) and JavaScript, and it's what tells our browser what content to display, how to show it and adds an element of interactivity with JavaScript.


    For our purposes, viewing the page source can help us discover more information about the web application.


    How do I view the Page Source?


    While viewing a website, you can right-click on the page, and you'll see an option on the menu that says View Page Source.
    Most browsers support putting view-source: in front of the URL for example, view-source:https://www.google.com/
    In your browser menu, you'll find an option to view the page source. This option can sometimes be in submenus such as developer tools or more tools.



    Let's view some Page Source!


    Try viewing the page source of the home page of the Acme IT Support website. Unfortunately, explaining everything you can see here is well out of the scope of this room, and you'll need to look into website design/development courses to understand it fully. What we can do, is pick out bits of information that are of importance to us.

     

     

    At the top of the page, you'll notice some code starting with <!-- and ending with --> these are comments. Comments are messages left by the website developer, usually to explain something in the code to other programmers or even notes/reminders for themselves. These comments don't get displayed on the actual webpage. This comment describes how the homepage is temporary while a new one is in development. View the webpage in the comment to get your first flag.


    Links to different pages in HTML are written in anchor tags ( these are HTML elements that start with <a ), and the link that you'll be directed to is stored in the href attribute.


    For example, you'll see the contact page link on line 31:

     

     


    TryHackMe Walking An Application Walkthrough

     

     If you view further down the page source, there is a hidden link to a page starting with "secr", view this link to get another flag. You obviously wouldn't get a flag in a real-world situation, but you may discover some private area used by the business for storing company/staff/customer information.


    External files such as CSS, JavaScript and Images can be included using the HTML code. In this example, you'll notice that these files are all stored in the same directory. If you view this directory in your web browser, there is a configuration error. What should be displayed is either a blank page or a 403 Forbidden page with an error stating you don't have access to the directory. Instead, the directory listing feature has been enabled, which in fact, lists every file in the directory. Sometimes this isn't an issue, and all the files in the directory are safe to be viewed by the public, but in some instances, backup files, source code or other confidential information could be stored here. In this instance, we get a flag in the flag.txt file.


    Many websites these days aren't made from scratch and use what's called a framework. A framework is a collection of premade code that easily allows a developer to include common features that a website would require, such as blogs, user management, form processing, and much more, saving the developers hours or days of development.


    Viewing the page source can often give us clues into whether a framework is in use and, if so, which framework and even what version. Knowing the framework and version can be a powerful find as there may be public vulnerabilities in the framework, and the website might not be using the most up to date version. At the bottom of the page, you'll find a comment about the framework and version in use and a link to the framework's website. Viewing the framework's website, you'll see that our website is, in fact, out of date. Read the update notice and use the information that you find to discover another flag.


     


    1) What is the flag from the HTML comment?

    HINT- Make sure you go to the link mentioned in the comment

     

    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough




    Ans- THM{HTML_COMMENTS_ARE_DANGEROUS}

     

    2) What is the flag from the secret link?

    HINT- For example, you'll see the contact page link on line 31: 



    TryHackMe Walking An Application Walkthrough



    TryHackMe Walking An Application Walkthrough




    Ans- THM{NOT_A_SECRET_ANYMORE}
     



    3) What is the directory listing flag?



    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough

     


    Ans- THM{INVALID_DIRECTORY_PERMISSIONS}

     


    4) What is the framework flag?


    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough

     

    Ans- THM{KEEP_YOUR_SOFTWARE_UPDATED}

     

     

    Developer Tools - Inspector


    Developer Tools

    Every modern browser includes developer tools; this is a tool kit used to aid web developers in debugging web applications and gives you a peek under the hood of a website to see what is going on. As a pentester, we can leverage these tools to provide us with a much better understanding of the web application. We're specifically focusing on three features of the developer tool kit, Inspector, Debugger and Network.



    Opening Developer Tools


    The way to access developer tools is different for every browser. If you're not sure how to access it, click the "View Site" button on the top right of this task to get instructions to how to access the tools for your browser.




    Inspector


    The page source doesn't always represent what's shown on a webpage; this is because CSS, JavaScript and user interaction can change the content and style of the page, which means we need a way to view what's been displayed in the browser window at this exact time. Element inspector assists us with this by providing us with a live representation of what is currently on the website.


    As well as viewing this live view, we can also edit and interact with the page elements, which is helpful for web developers to debug issues.

    On the Acme IT Support website, click into the news section, where you'll see three news articles.


    The first two articles are readable, but the third has been blocked with a floating notice above the content stating you have to be a premium customer to view the article. These floating boxes blocking the page contents are often referred to as paywalls as they put up a metaphorical wall in front of the content you wish to see until you pay.



     

    TryHackMe Walking An Application Walkthrough

     

    Right-clicking on the premium notice ( paywall ), you should be able to select the Inspect option from the menu, which opens the developer tools either on the bottom or right-hand side depending on your browser or preferences. You'll now see the elements/HTML that make up the website ( similar to the screenshots below ).

     

    TryHackMe Walking An Application Walkthrough

     

    Locate the DIV element with the class premium-customer-blocker and click on it. You'll see all the CSS styles in the styles box that apply to this element, such as margin-top: 60px and text-align: center. The style we're interested in is the display: block. If you click on the word block, you can type a value of your own choice. Try typing none, and this will make the box disappear, revealing the content underneath it and a flag. If the element didn't have a display field, you could click below the last style and add in your own. Have a play with the element inspector, and you'll see you can change any of the information on the website, including the content. Remember this is only edited on your browser window, and when you press refresh, everything will be back to normal.

     




    1) What is the flag behind the paywall?

    HINT- https://assets.tryhackme.com/additional/walkinganapplication/updating-html-css.gif


    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough




    TryHackMe Walking An Application Walkthrough


     

    TryHackMe Walking An Application Walkthrough

     

     

    Ans- THM{NOT_SO_HIDDEN}

     

     


    Developer Tools - Debugger


    This panel in the developer tools is intended for debugging JavaScript, and again is an excellent feature for web developers wanting to work out why something might not be working. But as penetration testers, it gives us the option of digging deep into the JavaScript code. In Firefox and Safari, this feature is called Debugger, but in Google Chrome, it's called Sources.


    On the Acme IT Support website, click on the contact page, each time the page is loaded, you might notice a rapid flash of red on the screen. We're going to use the Debugger to work out what this red flash is and if it contains anything interesting. Debugging a red dot wouldn't be something you'd do in the real world as a penetration tester, but it does allow us to use this feature and get used to the Debugger.


    In both browsers, on the left-hand side, you see a list of all the resources the current webpage is using. If you click into the assets folder, you'll see a file named flash.min.js. Clicking on this file displays the contents of the JavaScript file.


    Many times when viewing javascript files, you'll notice that everything is on one line, which is because it has been minimised, which means all formatting ( tabs, spacing and newlines ) have been removed to make the file smaller. This file is no exception to this, and it has also been obfusticated, which makes it purposely difficult to read, so it can't be copied as easily by other developers.


    We can return some of the formattings by using the "Pretty Print" option, which looks like two braces { } to make it a little more readable, although due to the obfustication, it's still difficult to comprehend what is going on with the file. If you scroll to the bottom of the flash.min.js file, you'll see the line: 

    flash['remove'](); 

     

    This little bit of JavaScript is what is removing the red popup from the page. We can utilise another feature of debugger called breakpoints. These are points in the code that we can force the browser to stop processing the JavaScript and pause the current execution.


    If you click the line number that contains the above code, you'll notice it turns blue; you've now inserted a breakpoint on this line. Now try refreshing the page, and you'll notice the red box stays on the page instead of disappearing, and it contains a flag.
    Answer the questions below



    1) What is the flag in the red box?

    HINT- The debugger tools might work differently on FireFox/Chrome. Follow the steps in the task to find the JavaScript flash.min.js file, prettifying it, finding the line with "flash[remove]" and adding a JavaScript break point to stop the red message disappearing when the page loads.


    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough



    Ans- THM{CATCH_ME_IF_YOU_CAN}

     

     


    Developer Tools - Network


    The network tab on the developer tools can be used to keep track of every external request a webpage makes. If you click on the Network tab and then refresh the page, you'll see all the files the page is requesting.


    Try doing this on the contact page; you can press the trash can icon to delete the list if it gets a bit overpopulated.


    With the network tab open, try filling in the contact form and pressing the Send Message button. You'll notice an event in the network tab, and this is the form being submitted in the background using a method called AJAX. AJAX is a method for sending and receiving network data in a web application background without interfering by changing the current web page.



    TryHackMe Walking An Application Walkthrough




    Examine the new entry on the network tab that the contact form created and view the page the data was sent to in order to reveal a flag.

     

    1) What is the flag shown on the contact-msg network request?

    HINT- When you find the contact-msg request, make sure you click on it to reveal the response of the request (there might be a response tab shown when you click it). After filling this form click on refresh button and see the contact-msg and double on click it.


     

    TryHackMe Walking An Application Walkthrough


    TryHackMe Walking An Application Walkthrough

     



    Ans- THM{GOT_AJAX_FLAG}
     

     

     


    Disclaimer

     

    All tutorials are for informational and educational purposes only and have been made using our own routers, servers, websites and other vulnerable free resources. we do not contain any illegal activity. We believe that ethical hacking, information security and cyber security should be familiar subjects to anyone using digital information and computers. Hacking Truth is against misuse of the information and we strongly suggest against it. Please regard the word hacking as ethical hacking or penetration testing every time this word is used. We do not promote, encourage, support or excite any illegal activity or hacking.



      - Hacking Truth by Kumar Atul Jaiswal



     

  • WHAT WE DO

    We've been developing corporate tailored services for clients for 30 years.

    CONTACT US

    For enquiries you can contact us in several different ways. Contact details are below.

    Hacking Truth.in

    • Street :Road Street 00
    • Person :Person
    • Phone :+045 123 755 755
    • Country :POLAND
    • Email :contact@heaven.com

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.