Sunday, 30 August 2020

Blockchain Exploitation Labs - Part 2 Hacking Blockchain Authorization


Bypassing Blockchain Authorization via Unsecured Functions


Note: Since the first part of this series I have also uploaded some further videos on remediation of reentrancy and dealing with compiler versions when working with this hacking blockchain series.  Head to the console cowboys YouTube account to check those out.  Haha as mentioned before I always forget to post blogs when I get excited making videos and just move on to my next project… So make sure to subscribe to the YouTube if you are waiting for any continuation of a video series.. It may show up there way before here. 

Note 2:  You WILL run into issues when dealing with Ethereum hacking, and you will have to google them as versions and functionality changes often... Be cognizant of versions used hopefully you will not run into to many hard to fix issues. 

In the second part of this lab series we are going to take a look at privacy issues on the blockchain which can result in a vulnerably a traditional system may  not face. Since typically blockchain projects are open source and also sometimes viewable within blockchain explorers but traditional application business logic is not usually available to us. With traditional applications we might not find these issues due to lack of knowledge of internal functionality or inability to read private values on a remote server side script.  After we review some issues we are going to exploit an authorization issues by writing web3.js code to directly bypass vertical authorization restrictions.

Blockchain projects are usually open source projects which allow you to browse their code and see what's going on under the hood.  This is fantastic for a lot of reasons but a developer can run into trouble with this if bad business logic decisions are deployed to the immutable blockchain.  In the first part of this series I mentioned that all uploaded code on the blockchain is immutable. Meaning that if you find a vulnerability it cannot be patched. So let's think about things that can go wrong..

A few things that can go wrong:
  • Randomization functions that use values we can predict if we know the algorithm
  • Hard-coded values such as passwords and private variables you can't change.
  • Publicly called functions which offer hidden functionality
  • Race conditions based on how requirements are calculated

Since this will be rather technical, require some setup and a lot of moving parts we will follow this blog via the video series below posting videos for relevant sections with a brief description of each.  I posted these a little bit ago but have not gotten a chance to post the blog associated with it.  Also note this series is turning into a full lab based blockchain exploitation course so keep a lookout for that.

In this first video you will see how data about your project is readily available on the blockchain in multiple formats for example:
  • ABI data that allows you to interact with methods.
  • Actual application code.
  • Byte code and assembly code.
  • Contract addresses and other data.

 Lab Video Part 1: Blockchain OSINT: 



Once you have the data you need to interact with a contract on the blockchain via some OSINT how do you actually interface with it? That's the question we are going to answer in this second video. We will take the ABI contract array and use it to interact with methods on the blockchain via Web3.js and then show how this correlates to its usage in an HTML file

Lab Video Part 2: Connecting to a Smart Contract: 




Time to Exploit an Application:

Exploit lab time, I created an vulnerable application you can use to follow along in the next video. Lab files can be downloaded from the same location as the last blog located below. Grab the AuthorizationLab.zip file:

Lab file downloads:



Ok so you can see what's running on the blockchain, you can connect to it, now what?   Now we need to find a vulnerability and show how to exploit it. Since we are talking about privacy in this blog and using it to bypass issues. Lets take a look at a simple authorization bypass we can exploit by viewing an authorization coding error and taking advantage of it to bypass restrictions set in the Smart Contract.  You will also learn how to setup a local blockchain for testing purposes and you can download a hackable application to follow along with the exercises in the video..

Lab Video Part 3:  Finding and hacking a Smart Contract Authorization Issue: 





Summary:

In this part of the series you learned a lot, you learned how to transfer your OSINT skills to the blockchain. Leverage the information found to connect to that Smart Contract. You also learned how to interact with methods and search for issues that you can exploit. Finally you used your browsers developer console as a means to attack the blockchain application for privilege escalation.

Related links


Top System Related Commands In Linux With Descriptive Definitions


Commands are just like an instructions given to a system to do something and display an output for that instruction. So if you don't know how to gave an order to a system to do a task then how it can do while you don't know how to deal with. So commands are really important for Linux users. If you don't have any idea about commands of Linux and definitely you also don't know about the Linux terminal. You cannot explore Linux deeply. Because terminal is the brain of the Linux and you can do everything by using Linux terminal in any Linux distribution. So, if you wanna work over the Linux distro then you should know about the commands as well.
In this blog you will get a content about commands of Linux which are collectively related to the system. That means if you wanna know any kind of information about the system like operating system, kernel release information, reboot history, system host name, ip address of the host, current date and time and many more.

Note:

If you know about the command but you don't have any idea to use it. In this way you just type the command, then space and then type -h or --help or ? to get all the usage information about that particular command like "uname" this command is used for displaying the Linux system information. You don't know how to use it. Just type the command with help parameter like: uname -h or uname --help etc.

uname 

The "uname" is a Linux terminal command responsible of displaying the information about Linux system. This command has different parameter to display a particular part of information like kernel release (uname -r) or all the information displayed by typing only one command (uname -a).

uptime

This command is used to show how long the system has been running and how much load on it at current state of the CPU. This command is very useful when you system slows down or hang etc and you can easily get the info about the load on the CPU with the help of this command.

hostname

The "hostname" is the the command in Linux having different parameters to display the information bout the current host which is running the kernel at that time. If you wanna know about the parameters of hostname command then you just type hostname --help or hostname -h to get all the info about the command and the usage of the command.

last reboot

The "last reboot" is the command in Linux operating system used to display the reboot history. You just have to type this command over the Linux terminal it will display the reboot history of that Linux system.

date

The "date" is the command used in Linux operating system to show the date of the day along with the current time of the day.

cal

The "cal" command in Linux used to display the calendar which has the current date highlighted with a square box along with a current month dates and days just like a real calendar.

w

The "w" is the command used in Linux distro for the sake of getting the information about current user. If you type this command it will display who is online at the time.

whoami

The "whoami" is the command in Linux operating system used to show the information that who you are logged in as. For example if you are logged in as a root then it'll display "root" etc.

finger user

The "finger user" is the command used in Linux distribution to display the information about user which is online currently over that Linux system.

More information


Saturday, 29 August 2020

Pointers Part 1: The Basics



So you're eager to learn about pointers but unfortunately you got stuck because they seemed to you terrible in nature? That's not true I know, but many of the people get confused when they arrive at the topic of pointers. Well pointers are the most important tools in C programming and are the one that can make you fly (unless you don't know how to ride over them). In this article we're going to learn basics of pointers.
Pointers are the varaibles that store addresses of other variables. Easy ain't it?
So lets start with the decleration of a pointer, pointer is decreleared as:
data_type *var_name;
e,g
int *pt;
well the astrisk(*) before the variable name is the thing that makes variable a pointer. So far so good now what?
Now lets say we want to store address of a variable in our pointer variable that seems pretty complex..!
Let's do it:
int number = 100;
int *pt = #
Is it really complex..?
what we are doing here is that we are first declaring and initializing a integer variable (number) with value of 100 and then we declare and initialize a pointer variable (pt) with the address of number variable. Now pt (pointer variable) contains the address of number (integer varaible). So what? Now we can use this pointer variable to change the value of number variable. Is this some kind of Magic? Maybe. Lets' do it:
*pt = 200;
what we have done here is that we De-referencing the pt variable with the asterisk (*) and then assigned it the value of 200 now the number variable contains 200. Isn't it a magic? De-referencing is used for accessing the value of the variable towards which our pointer is pointing simple. So lets write a full program of what we have learned so far.
/*Pointer Basics: Creating and Using Pointers*/
#include<stdio.h>
int main(void){
  int number = 100;
  int *pt = &number;
  printf("Value of 'number' is: %d", number);
  printf("Address of 'number' is: %p", pt);
  *pt = 200;
  printf("New value of 'number' is: %d", number);
  return 0;
}
What this whole program did was it created a integer variable and a pointer to integer variable and then printed out the value and address of the 'number' variable and after that we De-referenced the pointer variable so that we can access the value to which our pointer variable is pointing and changed the old 100 value with new 200 value and at last we printed that out. Easy isn't it?
But do you know that you can get the address of a variable even by using ampersand (&) operator? Lemme show you how. I'll declare and initialize a variable 'var' and then print it to screen using ampersand (&) operator:
int var = 10;
printf("Address of 'var' is %p\n", &var);
the last statement here will print out the address of 'var' not value so that means it is equal to this statement:
int *pt = &var;
printf("Address of 'var' is %p\n", pt);
here we first assigned the address of 'var' to pointer variable 'pt' and then printed out the address of 'var' using the pointer variable (pt).
So lets write another program that will wrap up this part of 'Pointer Basics':
/*Pointer Basics Part 1: Program 2*/
#include<stdio.h>
int main(void){
   int var = 10;
   int *pt = &var;
   printf("The Value of 'var' is: %d\n", var);
   printf("De-referencing: *pt = %d\n", *pt);
   printf("Ampersand: The Address of 'var' is %p\n",  &var);
   printf("pt = %p\n", pt);
   return 0;
}
So that's the end of first part watch out for the next part in which we'll tighten our grip on pointers and get ready for some Advanced '*po(inter)-fo'.

More articles


  1. Hacking Tools Kit
  2. Hack Tools
  3. Pentest Tools Website Vulnerability
  4. What Are Hacking Tools
  5. Best Hacking Tools 2020
  6. Hacks And Tools
  7. Hacker Tools Github
  8. Hacking Tools Hardware
  9. Hacking Tools For Games
  10. Hacking Tools Pc
  11. Hack Tools
  12. Computer Hacker
  13. Hacker Tools 2020
  14. Pentest Tools Review
  15. Hacking Tools Online
  16. Hacking Apps
  17. Hack Tools Mac
  18. Hacking Tools Windows
  19. New Hack Tools
  20. Bluetooth Hacking Tools Kali
  21. Hacking Tools Free Download
  22. Hacker Tools Free Download
  23. Hacker Hardware Tools
  24. Hack Rom Tools
  25. Pentest Automation Tools
  26. Hacking Tools Usb
  27. Pentest Tools Apk
  28. Hacker Tools Hardware
  29. Hacking Tools For Beginners
  30. What Are Hacking Tools
  31. Hak5 Tools
  32. What Are Hacking Tools
  33. Hacker Tools Software
  34. Hackrf Tools
  35. Hacking Tools For Windows
  36. Pentest Recon Tools
  37. Hacking Tools For Mac
  38. Nsa Hacker Tools
  39. Hacking Tools Mac
  40. Hack App
  41. Android Hack Tools Github
  42. Hacking Apps
  43. Pentest Tools Framework
  44. Free Pentest Tools For Windows
  45. Hacker Tools 2020
  46. Hacker Tools
  47. Free Pentest Tools For Windows
  48. Easy Hack Tools
  49. Hack Tools Mac
  50. Hack Tools Pc
  51. Hacker Tools For Windows
  52. Hackers Toolbox
  53. Hacking Tools For Windows Free Download
  54. Best Pentesting Tools 2018
  55. Hack Website Online Tool
  56. Underground Hacker Sites
  57. Hacker Tools 2020
  58. Pentest Tools Port Scanner
  59. Hacker Search Tools
  60. Hak5 Tools
  61. Hacker Hardware Tools
  62. Best Hacking Tools 2020
  63. Usb Pentest Tools
  64. Hacker Tools List
  65. Hacking Tools Free Download
  66. Usb Pentest Tools
  67. Underground Hacker Sites
  68. Hack Tool Apk
  69. Hack Tools For Ubuntu
  70. Pentest Reporting Tools
  71. Black Hat Hacker Tools
  72. Hacker Tools Mac
  73. Pentest Tools Windows
  74. Hacking Tools For Games
  75. Hacker Search Tools
  76. Pentest Tools For Android
  77. Hack Apps
  78. New Hacker Tools
  79. Hacking Tools For Windows 7
  80. Hacker Search Tools
  81. Pentest Tools Bluekeep
  82. Hacking Tools For Mac
  83. Pentest Tools Kali Linux
  84. Hacker Tools Apk Download
  85. Hacker Tools Windows
  86. Pentest Tools Url Fuzzer
  87. How To Install Pentest Tools In Ubuntu
  88. Pentest Tools For Android
  89. Pentest Tools Kali Linux
  90. Hacking App
  91. Hacker Tools Mac
  92. Hack Tools For Windows
  93. Hacking Tools Hardware
  94. Hack Tools For Pc
  95. Hack Tools
  96. Hacking Tools Github
  97. Black Hat Hacker Tools
  98. Pentest Tools Alternative
  99. Hacker Tools For Pc
  100. Hacker Tools Apk
  101. Hacking Tools Usb
  102. Hacking Tools Windows 10
  103. Pentest Tools Android
  104. Hacking Tools Pc
  105. Pentest Tools Nmap
  106. Hacking Tools For Windows
  107. Pentest Tools Subdomain
  108. Kik Hack Tools
  109. Pentest Tools Framework
  110. Best Hacking Tools 2020
  111. Hack Tools For Games
  112. Hacking Tools For Kali Linux
  113. Nsa Hack Tools Download
  114. Top Pentest Tools
  115. Hacking Tools For Windows Free Download
  116. Nsa Hacker Tools
  117. Hacker Tools Software
  118. Hacker Tools Github
  119. Hacking Tools Free Download
  120. Pentest Tools Alternative
  121. How To Hack
  122. Kik Hack Tools
  123. Hacking Tools Name
  124. Pentest Tools Kali Linux
  125. Hacking Tools For Windows
  126. Pentest Tools Download
  127. Hack Tools For Ubuntu
  128. Hacker Tools For Windows
  129. Hacker Tools For Ios
  130. Hacking Tools And Software
  131. Hacker
  132. World No 1 Hacker Software
  133. Hack Tools Pc
  134. Hacker Tools For Pc
  135. Best Hacking Tools 2019
  136. Pentest Tools For Android
  137. Hacking Tools For Games
  138. Pentest Reporting Tools
  139. Hacking Tools
  140. Pentest Tools Subdomain
  141. Hacking Tools
  142. Hacker Tools Free
  143. Hacker Security Tools
  144. Hacking Tools Download
  145. Pentest Box Tools Download
  146. Hacker Tools 2019
  147. Hacker
  148. Hacker Tools Online
  149. Hacker Tools Apk
  150. Best Pentesting Tools 2018
  151. How To Hack
  152. Hacker Tools 2019