Twitter Updates

    follow me on Twitter

    List for 4.5% and get 1% cash back on your purchase

    Monday, April 13, 2020

    Change Passwords Regularly - A Myth And A Lie, Don'T Be Fooled, Part 1


    TL;DR: different passwords have different protection requirements, and different attackers using various attacks can only be prevented through different prevention methods. Password security is not simple. For real advise, checking the second post (in progress).

    Are you sick of password advices like "change your password regularly" or "if your password is password change it to pa$$w0rd"? This post is for you!

    The news sites are full of password advises nowadays due to recent breaches. When I read/watch these advise (especially on CNN), I am usually pissed off for a lot of reasons. Some advises are terrible (a good collection is here), some are good but without solutions, and others are better, but they don't explain the reasons. Following is my analysis of the problem. It works for me. It might not work for you. Comments are welcome!

    Password history

    Passwords have been used since ancient times.


    Because it is simple. When I started using the Internet, I believe I had three passwords. Windows login, webmail, and IRC. Now I have ~250 accounts/passwords to different things, like to my smartphone, to my cable company (this password can be used to change the channels on the TV), to my online secure cloud storage, to full disk encryption to start my computer, to my nude pictures, to my WiFi router, to my cloud server hosting provider, etc etc etc. My money is protected with passwords, my communication is protected with passwords/encryption, my work is protected with passwords. It is pretty damn important. But yet people tend to choose lame passwords. Pretty lame ones. Because they don't think it can be significant. But what is not essential today will be relevant tomorrow. The service you used to download music (iTunes) with the lame password will one day protect all your Apple devices, where attackers can download your backup files, erase all your devices, etc. The seven-character and one capital rule is not enough anymore. This advice is like PDF is safe to open, Java is secure. Old, outdated, untrue.

    Now, after this lengthy prologue, we will deep dive into the analysis of the problem, by checking what we want to protect, against whom (who is the attacker), and only after that, we can analyze the solutions. Travel with me, I promise it will be fun! ;)

    What to protect?

    There are different services online, and various services need different ways to protect. You don't use the same lock on your Trabant as you do on your BMW.

    Internet banking, online money

    For me, this is the most vital service to protect. Luckily, most of the internet banking services use two-factor authentication (2FA), but unfortunately, not all of them offer transaction authorization/verification with complete transactions. 2FA is not effective against malware, it just complicates the attack. Transaction authorization/verification is better, but not perfect (see Zitmo). If the access is not protected with 2FA, better choose the best password you have (long, real random, sophisticated, but we will get to this later). If it is protected with 2FA, it is still no reason not to use the best password ;) This is what I call the "very high-level password" class.


    Credit card data

    This system is pretty fucked up bad. Something has to be secret (your credit card number), but in the meantime that is the only thing to identify your credit card. It is like your username is your password. Pretty bad idea, huh? The problem is even worse with a lot of different transaction types, especially when the hotel asks you to fax both sides of your CC to them. Unfortunately, you can't change the password on your credit card, as there is no such thing, but Verified by VISA or 3-D Secure with 2FA might increase the chances your credit card won't get hacked. And on a side note, I have removed the CVV numbers from my credit/debit cards. I only read it once from the card when I received it, I don't need it anymore to be printed there.
    And sometimes, you are your own worst enemy. Don't do stupid things like this:


    Work related passwords (e.g. Windows domain)

    This is very important, but because the attack methods are a bit different, I created this as a different category. Details later.

    Email, social sites (Gmail/Facebook/Twitter), cloud storage, online shopping

    This is what I call the "high level password" class.
    Still, pretty important passwords. Some people don't understand "why would attackers put any energy to get his Facebook account?" It is simple. For money. They can use your account to spread spam all over your Facebook wall. They can write messages to all of your connections and tell them you are in trouble and send money via Western Union or Bitcoin.


    They can use your account in Facebook votes. Your e-mail, cloud storage is again very important. 20 years ago you also had letters you didn't want to print and put in front of the nearest store, neither want you to do that with your private photo album. On a side note, it is best to use a cloud storage where even the cloud provider admin can't access your data. But in this case, with no password recovery option, better think about "alternative" password recovery mechanisms.

    Other important stuff with personal data (e.g. your name, home address)

    The "medium level password" class. This is a personal preference to have this class or not, but in the long run, I believe it is not a waste of energy to protect these accounts. These sites include your favorite pizza delivery service, your local PC store, etc.

    Not important stuff

    This is the category other. I usually use one-time disposable e-mail to these services. Used for the registration, get what I want, drop the email account. Because I don't want to spread my e-mail address all over the internet, whenever one of these sites get hacked. But still, I prefer to use different, random passwords on these sites, although this is the "low level password" class.

    Attackers and attack methods

    After categorizing the different passwords to be protected, let's look at the different attackers and attack methods. They can/will/or actively doing it now:

    Attacking the clear text password 

    This is the most effective way of getting the password. Bad news is that if there is no other factor of protection, the victim is definitely not on the winning side. The different attack methods are:

    • phishing sites/applications,


    • social engineering,
    • malware running on the computer (or in the browser), 
    • shoulder surfing (check out for smartphones, hidden cameras), 
    • sniffing clear-text passwords when the website is not protected with SSL,
    • SSL MiTM,
    • rogue website administrator/hacker logging clear text passwords,
    • password reuse - if the attacker can get your password in any way, and you reuse it somewhere else, that is a problem,
    • you told your password to someone and he/she will misuse it later,
    • hardware keyloggers,
    • etc.

    The key thing here is that no matter how long your passwords are, no matter how complex it is, no matter how often do you change it (except when you do this every minute ... ), if it is stolen, you are screwed. 2FA might save you, or might not.

    Attacking the encrypted password 

    This is the usual "hack the webserver (via SQL injection), dump the passwords (with SQLMap), post hashes on pastebin, everybody starts the GPU farm to crack the hashes" scenario. This is basically the only scenario where the password policies makes sense. In this case the different level of passwords need different protection levels. In some cases, this attack turns out to be the same as the previous attack, when the passwords are not hashed, or are just encoded.

    The current hash cracking speeds for hashes without any iterations (this is unfortunately very common) renders passwords like Q@tCB3nx (8 character, upper-lowercase, digit, special characters) useless, as those can be cracked in hours. Don't believe me? Let's do the math.

    Let's say your password is truly random, and randomly choosen from the 26 upper, 26 lower, 10 digit, 33 special characters. (Once I tried special passwords with high ANSI characters inside. It is a terrible idea. Believe me.). There are 6 634 204 312 890 620 different, 8 character passwords from these characters. Assuming a 2 years-old password cracking rig, and MD5 hash cracking with 180 G/s speed, it takes a worst case 10 hours (average 5) to crack the password, including upgrading your bash to the latest, but still vulnerable bash version. Had the password been 10 characters long, it would take 10 years to crack with today hardware. But if the password is not truly random, it can be cracked a lot sooner.

    A lot of common hashing algorithms don't use protections against offline brute-force attacks. This includes LM (old Windows hashes), NTLM (modern Windows hashes), MD-5, SHA1-2-512. These hashing algorithms were not developed for password hashing. They don't have salting, iterations, etc. out of the box. In the case of LM, the problem is even worse, as it converts the lowercase characters to uppercase ones, thus radically decreasing the key space. Out of the box, these hashes are made for fast calculation, thus support fast brute-force.


    Another attack is when the protected thing is not an online service, but rather an encrypted file or crypto-currency wallet.

    Attacking the authentication system online

    This is what happened in the recent iCloud hack (besides phishing). Attackers were attacking the authentication system, by either brute-forcing the password, or bypassing the password security by answering the security question. Good passwords can not be brute-forced, as it takes ages. Good security answers have nothing to do with the question in first place. A good security answer is as hard to guess as the password itself. If password recovery requires manual phone calls, I know, it is a bit awkward to say that your first dog name was Xjg.2m`4cJw:V2= , but on the other hand, no one will guess that!


    Attacking single sign on

    This type of attack is a bit different, as I was not able to put the "pass the hash" attacks anywhere. Pass the hash attack is usually found in Windows domain environments, but others might be affected as well. The key thing is single sign on. If you can login to one system (e.g. your workstation), and access many different network resources (file share, printer, web proxy, e-mail, etc.) without providing any password, then something (a secret) has to be in the memory which can be used to to authenticate to the services. If an attacker can access this secret, he will be able to access all these services. The key thing is (again) it does not matter, how complex your passwords are, how long it is, how often do you change, as someone can easily misuse that secret.

     

    Attacking 2FA

    As already stated, 2 factor authentication raises the efforts from an attacker point of view, but does not provide 100% protection. 
    • one time tokens (SecurID, Yubikey) can be relayed in a man-in-the-middle attack, 
    • smartcard authentication can be relayed with the help of a malware to the attacker machine - or simply circumvented in the browser malware, 
    • text based (SMS) messages can be stolen by malware on the smartphone or rerouted via SS7, 
    • bio-metric protection is constantly bypassed,
    • SSH keys are constantly stolen,
    • but U2F keys are pretty good actually, even though BGP/DNS hijack or similar MiTM can still circumvent that protection,
    • etc. 


    Others

    Beware that there are tons of other attack methods to access your online account (like XSS/CSRF), but all of these have to be handled on the webserver side. The best you can do is to choose a website where the Bug Bounty program is running 24/7. Otherwise, the website may be full of low hanging, easy-to-hack bugs.

    Now that we have covered what we want to protect against what, in the next blog post, you will see how to do that. Stay tuned. I will also explain the title of this blog post.Related articles

    How To Start | How To Become An Ethical Hacker

    Are you tired of reading endless news stories about ethical hacking and not really knowing what that means? Let's change that!
    This Post is for the people that:

    • Have No Experience With Cybersecurity (Ethical Hacking)
    • Have Limited Experience.
    • Those That Just Can't Get A Break


    OK, let's dive into the post and suggest some ways that you can get ahead in Cybersecurity.
    I receive many messages on how to become a hacker. "I'm a beginner in hacking, how should I start?" or "I want to be able to hack my friend's Facebook account" are some of the more frequent queries. Hacking is a skill. And you must remember that if you want to learn hacking solely for the fun of hacking into your friend's Facebook account or email, things will not work out for you. You should decide to learn hacking because of your fascination for technology and your desire to be an expert in computer systems. Its time to change the color of your hat đŸ˜€

     I've had my good share of Hats. Black, white or sometimes a blackish shade of grey. The darker it gets, the more fun you have.

    If you have no experience don't worry. We ALL had to start somewhere, and we ALL needed help to get where we are today. No one is an island and no one is born with all the necessary skills. Period.OK, so you have zero experience and limited skills…my advice in this instance is that you teach yourself some absolute fundamentals.
    Let's get this party started.
    •  What is hacking?
    Hacking is identifying weakness and vulnerabilities of some system and gaining access with it.
    Hacker gets unauthorized access by targeting system while ethical hacker have an official permission in a lawful and legitimate manner to assess the security posture of a target system(s)

     There's some types of hackers, a bit of "terminology".
    White hat — ethical hacker.
    Black hat — classical hacker, get unauthorized access.
    Grey hat — person who gets unauthorized access but reveals the weaknesses to the company.
    Script kiddie — person with no technical skills just used pre-made tools.
    Hacktivist — person who hacks for some idea and leaves some messages. For example strike against copyright.
    •  Skills required to become ethical hacker.
    1. Curosity anf exploration
    2. Operating System
    3. Fundamentals of Networking
    *Note this sites





    Continue reading

    Reversing Some C++ Io Operations

    In general decompilers are not friendly with c++ let's analyse a simple program to get familiar with it.
    Let's implement a simple code that loads a file into a vector and then save the vector with following functions:

    • err
    • load
    • save
    • main


    Lets identify the typical way in C++ to print to stdout with the operator "<<"


    The basic_ostream is initialized writing the word "error" to the cout, and then the operator<< again to add the endl.




    The Main function simply calls  "vec = load(filename)"  but the compiler modified it and passed the vector pointer as a parĂ¡meter. Then it bulds and prints "loaded  " << size << " users".
    And finally saves the vector to /tmp/pwd and print "saved".
    Most of the mess is basically the operator "<<" to concat and print values.
    Also note that the vectors and strings are automatically deallocated when exit the function.


    And here is the code:


    Let's take a look to the load function, which iterates the ifs.getline() and push to the vector.
    First of all there is a mess on the function definition, __return_storage_ptr is the vector.
    the ifstream object ifs is initialized as a basic_ifstream and then operator! checks if it wasn't possible to open the file and in that case calls err()
    We see the memset and a loop, getline read a cstr like line from the file, and then is converted to a string before pushing it to the vector. lVar1 is the stack canary value.

    In this situations dont obfuscate with the vector pointer vec initialization at the begining, in this case the logic is quite clear.



    The function save is a bit more tricky, but it's no more than a vector iteration and ofs writing.
    Looping a simple "for (auto s : *vec)" in the decompiler is quite dense, but we can see clearly two write, the second write DAT_0010400b is a "\n"



    As we see, save implememtation is quite straightforward.




    Read more


    1. Pentest Recon Tools
    2. Hacking Tools
    3. Bluetooth Hacking Tools Kali
    4. Hacks And Tools
    5. Hack Tool Apk No Root
    6. Hacking Tools Hardware
    7. Hacker Hardware Tools
    8. Hacking Tools For Beginners
    9. Underground Hacker Sites
    10. Hacker Tool Kit
    11. What Are Hacking Tools
    12. Pentest Recon Tools
    13. Hacking Tools Software
    14. Android Hack Tools Github
    15. Hack Tool Apk No Root
    16. Pentest Tools For Android
    17. Pentest Tools Online
    18. Nsa Hack Tools
    19. Pentest Tools Apk
    20. Hacker Tools For Mac

    C++ Std::Condition_Variable Null Pointer Derreference


    This story is about a bug generated by g++ and clang compilers (at least)
    The condition_variables is a feature on the standard library of c++ (libstdc++), when its compiled statically a weird asm code is generated.


    Any example on the link below will crash if its compiled statically:
     https://en.cppreference.com/w/cpp/thread/condition_variable



    In this case the condition_variable.wait() crashed, but this happens with other methods, a simple way to trigger it:




    If this program is compiled dynamically the crash doesn't occur:

    Looking the dissasembly there is a surprise created by the compiler:


    Compilers:
        g++  9.2.1+20200130-2
        clang++ v9

    Both compilers are generating the "call 0x00"

    If we check this call in a dynamic compiled:




    The implementation of condition_variable in github:
    https://github.com/gcc-mirror/gcc/blob/b7c9bd36eaacac42631b882dc67a6f0db94de21c/libstdc%2B%2B-v3/include/std/condition_variable


    The compilers can't copile well this code in static,  and same happens on  other condition_variable methods.
    I would say the _lock is being assembled improperly in static, is not exacly a null pointer derreference but the effects are the same, executing code at address 0x00 which on linux is a crash on most of cases.

    Related articles


    Saturday, April 11, 2020

    28Mm Tankfest 2020 (AHPC X)

    e

    Each year I take part in a "Painting Competition", the Analogue Hobbies Winter Paint Challenge, this year is the tenth time it's been run.

    The challenge runs through the winter months (21st Dec to the 21st March) and the photo above shows off what I have finished during that time,  the odd vehicle has featured on here before (The Italians had their own Troops on Parade feature here recently) but a lot are new to the viewing public at Yarkshire Gamer.


    Last years "theme" was my Italian Wars Project which went down quite well ! This year I decided to get the large box of 28mm Tanks for the Desert I had lying around finished. Sadly I had some issues with flaking early on in the Challenge so my output is probably at least a third down, there are a bunch of early war Panzers in a box waiting to be done.


    I only managed one none tank unit, some independent shot for my Italian Wars Project with a solitary Landsknecht who is my entry fee for the Challenge and will be off to his new owner soon.


    The Italian contingent, as seen in the TOP post. One of the things I love about this challenge is that it's not about "judging" people's painting ability, it's about encouragement to fellow painters during the Winter Months, it exposes me to a lot of Pulp and Sci Fi stuff that I don't do myself and I find that really interested.


    A group of six, plain Crusader Tanks. Plain because they landed towards the end of the Caunter Scheme (1941) and photos of them with the scheme are very rare.


    The Caunter Scheme odds and sods, 3 x Mk VI Light Tanks, 4 x A13s, a single Matilda and a Warlord Crusader.


    And finally a Regiment of M3 Honeys.

    The challenge is carrying on in a more informal manner during the Covid crisis, a great way to keep in contact with gaming mates all over the world.

    Wednesday, April 8, 2020

    Solo Gaming

    What's going on everyone!?


    Today was a bit hectic and I was running out of time to get a game in but I was able to get a solo game of Carcassonne played on the awesome mobile app. 

    Thankfully I was able to grab a glorious win for the day!

    As always, thank you for reading and don't forget to stop and smell the meeples! :)

    -Tim

    Thursday, April 2, 2020

      Blogger

    http://tiny.cc/gwvcmz



    Home for sale- $2,000 rebate!

    Ready Real Estate slide show

    Become a fan of my page

    Sheree Dutton, Reatlor, DFW, Texas on Facebook
    Powered By Blogger

    Pandora Faves

    Back on the market, price reduced, 1% cash back rebate offered

    Sheree Dutton | Ready Real Estate | 817-975-0461
    222 Birchwood, Azle, TX
    Back on the market, price reduced and 15 cash back rebate offered!
    3BR/2BA Single Family House
    offered at $102,500
    Year Built 2006
    Sq Footage 1,142
    Bedrooms 3
    Bathrooms 2 full, 0 partial
    Floors 1
    Parking 3 Covered spaces
    Lot Size .225 acres
    HOA/Maint $0 per month

    DESCRIPTION


    Wow, talk about pride of ownership! This house has too many upgrades to count, and is so well cared for. You must see it to believe it! A lot of value in this perfect starter home.

    OPEN HOUSE SUNDAY MAY 3RD 2+5 pm

    see additional photos below
    PROPERTY FEATURES

    - Central A/C - Central heat - Fireplace
    - High/Vaulted ceiling - Walk-in closet - Tile floor
    - Living room - Breakfast nook - Dishwasher
    - Refrigerator - Stove/Oven - Microwave
    - Laundry area - inside - Balcony, Deck, or Patio - Yard

    OTHER SPECIAL FEATURES

    - 1 car garage, covered carport for 2 cars
    - covered wood deck in backyard
    - gutters
    - storage shed
    - newly stained wood fence
    - electric fireplace added, with tile hearth
    - upgraded ceiling fans and light fixtures
    - island in kitchen

    ADDITIONAL PHOTOS


    Fantastic curb appeal

    covered wood deck in back

    living room

    kitchen with island

    breakfast nook

    master bedroom
    Contact info:
    Sheree Dutton
    Ready Real Estate
    817-975-0461
    For sale by agent/broker

    powered by postlets Equal Opportunity Housing
    Posted: Sep 11, 2009, 7:31am PDT

    Blog Archive