Monday, December 04, 2006

Ubuntu -i hack

Unix төрлийн системүүдийн хамгийн сонгодог хэлбэрийн хайк/hack-н нэг бол "shell escape" буюу бүрхүүлийн цоорхойг ашиглан бага эрхтэй хэрэглэгчээс root бүрхүүлрүү орох явдал юм. Олон арга хэлбэрээр "shell escape" хийж болно. Нэг жишээ бол бүрхүүлийг "-i" тохируулга/option-тайгаар дуудах юм. Өөрөөр хэлбэл "/bin/sh -i" командын тусламжтай "interactive shell"-рүү орох боломжтой. За тийм байдаг байж, тэгээд юу нь тийм сонин байна?... Тэгвэл root эрхтэй бүрхүүлрүү орчихвол асуудал их сонирхолтой болоод ирнэ.

Жишээ нь: test.pl гэсэн setIUD скрипт байлаа гэж бодъё.

% ln -s /home/baynaa/test.pl -i
% -i
#

Гэхдээ энэ hack бүр 1989 онд анх бүртгэгдсэн бөгөөд орчин үеийн Unix систем дээр ажиллахгүй! "-i: Command not found." гэх байх шүү, гэхдээ итгэхгүй байвал туршаад үзээрэй л дээ.

Гэтэл нэг сонин зүйл олж мэдсэн маань гэвэл Ubuntu сервер дээр sudo-тэй хамт "-i" тохируулга ажилладийн байна... ёстой гайхсан. "-i" тохируулгыг иймэрхүү hack-д хэрэглэхээ аль эрт болисон байх гэж бодож байсан. Ubuntu Server дээр:

% sudo -i
#

гэнгүүт шууд л root бүрхүүлрүү орчих юм(гэхдээ мэдээж sudoers дотор идэвхжүүлсэн хэрэглэгчийн хувьд). Redhat, FreeBSD хоёр дээр туршаад үзсэн чинь хоёулан дээр нь "sudo: Illegal option -i" гэж гарч ирж байна.

2 comments:

Дөлмандах said...

RTFM билүү нөгөө эхлээд man унш гэдэг чинь. Ubuntu-н sudo дээр -i арай л ондоо утга илэрхийлж байна даа :).

baynaa said...

Ubuntu дээр man sudo уншлаа. Угаасаа -i бол "interactive shell"-г л дууддийн байна. Харин Redhat, FreeBSD дээр тийм option/тохируулга алгоо. Гэхдээ нилээд судалсны эцэст sudo угаасаа "shell escape"-г хүлээн зөвшөөрдийн байна. Ялгаа нь -i гэх мэт тохируулгын ч хэрэг алга. Зүгээр л "sudo /bin/sh" гэхэд л болохын байна.