Lumelang bohle. Re ntse re kena mosebetsing ka mafolofolo mme re se re ntse re lokisa tse ngata tse matla tse qalang ka Pherekhong. Har'a tse ling, ngoliso e phatlalalitsoe bakeng sa mokhoa o mocha oa thupelo eo motho e mong le e mong a e ratang. . Ka tebello ea ho qala, ka tloaelo re arolelana liphetolelo tsa litaba tsa bohlokoa.

Litumello tsa faele li fana ka mokhoa o bolokehileng ho li-executable tsa SUID, empa li ka utloahala li ferekanya qalong.
Kaofela rea tseba hore li-binary ke . Ka lehlohonolo, haeba kopo ea hau e hloka litokelo tse itseng tse fokolang, ho na le mokhoa o sebetsang haholoanyane o bitsoang .
Ke tla u bolokela nako haeba u batla ho qoba ho bala sengoloa se kaholimo ka botlalo: Ha e le hantle, tumello ea faele e lumella lits'ebetso tse tsamaeang joalo ka motso, ka hona li lumelloa ho etsa ho hong ho boloka bokhoni bo itseng, bo lekanyelitsoeng. ha ba lahla litokelo mme ba tsamaisoa ke mosebelisi ea se nang tokelo. Sena se bolela hore haeba mohlaseli a khona ho sekisetsa ts'ebetsong a sebelisa buffer overflow kapa tlatsetso e 'ngoe, a ke ke a khona ho nka monyetla ka eng kapa eng ntle le litokelo tse nyane tseo ts'ebetso e hlileng e li hlokang.
Litumello li ntle bakeng sa lits'ebeletso, tseo hangata li sebetsang e le motso, empa ho thoe'ng ka lits'ebeletso tsa mola oa taelo? Ka lehlohonolo, sena le sona sea tšehetsoa, ha feela u na le lits'ebeletso tse nepahetseng tse kentsoeng. Haeba u sebelisa Ubuntumohlala, o tla hloka sephutheloana libcap2-bin. U tla hloka hape ho tsamaisa kernel e seng ea khale (ho tloha ho mofuta 2.6.24).
Mesebetsi ena e lumella litumello ho amahanngoa le lifaele tse sebetsang, tse tšoanang le ho beha SUID bit, empa bakeng sa sehlopha se itseng sa tumello. Tšebeliso setcap se sebedisoang ho kenya le ho tlosa ditumello ho faele.
Mohato oa pele ke ho khetha litumello tseo u li hlokang. Molemong oa sehlooho sena, ke nahana hore ho na le sesebelisoa sa ho hlahloba marang-rang se bitsoang tracewalk, e lokelang ho khona ho e sebelisa . Hangata sena se hloka hore sesebelisoa se tsamaisoe joalo ka motso, empa ha se shebelloa hoa fumaneha hore ho hlokahala tumello feela CAP_NET_RAW.
Ho nka hore u bukeng moo binary e leng teng tracewalk, o ka kenya tumello ena ka tsela ena:
sudo setcap cap_net_raw=eip tracewalk Hlokomoloha sehlongoana hajoale =eip bakeng sa tharollo, ke tla bua ka seo ka mor'a metsotsoana e 'maloa. Hlokomela hore lebitso la tumello le ngotsoe ka litlhaku tse nyane. Joale u ka sheba hore na u hlophisitse litumello ka nepo ka:
setcap -v cap_new_raw=eip tracewalkKapa o ka thathamisa litumello tsohle tse behiloeng bakeng sa ts'ebetso e fanoeng:
getcap tracewalk
Bakeng sa litšupiso, o ka tlosa litumello tsohle ho tse ka phethisoang ka:
setcap -r tracewalkMothating ona, o lokela ho khona ho tsamaisa se ka sebetsoang joalo ka mosebelisi ea se nang tokelo, 'me se lokela ho sebetsa ka li-sockets tse tala, empa se se na litokelo tse ling tseo mosebelisi a nang le tsona.
Jwale sehlotshwana see se makatsang se bolelang? =eip? Sena se hloka kutloisiso e itseng ea mofuta oa tumello. Mokhoa o mong le o mong o na le lihlopha tse tharo tsa tumello - e sebetsang hantle, e ka fuwang le ho dumellwa:
- E sebetsa hantle Litumello ke tse hlalosang hore na ts'ebetso e ka etsoa joang. Ka mohlala, e ke ke ea sebetsana le li-sockets tse tala haeba
CAP_NET_RAWha se sete e sebetsang. - E fumaneha Litumello ke tseo ts'ebetso e lumelletsoeng ho ba le tsona haeba e li kopa ho sebelisa mohala o loketseng. Ba thibela ts'ebetso ho etsa ntho leha e le efe ntle le haeba e ngotsoe ka ho toba ho kopa tumello e boletsoeng. Sena se lumella lits'ebetso hore li ngoloe ho kenyelletsa litumello tse bohlokoa ho sete e sebetsang feela bakeng sa nako eo li hlileng li hlokahalang ka eona.
- Bojalefa ditumello ke tse ka fuwang ka sete e fihlellehang ya tshebetso ya ho tswala ngwana. Nakong ea ho buuoa
fork()kapaclone()ts'ebetso ea ngoana e lula e fuoa kopi ea tumello ea ts'ebetso ea motsoali kaha e ntse e sebetsa ka mokhoa o ts'oanang ka nako eo. Sete ea lefa e sebelisoa haexec()(kapa e lekanang) e bitsoa ho khutlisa faele e phethiloeng ka e 'ngoe. Mothating ona, sete e fumanehang ea ts'ebetso e koaheloa ke sete e futsitsoeng ho fumana sete e fumanehang e tla sebelisoa bakeng sa ts'ebetso e ncha.
Kahoo lisebelisoa setcap e re lumella ho kenyelletsa tumello ea lihlopha tsena tse tharo ka boikemelo bakeng sa ts'ebetso e fanoeng. Hlokomela hore moelelo oa lihlopha o hlalosoa ka tsela e fapaneng hanyane bakeng sa tumello ea faele:
- Fumaneha Litumello tsa faele ke tse lulang li fumaneha faeleng e ka phethisoang, le haeba ts'ebetso ea motsoali ea e bitsitseng e ne e se na tsona. Li ne li bitsoa "litumello" tse qobelloang.
- Lefa Litumello tsa faele li hlalosa mask a eketsehileng a ka sebelisoang ho tlosa tumello ho sete ea mokhoa oa ho letsetsa. Ba sebetsa ho kenyelletsa sete e futsitsoeng ea mokhoa oa ho letsa, kahoo tumello e fumanoa hafeela e le teng ka lihlopha tseo ka bobeli.
- E sebetsa hantle Litumello tsa faele ha e le hantle ke karoloana e le 'ngoe feela, eseng sete,' me haeba e behiloe, ho bolela hore sete eohle e teng e boetse e kopitsoa ho sete e sebetsang ea ts'ebetso e ncha. Sena se ka sebelisoa ho kenyelletsa litumello lits'ebetsong tse sa ngolloang ka kotloloho ho li kopa. Kaha ke karolo e le 'ngoe, haeba u e beha bakeng sa tumello leha e le efe, e tlameha ho behoa bakeng sa litumello tsohle. U ka e nka e le karolo ea lefa hobane e sebelisoa ho lumella tumello ho sebelisoa ke lits'ebetso tse sa li tšehetseng.
Ha u hlakisa litumello ka setcap ditlhaku tse tharo e, i и p amanang le e sebetsang hantle, e ka fuwang le e fumanehang beha ka ho latellana. Kahoo, litlhaloso tsa pele:
sudo setcap cap_net_raw=eip tracewalk ... e bontša hore tharollo CAP_NET_RAW e tlameha ho eketsoa ho li-sete tse fumanehang le tse ka ruuoang le hore biti e sebetsang le eona e tlameha ho beoa. Sena se tla hlakola litumello life kapa life tse behiloeng faeleng. Ho theha litumello tse ngata ka nako e le 'ngoe, sebelisa lenane le arohaneng le likoma:
sudo setcap cap_net_admin,cap_net_raw=eip tracewalke bua ka tsena tsohle ka botlalo, empa ka tšepo poso ena e hlakisitse se etsahalang hanyane. Ho na le litemoso le maqheka a 'maloa feela a setseng ho boleloa.
Taba ea pele, bokhoni ba faele ha bo sebetse le li-symlink - o tlameha ho li sebelisa ho faele ea binary ka boeona (ke hore, sepheo sa symlink).
Taba ea bobeli, ha li sebetse ka mengolo e tolokiloeng. Mohlala, haeba u na le mongolo oa Python oo u batlang ho o fa tumello, u tlameha ho o abela mofetoleli oa Python ka boeena. Ho hlakile hore ena ke taba ea ts'ireletso e ka bang teng hobane lingoloa tsohle tse entsoeng ka mofetoleli eo li tla ba le tumello e boletsoeng, leha sena se ntse se le betere ho feta ho se etsa SUID. Mokhoa o tloaelehileng oa ho sebetsa o bonahala e le oa ho ngola ntho e ka sebelisoang ho C kapa e lekanang le eona e ka etsang ts'ebetso e hlokahalang ebe e e bitsa ho tsoa ho script. Sena se tšoana le mokhoa o sebelisoang ke Wireshark o sebelisang binary /usr/bin/dumpcap ho etsa ts'ebetso e khethehileng:
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip Taba ea boraro, litumello tsa faele li koetsoe haeba u sebelisa phetoho ea tikoloho LD_LIBRARY_PATH ka mabaka a hlakileng a tšireletso(1). Hoa tšoana le ho LD_PRELOAD, ho ea ka moo ke tsebang ka teng.
1. Kaha ho hlakile hore mohlaseli a ka nkela e 'ngoe ea lilaebrari tse tloaelehileng sebaka le ho sebelisa LD_LIBRARY_PATHho qobella laeborari ea eona hore e bitsoe molemong oa sistimi e le 'ngoe,' me ka hona e be le khoutu ea eona e ikemetseng e phethiloe ka litokelo tse tšoanang le kopo ea mohala.
Ke phetho. Lintlha tse ling mabapi le lenaneo la thupelo li ka fumanoa ho
Source: www.habr.com
