(نكاتى در مورد Backorifice)
مهسا قنبرى
Backorifice يك برنامه كاربردى سرويسدهنده / سرويسگيرنده است كه به نرمافزار سرويسگيرنده اجازه نظارت، مديريت و اجراى ديگر اعمال چندرسانهايى و شبكه را بر روى ماشينى كه در حال اجراى سرويسدهنده است، مىدهد. براى ارتباط برقراركردن با سرويسدهنده، متن و يا سرويسگيرنده gui مىتوانند بر روى هر ماشين ويندوز مايكروسافت به اجرا دربيايند. سرويسدهنده بطور متداول فقط در ويندوز 98/95 اجرا مىشود.
Backorifice شامل 6 فايل است:
boserve.exe : سرويسدهنده Backorifice كه بصورت خودكار نصب مىشود.
bogui.exe : سرويسگيرنده Backorifice, gui
boclient.exe : سرويسگيرنده متن orifice Back
boconfig.exe : ابزارى براى پيكربندى exename، پورت، password و plugin پيش فرض براى يك Boserver.
melt.exe : Decompress كردن فايلهاى فشرده شده با فرمان File freeze.
freez.exe : فشردهكردن فايلهايى كه مىتوانند با فرمان Filemelt، decompress شوند.
براى نصب سرويسدهنده، تنها لازم است كه سرويسدهنده اجرا شود. زمانى كه سرويسدهنده اجرا مىگردد، سرويسدهنده خودش نصب و سپس حذف مىشود. اين مسئله براى محيطهاى شبكه بسيار مفيد است، زيرا سرويسدهنده مىتواند به سادگى با كپى كردن فايل اجرايى سرويسدهنده در دايركتورى Startup بر روى يك ماشين نصب گردد، بنابراين فايل اجرايى سرويسدهنده ابتدا نصب و سپس حذف خواهد شد. زمانى كه سرويسدهنده بر روى يك ماشين نصب مىگردد، با هر بار راهاندازى ماشين، سرويسدهنده نيز Start مىشود.
براى ارتقاء بخشيدن به running copy، Backorifice از راه دور، به سادگى نسخه جديد سرويسدهنده را به ميزبان راه دور Upload كنيد، و براى اجراى آن از فرمان Process spawn استفاده نماييد. هنگام اجرا، سرويسدهنده بطور خودكار تمام برنامههاى در حال اجرا را Kill مىكند، خود را بر روى نسخه قديمى نصب مىنمايد و خودش را از موقعيت نصب شدهاش اجرا و exe به روزرسانى شده را حذف مىكند.
قبل از نصب، برخى از امكانات سرويسدهنده مىتوانند پيكربندى شوند. filenameايى كه Backorifice خود نصب مىكند، پورتى كه سرويسدهنده منتظر شنيدن آن است و passwordاى كه براى رمزگذارى بكار مىرود، همگى مىتوانند با استفاده از boconf.exe ، Utility پيكربندى شوند. اگر سرويسدهنده پيكربندى نشود، در شنيدن پورت 73313كوتاهى مىكند، براى رمزگذارى از password استفاده نمىنمايد (packetها هنوز رمزگذارى شده هستند) و خود را بصورت " .exe" (Space dot exe) نصب مىكند.
سرويسگيرنده از طريق Packetهاى رمزگذارى شده UDP با سرويسدهنده ارتباط برقرار مىكند. براى يك ارتباط موفق، لازم است سرويسگيرنده Packetها را به همان پورتى كه سرويسدهنده منتظر شنيدن آن است بفرستد و password سرويسگيرنده بايد با passwordرمزگذارى كه سرويسدهنده با آن پيكربندى شده، هماهنگ باشد.
پورتى كه سرويسگيرنده Packetهاى خود را از آنجا مىفرستد مىتواند با استفاده از -P Option با هر دو سرويسگيرنده gui و متن Set شود. اگر Packetها ----- شده باشند يا يك firewall در محل وجود داشته باشد، ممكن است لازم باشد packetها از يك پورت خاص فرستاده شوند كه ----- شده و يا بلوكه شده نباشند. زمانى كه ارتباط UDP بدون اتصال باشد، Packetها ممكن است در مسير خود به سرويسدهنده و يا Packetهاى برگشتى در مسير بازگشتشان به سرويسگيرنده بلوكه شوند.
عمليات با فرستادن فرمانهايى از سرويسگيرنده به يك آدرس خاص IP بر روى سرويسدهنده به اجرا درمىآيند. اگر ماشين سرويسدهنده روى يك آدرس ايسنا نباشد، مىتواند با استفاده از فرمانهاى Sweep يا Sweeplist از سرويسگيرنده متن يا از سرويسگيرنده gui با استفاده از "ping..." dialog و يا با قراردادن يك IP مقصد "1.2.3.*"، مستقر گردد. اگر پاك شدن ليست Subnetها هنگام پاسخگويى ماشين سرويسدهنده صورت گيرد، سرويسگيرنده در دايركتورى مشابه به عنوان ليست Subnet ظاهر مىگردد و اولين خط از اولين فايل را كه با نام فايل subnet يافته است نمايش مىدهد.
فرمانهايى كه بطور متداول در Backorifice اجرا مىگردند در پايين ليست شده است. برخى از فرمانها بين سرويسگيرنده متن و guiمتفاوت است، اما تقريباً در تمام فرمانها گرامر يكى است. در سرويسگيرنده متن، با تايپ 'help' command اطلاعات بيشترى در مورد هريك از فرمانها به نمايش درخواهد آمد. زمانى كه فرمانى از ليست "Command" انتخاب مىشود، سرويسگيرنده gui برچسبى از دو پارامتر را براى توضيح هريك از ابعاد فرمان قرار مىدهد. در صورتى كه بخشى از اطلاعات موردنياز از جانب فرمان ارائه نگردد، خطاى "missing data" از طريق سرويسدهنده بازگردانده خواهد شد. فرمانهاى Backorifice از اين قرارند:
(فرمان gui/text)
App add/appadd
تكثير يك برنامه كاربردى متنى بر روى پورت TCP. اين كار به شما اجازه مىدهد تا برنامه كاربردى متنى يا تحت dos (همچون )Command.comرا از طريق يك بخش Telnet كنترل كنيد.
App del/appdel
ارتباط يك برنامه كاربردى را متوقف مىكند.
Appslist/applist
برنامههاى كاربردى را كه بطور متداول براى برقرارى ارتباط به كار مىروند، ليست مىكند.
Directory Create/md
يك دايركتورى ايجاد مىكند.
Directory list/dir
فايلها و دايركتورى را ليست مىكند. اگر بخواهيد بيش از يك فايل را ليست كنيد بايد يك كاراكتر جانشين معين كنيد.
Directory remove/rd
يك directory را پاك مىكند.
Export add/shareadd
يك export روى Server ايجاد مىكند. دايركتورى export شده يا آيكن درايو با آيكن shared hand نمايش داده نمىشود.
Export delete/sharedel
export را حذف مىكند.
Exports list/sharelist
نام اشتراكهاى متداول، درايو يا دايركتورى كه به اشتراك گذاشته شدهاند، دستيابى به آن اشتراك و password براى اشتراك را ليست مىكند.
FileCopy/Copy
فايل را كپى مىكند.
File delete/del
فايل را حذف مىكند.
FileFind/Find
درخت دايركتورى را بدنبال فايلهايى كه با مجموعه مشخصات جانشين هماهنگ است جستجو مىكند.
Filefreeze/freeze
يك فايل را فشرده مىكند.
filemelt/melt
يك فايل را Decompress مىكند.
Fileview/view
محتواى يك فايل متن را مشاهده مىكند
HTTP Disable/httoff
سرويسدهنده http را غيرفعال مىسازد.
Keylog begin/keylog
Keystorkeها را روى ماشين سرويسدهنده به يك فايل متن log مىكند. اين log به شما نام پنجره اين را كه متن در آن تايپ شده را نشان مىدهد.
Keylog end
logging صفحه كليد را به پايان مىرساند. براى پايان دادن loggingصفحه كليد از سرويسگيرنده متن از 'keylog stop' استفاده كنيد.
mm capture aui/capavi
ويدئو و صدا را (در صورت موجود بودن) از وسيله ورودى ويدئو به يك فايل aui ضبط مىكند.
mm capture Frame/copframe
تصوير ويدئو را از وسيله ورودى ويدئو به يك فايل bitmap ضبط مىكند.
mm capture screen/capscreen
تصويرى از صفحه نمايش ماشين سرويسدهنده را به يك فايل bitmapضبط مىكند.
mm List capture devices/listcaps
وسايل ورودى ويدئو را ليست مىكند.
mm play sound/sound
يك فايل WAV را روى ماشين سرويسدهنده play مىكند.
Net connections/netlist
ارتباطات ورودى و خروجى شبكه را ليست مىكند.
Net delete/netdisconnect
ارتباط ماشين سرويسدهنده را از يك منبع شبكه قطع مىكند.
Net use/netconnect
ارتباط ماشين سرويسدهنده را با يك منبع شبكه برقرار مىسازد.
Net view/netview
تمام رابطهاى شبكه، حوزهها، سرويسدهندهها و exportهاى قابل مشاهده از ماشين سرويسدهنده را مشاهده مىكند.
pinghost/ping
ماشين ميزبان را ping مىكند. نام ماشين و شماره نسخه BO را بازمىگرداند.
plugin execute/plugin exeC
plugin يك Backorifice را اجرا مىكند. اجراى اعمالى كه با رابط pluging Backorifice مطابق نباشد ممكن است موجب مختل شدن سرويسدهنده گردد.
Pluging kill/pluginkill
به يك plugin خاص مىگويد كه shutdown شود.
plugins list/pluginlist
pluginهاى فعال را ليست مىكند و يا مقدار يك plugin را كه خارج شده است، بازمىگرداند.
Process list/proclist
فرآيندهاى اجرايى را ليست مىكند.
Process spawn/procspawn
برنامه را اجرا مىكند. اگر پارامتر دوم مشخص شده باشد، فرآيند بصورت يك فرآيند عادى و ديدارى اجرا مىگردد. در غيراينصورت فرآيند بصورت پنهانى و يا جدا اجرا مىشود.
Redir add/rediradd
ارتباطات TCP ورودى و يا packetهاى udp را به آدرس ديگر ip تغيير مسير مىدهد.
Redir del/redirdel
تغيير مسير يك پورت را متوقف مىسازد.
Redir list/redirlist
تغيير مسيرهاى پورت فعال را ليست مىكند.
Reg Create key/regmakekey
در registry يك كليد ايجاد مىكند.
توجه: در مورد تمام فرمانهاى registry، براى مقادير registry، مقدار \\را قرار ندهيد.
Regdelete key/regdelkey
يك كليد را از registry حذف مىكند.
Regdelete value/regdelval
يك مقدار را از registry حذف مىكند.
Reglist keys/reglistkeys
كليدهاى فرعى يك كليد registry را ليست مىكند.
Reg list values/reglistvals
مقادير يك كليد registry را ليست مىكند.
Reg set value/regsetval
براى كليد registry مقدارى را قرار مىدهد. مقادير برحسب نوعى كه بدنبال كاما (،) آمده است و سپس دادههاى مقدار تعيين مىشوند. در مورد مقادير باينرى (نوع B)، مقدار يكسرى از مقادير دو رقمى بر مبناى شانزده است. در مورد مقادير DWORD (نوع D)، مقدار يك عدد دسيمال است. در مورد مقادير رشتهاى (نوع S)، مقدار يك رشته متنى است.
Resolve host/resolve
آدرس ip نام يك ماشين را در رابطه با ماشين سرويسدهنده resolveمىكند. نام ماشين مىتواند نام يك ميزبان اينترنت و يا نام ماشين يك شبكه محلى باشد.
system dialogbox/dialog
يك كادر مكالمه روى ماشين سرويسدهنده با متن تهيه شده و دكمه 'OK' ايجاد مىكند. شما مىتوانيد به هر تعداد كه مىخواهيد كادر مكالمه ايجاد كنيد، اين كادرها در جلوى كادر قبلى پشت سرهم قرار مىگيرند.
system info/info
اطلاعات سيستم را براى ماشين سرويسدهنده نمايش مىدهد. اطلاعات به نمايش درآمده شامل نام ماشين، كاربر جارى، نوع CPU، حافظه موجود و كلى، اطلاعاتى در مورد نسخه ويندوز و اطلاعاتى در مورد درايو شامل نوع درايو (ثابت، cd-rom، قابل جابه جايى يا راه دور) و در رابطه با درايوهاى ثابت، اندازه و فضاى خالى درايو مىباشد.
System lockup/lockup
ماشين سرويسدهنده را lockup مىكند.
System passwords/passes
Passwordهاى Cash شده براى كاربر جارى و password محافظ صفحه نمايش را نشان مىدهد. passwordهاى به نمايش درآمده ممكن است در آخرشان دادههاى اضافه داشته باشند.
System reboot/reboot
ماشين سرويسدهنده را Shutdown مىكند و مجدد آن را راهاندازى مىكند.
TCP file Send/TCPsend
ماشين سرويسدهنده را به يك ip و پورت خاص مرتبط مىكند و محتواى فايل مشخص شده را مىفرستد و سپس ارتباط را قطع مىكند.
توجه: براى انتقال فايل TCP، آن ip و Port خاص بايد قبل از آنكه فرمان فايل TCP ارسال و يا fail گردد، شنيده شوند يك Utility مفيد براى انتقال فايلها netcat است كه براى unix و هم براى win32 فايل دسترسى است.
فايلها مىتوانند با استفاده از فرمان ارسال TCP و netcat با گرامرى شبيه: netcat-1-p666<file از سرويسدهنده فرستاده شوند.
فايلها مىتوانند با استفاده از فرمان دريافت فايل TCP و netcat با گرامرى شبيه: netcat-1-p666>file به سرويسدهنده فرستاده مىشوند.
توجه: نسخه win32، netcat تا زمانى كه به پايان فايل ورودى برسد خارج و يا قطع ارتباط نمىشود. پس از آنكه محتويات فايل منتقل شد، netcat را با ctrl-break يا ctrl-c پايان ببخشيد.
Boconfig:
Boconfig.exe به شما اجازه مىدهد تا Optionها را براى يك سرويسدهنده bo قبل از آنكه نصب شود، پيكربندى كنيد. Boconfig از شما در مورد نام اجرايى كه نامى است كه Back orifice با آن خود را در دايركتورى سيستم نصب خواهد كرد، سوال مىكند.
ضرورتى ندارد كه Boconfig به .exe ختم شود، اما اگر شما از پسوند فايل استفاده كنيد، .exe ، Boconfig را اضافه نخواهد كرد. سپس در مورد توصيف exe سوال مىكند كه در واقع توصيفى است كه exe را در registry، جايى كه از زمان راهاندازى شروع مىشود، شرح مىدهد. سپس در مورد پورتى كه سرويسدهنده از آنجا paketها را خواهد شنيد سوال مىكند و سپس در مورد passwordاى كه براى رمزگذارى از آن استفاده خواهد كرد مىپرسد. براى برقرارى ارتباط با سرويسدهنده با استفاده از سرويسگيرنده، سرويسگيرنده بايد با همان password مشابه پيكربندى شود. اين نيز مىتواند تهى باشد. و بالاخره، Boconfig در مورد مسير فايل كه مىتواند به سرويسدهنده متصل شود و در دايركتورى سيستم به عنوان Startهاى سرويسدهنده نوشته مىشود، سوال مىكند. اين مىتواند plugin يك Backorifice باشد كه بطور خودكار Startمىشود.
سرويسدهندهاى كه بدون پيكربندى شدن كار مىكند، در برقرارى ارتباط روى پورت 73313 بدون password دچار نقصان مىشود و خود را بصورت ".exe" نصب مىكند.
مسائل و مشكلات:
صفحه نمايش ضبط bitmap :MM در هر resolution و عمق پيكسلى كه ماشين سرويسدهنده در آن اجرا مىشود، ذخيره مىگردد. در نتيجه، bitmapها مىتوانند با عمقهاى رنگ 16 بيت يا 24 بيت توليد شوند. اكثر برنامههاى كاربردى گرافيكى تنها مىتوانند bitmapهاى 8 يا 32 بيتى را اداره كنند و قادر به loadكردن bitmap نيستند و آن را به درستى نشان نمىدهند (اين شامل Graphics workshop براى ويندوز WANG Imaging, photoshop توزيع شده با ويندوز مىشود). بهرحال، برنامه Paint.exe كه به همراه Windows مىآيد آن را نشان خواهد داد.
logging صفحه كليد: ظاهراً ويندوز ms-dos فاقد حلقه پيام است كه مانع log شدن كليدهايى مىگردد كه درون آنها تايپ مىگردد.
تغيير مسير برنامه كاربردى متنى (App add)TCP- چندين اشكال وجود دارد. هنگامى كه Command.com با handleهاى تغيير مسير يافتهاش ايجاد مىشود، سيستم نيز REDIR32.EXE كه تا پايان ارتباط ظاهر نمىشود را ايجاد مىنمايد. (بنظر مىرسد رابط OS كه با مدل Tsrارتباط برقرار مىكند در dos session، load مىشود تا handleهاى ورودى و خروجى را به سمت Pipeها تغيير مسير دهد) بنابراين اگر شما ارتباط TCP را قبل از پايان يافتن برنامه كاربردى، پايان ببخشيد (يا آن را خارج كنيد)، REDIR32.EXE و WINOA386.MOD (' برنامه كاربردى قديمى' (16 بيتى) wrapper) به اجرا شدن ادامه خواهد داد و Backorifice و سيستم عامل قادر به پايان بخشيدن آنها نخواهند بود. اين مسئله مانع shutdown سيستم نيز مىشود و هميشه در (Please wait...) باقى مىماند.
همچنين به نظر مىرسد تغيير مسير دادن خروجى از برخى از برنامههاى كاربردى Console (همچون FTP.EXE و متأسفانه boclient.exe) مشكل باشد.
علاقه مندی ها (بوک مارک ها)