Nombre total de pages vues

vendredi 5 juin 2020

Gridcoin - The Bad

In this post we will show why Gridcoin is insecure and probably will never achieve better security. Therefore, we are going to explain two critical implementation vulnerabilities and our experience with the core developer in the process of the responsible disclosure. 
    In our last blog post we described the Gridcoin architecture and the design vulnerability we found and fixed (the good). Now we come to the process of responsibly disclosing our findings and try to fix the two implementation vulnerabilities (the bad).

    Update (15.08.2017):
    After the talk at WOOT'17 serveral other developers of Gridcoin quickly reached out to us and told us that there was a change in responsibility internally in the Gridcoin-Dev team. Thus, we are going to wait for their response and then change this blog post accordingly. So stay tuned :)

    Update (16.08.2017):
    We are currently in touch with the whole dev team of Gridcoin and it seems that they are going to fix the vulnerabilities with the next release.


    TL;DR
    The whole Gridcoin currency is seriously insecure against attacks and should not be trusted anymore; unless some developers are in place, which have a profound background in protocol and application security.

    What is Gridcoin?

    Gridcoin is an altcoin, which is in active development since 2013. It claims to provide a high sustainability, as it has very low energy requirements in comparison to Bitcoin. It rewards users for contributing computation power to scientific projects, published on the BOINC project platform. Although Gridcoin is not as widespread as Bitcoin, its draft is very appealing as it attempts to  eliminate Bitcoin's core problems. It possesses a market capitalization of $13,530,738 as of August the 4th 2017 and its users contributed approximately 5% of the total scientific BOINC work done before October 2016.

    A detailed description of the Gridcoin architecture and technical terms used in this blog post are explained in our last blog post.

    The Issues

    Currently there are 2 implementation vulnerabilities in the source code, and we can mount the following attacks against Gridcoin:
    1. We can steal the block creation reward from many Gridcoin minters
    2. We can efficiently prevent many Gridcoin minters from claiming their block creation reward (DoS attack)
    So why do we not just open up an issue online explaining the problems?

    Because we already fixed a critical design issue in Gridcoin last year and tried to help them to fix the new issues. Unfortunately, they do not seem to have an interest in securing Gridcoin and thus leave us no other choice than fully disclosing the findings.

    In order to explain the vulnerabilities we will take a look at the current Gridcoin source code (version 3.5.9.8).

    WARNING: Due to the high number of source code lines in the source files, it can take a while until your browser shows the right line.

    Stealing the BOINC block reward

    The developer implemented our countermeasures in order to prevent our attack from the last blog post. Unfortunately, they did not look at their implementation from an attacker's perspective. Otherwise, they would have found out that they conduct not check, if the signature over the last block hash really is done over the last block hash. But we come to that in a minute. First lets take a look at the code flow:

    In the figure the called-by-graph can be seen for the function VerifyCPIDSignature.
    1. CheckBlock → DeserializeBoincBlock [Source]
      • Here we deserialize the BOINC data structure from the first transaction
    2. CheckBlock → IsCPIDValidv2 [Source]
      • Then we call a function to verify the CPID used in the block. Due to the massive changes over the last years, there are 3 possible verify functions. We are interested in the last one (VerifyCPIDSignature), for the reason that it is the current verification function.
    3. IsCPIDValidv2 → VerifyCPIDSignature [Source]
    4. VerifyCPIDSignature → CheckMessageSignature [Source, Source]
    In the last function the real signature verification is conducted [Source]. When we closely take a look at the function parameter, we see the message (std::string sMsg)  and the signature (std::string sSig) variables, which are checked. But where does this values come from?


    If we go backwards in the function call graph we see that in VerifyCPIDSignature the sMsg is the string sConcatMessage, which is a concatenation of the sCPID and the sBlockHash.
    We are interested where the sBlockHash value comes from, due to the fact that this one is the only changing value in the signature generation.
    When we go backwards, we see that the value originate from the deserialization of the BOINC structure (MiningCPID& mc) and is the variable mc.lastblockhash [Source, Source]. But wait a second, is this value ever checked whether it contains the real last block hash?

    No, it is not....

    So they just look if the stored values there end up in a valid signature.

    Thus, we just need to wait for one valid block from a researcher and copy the signature, the last block hash value, the CPID and adjust every other dynamic value, like the RAC. Consequently, we are able to claim the reward of other BOINC users. This simple bug allows us again to steal the reward of every Gridcoin researcher, like there was never a countermeasure.

    Lock out Gridcoin researcher
    The following vulnerability allows an attacker under specific circumstances to register a key pair for a CPID, even if the CPID was previously tied to another key pair. Thus, the attacker locks out a legit researcher and prevent him from claiming BOINC reward in his minted blocks.

    Reminder: A beacon is valid for 5 months, afterwards a new beacon must be sent with the same public key and CPID.

    Therefore, we need to take a look at the functions, which process the beacon information. Every time there is a block, which contains beacon information, it is processed the following way (click image for higher resolution):


    In the figure the called-by-graph can be seen for the function GetBeaconPublicKey.
    We now show the source code path:
    • ProcessBlock → CheckBlock [Source]
    • CheckBlock → LoadAdminMessages [Source]
    • LoadAdminMessages → MemorizeMessages [Source]
    • MemorizeMessages → GetBeaconPublicKey [Source]
    In the last function GetBeaconPublicKey there are different paths to process a beacon depending on the public key, the CPID, and the time since both were associated to each other.
    For the following explanation we assume that we have an existing association (bound) between a CPID A and a public key pubK_A for 4 months.
    1. First public key for a CPID received [Source]
      • The initial situation, when pubK_A was sent and bind to CPID  A (4 months ago)
    2. Existing public key for a CPID was sent [Source]
      • The case that pubK_A was resent for a CPID A, before the 5 months are passed by
    3. Other public key for a CPID was sent [Source]
      • The case, if a different public key pubK_B for the CPID A was sent via beacon.
    4. The existing public key for the CPID is expired
      • After 5 months a refresh for the association between A and pubK_A is required.
    When an incoming beacon is processed, a look up is made, if there already exists a public key for the CPID used in the beacon. If yes, it is compared to the public key used in the beacon (case 2 and 3).
    If no public key exists (case 1) the new public key is bound to the CPID.

    If a public key exists, but it was not refreshed directly 12.960.000 seconds (5 months [Source]) after the last beacon advertisement of the public key and CPID, it is handled as no public key would exist [Source].

    Thus, case 1 and 4 are treated identical, if the public key is expired, allowing an attacker to register his public key for an arbitrary CPID with expired public key. In practice this allows an attacker to lock out a Gridcoin user from the minting process of new blocks and further allows the attacker to claim reward for BOINC work he never did.

    There is a countermeasure, which allows a user to delete his last beacon (identified by the CPID) . Therefore, the user sends 1 GRC to a special address (SAuJGrxn724SVmpYNxb8gsi3tDgnFhTES9) from an GRC address associated to this CPID [Source]. We did not look into this mechanism in more detail, because it only can be used to remove our attack beacon, but does not prevent the attack.

    The responsible disclosure process

    As part of our work as researchers we all have had the pleasure to responsible disclose the findings to developer or companies.

    For the reasons that we wanted to give the developer some time to fix the design vulnerabilities, described in the last blog post, we did not issue a ticket at the Gridcoin Github project. Instead we contacted the developer at September the 14th 2016 via email and got a response one day later (2016/09/15). They proposed a variation of our countermeasure and dropped the signature in the advertising beacon, which would result in further security issues. We sent another email (2016/09/15) explained to them, why it is not wise to change our countermeasures and drop the signature in the advertising beacon.
    Unfortunately, we did not receive a response. We tried it again on October the 31th 2016. They again did not respond, but we saw in the source code that they made some promising changes. Due to some other projects we did not look into the code until May 2017. At this point we found the two implementation vulnerabilities. We contacted the developer twice via email (5th and 16th of May 2017) again, but never received a response. Thus, we decided to wait for the WOOT notification to pass by and then fully disclose the findings. We thus have no other choice then to say that:

    The whole Gridcoin cryptocurrency is seriously insecure against attacks and should not be trusted anymore; unless some developers are in place, which have a profound background in protocol and application security.

    Further Reading
    A more detailed description of the Gridcoin architecture, the old design issue and the fix will be presented at WOOT'17. Some days after the conference the paper will be available online.

    Related news


    Discover: A Custom Bash Scripts Used To Perform Pentesting Tasks With Metasploit


    About discover: discover is a custom bash scripts used to automate various penetration testing tasks including recon, scanning, parsing, and creating malicious payloads and listeners with Metasploit Framework. For use with Kali Linux, Parrot Security OS and the Penetration Testers Framework (PTF).

    About authors:


    discover Installation and Updating


    About RECON in discover
       Domain

    RECON

    1. Passive

    2. Active
    3. Import names into an existing recon-ng workspace
    4. Previous menu

       Passive uses ARIN, dnsrecon, goofile, goog-mail, goohost, theHarvester, Metasploit Framework, URLCrazy, Whois, multiple websites, and recon-ng.

       Active uses dnsrecon, WAF00W, traceroute, Whatweb, and recon-ng.
       [*] Acquire API keys for Bing, Builtwith, Fullcontact, GitHub, Google, Hashes, Hunter, SecurityTrails, and Shodan for maximum results with recon-ng and theHarvester.

    API key locations:

    recon-ng
       show keys
       keys add bing_api <value>

    theHarvester
       /opt/theHarvester/api-keys.yaml

       Person: Combines info from multiple websites.

    RECON

    First name:

    Last name:

       Parse salesforce: Gather names and positions into a clean list.

    Create a free account at salesforce (https://connect.data.com/login).
    Perform a search on your target company > select the company name > see all.
    Copy the results into a new file.

    Enter the location of your list:

    About SCANNING in discover
       Generate target list: Use different tools to create a target list including Angry IP Scanner, arp-scan, netdiscover and nmap pingsweep.

    SCANNING

    1. Local area network
    2. NetBIOS
    3. netdiscover
    4. Ping sweep
    5. Previous menu


       CIDR, List, IP, Range, or URL

    Type of scan:

    1. External

    2. Internal
    3. Previous menu

    • External scan will set the nmap source port to 53 and the max-rrt-timeout to 1500ms.
    • Internal scan will set the nmap source port to 88 and the max-rrt-timeout to 500ms.
    • Nmap is used to perform host discovery, port scanning, service enumeration and OS identification.
    • Matching nmap scripts are used for additional enumeration.
    • Addition tools: enum4linux, smbclient, and ike-scan.
    • Matching Metasploit auxiliary modules are also leveraged.

    About WEB in discover
       Insecure direct object reference

    Using Burp, authenticate to a site, map & Spider, then log out.
    Target > Site map > select the URL > right click > Copy URLs in this host.

    Paste the results into a new file.


    Enter the location of your file:

       Open multiple tabs in Firefox

    Open multiple tabs in Firefox with:

    1. List

    2. Directories from robots.txt.
    3. Previous menu

    • Use a list containing IPs and/or URLs.
    • Use wget to pull a domain's robot.txt file, then open all of the directories.

       Nikto

    Run multiple instances of Nikto in parallel.

    1. List of IPs.
    2. List of IP:port.
    3. Previous menu

       SSL: Use sslscan and sslyze to check for SSL/TLS certificate issues.

    Check for SSL certificate issues.

    Enter the location of your list:


    About MISC in discover
       Parse XML

    Parse XML to CSV.

    1. Burp (Base64)

    2. Nessus (.nessus)
    3. Nexpose (XML 2.0)
    4. Nmap
    5. Qualys
    6. revious menu

       Generate a malicious payload

    Malicious Payloads

    1. android/meterpreter/reverse_tcp
    2. cmd/windows/reverse_powershell
    3. java/jsp_shell_reverse_tcp (Linux)
    4. java/jsp_shell_reverse_tcp (Windows)
    5. linux/x64/meterpreter_reverse_https
    6. linux/x64/meterpreter_reverse_tcp
    7. linux/x64/shell/reverse_tcp
    8. osx/x64/meterpreter_reverse_https
    9. osx/x64/meterpreter_reverse_tcp
    10. php/meterpreter/reverse_tcp
    11. python/meterpreter_reverse_https 12. python/meterpreter_reverse_tcp
    13. windows/x64/meterpreter_reverse_https
    14. windows/x64/meterpreter_reverse_tcp
    15. Previous menu

       Start a Metasploit listener

    Metasploit Listeners

    1. android/meterpreter/reverse_tcp
    2. cmd/windows/reverse_powershell
    3. java/jsp_shell_reverse_tcp
    4. linux/x64/meterpreter_reverse_https
    5. linux/x64/meterpreter_reverse_tcp
    6. linux/x64/shell/reverse_tcp
    7. osx/x64/meterpreter_reverse_https
    8. osx/x64/meterpreter_reverse_tcp
    9. php/meterpreter/reverse_tcp
    10. python/meterpreter_reverse_https
    11. python/meterpreter_reverse_tcp
    12. windows/x64/meterpreter_reverse_https
    13. windows/x64/meterpreter_reverse_tcp
    14. Previous menu


    More information
    1. Pentest Stages
    2. Pentest Smtp
    3. Hacking Network
    4. Pentest Process
    5. Pentester Academy
    6. Pentest Standard
    7. Hacking Games

    jeudi 4 juin 2020

    Security Onion - Linux Distro For IDS, NSM, And Log Management


    Security Onion is a free and open source Linux distribution for intrusion detection, enterprise security monitoring, and log management. It includes Elasticsearch, Logstash, Kibana, Snort, Suricata, Bro, OSSEC, Sguil, Squert, NetworkMiner, and many other security tools. The easy-to-use Setup wizard allows you to build an army of distributed sensors for your enterprise in minutes!

    Security-onion project
    This repo contains the ISO image, Wiki, and Roadmap for Security Onion.

    Looking for documentation?
    Please proceed to the Wiki.

    Screenshots








    Related word


    Top 10 Best Google Gravity Tricks 2018

    Best Google Gravity Tricks 2018

    Top 10 Best Google Gravity Tricks 2018

    Google is the search engine where the people look up for the things. Yet apart from being only a search engine this website is highly functional and has a lot of functions dubbed inside it. And even the webmasters don't know about all the features as they are so vast that you need to explore lots of things to get to know about them all.  There are a number of gravity opposing tricks in the Google search page that you would like to enjoy. Well many of you guys must be new to this word as only 15% of Google users know this thing and for rest, I'm here to guide you up in this. Here in this article, we have written about the best google gravity tricks that you could ever find in this year. If you are interested to know about it then please read the main section of this post as it is given below. This was all the introduction part of this post and now after this line, we are going to skip to the main section. We recommend you to read till the end to get the fullest information from this page!

    Top 10 Best Google Gravity Tricks 2018

    Below I have mentioned some of the best tricks that I tried as I was getting bored and thought about exploring something new and then I searched Google Tricks on google and then I get to know that even these things are also possible on the Google. You can use so many different things to kill your boredom on Google. There I decided to note down these tricks and share the article with you so that you can also avail these. So follow the below guide to proceed.

    #1 Google zero gravity level fall

    Best Google Gravity Tricks 2018
    Best Google Gravity Tricks 2018
    This is the first trick that amazed me as when I get to know this thing can happen when I was really surprised as it was quite funny. It is a standout amongst the most astonishing google gravity trap. In this trap, the substance will appear like tumbling to a level surface. Every one of the substances like pictures, writings, and so on of your page will be upset. They will look somewhat bouncy and turned around that looks exceptionally energizing and stunning.

    #2 Google Sphere

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    This is second best google gravity trap. In this trap, the substance rotates in a round way. Be that as it may, you will think that its little hard to deal with it since you need to chip away at turning writings.

    #3 Google Loco

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    This google gravity trap is much like the google zero gravity. You will see the substance as falling in a seismic tremor,

    #4 Zerg Rush

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    This is one of my most loved google gravity trap. In this deceive you will see somewhere in the range of zeros spreading in your page. to utilize this trap Open Google.com and hunt Zerg Rush through utilizing the search bar.

    #5 Google submerged

    Best Google Gravity Tricks 2018
    Best Google Gravity Tricks 2018
    This is of the most attractive google gravity trap. In this deceive you will see a domain of submerged. You will see the pursuit bar coasting in the water.

    #6 Do a barrel roll

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    This is likewise an astounding google gravity trap. In this deceive, you will get an impact to your page with which, your page will turn in a solitary minute.

    #7 Google Guitar

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    This is additionally a stunning google gravity trap. In this deceive, you can play guitar on the web index. You can play your coveted tunes with it. Google will give you notes to your tunes.

    #8 Google zero gravity reversal

    Best Google Gravity Tricks 2018
    Best Google Gravity Tricks 2018
    This is one of the coolest Google gravity trap. In this deceive, you will get a perfect representation of your site page. You will feel like you are on the opposite side of the screen.

    #9 Google space

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks That You Need To Try
    In this google gravity deceive you encounter a dream of the room. It implies that the substance of your page will appear like gliding noticeable all around with no gravitational power.

    #10 Pacman

    Best Google Gravity Tricks That You Need To Try
    Best Google Gravity Tricks 2018 That You Need To Try
    This is the standout amongst the most energizing google gravity trap. With this deceive, you can play Pacman game in this.
    Finally, after reading this article, you have got to know about. We have tried to provide you this content in the simple and easy to read wordings and hope that you would have easily got about everything written up here. We believe that you might like this article and if it is what you think then please try to share it with others too. Your indulgence in our post is really valuable to us, so do not miss to write about your opinions and suggestions regarding this article through using the comments section below. At last but never the least thanks for reading this article!
    Related links

    mercredi 3 juin 2020

    Networking | Routing And Switching | Tutorial 4 | 2018


    Welcome to my 4th new tutorial of the series of networking. In this blog you'll the content about network switches. You'll learn about how to make a communication successful and secure in the same network (LAN) by using STP. As Spanning tree protocol (STP) we used in multi-switched networks. Why we use this protocol in multi-switched network etc.

    What is Switch? 

    A switch is an intelligent device used to connect multiple devices within the same network. The intelligence of is that it requires Media Access Control (MAC) address for communication and doesn't allow broadcast.  Let's understand the whole thing by a little example, consider there is a network having 3 end devices name Device-A, Device-B,Device-C connected with each other respectively with the help of switch. When a Device-A sends data to Device-C so that data will only forwarded by switch to Device-C not to Device-B.

    What is Media Access Control (MAC) address?

    A Media Access Control (MAC) address is 48-bit unique physical address given to network interface controller (NIC) or network adapter, for communication within the same network which is given by its manufacturer. It is made up of hexadecimal numbers like a1:b1:cc:ac:2e:f1.

    What is STP?


    STP stands for Spanning tree protocol which is basically used in bridge and switches to prevent loops when you have a redundant links in the Ethernet networks. If the loop is present in the Ethernet network so the whole network will suffer because there will MAC instability in the MAC table,  duplicate frames generation and so on. Let's move to the video for further detail.



    Esta aplicación permite controlar tus servidores linux, bsd y unix con solo un dedo, mediante esta app Android.
    Y soluciona las siguientes problemáticas:
    - Manejar una shell desde el pequeño teclado de un móvil es engorroso.
    - Leer todos los resultados de un comando en la pantalla del móvil, nos dejamos la vista.

    Esta app permite interactuar con servidores remotos simplemente haciendo pulsaciones en la pantalla, mediante un explorador de ficheros, de conexiones, etc..

    Las funcionalidades nuevas de esta versión 1.0 son:

    - Administración del Firewall Iptables.
    - Opción de Custom Commands, tal como había prometido.

    Las funcionalidades ya presentes en la v0.8 son:

    - escalada a root mediante su y sudo
    - gestor de procesos
    - explorador de ficheros, editor de ficheros, editor de permisos.
    - monitorización y baneo de conexiones
    - Visualizadores de logs
    - administrador de drivers
    - estadisticas de disco

    Para la versión 2.0 preveo:

    - Escuchar música remota
    - Descarga de ficheros (wget)
    - Transferencia segura de ficheros entre servidores (scp)
    - Gestures, para administrar los sitemas en plan minority report :)

    App disponible en el market para 861 tipos de dispositivos y pronto disponible en tablets.

    https://market.android.com/details?id=net.ssh.SSHControl

    Cualquier sugerencia de mejora: sha0 [4t] badchecksum [d0t] net

    More articles

    1. Pentest Environment
    2. Pentest Tools Free
    3. Pentest Questions
    4. Hacking Gif
    5. Pentest Practice
    6. How To Pentest A Website
    7. Pentest Enumeration
    8. Pentestmonkey Cheat Sheet
    9. Pentest With Kali
    10. Is Hacking Illegal
    11. Hacking Lab
    12. Pentest Example Report
    13. Pentestlab