Thursday, December 22, 2011

Check Credentials in local Security Policy

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace LsaSecurity
{
/*
* LsaWrapper class credit: Willy Denoyette [MVP]
*
* http://www.hightechtalks.com/csharp/lsa-functions-276626.html
*
* Added support for:
*
* LsaLookupSids
*
* for the purposes of providing a working example.
*
*
*
*/


using System.Runtime.InteropServices;
using System.Security;
using System.Management;
using System.Runtime.CompilerServices;
using System.ComponentModel;

using LSA_HANDLE = IntPtr;

public class Program
{
public static void Main()
{
using (LsaWrapper lsaSec = new LsaWrapper())
{
//// string[] accounts = lsaSec.GetUsersWithPrivilege("SeNetworkLogonRight");
ArrayList accounts = lsaSec.GetUsersWithPrivilege("SeDenyBatchLogonRight");//SeServiceLogonRight //SeCreateGlobalPrivilege//SeDenyBatchLogonRight
//int returnvalue = lsaSec.checkUserRights("AMAT\\KYADAV106192");
}


}
}

[StructLayout(LayoutKind.Sequential)]
struct LSA_OBJECT_ATTRIBUTES
{
internal int Length;
internal IntPtr RootDirectory;
internal IntPtr ObjectName;
internal int Attributes;
internal IntPtr SecurityDescriptor;
internal IntPtr SecurityQualityOfService;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct LSA_UNICODE_STRING
{
internal ushort Length;
internal ushort MaximumLength;
[MarshalAs(UnmanagedType.LPWStr)]
internal string Buffer;
}

sealed class Win32Sec
{
[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaOpenPolicy(
LSA_UNICODE_STRING[] SystemName,
ref LSA_OBJECT_ATTRIBUTES ObjectAttributes,
int AccessMask,
out IntPtr PolicyHandle
);

[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaAddAccountRights(
LSA_HANDLE PolicyHandle,
IntPtr pSID,
LSA_UNICODE_STRING[] UserRights,
int CountOfRights
);

[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaRemoveAccountRights(
LSA_HANDLE PolicyHandle,
IntPtr pSID,
bool allRights,
LSA_UNICODE_STRING[] UserRights,
int CountOfRights
);

[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaEnumerateAccountsWithUserRight(
LSA_HANDLE PolicyHandle,
LSA_UNICODE_STRING[] UserRights,
out IntPtr EnumerationBuffer,
out int CountReturned
);

[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaLookupSids(
LSA_HANDLE PolicyHandle,
int count,
IntPtr buffer,
[MarshalAs(UnmanagedType.SysInt)] out LSA_HANDLE domainList,
out LSA_HANDLE nameList
);

// NTSTATUS LsaLookupSids2(
// _In_ LSA_HANDLE PolicyHandle,
// _In_ ULONG LookupOptions,
// _In_ ULONG Count,
// _In_ PSID *Sids,
// _Out_ PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
// _Out_ PLSA_TRANSLATED_NAME *Names
//);
[DllImport("Advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true), SuppressUnmanagedCodeSecurityAttribute]
internal static extern uint LsaLookupSids2(
LSA_HANDLE PolicyHandle,
int LookupOptions,
int Count,
IntPtr buffer,
out LSA_HANDLE domainList,
out LSA_HANDLE nameList
);

[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
SuppressUnmanagedCodeSecurityAttribute]
internal static extern int LsaLookupNames2(
LSA_HANDLE PolicyHandle,
uint Flags,
uint Count,
LSA_UNICODE_STRING[] Names,
ref IntPtr ReferencedDomains,
ref IntPtr Sids
);

[DllImport("advapi32")]
internal static extern int LsaNtStatusToWinError(int NTSTATUS);

[DllImport("advapi32")]
internal static extern int LsaClose(IntPtr PolicyHandle);

[DllImport("advapi32")]
internal static extern int LsaFreeMemory(IntPtr Buffer);

}

public sealed class LsaWrapper : IDisposable
{
private bool _writeToConsole = false;

[StructLayout(LayoutKind.Sequential)]
struct LSA_TRUST_INFORMATION
{
internal LSA_UNICODE_STRING Name;
internal IntPtr Sid;
}
[StructLayout(LayoutKind.Sequential)]
struct LSA_TRANSLATED_SID2
{
internal SidNameUse Use;
internal IntPtr Sid;
internal int DomainIndex;
uint Flags;
}

//[StructLayout(LayoutKind.Sequential)]
//struct LSA_REFERENCED_DOMAIN_LIST
//{
// internal uint Entries;
// internal LSA_TRUST_INFORMATION Domains;
//}

[StructLayout(LayoutKind.Sequential)]
internal struct LSA_REFERENCED_DOMAIN_LIST
{
internal uint Entries;
internal IntPtr Domains;
}

[StructLayout(LayoutKind.Sequential)]
struct LSA_ENUMERATION_INFORMATION
{
internal LSA_HANDLE PSid;
}

[StructLayout(LayoutKind.Sequential)]
struct LSA_SID
{
internal uint Sid;
}

[StructLayout(LayoutKind.Sequential)]
struct LSA_TRANSLATED_NAME
{
internal SidNameUse Use;
internal LSA_UNICODE_STRING Name;
internal int DomainIndex;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LOCALGROUP_USERS_INFO_0
{
public string groupname;
}

enum SidNameUse : int
{
User = 1,
Group = 2,
Domain = 3,
Alias = 4,
KnownGroup = 5,
DeletedAccount = 6,
Invalid = 7,
Unknown = 8,
Computer = 9
}

enum Access : int
{
POLICY_READ = 0x20006,
POLICY_ALL_ACCESS = 0x00F0FFF,
POLICY_EXECUTE = 0X20801,
POLICY_WRITE = 0X207F8
}
const uint STATUS_ACCESS_DENIED = 0xc0000022;
const uint STATUS_INSUFFICIENT_RESOURCES = 0xc000009a;
const uint STATUS_NO_MEMORY = 0xc0000017;

IntPtr lsaHandle;

public LsaWrapper()
: this(null)
{ }
// // local system if systemName is null
public int checkUserRights(string Username)
{
ArrayList accountsLogOnAsBatch;
ArrayList accountsLogOnAsService;
ArrayList accountsLogOnAsCreateGlobalObjects;
ArrayList accountsDenyLogonAsBatch;
ArrayList accountsDenyLogonAsService;
try
{
accountsDenyLogonAsBatch = GetUsersWithPrivilege("SeDenyBatchLogonRight");//SeDenyBatchLogonRight
if (accountsDenyLogonAsBatch.Contains(Username)) return 1;
accountsDenyLogonAsService = GetUsersWithPrivilege("SeDenyServiceLogonRight");//SeDenyServiceLogonRight
if (accountsDenyLogonAsService.Contains(Username)) return 1;
accountsLogOnAsBatch = GetUsersWithPrivilege("SeBatchLogonRight");//SeServiceLogonRight //SeCreateGlobalPrivilege
if (accountsLogOnAsBatch.Contains(Username))
{
accountsLogOnAsService = GetUsersWithPrivilege("SeServiceLogonRight");//SeServiceLogonRight //SeCreateGlobalPrivilege
if (accountsLogOnAsService.Contains(Username))
{
accountsLogOnAsCreateGlobalObjects = GetUsersWithPrivilege("SeCreateGlobalPrivilege");//SeServiceLogonRight //SeCreateGlobalPrivilege
if (accountsLogOnAsCreateGlobalObjects.Contains(Username))
{
return 0;
}
else
{
return 1;
}
}
else
{
return 1;
}
}
else
{
return 1;
}
}
catch (Exception)
{
return 1;
}
}

public LsaWrapper(string systemName)
{
LSA_OBJECT_ATTRIBUTES lsaAttr;
lsaAttr.RootDirectory = IntPtr.Zero;
lsaAttr.ObjectName = IntPtr.Zero;
lsaAttr.Attributes = 0;
lsaAttr.SecurityDescriptor = IntPtr.Zero;
lsaAttr.SecurityQualityOfService = IntPtr.Zero;
lsaAttr.Length = Marshal.SizeOf(typeof(LSA_OBJECT_ATTRIBUTES));
lsaHandle = IntPtr.Zero;
LSA_UNICODE_STRING[] system = null;
if (systemName != null)
{
system = new LSA_UNICODE_STRING[1];
system[0] = InitLsaString(systemName);
}

uint ret = Win32Sec.LsaOpenPolicy(system, ref lsaAttr, (int)Access.POLICY_ALL_ACCESS, out lsaHandle);
if (ret == 0)
return;
if (ret == STATUS_ACCESS_DENIED)
{
throw new UnauthorizedAccessException();
}
if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
{
throw new OutOfMemoryException();
}
throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
}

public ArrayList GetUsersWithPrivilege(string privilege)
{
LSA_UNICODE_STRING[] privileges = new LSA_UNICODE_STRING[1];
privileges[0] = InitLsaString(privilege);

IntPtr buffer;
int count;
uint ret =
Win32Sec.LsaEnumerateAccountsWithUserRight(lsaHandle, privileges, out buffer, out count);

if (ret != 0 && privilege != "SeDenyBatchLogonRight" && privilege != "SeDenyServiceLogonRight")
{
if (ret == STATUS_ACCESS_DENIED)
{
throw new UnauthorizedAccessException();
}

if (ret == STATUS_INSUFFICIENT_RESOURCES || ret == STATUS_NO_MEMORY)
{
throw new OutOfMemoryException();
}

throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
}

LSA_ENUMERATION_INFORMATION[] lsaInfo = new LSA_ENUMERATION_INFORMATION[count];
for (int i = 0, elemOffs = (int)buffer; i < count; i++)
{
lsaInfo[i] = (LSA_ENUMERATION_INFORMATION)Marshal.PtrToStructure((IntPtr)elemOffs, typeof(LSA_ENUMERATION_INFORMATION));
elemOffs += Marshal.SizeOf(typeof(LSA_ENUMERATION_INFORMATION));
}

LSA_HANDLE domains;
LSA_HANDLE names;
int LSA_LOOKUP_RETURN_LOCAL_NAMES = 0;

ret = Win32Sec.LsaLookupSids(lsaHandle, lsaInfo.Length, buffer, out domains, out names);
//ret = Win32Sec.LsaLookupSids2(lsaHandle, LSA_LOOKUP_RETURN_LOCAL_NAMES, lsaInfo.Length, buffer, out domains, out names);

if (ret != 0)
{
if (ret == STATUS_ACCESS_DENIED)
{
throw new UnauthorizedAccessException();
}

if (ret == STATUS_INSUFFICIENT_RESOURCES || ret == STATUS_NO_MEMORY)
{
throw new OutOfMemoryException();
}

throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
}

string[] retNames = new string[count];
List currentDomain = new List();
int domainCount = 0;

LSA_TRANSLATED_NAME[] lsaNames = new LSA_TRANSLATED_NAME[count];
for (int i = 0, elemOffs = (int)names; i < count; i++)
{
lsaNames[i] = (LSA_TRANSLATED_NAME)Marshal.PtrToStructure((LSA_HANDLE)elemOffs, typeof(LSA_TRANSLATED_NAME));
elemOffs += Marshal.SizeOf(typeof(LSA_TRANSLATED_NAME));

LSA_UNICODE_STRING name = lsaNames[i].Name;
retNames[i] = name.Buffer.Substring(0, name.Length / 2);

if (!currentDomain.Contains(lsaNames[i].DomainIndex))
{
domainCount = domainCount + 1;
currentDomain.Add(lsaNames[i].DomainIndex);
}

}

string[] domainPtrNames = new string[count];

LSA_REFERENCED_DOMAIN_LIST[] lsaDomainNames = new LSA_REFERENCED_DOMAIN_LIST[count];

for (int i = 0, elemOffs = (int)domains; i < count; i++)
{
lsaDomainNames[i] = (LSA_REFERENCED_DOMAIN_LIST)Marshal.PtrToStructure((LSA_HANDLE)elemOffs, typeof(LSA_REFERENCED_DOMAIN_LIST));
elemOffs += Marshal.SizeOf(typeof(LSA_REFERENCED_DOMAIN_LIST));
}

LSA_TRUST_INFORMATION[] lsaDomainName = new LSA_TRUST_INFORMATION[count];
string[] domainNames = new string[domainCount];

for (int i = 0, elemOffs = (int)lsaDomainNames[i].Domains; i < domainCount; i++)
{
lsaDomainName[i] = (LSA_TRUST_INFORMATION)Marshal.PtrToStructure((LSA_HANDLE)elemOffs, typeof(LSA_TRUST_INFORMATION));
elemOffs += Marshal.SizeOf(typeof(LSA_TRUST_INFORMATION));

LSA_UNICODE_STRING tempDomain = lsaDomainName[i].Name;
//if(tempDomain.Buffer != null)
//{
domainNames[i] = tempDomain.Buffer.Substring(0, tempDomain.Length / 2);
//}
}

//string[] domainUserName = new string[count];
ArrayList domainUserName = new ArrayList();

for (int i = 0; i < lsaNames.Length; i++)
{
//domainUserName[i] = domainNames[lsaNames[i].DomainIndex] + "\\" + retNames[i];
domainUserName.Add(domainNames[lsaNames[i].DomainIndex] + "\\" + retNames[i]);
}


Win32Sec.LsaFreeMemory(buffer);
Win32Sec.LsaFreeMemory(domains);
Win32Sec.LsaFreeMemory(names);

//return retNames;
//return domainNames;
return domainUserName;
}

public void AddPrivileges(string account, string privilege)
{
IntPtr pSid = GetSIDInformation(account);
LSA_UNICODE_STRING[] privileges = new LSA_UNICODE_STRING[1];
privileges[0] = InitLsaString(privilege);
uint ret = Win32Sec.LsaAddAccountRights(lsaHandle, pSid, privileges, 1);

if (ret == 0)
{
if (this._writeToConsole)
{
Console.WriteLine("Added: {0} to {1} successfully.", account, privilege);
}
return;
}

if (ret == STATUS_ACCESS_DENIED)
{
throw new UnauthorizedAccessException();
}
if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
{
throw new OutOfMemoryException();
}
throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
}

public void RemovePrivileges(string account, string privilege)
{
IntPtr pSid = GetSIDInformation(account);
LSA_UNICODE_STRING[] privileges = new LSA_UNICODE_STRING[1];
privileges[0] = InitLsaString(privilege);
uint ret = Win32Sec.LsaRemoveAccountRights(lsaHandle, pSid, false, privileges, 1);

if (ret == 0)
{
if (this._writeToConsole)
{
Console.WriteLine("Removed: {0} from {1} successfully.", account, privilege);
}
return;
}
if (ret == STATUS_ACCESS_DENIED)
{
throw new UnauthorizedAccessException();
}
if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
{
throw new OutOfMemoryException();
}
throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
}

public void Dispose()
{
if (lsaHandle != IntPtr.Zero)
{
Win32Sec.LsaClose(lsaHandle);
lsaHandle = IntPtr.Zero;
}
GC.SuppressFinalize(this);
}
~LsaWrapper()
{
Dispose();
}
// helper functions

IntPtr GetSIDInformation(string account)
{
LSA_UNICODE_STRING[] names = new LSA_UNICODE_STRING[1];
LSA_TRANSLATED_SID2 lts;
IntPtr tsids = IntPtr.Zero;
IntPtr tdom = IntPtr.Zero;
names[0] = InitLsaString(account);
lts.Sid = IntPtr.Zero;
int ret = Win32Sec.LsaLookupNames2(lsaHandle, 0, 1, names, ref tdom, ref tsids);
if (ret != 0)
throw new Win32Exception(Win32Sec.LsaNtStatusToWinError(ret));
lts = (LSA_TRANSLATED_SID2)Marshal.PtrToStructure(tsids,
typeof(LSA_TRANSLATED_SID2));
Win32Sec.LsaFreeMemory(tsids);
Win32Sec.LsaFreeMemory(tdom);
return lts.Sid;
}

static LSA_UNICODE_STRING InitLsaString(string s)
{
// Unicode strings max. 32KB
if (s.Length > 0x7ffe)
throw new ArgumentException("String too long");
LSA_UNICODE_STRING lus = new LSA_UNICODE_STRING();
lus.Buffer = s;
lus.Length = (ushort)(s.Length * sizeof(char));
lus.MaximumLength = (ushort)(lus.Length + sizeof(char));

// If unicode issues then do this instead of previous two line
//lus.Length = (ushort)(s.Length * 2); // Unicode char is 2 bytes
//lus.MaximumLength = (ushort)(lus.Length + 2)

return lus;
}

public bool WriteToConsole
{
set { this._writeToConsole = value; }
}
}
}

Tuesday, March 24, 2009

Manchester United Vs Liverpool 14 march 2009

This is almost the same time when I wrote last year and in my last post :) I was critical of negative tactics of Sir Alex Ferguson in last year's champions league semifinal against FC Barcelona. Now we all know that United were the champions and I enjoyed the victory over Chelsea like any other hardcore United fan. It was ultimate drama as Ronaldo missed his penalty and we were one kick away from losing it. Thanks to viva Terry we are the European champions as well as word champions. Now I can thank Sir Alex Ferguson for his tactics against Barcilona.
Coming to this years campaign , we were almost there till we saw off Inter Milan in Champion's league pre-quarter final. Sir Alex has chosen different teams and they all have delivered. All the midfielders have been doing commendable job. Carrick, Fletcher and Giggs have been outstanding. Scholes , Anderson have done their job with Scholes being brilliant in some matches. Darren Gibson has been very promising.
So when came Liverpool match we all were very excited , bring on anyone we will see. I guess same feeling crept in Sir Alex Ferguson's mind. When I saw the team sheet I was happy that for a change Tevez is palying with Rooney which was such an exciting partnership last year. Also I got a bit bored of Berbatov. He is a nice bloke , good player but he slows us down. He is a good passer but lately he has started overdoing it with the ball. When there are through passes he doesn't seem to be reaching to them. An striker should be fast with Berbatov like skills. I so dearly wanted Torres to come to Manchester United but he Joined his fellow Spaniard. I can understand that. But Torres is a complete striker. Ok so I was happy with Berbatov's absence but I was amazed that Anderson and Carrick were there in the midfield. I can imagine from where it might have come. The last performance of Anderson against Gerrard was outstanding and Carrick has been marvelous. But Anderson has just come out of injury and Carrick has played with Fletcher and Scholes who are so much hardworking and technically better than Anderson. This selection would have made sense if Anderson has played a few games more. So before the game itself I had a doubt and I so dearly wanted myself to be proved wrong but my instincts were right :(

Saying all that still it was a good match till Nemenja tried to play some football against his characteristic. He would never have imagined that any striker can molest him and take the ball away the way Torres did. It was painful to see our rock being dismantled but on the other side as a football neutral it was wonderful to watch Torres. Vidic must be wondering what the hell. But it is good for his game as he came against someone so good. I am sure Nemenja will learn a lot from this game and will be aware of the danger next time, hopefully in Champions League semifinal.

Whatever Nemenja was thinking about Torres's molestation same happened to Patrice Evra. When Torres played that ball Evra must have thought it was his as Gerrard was behind enough to be confident. But it was Gerrard with his long legs and full throttle running who rounded Evra and reached to the ball just split second ahead of Evra. It was nightmare but again Evra will think that there are men who can overrun him. Mind you these are all personal battles and these are good reminders to our heroes Evra and Vidic to learn and take all care while defending. Never be overconfident with good players. None other team's players have troubled Evra and Vidic the way Torres and Gerrard did at least in my memory. Vidic was taught lessons by both Gerrard and Torres. So Three mistakes three goals , game over. Had it been any other team or instead of Gerrard and Torres any other strikers we would have definitely won 1-0 at least .

Sir Alex Ferguson pointed out after Inter Milan's match that we were poor but inter was not able to capitalize but Liverpool did. Torres and Gerrard were the difference between the teams. On the other hand our midfielders were pedestrians, neither they covered our defense nor created enough. Height of it all came when we were four against three and Carrick overhit the pass to Ronaldo and Evra for a throwin on a conter attck. Had our midfield performed I guess Gerrard and Torres would have been busy helping their midfield. I expect a lot from Carrick but against Inter and Liverpool he looked pale.

I was Ok after the defeat as it taught a few lessons and good goals were scored against us. Hopefully we will learn our lessons and do better next time. Ronaldo, Rooney and Tevez are not doing enough as they did last season. Tevez runs a lot fine , but very little end product. Tevez and Rooney's first touches are a bit poor, ball doesn't stick to their legs. But I would prefer them over Berbatov. He has not done enough.

As Sir Alex and Sir Bobby said , let this win be a blessing in disguise for red devil's season.

Saturday, April 26, 2008

If Ferguson is doing to Machester United what Ericksson did to England?

I have watched Barcelona Vs Manchester United and Chelsea Vs Manchester United in last four days and eagerly waiting for Tuesday ( 29th April) for Manchester United Vs Barcelona.

United have drawn with Barcelona in Nou Camp 0-0 and lost to Chelsea at Bridge 2-1.
Both the games united played very defensive very much like a bottom of the league team plays the top of the league team to avoid a humiliating defeat.

Till now Manager Ferguson's tactics hang on a balance. United can still progress to Champions league final and win the premier league. He has also been able to rest the players he wanted , barring Hargreaves who was forced early into action at bridge with Vidic being injured.

Ferguson wanted two draws and he ended up with one draw and one loss. We as supporters of the club are patient till now but if the result goes wrong against Barcelona and they bottle up at Wigan you would say it was all down to Ferguson's tactics. The same tactics applied by Seven Goran Ericksson, the manage or England in FIFA World Cup 2006. He restrained Rooney and company till the 60th minute of the game and then england ran out of their luck. He never went full throttle in that game against Portugal. He never allowed his players to express themselves in that game.

These negative tactics have cost England in the World Cup . Will these tactics help Manchester United. Only time will tell .

But we would have been happier if United have played both these games as they know to play, People would have loved them more. I hope United play good attacking football against Barcelona come this Tuesday. Let us see how might United are. Or how good Sir Alex Ferguson is. This time he has no excuse in Europe.

Thursday, February 21, 2008

How Manchester United think that they are the Best Club

First of all let me tell you that I am Manchester United fan. But sometimes it baffles me when either players or manager or CEO of Manchester United comes and boasts they are the best club. As a fan i have always hesitated in boasting this thing.

What is the criterion of being the best club? You should have the best players around. You should have the most number of audiences. You should have the highest turnover and profits. You should have the best football ground. Or above all you should play the best football possible. For me the last one is the criterion. Because many of you will argue that Manchester United has the best Manager, best players, best stadium and best turnover and profits. But the brand of football you play should be the sole criterion. And for me Manchester Uinted have lacked in there, not by far but yes no can say for sure that Manchester United plays the best football. They are there , their brand of football is better than the most but unarguably "The Best Football" , we can not say for sure.

Why I am saying this, because I am not happy the way Manchester United performed in Lyon. Based on this performance I can not say for sure that the club the club I support is the best in the world. They are near to that but they are not "The Best". I am sad to see that players and manager are satisfied with this performance. One such example.
http://www.goal.com/en/Articolo.aspx?ContenutoId=595001
I watched the match live and got the feeling that Manchester United does not want to get beaten thats all. There was no desire to win or to score. I could have accepted this attitude if it was Real Madrid , Barcelona , AC Milan or Inter Milan but Lyon. The team which has lost its last league match and when you yourself have trounced your nearest rival in your league 4-0 three days back. I like the way Manchester United play in English Premier League, Its all out attaack. But in Champions league Sir Alex Ferguson has always been defensive. I was able to digest his attitude prior to this year when we always had substandard squad with only one or two world class players. But this season you have one of the best teams possible. All the players are attack minded and then you ask them to restrain. This allows the other team no matter what their stature is to attack you and then one of your players makes mistakes ( Rio Ferdinand is good at that). Everything was going fine and then suddenly you found yourself 1-0 down. Why in the first place you allow the other team to that to you? Why don't you burry them in first 20 minutes and remind them to be in their own half or have the risk of knocked out in the first tie itself. The goal you scored was not your brilliance, it was a lucky break as the ball bounced of Lyon defender and Tevez was there to pounce but will you be lucky every time? Assume the situation when you woul dhave got the 0-0 draw you so desired and then in the home leg at old trafford against all your expectations Lyon takes lead at 60th min and then your luck runs out and Tevez doesn't get that chance. You are out of the competition. Who do you blame for that? You didn't try hard in the first 90 minutes played in Lyon and the 30 min you had here were not enough to revert the damage done. Plus when you start with negative mindset it is difficult to come all out and firing all guns suddenly when you find yourself behind. Then the manager and players will come out and say we were the better team but we were unlucky.

I have gone a bit far now. The tie is at 1-1 with one away goal advantage but please for God sake don't try to preserve this slender lead, because they just need to score one goal.

Sir Ferguson please believe in your boys and allow them to express freely. Please play Hargreeves when your ass is against the wall and your team is not able to defend. Because he contributes in negative to the attacking football. All the promising movement gets killed when some one gets the ball in midfield and instead of looking for runners he looks up to find Scholes and if he doesn't find he passes that back to Edvin Van Der Sar. With all due respect to Hargreeves he is no good when comes to attack. Preserve him to defend the 2 goal cushion whenever you have . 1 goal cushion is no cushion as Manchester United plays always for win draw is equal to defeat.

So the bottom line if you want to say that you are "The Best Club" then you should play such football that teams fear to face you and no one dares to say something like this http://www.tribalfootball.com/article.php?id=79863

Sunday, February 10, 2008

People like Yuvraj and Ronaldo are double edged sword

Manchester United have just lost to Manchester City by Two goals to One. The occasion was anniversary of Munich disaster and tributes to those who lost their lives. In the current context Manchester United are trailing Arsenel in the 2008 league title race by two points. So on all accounts this was a must win game. But there was one problem, United were missing the best team player WAYNE ROONEY due to suspension for his ten yellow cards through out the season till now. United never looked like scoring against two beast of the defenders in Micah Richards and Richard Dunne. There is no chemistry between Tevez and Ronaldo the two players who were in most advance roles. Chemistry developes between those who like each other , I doubt Tevez and Ronaldo have same bond as Tevez and Rooney. That was not helped when Ronaldo snatched the ball from Tevez in a game where Tevez had already scored two and would have got the hattrick had ronaldo allowed him to take the penality. In all a below average day for Ronaldo. Sometimes i feel he has been hyped more than he deserves. But I guess Sir Alex is showing the same leniency towards ronaldo that Sir Matt Busby showed towards George Best. I fear Manchester United may not have to pay for this. Manchester United have lost all games this season when Rooney has been missing. Wes Brown and Jhon O Shea as fullbacks can defend but they can not do anything going forward. Their crossing ability is a shame on the team of the calibre of United. Manchester United is badly missing a Torres like striker who can play upfront and is qucik. Giggs is too old and fllashy at times. Rio Ferdinand was in his worst passing form today. Michael Carrick and Owen Hargreaves can never score from midfield. I doubt they dream themselves scoring forget about realy scoring in a match. Carrick's shooting is horrible.

India won the one dayer against Australia. Ishant Sharma today again showed what a bowler he is. I can say he is worth watching. I am delighted that we can give some of the things back to ausssy batsmen what indian batsmen have been receiving. I have become fan of this guy. Sreeshanth and Pathan also supported well. Yuvraj is a big match winner but like ronaldo he also plays for himself instead of team and more often than not he has started disappointing. He has yet to score something worthwhile in australia in this tour. Thank GOD india was having its ROONEY in Mahendra Singh Dhoni , and thats why India won.

Saturday, January 26, 2008

No One is Perfect

I have been away for cricket for last two three years but have been following the scores and highlights in all the news channels you can get any time unlike before when we had to wait for some particular time on any particular channel. I am prompted to write this post due to the recent Indian one day team selections for the Commonwealth Bank triangular series involving Srilanka and Australia. The most furore arose due to exclusion of Saurav Ganguly. I think its fare , Dada is no more a match winner as a complete package. With Complete package I mean someone who gives a distinct edge when he plays well. Dada used to be a few years back. When he used to score big centuries with strike rate more than hundred. He usually started slow at 70 strike rate then in the later part of his innings used to slog and get beyond hundred with taking his strike rate more than 100. Thats an edge created by a player if in any match a player scores a century with strike rate more than hundred then the team got a chance to win the match. But now a days Dada scores a 50 with 70 strike rate and then mis fields 10 for the opponent team. Thats not an edge created.
So Dada should just not keep playing for the sake of playing. He should think about whether he is still the match winner he was, if yes then he should win at least one match on his own. Its not good to score half century and then cement your place in the team and argue with everyone that I scored yet I got dropped.Unless everyone in the team is a match winner on his day that team can never achieve the consistency. In Todays cricket when australia has set such high standards we can't do just enough . We have to do more than them . Dada Should look at hayden how much he contributes. He is the most consistent player. Now a days we can predict Dada will fail in at least two matches after scoring a half century.
I have great respect for Dada, I can't forget his hammering of srilankans in Taunton in world cup 1999. Or the win in dhaka in 1998 when he combined with Robin Singh and chased down 314 runs scored by pakistan. We want that Dada who had hunger now Dada seems content in doing just enough. Thats not good enough. We need to search for match winners like yesteryears dada.

Looking at the one day team I fear there is lack of experience in batting. Except Sachin Tendulkar and Sehwag I doubt everyone else. Gambhir, Karthick,Yuvraj,Dhoni,Raina,Rohit Sharma,Robin Uthappa they are all good names but as I explained earlier they are not match winners on there own yet. I dare include Yuvraj in that list but he hasn't looked good at all in the first two tests he played and yes he seems to be distracted with Deepika Padukone flirting with him and Dhoni both. Dhoni is a strong man he can handle but i doubt about Yuvraj. I would have loved Dravid and Laxman in there as Dravid may provide solidity as in australia batting collapses very easily and Laxman for his record in australia against australia. But then Laxman falls in Dada's category and Dravid has not looked convincing enough to be solid enough in this tour. One Day series india will do well to reach in the best of three finals.

Lately I have watched Test cricket and didn't get bored , surprise. But this is due to some good bowling by Indians. I loved watching the spell of Ishant Sharma bowling to Ponting in Perth. He was marvelous. It was like watching our batsmen struggling against Macgrath. I am not comparing him to Macgrath but the fear we used to feel when our batsmen played Macgrath .
I would compare Ishant with Pakistan's Mohammad Asif. I hope Ishant improves and takes more than one wicket when he is bowling so well. Today also in fourth test he got hayden, But was not consistent in his line to get more wickets.