操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    小米科技有這么一個(gè)故事:雷軍看到客服主管抱來的厚厚一沓客服數(shù)據(jù)、工作報(bào)表,還有多達(dá)好幾十頁客服的未來改進(jìn)計(jì)劃時(shí),感到十分吃驚。雷軍當(dāng)下就跟主管說:咱們能不能不要這么多KPI數(shù)據(jù)?我只給你一個(gè)指標(biāo):怎么讓你的小伙伴發(fā)自內(nèi)心地?zé)釔劭蛻舴?wù)這份工作?


    其實(shí)很多公司也有類似的情形,但可惜他們沒有遇到像雷軍一樣擁有簡約思維的領(lǐng)導(dǎo),一直掙扎在水深火熱之中。尤其隨著公司規(guī)模不斷膨脹,其官僚作風(fēng)也會(huì)日益蔓延,管理勢必越來越復(fù)雜,員工的眼睛只盯著上面,而不是盯著客戶。


    更為嚴(yán)峻的是在互聯(lián)網(wǎng)時(shí)代,管理復(fù)雜化的趨勢愈加嚴(yán)重:一方面層出不窮的各種業(yè)務(wù)信息系統(tǒng),使員工眼里只有系統(tǒng),只有KPI,而沒有業(yè)務(wù);另一方面會(huì)議、固定電話、手機(jī)、郵件、微信、QQ、內(nèi)部的通訊協(xié)作平臺(tái)等眾多溝通工具帶來的信息狂轟亂炸,把員工的工作時(shí)間撕成碎片,員工難以專注于工作,效率低下。


    《極簡管理法則》就是一本能讓你像雷軍一樣擁有簡約思維的書。這本書向你介紹的116條極簡法則以最精煉的語言、最短小的篇幅、最準(zhǔn)確的描述,幫助你抓住管理的本質(zhì)、掌握管理方法、解決管理問題、讓你輕松勝任多重任務(wù)模式,完成外界與自己的多重期待,獲得你所追求的成功,進(jìn)而使你真正成為自己生命的主人。


    這本書的作者理查德?泰普勒在30年的工作生涯中,他涉獵了諸多領(lǐng)域,在不同企業(yè)內(nèi)負(fù)責(zé)過不同的工作,現(xiàn)在他自己創(chuàng)業(yè),同時(shí)經(jīng)營幾家公司。他的個(gè)人成功促使其走上了傳道授業(yè)解惑的旅程,這才有了今天要與你分享的成功法則。


    好了,介紹完這本書的基本情況和作者概況,那么下面,我將從三個(gè)方面為你闡述本書的內(nèi)容:

    第一:你要集中精力做好一個(gè)管理者真正要做的工作。

    第二:除了管理團(tuán)隊(duì),你也需要管理好自己。

    第三:作為即將創(chuàng)業(yè)或者正在創(chuàng)業(yè)的你一定要遵循的10條管理法制。

    最后附加其他系列里的“一條法則”,比如有關(guān)人生的法則、工作的法則、財(cái)富的法則、為人父母的法則、愛情的法則,來供你試聽。


    01 你要集中精力做好一個(gè)管理者真正要做的工作


    要想做到這一點(diǎn)需要遵循37個(gè)極簡法則,別看法則多,其實(shí)都是你平常容易忽略的“小事”。


    首先你要明確什么是管理者。管理者從廣義上說,我們都是管理者,我們都需要做一些管理工作,在聽這本書的你,無論你是什么身份、什么職業(yè),你都是一名管理者。但是這本書的管理者主要針對的是狹義上的管理者,即一個(gè)屬于某組織機(jī)構(gòu)管理團(tuán)隊(duì)的雇員。


    但是在現(xiàn)實(shí)生活中,大部分人會(huì)把管理者看成一個(gè)管理人的人,其實(shí)不然。事實(shí)上每個(gè)人都能夠管理好自己,不需要其他人或者管理者來管理自己。那么一個(gè)企業(yè)的管理者真正管理的工作是什么?其實(shí)是在行動(dòng)策略上,實(shí)現(xiàn)目標(biāo)的過程上。


    這一過程大概是這樣的:作為管理者,你需要知道員工的動(dòng)力是什么,他們在想什么,有什么感受,了解他們工作的原因,為什么他們愿意竭盡全力(或者消極怠工),他們害怕什么、渴望什么,他們有什么夢想。


    然后在此基礎(chǔ)上你要鼓勵(lì)他們,指導(dǎo)他們,為他們提供完成工作所需資源,監(jiān)督工作進(jìn)程,為他們確定行動(dòng)策略。在這一過程中,你要記住的是,你會(huì)擔(dān)心、照顧、支持他們,但你不能控制他們,他們可以自我管理,你只需要為他們提供行動(dòng)策略。

    問題來了,具體怎么操作這一管理者要真正管理的工作呢?先從團(tuán)隊(duì)里的個(gè)體說起。


    如何讓員工抱著享受工作的態(tài)度來上班,愿意竭盡全力去工作?極簡管理法則一告訴你要讓他們從情感上參與進(jìn)來。讓團(tuán)隊(duì)成員在工作中投入情感并不難,你只需要讓他們關(guān)心自己的工作,讓他們意識(shí)到工作的重要意義,而不是簡簡單單幫老板或者股東賺錢、讓高級管理人員收獲巨額獎(jiǎng)金,而是他們的工作確實(shí)在為社會(huì)做出貢獻(xiàn)。


    比如銷售廣告位的人不僅可以幫助各個(gè)企業(yè)打出市場知名度、幫助潛在客戶了解到市場上存在他們長久以來渴望或者迫切需要的產(chǎn)品,還能讓依賴廣告盈利的報(bào)紙和雜志有繼續(xù)生存的能力等等。


    而在如何讓他們關(guān)心自己工作的問題上,你要知道每個(gè)人都渴望受人重視,成為有用的人。所以去重視他們,去認(rèn)真探尋讓員工與工作產(chǎn)生共鳴的事物。


    接下來我們從員工這一個(gè)體上升到團(tuán)隊(duì)這一組織上。法則二告訴你要明確團(tuán)隊(duì)不是一群人的集合,而是擁有共同目標(biāo)的成員的集合。緊接著法則三就要提醒你,為了這一共同目標(biāo),你要制定一個(gè)現(xiàn)實(shí)的目標(biāo)。


    而制定這個(gè)目標(biāo)的前提就是你要對團(tuán)隊(duì)的能力有著清楚的認(rèn)識(shí),同時(shí)了解老板的期望。當(dāng)然你也遇到過老板堅(jiān)持讓你設(shè)定不現(xiàn)實(shí)目標(biāo)的情況,這該怎么辦?


    最簡單的辦法就是你把問題不斷拋向老板,比如該如何實(shí)現(xiàn)這些目標(biāo),請給出建議諸如此類問題。而法則四、五、六是有關(guān)開會(huì)的極簡法則,畢竟開會(huì)是作為管理者的你傳達(dá)信息給團(tuán)隊(duì)的主要途徑之一。所以法則在這里提醒你的是開會(huì)前要明確開會(huì)目的,要讓開會(huì)簡短而有效,并且開會(huì)要有趣而不是冗長乏味。


    至于剩下的法則就要來幫你具體回答如何管理自己的團(tuán)隊(duì)了。不過在介紹如何管理自己的團(tuán)隊(duì)之前,你要始終銘記作為管理者,你要管理的是事件、過程、狀況和戰(zhàn)略,而不是人!


    好,進(jìn)入正題。想要管理好自己的團(tuán)隊(duì),首先你要相信自己的員工。這種信任感最好的表達(dá)方式就是放手讓他們獨(dú)立完成任務(wù),讓他們自己想辦法完成;在他們工作過程中,允許他們犯錯(cuò),甚至你要承擔(dān)責(zé)任;接受他們的局限并且在這個(gè)局限范圍之內(nèi)激發(fā)他們最大的潛能;當(dāng)然你也不要吝嗇你的鼓勵(lì),該表揚(yáng)的時(shí)候就要表揚(yáng),甚至你要慶祝所有點(diǎn)滴的成功。


    其次你要讓團(tuán)隊(duì)比自己更出色。而做到這一法則可能有些難度,你要為他們提供最好的資源,并且相信他們不會(huì)背后捅刀子,也不怕自己被取代,在這方面你確實(shí)需要很大的勇氣。但是這么做是顯然是有益于培養(yǎng)團(tuán)隊(duì)成員的忠誠感、團(tuán)隊(duì)精神的。


    而在如何激發(fā)他們的真正實(shí)力的問題上,首先你要尊重每個(gè)人的不同,評判一個(gè)人的標(biāo)準(zhǔn)應(yīng)當(dāng)是工作業(yè)績,并且以此來調(diào)整自己的管理風(fēng)格,因人而異做出不同的處理;


    然后你要把你的期望明確告知他們,來減少他們對工作的困惑;明確一致的標(biāo)準(zhǔn),來減少他們做事的顧慮;再主動(dòng)去訓(xùn)練他們,讓他們提供解決方案,而不是提出問題;

    最后在遇到大事的時(shí)候,你可以和他們交流,去傾聽他們的反饋意見、創(chuàng)意,讓他們展現(xiàn)創(chuàng)造力,你要根據(jù)你的經(jīng)驗(yàn)以及現(xiàn)實(shí)情況來作出判斷,但是不要流露出一定會(huì)使用他們創(chuàng)意的傾向,而是讓他們產(chǎn)生自己的創(chuàng)意被融入整體戰(zhàn)略中的想法,進(jìn)而讓他們產(chǎn)生比你懂得更多的感覺,使他們有繼續(xù)學(xué)習(xí),了解更多信息的欲望。


    但是不要忘記做到這些有一個(gè)前提就是你要把自己變成團(tuán)隊(duì)的榜樣,你的一言一行就是團(tuán)隊(duì)的標(biāo)準(zhǔn)。因此優(yōu)秀的管理者往往需要記錄每一件事,這樣不僅可以展示自己言出必行,也能借此來堵住搬弄是非的嘴。


    請記住這個(gè)前提是你的‘榜樣’可不是團(tuán)隊(duì)里一個(gè)隨和的好人,而是對自己、團(tuán)隊(duì)和重要業(yè)務(wù)問題有明確的底線的人。你可以根據(jù)這個(gè)底線去批評任何人,甚至裁員。當(dāng)然‘裁員’是最壞的打算,為此你要培養(yǎng)自己挑選人才的能力,同時(shí)在挑選人才方面上你要敢于聘用比自己更聰明的人才。

    在經(jīng)營團(tuán)隊(duì)里還有一個(gè)無法回避的至關(guān)重要的問題就是營造良好的工作氛圍。


    當(dāng)團(tuán)隊(duì)成員出現(xiàn)摩擦與矛盾時(shí),你就需要變身外交家、長輩、政治家和裁判,你絕不能站隊(duì),你必須迅速、堅(jiān)決地行動(dòng),明確地表明“不允許結(jié)怨”的態(tài)度;


    當(dāng)有團(tuán)隊(duì)成員公開反對你該怎么辦?很簡單,你沒有必要強(qiáng)辯到底,在重要事情上,你要擁有決定權(quán),而其他事情就順其自然。


    除此之外,你要記住在任何工作場合都適用的三個(gè)準(zhǔn)則:禮貌、友好、善良。當(dāng)你秉持著這些準(zhǔn)則,你就能突破對方的心理防線,讓他們心甘情愿地完成通常會(huì)被拒絕的工作。


    在這部分內(nèi)容的最后,極簡管理法則提醒你的是:作為管理者除了要做好本職工作,也就是管理之外,沒有必要親自去做其他人的工作,而是你要對所有工作內(nèi)容都有一個(gè)現(xiàn)實(shí)的了解,遭遇危機(jī)時(shí)你需要備用人才,但這個(gè)人不是你。

    好了,以上就是關(guān)于管理團(tuán)隊(duì)的37個(gè)極簡法則。在這37個(gè)極簡法則里,你首先明確管理者管理的是事件、過程、狀況和戰(zhàn)略,不是人,你更多的是去培養(yǎng)人,培養(yǎng)你的團(tuán)隊(duì),最終使你的團(tuán)隊(duì)比你還出色,因?yàn)檫@樣不僅可以幫助你很好的完成任務(wù),而且還能因此使你的團(tuán)隊(duì)變得忠誠而團(tuán)結(jié)。


    02 除了管理團(tuán)隊(duì),你也需要管理好自己


    因?yàn)槟氵€有自己的工作、自己的生活。接下來的法則來教你如何管理好自己,在工作上要想提高你的工作效率,輕松取得豐碩工作成果。


    首先也是最基本的就是你要努力工作。連基本工作都出錯(cuò)的話,人際關(guān)系搞得再好,你也做不了管理者。


    其次你要保持高效工作,竭盡所能,高質(zhì)量地按時(shí)完成工作,對很多企業(yè)來說,人工成本是最大的一筆開支。即便不是最多,工資在運(yùn)營成本中也是大頭。至少在涉及自己時(shí),你需要控制相關(guān)成本。無論做什么,你都需要保證要做的事值得自己投入時(shí)間,否則你就該毫不留情地放棄那些事情。


    因?yàn)楣酒刚埬闶且驗(yàn)樾湃文隳芨咝Ю盟麄兊耐顿Y,所以不要讓他們失望。當(dāng)然你不需要接受有關(guān)時(shí)間管理的漫長培訓(xùn),你只需要關(guān)注:有條理、專注、始終保持高效、集中精力這幾點(diǎn)。


    最后作者想讓你坐下來認(rèn)真思考自己做過的一切,你會(huì)從中發(fā)現(xiàn)其中很多都是沒用的,因此你要分清主次,有選擇地做事情,事實(shí)發(fā)現(xiàn)優(yōu)秀的管理者和普通管理者的區(qū)別在于——有明確關(guān)注的焦點(diǎn),有遠(yuǎn)見,也愿意投入精力。


    其實(shí)無論是努力工作還是高效工作,你都要去享受工作。你既可以努力工作,也可以享受生活,你既可以成為一個(gè)多產(chǎn)、高效、勤奮、冷靜、可靠和富有責(zé)任感的管理者,你也可以做一個(gè)快樂的人,老板聘請你是讓你好好工作,而不是讓你態(tài)度陰沉,時(shí)刻保持緊繃狀態(tài)。


    作者在這里提到了鮑勃,一個(gè)很出色的經(jīng)理,一個(gè)只為自己工作的管理者,比如他沒有出現(xiàn)過公司要求參加的任何管理培訓(xùn)課,因?yàn)樗X得沒有必要,他覺得工作是用來享受的,而不是去強(qiáng)迫自己去做什么事情。


    如果工作變成了抱怨,甚至變得不堪重負(fù),記住,那只是一份工作,沒有人必須要做這一份工作,自己人生中還有其他更重要的事情要做,比如陪伴你的家人。


    而鮑勃就在為他的家人工作,為了不加班,準(zhǔn)點(diǎn)下班回家,他早上提前趕去辦公,不吃午飯,永遠(yuǎn)低頭辦公,一分鐘也不愿意浪費(fèi)。也正因?yàn)樗募彝ド钭屗麧M足,在工作中,他沒有需要證明自己的地方。他待人親切友善,于是整個(gè)團(tuán)隊(duì)愿意為他多付出些努力,不愿意讓他失望。所以法則告訴你回家吧,回去多陪陪家人,家庭生活的糟糕與工作上的不易有很大的關(guān)系。

    當(dāng)然享受工作的前提是你要享受你的身體健康。所以你要時(shí)刻關(guān)注健康問題。作為管理者可能會(huì)一直處于高壓下,這個(gè)時(shí)候你要知道你在什么情況下面臨壓力以及要思考做什么來阻止這種情況再次發(fā)生,你需要一個(gè)良好的心態(tài),做好迎接痛苦或喜悅的心理準(zhǔn)備,做好面對未來的準(zhǔn)備,做好最壞的打算,保持樂觀心態(tài),抬起頭,不要低頭。


    最后是保持對工作的激情。有太多人把工作看成是痛苦的事,是迫不得已必須做的瑣事,假如你也是這樣的,那你還是回家吧,把位置留給其他熱愛工作的人。


    作者提到他會(huì)在接受培訓(xùn)前了解整個(gè)行業(yè),了解行業(yè)歷史、知名人物以及其中的故事等等,他因此充滿動(dòng)力、激情滿滿,真正地去投入精力去關(guān)注自己的工作。他最后告訴你一旦有了激情,你就有了動(dòng)力和勇氣,你的膽子也會(huì)大了起來,所以去嘗試熱愛自己的工作吧。


    當(dāng)然你無論工作多努力,對工作有多熱愛,你也逃不過處理人際關(guān)系。接下來的法則來幫你應(yīng)對。


    當(dāng)面對公司的時(shí)候,你要讓公司看到你在支持他們,而不是抱怨,指責(zé)。其實(shí)每家公司既有好的一面,也有壞的一面,所謂人情練達(dá)就是你會(huì)考察公司,進(jìn)而提出疑問,我在這里工作得是否開心。


    倘若有不足的地方,你可以嘗試去為公司多出一份力,而非“阿諛奉承”,甚至唯命是從、變成跟班。你要知道強(qiáng)大、獨(dú)立、有反抗精神和人情練達(dá)并不互相排斥。

    在面對上司的時(shí)候,你可能會(huì)遇到上司給你的命令是不可理喻甚至是錯(cuò)的情況,此時(shí)你也需要向上管理。你絕不能對上司威脅、恐嚇、篡權(quán)、逼迫、脅迫、不尊重對方、質(zhì)疑對方、背后說上司的壞話、暗中破壞他們的權(quán)威、嘲諷。最明智的做法就是私下和上司面對面交流;


    而面對團(tuán)隊(duì),你仍舊要幫助他們,培養(yǎng)他們。要幫助他們更好地工作,幫助他們提高能力和價(jià)值,主動(dòng)去分享知識(shí)、而不是去說團(tuán)隊(duì)的壞話,也不是去威脅下屬、而是要融入團(tuán)隊(duì)、為團(tuán)隊(duì)抗?fàn)幍降住?/span>


    當(dāng)然有時(shí)候你會(huì)遇到被夾在下屬和領(lǐng)導(dǎo)的中間尷尬境地,此時(shí)你不僅要接受下屬的激烈批評,你也要忍受主管領(lǐng)導(dǎo)的瘋狂指示,這個(gè)時(shí)候你就要表現(xiàn)出理解下屬和上司觀點(diǎn)的姿態(tài),就是讓雙方都明白,你能了解他們的做法,這種方法不僅理智,而且還能很好地減輕你的壓力;

    雖然辦公室政治無處不在,但是面對同事的時(shí)候,你不要玩弄權(quán)術(shù),不去詆毀他們,也別參與辦公室斗爭、參與派系斗爭,你僅僅需要防備之心,然后坦率而誠懇地去面對每一個(gè)人,你自然會(huì)被視作誠實(shí)而值得信任的人;


    最后是面對客戶,你不僅要與客戶之間建立互相尊重的關(guān)系,友好地對待他們,也要為客戶再多出一份力。你知道的為現(xiàn)有的客戶服務(wù)的成本遠(yuǎn)比招募新客戶低,我們需要想辦法獲得、留住、滿足、歡迎他們、為他們多出一份力,我們不需要一味去迎合他們,但是在爭取他們的過程中我們需要發(fā)揮創(chuàng)造力。


    接下來就要談?wù)勀愎ぷ鞯臅r(shí)候永遠(yuǎn)離不開的計(jì)劃問題。

    在《加勒比海盜:黑珍珠號的詛咒》里杰克船長說了一句臺(tái)詞:如果了解自身能力、知道前進(jìn)的方向,你就是實(shí)打?qū)嵉暮1I。所以為了拿到“寶藏”,你不僅需要制定長期計(jì)劃,也要制定短期計(jì)劃;


    你不僅要知道自己該做什么,也要知道自己實(shí)際上在做什么;你不僅要明確最先解決什么問題,需要拿出什么樣的最終結(jié)果,你也要知道你的目標(biāo)是什么?然后保持專注,集中在真正的目標(biāo)上。


    當(dāng)然海盜也有可能遇到突如其來的暴風(fēng)雨,所以你必須為可能發(fā)生的災(zāi)難制定B計(jì)劃和C計(jì)劃,你要留出“假如發(fā)生某種情況”的余地,做好應(yīng)變的和即興發(fā)揮的準(zhǔn)備。


    除了以上你還要做好適應(yīng)新情況,做好繼續(xù)前進(jìn)的準(zhǔn)備,因?yàn)槟阋獣r(shí)刻保持領(lǐng)先地位。可是當(dāng)手頭有數(shù)不清的工作等待我們的時(shí)候,我們很容易就會(huì)把創(chuàng)新、走在時(shí)代前沿忘在腦后。


    為了解決這個(gè)問題,極簡法則告訴你首先不要埋頭于眼前工作,其次你要嘗試去擺脫思維局限,而擺脫思維局限的一個(gè)簡單方法就是以局外人、第一次接觸這份工作的身份去看自己的工作、部門、團(tuán)隊(duì);


    再從客戶的角度看待自己的工作——哪些做得合理?哪些不合理?最后極簡法則還要讓你每周抽出30分鐘來思考未來,思考如何保持領(lǐng)先,像鯊魚一樣不斷向前、不斷去學(xué)習(xí),特別是學(xué)習(xí)對手。


    但是有關(guān)你的個(gè)人計(jì)劃要保守秘密,為什么要保守秘密?因?yàn)槟闼诘臋C(jī)構(gòu)、團(tuán)隊(duì)、老板不一定跟你擁有相同的計(jì)劃,比如你想獨(dú)立創(chuàng)業(yè),如果你告訴其他人,他們可能以為下一分鐘你要辭職,而你事實(shí)上指定的是幾年后的計(jì)劃。所以把秘密留給自己,保持專注、認(rèn)真、可靠、勤奮和穩(wěn)定的外在表現(xiàn)即可。


    最后的法則是關(guān)于你自身發(fā)展的法則了:


    首先你要明確責(zé)任,一些原則。比如作為管理者你需要對團(tuán)隊(duì)負(fù)責(zé),你要確保他們安全健康;你不能做出傷害環(huán)境、置他人于危險(xiǎn)之中的行為。


    你要知道成為管理者意味著你擁有特權(quán),代表信任,是一種榮譽(yù)。但是你搞砸了,別人就會(huì)受傷。也是因?yàn)檫@份責(zé)任感,你應(yīng)當(dāng)誠實(shí),不要對上司撒謊、不要對客戶說謊,不要走捷徑、不要偷工減料。


    接下來在工作中,管理不得不說是一件有難度的工作。盡管有時(shí)一切順利,但早晚有一天你會(huì)遇到棘手問題,這個(gè)時(shí)候你需要一個(gè)額外的頭腦、一個(gè)心思縝密、值得信任的決策咨詢?nèi)恕?/span>


    而這個(gè)人可能是屬于不同部門、級別與你相當(dāng)?shù)母呒壗?jīng)理;也可能是你的伴侶、密友、母親或者前同事,他們也能讓你從不同的角度看待問題。

    其次擔(dān)任管理者實(shí)際上是一個(gè)持續(xù)學(xué)習(xí)的過程,要學(xué)會(huì)從錯(cuò)誤中學(xué)習(xí)。誰都會(huì)犯錯(cuò)、不犯錯(cuò),我們就不可能成為擁有創(chuàng)新精神和無窮創(chuàng)造力的管理者,你可以咨詢信任的人,讀一些有用、能起到指導(dǎo)作用的書,特別是那些篇幅短小、簡潔、觀點(diǎn)尖銳且具有實(shí)踐性的書。


    最后你要學(xué)會(huì)掌控局面。你是經(jīng)理,管理是你的本職工作。正如字面意思,管理就是管與不管。管好自己與他人,更有效率地工作;理清各中的一切,掌控全局,想辦法成為領(lǐng)導(dǎo)者。


    現(xiàn)在有一種不好的趨勢,經(jīng)理害怕發(fā)號施令,擔(dān)心被團(tuán)隊(duì)成員厭惡、擔(dān)心被指責(zé)為獨(dú)裁者,其實(shí)現(xiàn)實(shí)完全不是這么一回事,擁有優(yōu)秀、強(qiáng)勢、有權(quán)威的領(lǐng)導(dǎo),團(tuán)隊(duì)成員就會(huì)知道有人掌控全局,這樣的團(tuán)隊(duì)才能走得更遠(yuǎn)。

    好,這就是今天給你講的第二個(gè)內(nèi)容:除了管理團(tuán)隊(duì),你也需要管理好自己。這是對極簡管理法則第38條到106條法則的總結(jié)。這部分的法則分別從工作上、在人際關(guān)系上、對于工作的未來展望上、自我發(fā)展上這四個(gè)方面來教你如何更好地管理自己。


    03 作為即將創(chuàng)業(yè)或者正在創(chuàng)業(yè)的你一定要遵循的10條管理法則


    也談?wù)勂渌盗欣锏摹耙粭l法則”:


    在有關(guān)創(chuàng)業(yè)的極簡管理法則上,如果現(xiàn)在的你開始考慮或者計(jì)劃開辦自己的公司,你不僅需要牢記前面提出各種法則,同時(shí)也要記住作者為你提供的這10條創(chuàng)業(yè)極簡管理法則。


    先解釋下這十條法則里的“不要借錢”法則,與其說這是一條法則,不如說更像是一個(gè)志向。無可否認(rèn)創(chuàng)業(yè)需要資金,還是大量的資金,而現(xiàn)在的你可能沒有那么多的錢,但是這條法則仍舊想說服你,除非別無選擇,否則不要走上借錢這條路。


    原因很簡單,借錢是要付出代價(jià),就比如貸款所付的利息問題,作者見過太多賣出公司時(shí)卻要把大部分收益拱手讓人的人了。所以在尋求外部資金援助時(shí),你首先要嘗試其他可能的選擇。

    而其他法則:尋找平衡、做好最壞的打算、有明確的使命、絕對誠實(shí)、盡可能多地獲得幫助、建立強(qiáng)大的企業(yè)文化、不要凡事都回答“是”、堅(jiān)持立場、你的時(shí)間就是所有人的時(shí)間也需要你牢記在心。


    至于其他系列里的“一條法則”,作者列舉了有關(guān)人生的、工作的、財(cái)富的、為人父母的、愛情的法則。


    比如有關(guān)人生的一條法則:年齡越大并不等于越有智慧。智慧并不會(huì)隨著年齡增加而增加,在實(shí)際情況下,我們?nèi)詴?huì)犯大量錯(cuò)誤,只是錯(cuò)誤不同而已。所以在犯錯(cuò)的時(shí)候,要對自己好一點(diǎn),要有寬容之心。


    再比如有關(guān)工作的一條法則:讓自己的工作受人賞識(shí)。想要做到這一點(diǎn),你可以向老板交份意料之外的工作報(bào)告,這份報(bào)告可以是關(guān)于如何讓每一個(gè)人高效地處理更多工作事項(xiàng)等等。


    當(dāng)然能引起老板賞識(shí)的最佳方式就是你本身要有極強(qiáng)的工作能力,所以你要全身心投入工作。而有關(guān)財(cái)富的第一條法則就是誰都可以成為有錢人,你需要的只是努力。你和其他人一樣,都擁有盡可能獲得更多財(cái)富的權(quán)利和機(jī)會(huì)。

    如果你已為人父,你可以看一下關(guān)于父母的法則:放松。作者發(fā)現(xiàn)優(yōu)秀的父母都覺得自己的孩子應(yīng)該吵鬧、臟亂、活躍、好動(dòng)、滿身泥塵。所以不要擔(dān)心自己是不是好家長,糾結(jié)于某一個(gè)問題,去接受一個(gè)孩子的真實(shí)狀態(tài),把握孩子的成長節(jié)奏,沒有必要急于把孩子變成成年人。


    最后是有關(guān)愛情的一條法則:做自己。這條法則是說不要刻意迎合一個(gè)人,去刻意改變自己的基本性格,你不可能偽裝一輩子,遲早會(huì)暴露,你甚至可能會(huì)吸引本不適合你的人。所以做你自己就是了,一個(gè)真正適合你的人不會(huì)把你的缺點(diǎn)看成是缺點(diǎn),相反會(huì)看成你的獨(dú)特魅力。


    這就是今天給你講的第三個(gè)內(nèi)容:作為即將創(chuàng)業(yè)或者正在創(chuàng)業(yè)的你一定要遵循的10條管理法制以及附加其他系列里的“法則”。有關(guān)創(chuàng)業(yè)的部分,你需要謹(jǐn)記不要借錢、尋找平衡、做好最壞的打算、有明確的使命、絕對誠實(shí)、盡可能多地獲得幫助、建立強(qiáng)大的企業(yè)文化、不要凡事都回答“是”、堅(jiān)持立場、你的時(shí)間就是所有人的時(shí)間這十條法則。



    04 總結(jié)

    好了,說到這里,我們今天聊的內(nèi)容就差不多了,讓我們來回顧一下今天為你分享的內(nèi)容。這本書共分為三大內(nèi)容:


    首先你要集中精力做好一個(gè)管理者真正要做的工作。這本書里的管理者主要指狹義上的管理者,即一個(gè)屬于某組織機(jī)構(gòu)管理團(tuán)隊(duì)的雇員。而一個(gè)企業(yè)的管理者真正要做的工作是什么?其實(shí)管理的是事件、過程、狀況和戰(zhàn)略,而不是人!


    那么如何操作這一管理者要真正管理的工作?就團(tuán)隊(duì)隊(duì)員而言:如何能讓員工抱著享受工作的態(tài)度來上班,如何能讓他們愿意竭盡全力去工作?極簡管理法則告訴你,要讓他們從情感上參與進(jìn)來,讓他們意識(shí)到工作的重要意義;


    如果是針對團(tuán)隊(duì)這一組織呢?法則二告訴你要明確團(tuán)隊(duì)不是一群人而是擁有共同目標(biāo)的成員的集合。緊接著法則三就是讓你制定一個(gè)現(xiàn)實(shí)的目標(biāo);而法則四、五、六是有關(guān)開會(huì)的極簡法則,畢竟開會(huì)是作為管理者的你傳達(dá)信息給團(tuán)隊(duì)的主要途徑之一。這些法則要求你開會(huì)要簡潔高效,讓開會(huì)充滿樂趣。

    至于剩下的法則就要從具體操作上來幫你回答如何管理自己的團(tuán)隊(duì)這個(gè)問題了。想要管理好自己的團(tuán)隊(duì),首先你要相信自己的員工。


    其次你要讓團(tuán)隊(duì)比自己更出色,尊重每個(gè)人的不同,激發(fā)他們的真正實(shí)力;緊接著你要明確你對他們的期望以及明確一致的行事標(biāo)準(zhǔn),主動(dòng)去訓(xùn)練他們,使他們有繼續(xù)學(xué)習(xí),了解更多信息的欲望。


    但是不要忘記做到這些有一個(gè)前提就是你要把自己變成團(tuán)隊(duì)的榜樣,你的一言一行就是團(tuán)隊(duì)的標(biāo)準(zhǔn)。而這個(gè)‘榜樣’可不是團(tuán)隊(duì)里一個(gè)隨和的好人,是對自己、團(tuán)隊(duì)和重要業(yè)務(wù)問題有明確底線的人。


    在經(jīng)營團(tuán)隊(duì)里還有一個(gè)你無法回避的至關(guān)重要的問題:營造良好的氛圍。你要記住在任何工作場合都適用的三個(gè)準(zhǔn)則:禮貌、友好、善良。


    當(dāng)然作為管理者除了管理團(tuán)隊(duì)外,還要管理自己。而接下來的從第38條到第106條法則主要來教你如何管理好自己。首先也是最基本的法則:你要努力工作。其次你要保持高效工作、對工作的激情,然后去享受工作,而享受工作的前提是你要享受你的身體健康。


    不過你無論工作多努力,還是對工作有多熱愛,你也逃不過處理人際關(guān)系這個(gè)問題。接下來的法則從公司、上司、團(tuán)隊(duì)、同事、客戶五個(gè)方面回答了你。


    緊接著就是你工作的時(shí)候永遠(yuǎn)離不開的計(jì)劃問題。你不僅需要制定長期計(jì)劃,也要制定短期計(jì)劃;你也必須為可能發(fā)生的災(zāi)難制定B計(jì)劃和C計(jì)劃;除了以上你還要做好繼續(xù)前進(jìn)的準(zhǔn)備,不過作者想提醒的是有關(guān)你的個(gè)人計(jì)劃要保守秘密。


    最后就是關(guān)于你自身發(fā)展的法則了:首先你要明確責(zé)任、一些原則;其次你需要一個(gè)心思縝密、值得信任的決策咨詢?nèi)耍痪o接著你接受自己犯錯(cuò)誤的事實(shí),從錯(cuò)誤中學(xué)習(xí);最后你要學(xué)會(huì)掌控局面。


    這就是對極簡管理法則第38條到106條法則的總結(jié),是分別從工作上、人際關(guān)系上、對于工作的未來展望上、自我發(fā)展上這四個(gè)方面來教你如何更好地管理自己。


    而在這本書的最后一個(gè)重點(diǎn)內(nèi)容是適用于開始考慮或者計(jì)劃開辦自己公司的你。此時(shí)你不僅需要牢記前面提出的各種法則,同時(shí)也要記住作者為你提供的這10條創(chuàng)業(yè)極簡管理法則:“不要借錢”、尋找平衡、做好最壞的打算、有明確的使命、絕對誠實(shí)、盡可能多地獲得幫助、建立強(qiáng)大的企業(yè)文化、不要凡事都回答“是”、堅(jiān)持立場、你的時(shí)間就是所有人的時(shí)間。

    當(dāng)然如果你對《極簡管理法則》意猶未盡,作者在此為你安排了“泰普勒人生法則”系列的其中一條法則,比如有關(guān)人生、工作、財(cái)富、為人父母、愛情的法則。


    最后作者想對你說,你不一定能學(xué)習(xí)、實(shí)踐、認(rèn)同本書中提到的全部法則,但是在做決策和管理的過程中,這些法則能為你提供看待問題的全新角度,幫助你更好地工作。

    譯文聲明

    本文是翻譯文章,文章原作者xpnsec,文章來源:blog.xpnsec.com原文地址:https://blog.xpnsec.com/debugging-into-net/

    譯文僅供參考,具體內(nèi)容表達(dá)以及含義原文為準(zhǔn)

    0x00 概述

    目前,用于后漏洞利用階段的.NET仍然存在。這些利用方式已經(jīng)與大多數(shù)C2框架捆綁在一起,移植到通用工具中,添加了AMSI的繞過方式,并使用非常巧妙的方法來運(yùn)行非托管代碼。但是,加載.NET程序集的過程似乎非常一致。我們知道,像Cobalt Strike的execute-assembly這樣的工具,極大地提高了從內(nèi)存中加載.NET程序集的可訪問性,大多數(shù)攻擊者都會(huì)以各種各樣的方式去使用它。考慮到這種趨勢,藍(lán)隊(duì)也逐漸擅長于尋找內(nèi)存中遺留的痕跡。但是,作為攻擊者,我們?nèi)匀话l(fā)現(xiàn)目前在進(jìn)程中啟動(dòng).NET代碼的方法都非常相似的問題,無論目標(biāo)是托管進(jìn)程還是非托管進(jìn)程。舉例來說,如果我們希望將托管代碼注入到進(jìn)程中,即使目標(biāo)是已經(jīng)加載了CLR的.NET進(jìn)程,我們通常也會(huì)采用以下路徑:


    這個(gè)問題已經(jīng)困擾了我好多年,所以我花費(fèi)了幾個(gè)晚上的時(shí)間,研究可以更改簽名的潛在方法。我的目標(biāo)很簡單,嘗試找到一種在.NET進(jìn)程中直接調(diào)用.NET方法的方法,不必再將Shellcode或rDLL特意注入到非托管空間中,可以僅抓住與CLR的接口,并加載一個(gè).NET程序集。

    本文將探討實(shí)現(xiàn)上述目標(biāo)的一種潛在方式,通過利用Windows公開的調(diào)試框架,我們可以看到使用調(diào)試API在目標(biāo)進(jìn)程中調(diào)用任意.NET代碼所需要的內(nèi)容。

    0x01 關(guān)于ICorDebug

    正如我們在Visual Studio中看到的,.NET具有非常強(qiáng)大的調(diào)試功能,并且提供了在附加進(jìn)程中執(zhí)行代碼的能力:


    在我的腦海里,已經(jīng)思考在.NET進(jìn)程中執(zhí)行特定方法的簡單方式,應(yīng)該有一種方法可以模擬該功能,以使.NET進(jìn)程中的代碼在不加載Shellcode和完整.NET程序集的情況下實(shí)現(xiàn)執(zhí)行。我希望使用一種DebuggerEvaluateCSharpInThisProcess方法,但后來發(fā)現(xiàn)不存在這樣的方法。但是,有一個(gè)非常復(fù)雜但相關(guān)文檔完善的API,借助它可以讓我們以編程方式利用.NET調(diào)試的功能。

    ICorDebug是這個(gè).NET調(diào)試的入口點(diǎn),它提供了大量功能,允許我們可以控制.NET進(jìn)程。我們可以設(shè)計(jì)一個(gè)簡單的調(diào)試器,將其附加到我們選擇的進(jìn)程中,并開始探索這個(gè)API。

    0x02 創(chuàng)建調(diào)試器

    我們需要關(guān)注的第一件事,是IcorDebug實(shí)例。使用與當(dāng)前.NET注入方法完全相同的調(diào)用,我們可以枚舉并選擇.NET框架的安裝版本:


    這里是存在變化的地方,一旦確定了需要使用的運(yùn)行時(shí),我們就可以不再像通常直接從注入的DLL中運(yùn)行.NET代碼時(shí)一樣去請求ICLRRuntimeHost實(shí)例,而是初始化ICorDebug接口的實(shí)例。這里的主要區(qū)別在于,我們的新方法會(huì)附加到另一個(gè).NET進(jìn)程,而不再需要將我們自己的代碼注入到非托管空間并加載CLR。

    使用以下代碼創(chuàng)建ICorDebug實(shí)例:


    現(xiàn)在,已經(jīng)對接口完成了初始化,可以暫停一下,探索這個(gè)調(diào)試框架是如何與目標(biāo)進(jìn)程進(jìn)行交互的。下面是對各個(gè)組件的更高級別的概述:


    這看上去似乎非常復(fù)雜,在我第一次使用API時(shí),我也閱讀了很多遍文檔,才理解了其中的一部分內(nèi)容。需要強(qiáng)調(diào)的一個(gè)地方是,調(diào)試器API首先會(huì)響應(yīng)從目標(biāo)進(jìn)程觸發(fā)的調(diào)試事件。例如,如果引發(fā)異常,我們會(huì)收到一個(gè)事件。如果將新程序集加載到目標(biāo),或者創(chuàng)建了一個(gè)新線程,那么就會(huì)收到一個(gè)事件。并且,每次觸發(fā)事件時(shí),我們都有機(jī)會(huì)與進(jìn)入“已停止”狀態(tài)的目標(biāo)進(jìn)行交互,然后再恢復(fù)執(zhí)行,并等待其他事件。

    通常,當(dāng)我們與調(diào)試的.NET進(jìn)程進(jìn)行交互時(shí),該進(jìn)程都需要處于停止?fàn)顟B(tài)。在嘗試與正在運(yùn)行的進(jìn)程進(jìn)行交互時(shí),我們將看到一個(gè)常見錯(cuò)誤:


    要在事件之外手動(dòng)停止和恢復(fù)進(jìn)程,我們可以調(diào)用以下通過ICorDebugController公開的方法:


    因此,現(xiàn)在我們需要對即將處理的內(nèi)容有更多的了解,需要有能力處理那些在連接到目標(biāo)的完整時(shí)間周期中可能發(fā)生的異步事件。為此,我們構(gòu)造了一個(gè)類,該類同時(shí)實(shí)現(xiàn)ICorDebugManagedCallback和ICorDebugManagedCallback2接口。如下所示:


    我們可以在這里的文檔中,找到需要實(shí)現(xiàn)的回調(diào)事件的完整列表。在這篇文章中,我們就不再一一介紹,因?yàn)槲覀冎恍枰P(guān)注其中的幾個(gè),就能夠?qū)崿F(xiàn)將代碼注入到.NET進(jìn)程的目標(biāo)。為清晰起見,我們可以快速看一下如何處理觸發(fā)斷點(diǎn)這類情況:


    正如我們之前所討論的,每次調(diào)用托管回調(diào)方法時(shí),都會(huì)停止執(zhí)行目標(biāo)。這意味著,我們需要在準(zhǔn)備就緒之后去調(diào)用Continue(...)以恢復(fù)執(zhí)行。如果這一步失敗了,我們就不會(huì)得到太多的目標(biāo)。

    在構(gòu)建托管回調(diào)類之后,我們需要使用以下方法,將其與ICorDebug對象關(guān)聯(lián):


    至此,調(diào)試器已經(jīng)準(zhǔn)備就緒,可以投入使用。現(xiàn)在,我們需要關(guān)注如何在目標(biāo)中獲得任意代碼執(zhí)行。

    注入什么?

    讓我們從簡單的工作入手,嘗試調(diào)用.NET方法,該方法會(huì)將程序集從磁盤加載到目標(biāo)進(jìn)程中。為此,我們可以嘗試遠(yuǎn)程調(diào)用具有以下簽名的.NET方法Assembly.LoadFile:


    要在.NET進(jìn)程調(diào)用任意代碼,我們需要ICorDebugEval接口的實(shí)例。顧名思義,這個(gè)實(shí)例公開了在目標(biāo).NET運(yùn)行時(shí)評估代碼所需的幾種方法。

    其中的一個(gè)方法是ICorDebugEval::CallFunction,它允許我們直接調(diào)用.NET方法,在案例中就是Assembly.LoadFile。我們還需要?jiǎng)?chuàng)建一個(gè)新的System.String對象作為參數(shù)傳遞。這是使用ICorDebugEval::NewString來完成的。

    但是,實(shí)際上在什么時(shí)候調(diào)用這些方法?事實(shí)證明,這是使用ICorDebugEval接口的比較復(fù)雜的功能之一,因?yàn)槟繕?biāo)需要處于我們可以實(shí)際評估代碼的狀態(tài)。

    如果我們嘗試在錯(cuò)誤的位置評估代碼,則會(huì)產(chǎn)生以下錯(cuò)誤:


    所以,這里的錯(cuò)誤0x80131c23和“GC unsafe point”是什么意思?遺憾的是,關(guān)于這個(gè)特定的HRESULT并沒有很多相關(guān)的文檔可以查閱,但經(jīng)過一番挖掘,我們找到了這篇文章,其中解釋說:

    “當(dāng)JIT編譯器編譯方法時(shí),它可以插入對檢查GC是否掛起的特殊函數(shù)的調(diào)用。一旦這樣,線程將會(huì)被掛起,GC將運(yùn)行直至完成,然后繼續(xù)執(zhí)行該線程。編譯器插入這些方法調(diào)用的位置被稱為GC安全點(diǎn)”。

    因此,從本質(zhì)上說,我們需要以一種類似進(jìn)行垃圾回收的方式安全地評估代碼。

    事實(shí)證明,如果毫無頭緒地直接尋找滿足要求的時(shí)機(jī)可能會(huì)比較棘手,因?yàn)槲覀儧]有可以參考的源代碼或PDB。但是,有一種簡單的方式,我們可以使用ICorDebugStepper實(shí)例的附加進(jìn)程。這個(gè)接口可以讓我們像使用標(biāo)準(zhǔn)調(diào)試器一樣,逐步瀏覽托管代碼。如果我們重復(fù)執(zhí)行此操作,最后將可以找到一個(gè)可以評估所需.NET代碼的安全點(diǎn),這種方法應(yīng)該是可行的。

    實(shí)際上,這種技術(shù)看上去效果不錯(cuò),但當(dāng)我們嘗試在目標(biāo)CLR正在JIT某個(gè)IL的點(diǎn)時(shí),掛起的應(yīng)用程序不太可能能夠讓我們注入代碼。不過,有一些可以選擇的目標(biāo)(以及我們稍后討論的一些COMPlus變量)可以讓這個(gè)過程變得更容易,我們會(huì)在后面詳細(xì)討論。

    現(xiàn)在,在繼續(xù)創(chuàng)建步進(jìn)器之前,可以重點(diǎn)介紹.NET應(yīng)用程序的組件可以如何映射到調(diào)試器API,這將有助于我們后續(xù)理解一些PoC代碼。看上去,它類似于:


    要?jiǎng)?chuàng)建步進(jìn)器,我們需要找到一個(gè)與之關(guān)聯(lián)的活動(dòng)線程。我們可以通過使用ICorDebugProcess::EnumerateThreads或ICorDebugAppDomain::EnumerateThreads枚舉現(xiàn)有的線程來實(shí)現(xiàn)這一點(diǎn),從而允許我們檢索ICorDebugThread實(shí)例數(shù)組。

    需要注意的是,盡管我們在這里說的是線程,但必須要注意,它們實(shí)際上表示“托管線程”,不同于我們通常處理的傳統(tǒng)操作系統(tǒng)線程。在文檔中,這些術(shù)語并沒有區(qū)分開來,但對于調(diào)試器API來說,這非常重要。

    通過收集活動(dòng)線程列表,我們可以使用ICorDebugThread::CreateStepper方法創(chuàng)建并關(guān)聯(lián)步進(jìn)器。

    我們需要確保在連接后,要向目標(biāo)進(jìn)程可能產(chǎn)生的所有新線程添加步進(jìn)器。通過我們的托管回調(diào)處理程序,在發(fā)生值得關(guān)注的事件時(shí),會(huì)有一個(gè)方法被調(diào)用。我們將根據(jù)需要,使用CreateThread事件添加其他步進(jìn)器:


    在創(chuàng)建步進(jìn)器后、繼續(xù)執(zhí)行目標(biāo)之前,我們將使用ICorDebugStepper::Step方法觸發(fā)代碼執(zhí)行的步驟。一旦發(fā)生了某個(gè)步驟,就會(huì)通過事件再次提醒我們的ManagedCallback::StepComplete處理程序。在這里,我們可以嘗試評估線程中的一些代碼。

    用于確定我們是否位于GC安全點(diǎn)的一個(gè)好方法,就是嘗試在目標(biāo)進(jìn)程中創(chuàng)建一個(gè)新的字符串對象,隨后將其用作Assembly.LoadFile調(diào)用的參數(shù):


    在這里,我們只是嘗試使用ICorDebugEval::NewString方法在目標(biāo)進(jìn)程中創(chuàng)建System.String.NET對象。如果得到了成功事件,就可以證明我們正位于GC安全點(diǎn),隨后就可以停止單步執(zhí)行代碼,只要能夠保證我們評估的代碼可以正常工作,就可以繼續(xù)安全地執(zhí)行應(yīng)用程序。如果無法創(chuàng)建字符串,則繼續(xù)步進(jìn)并重試。

    一旦能夠成功執(zhí)行ICorDebugEval::NewString方法,接下來就需要等待調(diào)試器觸發(fā)一個(gè)事件,該事件表明我們的評估已經(jīng)完成。這是通過API調(diào)用ManagedCallback::EvalComplete回調(diào)來實(shí)現(xiàn)的。在這里,我們檢索對創(chuàng)建的字符串的引用:


    將字符串對象存儲(chǔ)在內(nèi)存中后,接下來我們需要將該字符串傳遞給.NET方法Assembly.LoadFile。同樣,我們可以通過ICorDebugEval進(jìn)行該操作,但是首先需要檢索對該方法的引用。為此,我們使用了另一個(gè)接口IMetaDataImport。這樣,我們就可以從正在運(yùn)行的進(jìn)程中枚舉一系列有用的信息,包括目標(biāo)中可用的類型和方法。首先,我們需要檢索對.NET類型System.Reflection.Assembly的引用。為了簡潔起見,我刪減了以下代碼(完整示例可以在文章結(jié)尾的PoC位置找到),檢索類型引用類似如下:


    一旦有了對.NET類型的引用,就需要找到對方法LoadFile的引用:


    一旦有了目標(biāo)引用,我們就可以直接將方法與我們的字符串參數(shù)一起調(diào)用:


    至此,我們的程序集將被加載,并位于目標(biāo)進(jìn)程中。接下來就是從已加載的程序集中調(diào)用靜態(tài)方法:


    如果一切順利,現(xiàn)在惡意程序集已經(jīng)加載,注入的代碼已經(jīng)運(yùn)行:


    當(dāng)然,從磁盤加載程序集并不理想,如果想要使用Assembly.Load方法從內(nèi)存中加載程序集難度又如何呢?只要我們可以調(diào)用所需的任意.NET方法,并對ICorDebugEval回調(diào)的處理方式進(jìn)行一些調(diào)整,我們就可以將其組合在一起,加載Base64編碼后的Payload,如下所示:


    0x02 分離

    現(xiàn)在,我們已經(jīng)注入了代碼,我們可以選擇將其放置在目標(biāo)進(jìn)程上,或者選擇分離調(diào)試器并允許目標(biāo)繼續(xù)自行執(zhí)行。

    要進(jìn)行分離,只需要一個(gè)簡單的調(diào)用:

    debug->Detach();

    但是,如果要分離目標(biāo),并允許其繼續(xù)執(zhí)行,保證不會(huì)被終止,則需要首先滿足許多條件。我們需要:

    1、停止當(dāng)前連接到線程的所有步進(jìn)器。2、完成所有的代碼評估。3、必須通過調(diào)用ICorDebug::Stop或通過回調(diào)事件處理程序以保證位于同步狀態(tài)中。

    其中的1和3非常容易實(shí)現(xiàn),重點(diǎn)就是要關(guān)注一下其中的第2項(xiàng)。我們以一個(gè)比較簡單的.NET方法為例,該方法要在目標(biāo)中執(zhí)行:


    然后,我們通過以下方式請求執(zhí)行此代碼:

    pEval->CallFunction(function, 0, NULL);

    我們會(huì)發(fā)現(xiàn),我們無法徹底分離進(jìn)程。這是因?yàn)椴粷M足其中的第2個(gè)條件,因?yàn)槲覀兊拇a評估永遠(yuǎn)不會(huì)返回,因此EvalComplete回調(diào)永遠(yuǎn)不會(huì)發(fā)生。這也就是說,任何分離的嘗試都會(huì)產(chǎn)生CORDBG_E_DETACH_FAILED_OUTSTANDING_EVALS錯(cuò)誤。

    因此,我們始終需要確保初始代碼執(zhí)行返回,并在嘗試分離之前處理回調(diào)。盡管如此,我們還是來看一些典型目標(biāo)的示例,并了解如何使用它們執(zhí)行一些常見的后漏洞利用工具。

    0x03 標(biāo)準(zhǔn)注入

    為了在運(yùn)行的進(jìn)程中執(zhí)行我們的代碼,我們需要找到一個(gè)不會(huì)閑置的目標(biāo)。實(shí)際上,我們需要尋找一個(gè)非常活躍的目標(biāo),可以讓代碼得到JIT處理。

    一個(gè)潛在目標(biāo)是eventvwr.exe,它實(shí)際上會(huì)在加載.NET運(yùn)行時(shí)生成mmc.exe。由于這個(gè)進(jìn)程會(huì)在后臺(tái)處理事件,因此它也就成為了這類技術(shù)的理想目標(biāo)。

    那么,我們?nèi)绾尾拍茉谶@個(gè)進(jìn)程中執(zhí)行.NET方法呢?首先生成事件查看器,以便我們可以使用一些東西:


    現(xiàn)在,我們已經(jīng)生成了進(jìn)程,接下來需要使用ICorDebug::DebugActiveProcess方法連接調(diào)試器:

    ICorDebugProcess *process; debug->DebugActiveProcess(PID, false, &process);

    連接完成后,我們可以使用上面顯示的相同步驟執(zhí)行任意.NET方法,或者使用我們的PoC加載任意.NET程序集。我們嘗試加載ShareDump,以表明我們可以控制進(jìn)程,并有可能允許我們轉(zhuǎn)儲(chǔ)lsass.exe內(nèi)存:https://youtu.be/obTMt7_yyCQ

    0x04 量身定制注入

    我們可以看到,在執(zhí)行注入eventvwr.exe之類的進(jìn)程時(shí),執(zhí)行.NET Payload非常容易,所以可以針對目標(biāo)進(jìn)程本身定制注入。這里以與.NET框架捆綁在一起的另一個(gè).NET進(jìn)程AddInProcess.exe為例,如果我們對其進(jìn)行反編譯,會(huì)發(fā)現(xiàn)它有兩個(gè)參數(shù):


    第一個(gè)參數(shù)是GUID,用于創(chuàng)建通過命名管道偵聽的IPC服務(wù)器:


    第二個(gè)參數(shù)是進(jìn)程的PID,該進(jìn)程被監(jiān)視并阻塞主線程,直至目標(biāo)進(jìn)程退出:


    這意味著,盡管進(jìn)程將處于閑置狀態(tài)(不滿足我們運(yùn)行JIT的要求),但實(shí)際上我們可以附加調(diào)試器,然后與IPC服務(wù)建立連接,觸發(fā)代碼的JIT以將步進(jìn)器放置在GC安全點(diǎn),從而允許代碼注入。

    對于這個(gè)示例,我們嘗試將Seatbelt注入AddInProcess.exe,然后查看其外觀。我們不會(huì)重定向I/O,而是手動(dòng)觸發(fā)命名管道連接,因此就可以準(zhǔn)確了解正在發(fā)生的情況:

    https://youtu.be/9mhO_wBVI10

    0x05 派生和注入

    因此,我們已經(jīng)嘗試注入現(xiàn)有進(jìn)程,并設(shè)計(jì)Payload來觸發(fā)特定應(yīng)用程序狀態(tài)。但是,如果我們只是想立即派生并注入新進(jìn)程,以實(shí)現(xiàn)惡意代碼的遷移,應(yīng)該如何操作呢?可以使用ICorDebug公開的CreateProcessW包裝器來完全實(shí)現(xiàn):


    在這一過程中,可以調(diào)整為自己了解或喜歡的參數(shù),并使用新的父進(jìn)程或環(huán)節(jié)策略。這也讓尋找安全點(diǎn)的工作變得輕松很多,因?yàn)槲覀冎溃谶M(jìn)程派生時(shí),JIT會(huì)給我們足夠的時(shí)間到達(dá)GC安全點(diǎn)。

    現(xiàn)在,嘗試在新的.NET進(jìn)程中調(diào)用任意.NET方法時(shí),我們需要考慮一些因素,主要是應(yīng)用程序在運(yùn)行Payload的情況下執(zhí)行的時(shí)間長短。如果目標(biāo)只是打印一些幫助并退出,那對于注入Payload來說沒有多大用處。

    避免這個(gè)限制的一種方法是制作.NET Payload以生成其他托管線程。由于.NET支持后臺(tái)和前臺(tái)托管線程的概念,因此我們發(fā)現(xiàn)即使Main()函數(shù)返回,生成的前臺(tái)線程也會(huì)阻塞目標(biāo)的退出,然后就可以繼續(xù)運(yùn)行注入的代碼。

    例如,我們以一個(gè)非常簡單的.NET Payload為例:


    現(xiàn)在觀察一下,將其注入到各種派生的進(jìn)程中:

    https://youtu.be/CsCnlndKC1c

    0x06 增加成功概率

    在前面的示例中,我展示了一些實(shí)際案例。但是,有一些因素可能會(huì)破壞我們的計(jì)劃,其中最典型的就是ngen(本地映像),它們是準(zhǔn)JIT預(yù)編譯的二進(jìn)制文件,已加載到.NET進(jìn)程中,目的是為了加快執(zhí)行速度。當(dāng)我們遇到這類情況,注入將會(huì)變得非常困難。同時(shí),還有.NET優(yōu)化進(jìn)程,會(huì)再次減少我們在某些進(jìn)程中找到GC安全點(diǎn)的概率。

    那么,有什么方法可以避免這種情況?事實(shí)證明,可以使用COMPlus環(huán)境變量。有兩個(gè)特定的設(shè)置可以大大增加成功概率,分別是COMPlus_JITMinOpts和COMPlus_ZapDisable。實(shí)際上,與x64相比,x86進(jìn)程似乎更需要解決這個(gè)問題。

    讓我們對比在設(shè)置環(huán)境變量前后的區(qū)別:

    https://youtu.be/0iNnYe0Zsfo

    0x07 概念證明

    在本文的研究過程中,我發(fā)布了一個(gè)概念證明工具,可以用于探索本文所討論的一些概念。該工具可以在GitHub找到( https://github.com/xpn/DotNetDebug )。

    在編譯后,將按照以下方式啟動(dòng)PoC:


    默認(rèn)情況下,這個(gè)PoC會(huì)在目標(biāo)中執(zhí)行Assembly.Load方法,以暫存.NET程序集,該程序集將依次從C:\Windows\Temp\inject.exe加載代碼。借助PoC,我們可以測試一些其他工具,同時(shí)我們還可以修改PoC,以執(zhí)行所需的任何操作。

    0x08 檢測

    在擁有了一個(gè)如何使用調(diào)試器API來執(zhí)行.NET進(jìn)程中任意方法的思路后,我們還需要站在防御者的角度,考慮如何檢測其使用(濫用)情況。在這里,我不會(huì)深入探討Windows調(diào)試子系統(tǒng),因?yàn)橐呀?jīng)有一系列優(yōu)秀的研究文章描述了用戶模式調(diào)試的內(nèi)部原理。在這里,我們重點(diǎn)來分析一些有助于檢測的位置。

    首先是進(jìn)程到進(jìn)程的交互,例如,調(diào)試框架在附加到目標(biāo)時(shí)會(huì)調(diào)用哪些值得關(guān)注的API?與大多數(shù)注入方式一樣,這里有WriteProcessMemory,在整個(gè)調(diào)試會(huì)話中都大量使用它來修改目標(biāo)進(jìn)程。

    其次,在遠(yuǎn)程進(jìn)程中需要實(shí)際的線程來觸發(fā)斷點(diǎn)。如果要附加到現(xiàn)有進(jìn)程,需要用到kernelbase!DebugActiveProcess的API方法,但是如果在調(diào)用此方法時(shí)查看調(diào)用堆棧的最低點(diǎn),會(huì)找到以下內(nèi)容:


    ntdll!NtCreateThreadEx的調(diào)用負(fù)責(zé)在遠(yuǎn)程進(jìn)程中創(chuàng)建線程。用于這個(gè)遠(yuǎn)程線程的入口點(diǎn)是ntdll!DbgUiRemoteBreakin,它用來觸發(fā)掛起目標(biāo)的斷點(diǎn),并向我們的調(diào)試器發(fā)出事件。當(dāng)然,這也就表示基于傳統(tǒng)分配的內(nèi)存入口點(diǎn)的注入線程搜索將不會(huì)起作用,因?yàn)榫€程的初始地址是ntdll函數(shù)的地址,但是對DbgUiRemoteBreakin的特定調(diào)用可以表明某種形式的操作正在發(fā)生。

    此外,Sysmon提供了一個(gè)不錯(cuò)的CreateRemoteThread指示器,可以將入口點(diǎn)顯示為DbgUiRemoteBreakin,對于防御者來說可能很有幫助。


    上述情況還是僅適用于在現(xiàn)有的進(jìn)程中尋找.NET代碼。如果像上文的最后一個(gè)示例那樣,我們連接調(diào)試器來啟動(dòng)新的.NET進(jìn)程,那么就不會(huì)看到這個(gè)遠(yuǎn)程線程的創(chuàng)建,因此無法檢測到。這是因?yàn)橥ㄟ^DEBUG_PROCESS的CreateProcess選項(xiàng)創(chuàng)建初始調(diào)試器會(huì)話的方式,在此過程中從來不會(huì)使用ntdll!NtCreateThreadEx調(diào)用。但是,如果后續(xù)使用了DebugBreakProcess這樣的調(diào)用,也會(huì)導(dǎo)致被檢測到。

    接下來,我們還必須考慮在調(diào)試過程中,可以使用幾個(gè)API來指示正在連接的活躍調(diào)試器。例如,使用目標(biāo)進(jìn)程句柄調(diào)用CheckRemoteDebuggerPresent,可以顯示調(diào)試器會(huì)話是否處于活躍狀態(tài)。

    像是ProcessHacker這樣的工具,還可以突出顯示特定進(jìn)程,以表示調(diào)試器會(huì)話的存在:


    當(dāng)然,現(xiàn)在只有在調(diào)試器會(huì)話處于活動(dòng)狀態(tài)時(shí),才會(huì)被發(fā)現(xiàn)。因此,如果執(zhí)行代碼后調(diào)試器會(huì)話停止了,就不會(huì)再被檢測到。

    總而言之,希望通過這篇文章能讓大家有更多的了解。我相信可以對本文提到的方法再進(jìn)行一些優(yōu)化,包括可以增加對某些特征檢測的防范。但不論如何,能直接在運(yùn)行中的.NET進(jìn)程中執(zhí)行任意.NET方法,這還是非常酷。根據(jù)目標(biāo)環(huán)境的不同,這種方法可能還會(huì)帶來一些額外的優(yōu)勢。

    0x09 參考鏈接

    [1]https://googleprojectzero.blogspot.com/2019/04/windows-exploitation-tricks-abusing.html[2] http://index-of.es/Windows/dbgk-1.pdf[3] https://mattwarren.org/2016/08/08/GC-Pauses-and-Safe-Points/[4] https://github.com/Samsung/netcoredbg

    歡迎登錄安全客 -有思想的安全新媒體www.anquanke.com/加入交流群113129131 獲取更多最新資訊

    原文鏈接:https://www.anquanke.com/post/id/213892

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有