Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Making your Admincp More secure!
iNRoC
Join Date: Jul 2008
Posts: 151

 

Clifton, New Jersey
Show Printable Version Email this Page Subscription
iNRoC iNRoC is offline 11-27-2008, 10:00 PM

Hi guys, over my relatively short time as an administrator of a few forums, I've learned a few "tricks" that will throw off some of the more "Noobish" people who have a desire to hack your forum. I figured I would go ahead and post them

Trick # 1:Rename your admincp folder

This is actually a surprisingly little known feature of vbulletin. Rename the admincp on your hosting space to anything else, the more random, the better. Open up your config.php inside the /includes/ folder, and find the line containing

PHP Code:
$config['Misc']['admincpdir'] = 
and change the variable stored there to the name of your directories new name. Basically, this will make it so anyone who doesn't know the exact location of your admincp, cant find it.

Trick #2: The Dummy Admin Panel

This one goes well with trick #1. Goto your admin panel's login screen,and go to your browsers File-> Save As page, and save the .php file to your HD. Now, open edit out the personal data in that admincp (look around the form data for "hidden" fields), and upload it to a directory on your server. Basically, the idea here is to make a non-functional admincp login page, to fool people into thinking they have the right URL when they really don't.

Trick #3: The IP Deny .htaccess

Now, this trick involve knowing all of your admin's IP addresses. If your administrators do not have "rotating" IP's, then you can use a simple .htaccess file to allow only you and your administrators IP ranges to access the admin panel. Quite an efficient way of safeguarding your admin panel

Trick #4: A Passworded .htaccess

If your admin's do have dynamic IP addresses, there is another .htaccess solution you can use, though this one is a little less secure. Simply create a .htaccess that requires a username and password, this give double password protection on the panel, making it harder to get it. The downside is, if someone gives out the password, its useless :/

Trick #5: The Multi Hash

Now this is one you'll have to figure out on your own, its a little bit tricky to pull off, and PHP/SQL knowledge is required. The current login system for all the users for vbulletin is a MD5 hash, which is encrypted in your sql database itself. Now, to login, the system takes your input, encrypts it, and compares it to the result in the database. When hackers use scripts/exploits to try and pull a password from your database, it comes out as a hash, which they then have to run a dictionary attack against(It takes forever to brute force a MD5 password) Now, a few webmasters have found ways to "multi-hash" the login script, so that it would be something like this user input ->hash ->hash -> hash -Compare result to db. This effectively hinders any hacker from getting your hash and decrypting it, as a dictionary attack would not work on it.

Trick #6 (Though not a trick at all): Picking your staff

Above all, probably the most important thing to ever remember. Don't be generous with giving Moderator/ Admin/ Cpanel/ FTP access. Unless the user is someone you can trust, and has at least a little experience, theres no reason to let anybody in any control panel.

Posted by an administrator by my site. Org post: http://onehitwebdev.com/forum/showthread.php?t=44
Reply With Quote
  #2  
Old 11-30-2008, 07:16 PM
Triky's Avatar
Triky Triky is offline
 
Join Date: Mar 2007
Location: [Italy]
Posts: 728
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Trick #5: The Multi Hash
Can you please post some links to let us understand how do we do this?
Reply With Quote
  #3  
Old 12-01-2008, 03:15 AM
codershark codershark is offline
 
Join Date: Feb 2008
Location: Germany
Posts: 208
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes can you write more about "Multi Hash" ? How, I can do that ?
Reply With Quote
  #4  
Old 12-06-2008, 02:39 PM
iNRoC iNRoC is offline
 
Join Date: Jul 2008
Location: Clifton, New Jersey
Posts: 151
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by codershark View Post
Yes can you write more about "Multi Hash" ? How, I can do that ?
Multi-Hash is not easy at all. It involves knowledge and training in SQL.
Reply With Quote
  #5  
Old 12-06-2008, 03:52 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice article! It's so easy to take some steps to make this area of your board more secure, yet many admins don't bother.
Reply With Quote
  #6  
Old 12-06-2008, 08:51 PM
iNRoC iNRoC is offline
 
Join Date: Jul 2008
Location: Clifton, New Jersey
Posts: 151
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
Nice article! It's so easy to take some steps to make this area of your board more secure, yet many admins don't bother.
It's actually an important step in security. If you don't edit the config.php file, it makes it even more secure because then if someone hacks an admin account, theyll have a harder time finding the admincp.
Reply With Quote
  #7  
Old 12-07-2008, 03:25 PM
jca2112's Avatar
jca2112 jca2112 is offline
 
Join Date: Sep 2007
Posts: 27
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by iNRoC View Post
Trick #2: The Dummy Admin Panel
The Dummy Admin Panel seems like a really good idea.

Has anyone made a mod/hack/script along these lines?

For example, a Fake Admin Login page that writes the IP addresses of login attempts to a file and/or email sent to the admin? That would make it easy to be alerted to login attempts and make it easy to ban users/IPs/etc. that go snooping for the Admin Panel.

Unfortunately that very same idea is essentially an exploit -- it could be used to do harm to the real vBulletin admin. Redirecting legitimate login attempts to the Fake Admin Login page in order to capture REAL username and passwords.

Is there something like this available that also couldn't be used to do evil things?
Reply With Quote
  #8  
Old 12-09-2008, 04:51 PM
iNRoC iNRoC is offline
 
Join Date: Jul 2008
Location: Clifton, New Jersey
Posts: 151
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ill make you a page for it soon.
Reply With Quote
  #9  
Old 12-09-2008, 08:56 PM
CarlitoBrigante's Avatar
CarlitoBrigante CarlitoBrigante is offline
 
Join Date: Nov 2002
Location: Iceland
Posts: 182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

All good ideas, even though the multi-hash thing is the less important of the bunch, in my opinion, especially if you use some password that is very difficult to guess, containing numbers and special chars.

Also, In our experience (we have been PHP coders for nearly 10 years and we work often in vbulletin.org Paid forums), 95% of the hacked vBulletin sites were hacked through other means completely unrelated to vBulletin. You need to go through all the following - believe me, it is very likely an hacker is using any of the methods below, so any changes to vB would prove worthless.

- Make sure that ALL your server's password are VERY difficult to find out. A safe password would be something like "djhdd832gd92@". Check carefully for FTP accounts you have forgotten about - sometimes clients gave out FTP accounts to techs and forgot to remove them.
- Yeah, FTP is also not very secure, so if you can switch to another system like SCP,SFTP or simply to using an encrypted channel with FTP, do it. Anyhow, in a lot of cases this is difficult or impossible to do (especially on shared servers).
- Change MySQL passwords to something very difficult to guess (this is fundamental on shared servers; I have seen too many 'mickeymouse' and 'test' passwords for MySQL databases!)
- Make 200% sure that direct root login to your server is disabled. Create a wheel account used to login to the server via SSH (possibly, not called admin). Never use telnet (is there still somebody using it these days?)
- Obvious, but remember to install always a Firewall (important!) in your server.
- Make sure your server's software is updated. There are gazillions of security holes left open if you do not do so.
- Install a Brute Force Detection system for FTP or shell logins.
- Change periodically all your admin passwords in vBulletin.
- Install /tmp folder in your server on a separate partition, and make it unexec (not that useful, but can stop a bunch of attacks).
- Make sure that you are not using old add-ons with security holes. Check the add-on page on vbulletin.org to see if there are updates. vBulletin.org will also send you notifications via e-mail when a product is updated. Enter a valid and often used e-mail in your vBulletin.org account!
- Check all your files in vBulletin for suspicious versions. There is an option in vBulletin to do this in the ACP. And if you have been hacked, re-upload your vBulletin files, always!
- Make sure that there are not weird scripts into your writable directories.
- If possible at all, avoid writable directories in paths accessible via a web browser. This is often not supported by some hacks or add-ons, even though some popular products (like photoplog) work perfectly also if you specify a path outside the public web directory (using ../ in your path, in the case of photoplog).
- This will be invaluable but is often not implemented because it takes some server resources and because it can be a pain to admin. But if you have a regulard administrator, on Linux, use products like SELinux, grsecurity, AppArmor to protect your server from bad guys. Hardened kernels are also good to have!

There are loads of other things to check, and having but server security is the first thing to take care of. All the tips above are great and should be followed, but consider them the final part of your security improvements. Security is always a multi-layered thing; each layer alone is completely worthless. Anything in this world, not only computers, is as secure and strong as its weakest part
Reply With Quote
  #10  
Old 12-09-2008, 09:39 PM
Milad's Avatar
Milad Milad is offline
 
Join Date: Apr 2005
Location: Syro
Posts: 663
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

vBulletin encrypts the password twice. md5 ( salt + md5 (password))
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:47 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05518 seconds
  • Memory Usage 2,301KB
  • Queries Executed 23 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (2)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete